documentation

Every verb the binary carries.

This page is generated from the CLI itself — the same snapshot sporo docs --json emits, kept in sync by a build gate. Read the authoring rules with sporo genre.

the skillwhat init installs

sporo-recipe — the authoring skill

sporo init writes this skill into your agent. It walks the agent through the cycle below — reading the project's record, not its own memory — and leaves you one file to review.

harvestdraftlintsealexport
Authoring8 verbs

Write a recipe from the record, gate it against the genre, and hand it over.

sporo export <slug>

Print one recipe (or, with --bundle, a composed set) as a single self-contained file

--bundle=falsetreat <slug> as a bundle manifest and compose its members into one document
--root=.project root (searched for this repo's own recipes before the official corpus)
sporo feedback

File and list report-backs — the channel a recipe's next version comes from

sporo feedback add <slug> <report.md>

Validate a reader's report-back against the protocol and file it (`-` reads stdin)

sporo feedback list [slug]

List the filed report-backs, per recipe

sporo harvest

Gather a recipe's raw material from a revision range of the project's own record

--outwrite the harvest here (default: stdout)
--root=.repository to harvest
--sincestarting revision, exclusive (a tag: the release before the work)
--until=HEADending revision, inclusive
sporo lint [dir]

Check a recipe corpus against the genre — shape, acceptance, scars, and neutrality

--root=.project root (its config names the recipes home and the forbidden product vocabulary)
sporo list

List the recipes available here — this project's own, and the official corpus

--root=.project root (its own recipes are listed alongside the official corpus)
sporo new <slug>

Scaffold a draft recipe — coached section stubs, optionally pre-seeded from a harvest

--from-harvesta `sporo harvest --out` file; its scar candidates pre-seed the scars section
--root=.project root (the draft lands in its recipes home)
--titlethe recipe's title (defaults to a TODO)
sporo review <slug>

Build a self-contained review pack for any agent, and verify the verdicts it returns

--root=.project root
sporo review verify <slug> <verdict.json>...

Validate returned verdicts and record the tally beside the recipe's seal

sporo seal <slug>

Record a recipe's version and content hash in the registry — a sealed recipe never silently mutates

--root=.project root (its registry records the seal)
Handover3 verbs

The reader's side: record what you built from, and hold an output to a recipe's exact contracts.

sporo adopt <exported-recipe.md>

Record a handed-over recipe this repository builds from — the reader-side seal

--root=.repository that adopts the recipe
--sourcewhere pull re-fetches this recipe from later — a path or an http(s) URL (default: the file argument)
sporo conform <slug|recipe.md> <output-file>

Check an output file against a recipe's exact-bound contracts

--contract=0check against one exact contract by its index (default: all)
--root=.project root (searched for the recipe when a slug is given)
sporo pull [slug]

Check adopted recipes against their sources — loud when an exact contract moved

--apply=falserefresh the stored copy and record for each update (default: report only)
--root=.repository whose adopted recipes are checked
Install surface5 verbs

Put the authoring surface into a repository and keep it current.

sporo docs

Print this binary's command surface — the source the docs page is built from

--json=falseemit the surface as JSON (what the docs page consumes)
--outwrite the JSON snapshot to this file (used by `go generate`)
sporo genre

Print the recipe genre spec — the authoring rules this binary enforces

sporo init

Install the recipe-authoring surface into this repository (skill, AGENTS.md block, seeds)

--root=.repository to initialize
sporo projects

List the repositories on this machine that sporo was installed into

sporo update

Re-sync the managed authoring surface from this binary — never clobbering your edits

--root=.repository to update
Binary1 verb

Keep the tool itself up to date.

sporo upgrade

Update this binary to the latest release — then run `sporo update` in each repo

--check=falsereport the latest release and its notes; change nothing
generated from sporo 0.6.0 · source on github