EpicSpine
Talk. It becomes a plan.
The memory is the repo.
A skill that turns loose chat into a tracked goal tree, kept as plain files in git next to the code, so every agent and every human picks up exactly where the last one stopped.
Scroll down like a page, or step with ← → or Space; press G for the part-grouped index. Three plain intuitions come first; Part 5 is the technical part. Deep-link with #5. Diagrams do the explaining; the text is only a caption.
Every agent knows what it is for.
Plans, never builds
Turns what you ask into a goal and steps, hands each step out, and checks what comes back.
Drafts, then waits
Writes in your voice from the research it was given, and stops for your yes before anything goes out.
Checks against the goal
Judges the work by the done means you agreed, not by taste, and says why in one line.
Before it acts, each agent binds: it reads its goal, where things stand and the rules you taught it. That is where its clarity comes from.
It goes as far as the code can.
Step after step
When one step is verified, the next one starts. Nobody has to remember to ask.
Wakes find what stalled
A worker stops, a lease runs out, a test turns red. A scheduled wake notices and starts it again.
Only where you matter
A decision, a look at something live, a yes to publish. Everything else is already done when you arrive.
You are needed only where a step truly needs a person. The rest of the way, the team does not wait.
Ask once. Everyone pushes for it.
Say it loosely
“Google sign-in before Friday, and don’t break email login.” That is enough to start.
Everyone takes a side
The manager plans, workers build, the reviewer checks. Each one pushes the same goal from where it stands.
You see where it is
The goal file says what is done, what is running and what waits on you, at any hour.
It feels like summoning people who want what you want and keep moving the line forward with you.
Agents lose the plot between chats.
Intent disappears
Long projects drift when the only memory is a transcript no future agent will read completely.
Tickets lack the whole story
A ticket is excellent for one bounded step, but too narrow to carry scope, direction and acceptance.
Agents overreach
Workers start planning, reviewers rewrite, and state gets buried in comments. The system needs boundaries.
The fix is two ideas: talk becomes a plan, and the memory is the repo.
Talk. It becomes a plan.
Say it loosely. It is structured for you into goals that are tracked and delivered.
What you say
for you
What the repo keeps: a goal tree
Unstructured in, structured out. Nothing said is lost; everything said becomes trackable.
The memory is the repo.
Goals, status, decisions and lessons are plain files, committed in git next to the code.
① Agents write
├─ src/ ← the code
└─ docs/ ← the memory
├─ EPIC-0-root.md
└─ EPIC-4-google-sign-in.md
## Decisions
03-12 Google only, Apple later
why: 9 of 10 asks name Google
## Operating Learnings
L-2 Always run e2e before merging
git log
a41c9e2 EPIC-4 S1 OAuth app verified
7be03d1 L-2 learned: e2e before merge
19f0c55 EPIC-4 created from chat
③ A new agent starts
--bind EPIC-4In seconds. No handover call.
Status and lineage travel with the code. Any new agent binds and has the whole build trace.
One living spine carries intent; everything else carries detail.
Readskill/epic-spine/SKILL.md
Intent to issues to proof to Book, then round again.
Readskill/epic-spine/SKILL.md skill/epic-spine/references/book-companion.md
Eight principles everything else follows from.
wt/<task> worktree.Source of truth: the Default Behaviors card in skill/epic-spine/SKILL.md and the root spine's Always list.
Everything the skill does, and where to dig in.
A spine is small on purpose.
Readskill/epic-spine/references/spine-model.md skill/epic-spine/references/compact-state.md skill/epic-spine/references/sprint-dialect-v2.md skill/epic-spine/assets/compact-spine-template.md
One root. Children own local truth.
Readskill/epic-spine/references/execution-rollups.md skill/epic-spine/references/spine-model.md skill/epic-spine/references/persona-tasks.md
Bind first. Then read three hops.
Readskill/epic-spine/SKILL.md skill/epic-spine/references/role-protocols.md
Independence comes from fresh context.
Readskill/epic-spine/references/roles-and-dispatch.md skill/epic-spine/references/dispatch-prompts.md skill/epic-spine/scripts/claim.py skill/epic-spine/assets/dispatch-prompt-preamble.md
Task instruction beats repo profile beats default.
Readskill/epic-spine/references/roles-and-dispatch.md
Settle the forks. Launch only the ready frontier.
Readskill/epic-spine/references/roles-and-dispatch.md skill/epic-spine/references/role-protocols.md
Stay in main. Isolate execution. Merge verified.
Readskill/epic-spine/references/git-doctrine.md
Verify on two axes before anything merges.
Readskill/epic-spine/references/roles-and-dispatch.md
Memory, at the depth where it applies.
Readskill/epic-spine/references/learnings.md
Documents have a contract. Checks prove it.
Readskill/epic-spine/references/structural-validation.md skill/epic-spine/references/execution-rollups.md skill/epic-spine/references/operating-model.md skill/epic-spine/scripts/validate_spine.py skill/epic-spine/scripts/spine_fix.py skill/epic-spine/scripts/close_rows.py skill/epic-spine/scripts/tree_audit.py skill/epic-spine/references/tree-cleanse.md
Leave the repo clean and the next agent a map.
Readskill/epic-spine/references/hygiene.md skill/epic-spine/assets/sweep-brief.md
One source, installed once, linked everywhere.
Readskill/epic-spine/references/skill-update.md SYNC.md
Bound on the first reply, on every harness.
Readskill/epic-spine/assets/agents-block.md skill/epic-spine/assets/global-block.md skill/epic-spine/scripts/agents_block.py skill/epic-spine/scripts/commit_msg.py skill/epic-spine/scripts/global_install.py skill/epic-spine/scripts/install_guard.py skill/epic-spine/scripts/pre_commit.py
Freshness is checked by content, once a day.
Readskill/epic-spine/references/skill-update.md skill/epic-spine/references/session-sync.md skill/epic-spine/scripts/skill_update.py skill/epic-spine/scripts/session_sync.py skill/epic-spine/scripts/repo_sync.py skill/epic-spine/scripts/fetch_guard.py skill/epic-spine/scripts/vendored_skill.py skill/epic-spine/scripts/stop_push.py skill/epic-spine/scripts/codex_hooks.py skill/epic-spine/scripts/rehook.py skill/epic-spine/scripts/background_sync.py skill/epic-spine/scripts/local_mess.py skill/epic-spine/scripts/local_servers.py skill/epic-spine/scripts/auto_return.py skill/epic-spine/scripts/deploy_gate.py skill/epic-spine/scripts/merge_trust.py skill/epic-spine/scripts/repo_state.py skill/epic-spine/scripts/sync_schedule.py skill/epic-spine/assets/epicspine-profile.md
The spine owns development. The Book owns understanding.
Readskill/epic-spine/references/book-companion.md
Declare it once. Every bound agent then authors.
Readskill/epic-spine/assets/book-companion-contract.md skill/epic-spine/references/book-companion.md
A shortlist is a first-class deliverable.
Readskill/epic-spine/references/shortlists.md skill/epic-spine/assets/shortlist.template.html skill/epic-spine/assets/shortlist-sample.json skill/epic-spine/references/artifacts.md
GitHub by default. Local files when declared.
Readskill/epic-spine/references/ticket-backends.md skill/epic-spine/assets/github-issue-template.md
A ticket moves from draft to done on evidence.
Readskill/epic-spine/references/operating-model.md skill/epic-spine/references/compact-state.md
Draft until stamped ready: the repo delivers itself.
draft; spine_new.py scaffolds it so. Never touched by a wake.ready child, starts its rows and sets it active.deferred, review, done, superseded: runnable is false in spines.py --json.The user writes into the spine and stamps what is ready; the manager stays on and does the rest. See skill/epic-spine/references/spine-model.md (Running).
Readskill/epic-spine/references/spine-model.md skill/epic-spine/scripts/run_state.py
One full task, goal to merged and recorded.
Readskill/epic-spine/references/role-protocols.md skill/epic-spine/references/git-doctrine.md
This repo is the skill, its own spine, and its own Book.
Readskill/epic-spine/SKILL.md docs/EPIC-0-OPERATING-SYSTEM.md tests/test_book_drift.py
Three surfaces, three checks, one final gate.
Readtests/test_book_drift.py tools/epicspine-manifest.sh skill/epic-spine/scripts/validate_spine.py
Read the source, not the summary.
- README.mdThe concept, install steps, and the spine-versus-issues rule.
- skill/epic-spine/SKILL.mdThe kernel and the Default Behaviors card.
- skill/epic-spine/references/roles-and-dispatch.mdBase roles, the dispatch profile, and binding prompts.
- skill/epic-spine/references/git-doctrine.mdWorktrees, integration, rollback and the clean-repo contract.
- skill/epic-spine/references/totems.mdThe four parts of every epic a team reads at wake and writes back to: Brief, Observations, History and Work.
- docs/EPIC-0-OPERATING-SYSTEM.mdThe root spine: authoritative for current state.
- examples/EPIC-0-CLI-EXAMPLE.mdA populated spine you can validate locally.
- github.com/AlfaBlok/epicspine-skillThe canonical source repository and issue tracker.
skill/epic-spine/references/operating-model.md
skill/epic-spine/references/spine-creation.md
skill/epic-spine/references/spine-model.md
skill/epic-spine/references/compact-state.md
skill/epic-spine/references/sprint-dialect-v2.md
skill/epic-spine/references/execution-rollups.md
skill/epic-spine/references/structural-validation.md
skill/epic-spine/references/learnings.md
skill/epic-spine/references/personas.md
skill/epic-spine/references/steward-persona.md
skill/epic-spine/references/standing-spines.md
skill/epic-spine/references/packs.md
skill/epic-spine/references/totems.md
skill/epic-spine/references/hygiene.md
skill/epic-spine/references/machine-dispatcher.md
skill/epic-spine/references/role-protocols.md
skill/epic-spine/references/dispatch-prompts.md
skill/epic-spine/references/book-companion.md
skill/epic-spine/references/shortlists.md
skill/epic-spine/references/ticket-backends.md
skill/epic-spine/references/artifacts.md
skill/epic-spine/references/skill-update.md
skill/epic-spine/scripts/validate_spine.py
skill/epic-spine/scripts/rollup_spine.py
skill/epic-spine/scripts/migrate_spine.py
skill/epic-spine/scripts/spine_new.py
skill/epic-spine/scripts/pack.py
skill/epic-spine/scripts/pack_init.py
skill/epic-spine/scripts/pack_validate.py
skill/epic-spine/scripts/pack_checks.py
skill/epic-spine/scripts/pack_md.py
skill/epic-spine/scripts/pack_export.py
skill/epic-spine/scripts/pack_intake.py
skill/epic-spine/scripts/pack_role.py
skill/epic-spine/scripts/spines.py
skill/epic-spine/scripts/spine_tree.py
skill/epic-spine/scripts/git_stamps.py
skill/epic-spine/references/tree-library.md
skill/epic-spine/assets/tree-library-parity.json
skill/epic-spine/scripts/bind.py
skill/epic-spine/scripts/agents_block.py
skill/epic-spine/scripts/global_install.py
skill/epic-spine/scripts/artifact_host.py
skill/epic-spine/scripts/url_gate.py
skill/epic-spine/scripts/skill_update.py
skill/epic-spine/scripts/build_shortlist.py
Tooling
tools/epicspine-manifest.sh
tests/test_book_drift.py
skill/epic-spine/assets/agents-block.md
skill/epic-spine/assets/global-block.md
skill/epic-spine/assets/book-companion-contract.md
skill/epic-spine/assets/compact-spine-template.md
skill/epic-spine/assets/dispatch-prompt-preamble.md
skill/epic-spine/assets/epic-spine-template.md
skill/epic-spine/assets/github-issue-template.md
skill/epic-spine/assets/shortlist-sample.json
skill/epic-spine/assets/shortlist.template.html
skill/epic-spine/assets/sweep-brief.md