Repository navigation
docs: ship an interactive flows page with every project - #178
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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, soinitandupgradeput 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:
unit-lifecycles.md.docs/component-repos.md.generate.shandadvance-state.sh.generateskill wording it relies on.Views
Big picture: where the kit sits among the specs repo, generator, handoff, orchestration repo and implementation, and which repo owns what.
Idea to specs: three paths as clickable tracks:
Each stage shows the skill, what it writes, the backlog state, and where a person steps in.
State machine: the idea and initiative machines as clickable diagrams.
ready → deliveredending shows as a gap, and a table gives every skill's status there.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.
Which skill?: "I want to…" choices with a filter, covering all 28 skills and 6 agents.
Validation: the nine
validate-specs.shlayers. Picking one of 13 common mistakes highlights the layer that catches it, including the Spectral "crash looks clean" case.Upgrades: a simulator that follows
scaffold.upgrade's manifest rules, including the quoted warnings.Project file: a clickable example
<project>-project.json(three component repos plus docs). Each key explains itself, says whether it is required and links itsProject_File.mdsection. 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.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.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.pyruns in CI and fails when the page's embedded data disagrees with the kit. It checks:validate-specs.shscaffold.pyProject_File.md's quick reference, its artifact ids against the per-language lists, and everyProject_File.mdanchor the page linksThe CI smoke test also asserts a fresh project gets a byte-identical copy of the page.
Testing
initfrom source installs the page and records it in the manifest.force-includechange is tested only by CI.Follow-up
Without an orchestrator no skill moves an idea past
ready, andideation-groomkeeps 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