Skip to content

docs: ship an interactive flows page with every project - #178

Merged
clabonte merged 5 commits into
mainfrom
docs/interactive-flows-page
Oct 19, 2026
Merged

clabonte merged 5 commits into
mainfrom
docs/interactive-flows-page

Conversation

@clabonte

@clabonte clabonte commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Adds docs/flows.html, an interactive guide for spec authors in the same shape as the loop's flows page. It is a new overlay entry, so init and upgrade put it at .specfuse/authoring/docs/flows.html, and it always describes the installed kit. It opens from disk with no external script.

Merge order. The page describes the kit as it will be once these land, so merge them first:

Views

  1. Big picture: where the kit sits among the specs repo, generator, handoff, orchestration repo and implementation, and which repo owns what.

  2. Idea to specs: three paths as clickable tracks:

    • specs before the mint (the default)
    • mint first
    • no orchestrator

    Each stage shows the skill, what it writes, the backlog state, and where a person steps in.

  3. State machine: the idea and initiative machines as clickable diagrams.

    • Selecting a state lists how it is reached and left. Selecting an arrow names who moves it, what it writes and what it needs.
    • A toggle shows a project without an orchestration repo: the dependent transitions grey out, the initiative machine does not exist, the undocumented ready → delivered ending shows as a gap, and a table gives every skill's status there.
  4. Your project: a clickable tree of a scaffolded project, colored by owner (kit, yours, generated, or upgrade's record), with what upgrade does to each path.

  5. Which skill?: "I want to…" choices with a filter, covering all 28 skills and 6 agents.

  6. Validation: the nine validate-specs.sh layers. Picking one of 13 common mistakes highlights the layer that catches it, including the Spectral "crash looks clean" case.

  7. Upgrades: a simulator that follows scaffold.upgrade's manifest rules, including the quoted warnings.

  8. Project file: a clickable example <project>-project.json (three component repos plus docs). Each key explains itself, says whether it is required and links its Project_File.md section. The keys that bite are highlighted. Panels cover the foot-guns, the blocks not in the example, and what the generator does with the file.

  9. Specs and components: the spec repo fanning out to its component repos through each group's destination. Per language: where generated code lives, how hand-written code extends it, build wiring and post-generate steps. Then the five-step regen flow and the house rules.

  10. The loop: the three spec front-ends, plus an "I want to" picker. It says whether to use a loop feature and where (spec repo or component), with the command chain and the rules for each case, and compares the loop with the orchestrator.

Links into handbooks, samples, schemas and templates are relative and resolve both in this repo and in an installed project. Repo-only docs link to GitHub.

Drift check

scripts/check-flows-page.py runs in CI and fails when the page's embedded data disagrees with the kit. It checks:

  • skills and agents against the plugin, and that the finder and the no-orchestrator table cover every skill
  • backlog states and the readiness checklist against the templates, and the idea machine against those states
  • every transition's skill and states
  • validation layers against validate-specs.sh
  • cited Spectral rules against the rulesets
  • the overlay and quoted upgrade output against scaffold.py
  • every relative link in both layouts
  • the project file example's keys against Project_File.md's quick reference, its artifact ids against the per-language lists, and every Project_File.md anchor the page links
  • the loop picker's skill names

The CI smoke test also asserts a fresh project gets a byte-identical copy of the page.

Testing

  • The drift check passes; injecting drift (renamed skill, missing rule, broken link) makes it fail with the expected messages.
  • init from source installs the page and records it in the manifest.
  • In node with a stub DOM, all views render and 100 state/arrow selections work in both modes.
  • I checked the diagrams' layout in headless Chrome.
  • Not run locally: the wheel build (blocked by the sandbox), so the force-include change is tested only by CI.

Follow-up

Without an orchestrator no skill moves an idea past ready, and ideation-groom keeps reporting those ideas as ready to mint. The page and the core docs now say so; fixing it needs a skill change.

🤖 Generated with Claude Code

clabonte and others added 4 commits October 19, 2026 08:09
Adds docs/flows.html, an interactive companion to the handbooks and ideation
templates for spec authors, in the same shape as the loop's flows page. Six
views: where the kit sits among the Specfuse repos; the initiative lifecycle
(specs before the mint, and mint first) with the backlog state at each stage;
a clickable map of a scaffolded project showing who owns each path; a skill
finder over every skill and agent; the nine validation layers with a
pick-a-mistake view of which layer catches what; and an upgrade simulator that
follows scaffold.upgrade's manifest rules.

The page is a new overlay entry, so init and upgrade put it at
.specfuse/authoring/docs/flows.html and it always describes the installed kit.
It opens from disk with no external script. Links into handbooks, samples,
schemas and templates are relative and resolve both in this repo and in a
project; repo-only docs are linked on GitHub.

scripts/check-flows-page.py, run in CI, fails when the page drifts: skills and
agents against the plugin, the finder's coverage, backlog states and the
readiness checklist against the templates, layers against validate-specs.sh,
cited Spectral rules against the rulesets, the overlay and quoted upgrade
output against scaffold.py, and every relative link in both layouts. The smoke
test also asserts the page lands in a fresh project byte-identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The flows page gains a seventh view, State machine: the idea machine and the
initiative machine drawn as clickable diagrams, mirroring
specfuse/specfuse docs/unit-lifecycles.md (updated alongside for
spec-before-mint). Selecting a state lists how it is reached and left;
selecting an arrow names the skill, agent or person that moves it, what it
writes, and what it needs. A toggle switches to a project without an
orchestration repo: transitions that need it grey out, the initiative machine
is marked as not existing, the undocumented `ready → delivered` ending shows
as a gap, and a table gives every skill's behaviour there (works, degrades,
unavailable, idle).

"Idea to specs" gains a third path, No orchestrator, from capture to closing
the idea by hand.

check-flows-page.py now also checks that the idea machine draws exactly the
template's states, that every transition names a real skill and state, and
that the no-orchestrator table covers every skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Three new views on the flows page:

- Project file: a clickable example <project>-project.json for a project
  with three component repos. Each key explains what it does, whether it is
  required, and links its Project_File.md section; the keys that bite
  (stateDir, destination, cleanGenerated, cleanScope) stand out. Panels cover
  the four foot-guns, the blocks not in the example, and what the generator
  does with the file.
- Specs and components: the spec repo fanning out to its component repos
  through each group's destination, with where generated code lives, how
  hand-written code extends it, build wiring and post-generate steps per
  language; then the five-step regen flow (spec, regen on a branch with
  generate.sh, component PRs, merge, advance-state.sh) and the house rules.
- The loop: the three spec front-ends, an "I want to" picker that says
  whether to use a loop feature and where (spec repo or component), with the
  command chain and the rules for each case, and the loop/orchestrator
  comparison.

check-flows-page.py now also checks that every key in the example is
documented in Project_File.md's quick reference, that every artifact id is
in the handbook's list for that group's language, that every Project_File.md
anchor the page links exists, and that the loop picker names real skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@clabonte
clabonte merged commit 8bca04b into main Oct 19, 2026
8 checks passed
@clabonte
clabonte deleted the docs/interactive-flows-page branch October 19, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant