Docs
Docs
The readable half of the ShiftLefter documentation: the guides people actually send each other, and the architecture reports that say how the thing is built. Synced from the repository; the repository owns the content.
Guides
- Build your own reportThere is no reporting plugin API, on purpose. The machine record — the
--ednsummary stream plus the run directory — is the extension contract; this walks a complete derived report. - CostumesA persona's durable browser character — a named Chrome profile an actor wears through an interface — and the plan-time checks that keep wear honest.
- Hooks — and when not to use themScenario lifecycle hooks named in the feature file, stamped in the run's evidence — and the ladder of things to reach for before them.
- Add domain languageYour own domain language comes from data you author — glossaries, macros, intents — not step code; declaring vocabulary types it without giving it behavior.
- Running ShiftLefter in CIExit codes, JUnit XML, tag filtering, parallelism, and the cold/warm paths as a pipeline sees them.
Architecture
Five reports, each checked against the code itself rather than drawn from memory. They date themselves; read the stamp.
- The Invocation MapEvery
slverb through the shared spine — one dispatch, cold and warm alike. - Module MapThe namespace dependency graph as extracted from the require forms, with the laws it is checked against.
- The Control LoopInside one scenario's execution: provisioning, hooks, the step loop, capture, cleanup, verdict.
- The Data-Shape LedgerEvery boundary-crossing shape with its producer, spec, consumers, and stability promise.
- REPL Custody & LifetimesWho owns what in the REPL and the daemon, and how long each thing lives.
Not here on purpose: the generated API reference and the agent-facing doctrine topics — those live in the repository and travel with each release.