CoolFace
Datasetpublic

OpenCoven/fable-forge-10k

FableForge — Narrative Reasoning Dataset with Recurrence-Depth Annotations The first narrative dataset designed around recurrence depth requirements. Every example carries a suggested_n_loops field with a theoretically grounded basis — derived from the structural complexity of the task, not a heuristic label or emergent property. Background Standard narrative datasets treat reasoning depth as an emergent property. FableForge is different: it annotates how much… See the full description on the dataset page: https://huggingface.co/datasets/OpenCoven/fable-forge-10k.

sourceHugging Facemitupdated 3mo agoView on Hugging Face
0likes20downloads
Dataset Card

FableForge — Narrative Reasoning Dataset with Recurrence-Depth Annotations

The first narrative dataset designed around recurrence depth requirements.

Every example carries a suggested_n_loops field with a theoretically grounded basis — derived from the structural complexity of the task, not a heuristic label or emergent property.

Background

Standard narrative datasets treat reasoning depth as an emergent property. FableForge is different: it annotates how much computation each task structurally requires, making it suitable for training Recurrent-Depth Transformers (RDTs) where loop count is a controllable hyperparameter at inference time.

Task Types

character_trace

Track a named character's state (location, emotion, companions) across N scene transitions.

Recurrence requirement: loops = f(n_characters × n_scenes)

More characters over more scenes → more recurrence needed to maintain entity state without drift.

coherence_challenge

Detect and correct a single planted narrative inconsistency.

Recurrence requirement: loops = f(inconsistency_type)

Six inconsistency types, ordered by cognitive depth:

TypeLoopsWhy
name_drift4Surface pattern match
location_contradiction8Spatial reasoning
object_continuity8Object state tracking
timeline_error16Temporal ordering
relationship_error16Social graph recall
trait_reversal32Character psychology

narrative_completion

Generate a story continuation that satisfies N explicit constraints simultaneously.

Recurrence requirement: loops = f(n_characters × n_constraints)

Dataset Fields

FieldTypeDescription
idstringUnique stable identifier
task_typestringcharacter_trace / coherence_challenge / narrative_completion
genrestringfantasy or contemporary
complexity_scorefloat0–1, derived from task structure
suggested_n_loopsint4 / 8 / 16 / 32 — recurrence target
narrative_modestringaction / dialogue / exposition
fable_memory_requiredboolWhether FableMemory injection is needed
coherence_probe_targetslist[str]Character names to monitor
messageslist[{"role": "user", "content": ...}, {"role": "assistant", "content": ...}]
sourcestringfable_forge_v1
constraint_countintNumber of simultaneous constraints
n_charactersintCharacters in the task
n_scenesintScenes spanned

Distribution (10k sample)

  • ~40% charactertrace, ~30% coherencechallenge, ~30% narrative_completion
  • ~83% require FableMemory injection
  • Loop distribution: ~12% dialogue (8), ~37% exposition (16), ~51% deep (32)
  • Genres: ~50% fantasy, ~50% contemporary
  • Fully deterministic: seed=42

Usage

python
from datasets import load_dataset

ds = load_dataset("OpenCoven/fable-forge-10k", split="train")
print(ds[0].keys())
# dict_keys(['id', 'task_type', 'genre', 'complexity_score', 'suggested_n_loops',
#            'narrative_mode', 'fable_memory_required', 'coherence_probe_targets',
#            'messages', 'source', 'constraint_count', 'n_characters', 'n_scenes'])

# Filter by depth tier
hard = ds.filter(lambda x: x["suggested_n_loops"] == 32)
print(f"{len(hard):,} examples require maximum recurrence depth")

# Use with OpenFable NarrativeDepthController
from open_fable.depth import NarrativeDepthController
ndc = NarrativeDepthController()
for ex in ds.select(range(5)):
    loops = ndc.get_n_loops(ex["narrative_mode"])
    print(f"{ex['task_type']:25s} suggested={ex['suggested_n_loops']:2d}  ndc={loops}")

Generating More Data

FableForge is deterministic and open-source. Generate at any scale:

bash
git clone https://github.com/OpenCoven/open-fable
cd open-fable
pip install -e .
python -m open_fable.data.fable_forge --count 100000 --seed 99 --output data/fable_forge_100k.jsonl

Two-Stage Training Pipeline

This dataset is Stage 2 of OpenFable's training pipeline:

Citation

bibtex
@misc{openfable2026fableforge,
  title   = {{FableForge}: A Synthetic Narrative Dataset with Recurrence-Depth Annotations},
  author  = {OpenCoven},
  year    = {2026},
  url     = {https://github.com/OpenCoven/open-fable},
  note    = {First dataset designed around recurrence depth requirements for
             narrative reasoning in Recurrent-Depth Transformer architectures.}
}

License

MIT — see LICENSE

Links