@mrclrchtr/supi-flow
PI extension for spec-driven workflow (brainstorm → plan → apply → archive) with TNDM ticket coordination, 7 custom tools, and 5 auto-discovered skills
Package details
Install @mrclrchtr/supi-flow from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@mrclrchtr/supi-flow- Package
@mrclrchtr/supi-flow- Version
0.13.0- Published
- May 25, 2026
- Downloads
- 916/mo · 431/wk
- Author
- mrclrchtr
- License
- Apache-2.0
- Types
- extension
- Size
- 83.6 KB
- Dependencies
- 1 dependency · 2 peers
Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
supi-flow
PI-only workflow package for spec-driven changes backed by TNDM tickets.
supi-flow adds a lightweight workflow on top of tandem's tndm CLI:
brainstorm → plan → apply → archive.
It is published as @mrclrchtr/supi-flow and ships inside the tandem repository at
plugins/supi-flow/.
Use it when a change needs:
- an approved design before implementation
- a durable TNDM ticket for non-trivial work
- explicit task-by-task verification during implementation
- archived verification evidence at closeout
Trivial changes can still be implemented directly without a ticket.
What ships in the package
supi-flow uses PI's conventional package directories, so PI auto-discovers the resources in:
extensions/skills/prompts/
Current package contents:
- 7 custom tools
supi_tndm_clisupi_flow_startsupi_flow_plansupi_flow_applysupi_flow_tasksupi_flow_complete_tasksupi_flow_close
- 5 skills
supi-flow-brainstormsupi-flow-plansupi-flow-applysupi-flow-archivesupi-flow-debug
- 1 prompt template
/supi-coding-retro
- Startup/reload version check
- on PI session start and reload, the extension compares
tndm --versionwith the package version and warns when they do not match
- on PI session start and reload, the extension compares
This package does not rely on a pi manifest in package.json; it uses PI's conventional directory discovery.
Installation and loading
Install from npm
pi install npm:@mrclrchtr/supi-flow
Install from a local checkout
From the tandem repository root:
pi install ./plugins/supi-flow
Or add the package root to PI settings:
{
"packages": ["./plugins/supi-flow"]
}
Important: prefer the package root, not just the extension entrypoint
If you load only plugins/supi-flow/extensions/index.ts, PI gets the extension entrypoint,
but not the package-style resource loading for the bundled skills and prompt template.
Use the package root when you want the full package:
- extension tools
- auto-discovered skills
- auto-discovered prompt template
Dependency: tndm
supi-flow wraps the tandem CLI and expects tndm to be installed and on your PATH.
Keep tndm and @mrclrchtr/supi-flow on matching release versions so the startup/reload
version check stays quiet.
See the tandem project README for CLI install options: https://github.com/mrclrchtr/tandem
How you use it in PI
This package is primarily used through:
- skills via
/skill:<name> - tools invoked by the model
- prompt template
/supi-coding-retro
There is no custom /supi-flow slash command registered by the extension.
Typical workflow
Brainstorm —
/skill:supi-flow-brainstorm- clarify intent
- inspect the codebase
- compare approaches
- approve a design before editing
- decide whether the change is trivial or non-trivial
Plan —
/skill:supi-flow-plan TNDM-XXXXXX- store the approved overview in
content.md - author executable tasks one at a time in
state.tomlviasupi_flow_task - when revising an existing ticket, list the current tasks first and reconcile them with edit/remove/add instead of blindly appending new ones
- keep tasks concrete, ordered, and verifiable
- store the approved overview in
Apply —
/skill:supi-flow-apply TNDM-XXXXXX- start with
supi_flow_applyto load the approved overview and task manifest - review the overview and full task list up front
- defer linked
detail_pathdoc reads until the corresponding task starts - transition planned tickets into
flow:applying - resume already-applying tickets with their current
in_progressorblockedstatus intact - execute tasks in order
- run fresh verification for each task
- check off tasks with
supi_flow_complete_task
- start with
Debug when blocked —
/skill:supi-flow-debug- use the root-cause workflow instead of guessing
Archive —
/skill:supi-flow-archive TNDM-XXXXXX- re-verify the completed change
- update living docs if needed
- close the ticket with required archived verification evidence
Flow phases
| Phase | Main skill | Ticket behavior |
|---|---|---|
| Brainstorm | supi-flow-brainstorm |
creates or refines the change definition; non-trivial work starts with supi_flow_start |
| Plan | supi-flow-plan |
stores the approved overview in content.md, then authors structured tasks one at a time via supi_flow_task |
| Apply | supi-flow-apply |
starts with supi_flow_apply, loads the approved overview plus task manifest, reviews that overview and full task list up front, reads any linked task detail doc only when that task begins, transitions to flow:applying when needed, preserves the current in_progress or blocked status for already-applying tickets, then executes tasks and verifies each step fresh |
| Archive | supi-flow-archive |
verifies the final result, writes archive.md, and closes the ticket |
Flow state is tracked with TNDM status/tag combinations:
| Flow phase | Status | Tags |
|---|---|---|
| Brainstorm | todo |
flow:brainstorm |
| Plan written | todo |
flow:planned |
| Implementing | in_progress |
flow:applying |
| Paused during apply | blocked |
flow:applying |
| Done | done |
flow:done |
Ticket document model
supi-flow uses tandem's registered document model with an overview-first workflow:
| Artifact | Role |
|---|---|
content.md |
Canonical approved overview / design / plan prose |
state.toml tasks |
Structured execution manifest used during apply |
tasks/task-XX.md |
Canonical task detail doc — every task gets one automatically at creation time |
archive.md |
Final verification evidence written during archive/closeout |
Key rules from the current implementation:
content.mdis overview-first and may contain zero tasks.- Executable tasks live in
state.toml, not in checklist blocks parsed from markdown. - Every task gets a canonical
tasks/task-XX.mddetail doc automatically at creation time. - The common plan-time task-authoring path is
supi_flow_task; low-leveltask_*actions remain available as escape hatches. - When revising a ticket that already has tasks, list the current manifest first and reconcile it with
edit/remove/addoperations instead of treating replanning as repeated append-only adds. - Older tickets may still contain a legacy brainstorm sidecar document, but new flow work should not depend on it.
Tools
The extension registers seven custom tools.
| Tool | What it does |
|---|---|
supi_tndm_cli |
Structured wrapper around tndm for ticket create/update/show/list/awareness plus lower-level task add/list/complete/remove/edit/set actions |
supi_flow_start |
Creates a ticket with status=todo and tag flow:brainstorm, optionally persisting initial context into content.md |
supi_flow_plan |
Stores the approved overview in content.md and replaces flow-state tags with flow:planned |
supi_flow_apply |
Loads the approved overview from content.md, returns the structured task manifest, transitions flow:planned tickets into status=in_progress with flow:applying, preserves the current in_progress or blocked status for already-applying tickets, and is used with apply guidance that reads linked task detail docs only when the active task begins |
supi_flow_task |
Adds, edits, or removes one structured task at a time and optionally manages the canonical tasks/task-XX.md detail doc; use it to reconcile existing task manifests during replans as well as to create new ones |
supi_flow_complete_task |
Marks one numbered task as done in the structured task manifest |
supi_flow_close |
Requires verification evidence, refuses to close unless the ticket is in flow:applying with a non-empty all-done structured task list, writes archive.md, syncs documents, and closes the ticket with status=done and flow:done |
supi_tndm_cli at a glance
supi_tndm_cli is intentionally thinner than the flow skills. Use supi_flow_task for the normal plan-time path to author tasks one at a time. Reach for supi_tndm_cli when you need direct ticket operations or lower-level task repair.
Current action groups:
- ticket actions —
create,update,show,list,awareness - task actions —
task_add,task_list,task_complete,task_remove,task_edit,task_set- these are lower-level escape hatches; normal plan-time task authoring should prefer
supi_flow_task
- these are lower-level escape hatches; normal plan-time task authoring should prefer
Task-detail behavior worth knowing:
- every
task_addautomatically creates the canonicaltasks/task-XX.mddetail doc via the Rust CLI - when
task_detailis provided, the tool writes the full markdown body and runstndm ticket sync task_editcan also write updated task detail docs and clear file lists
Skills
The package ships five skills under skills/.
| Skill | Use it for |
|---|---|
supi-flow-brainstorm |
Clarify intent, inspect context, compare approaches, and get approval before implementation |
supi-flow-plan |
Turn the approved design into an executable plan with exact files and verification |
supi-flow-apply |
Execute the approved plan task by task with fresh verification gates |
supi-flow-archive |
Re-verify the completed change, update living docs, and close the ticket |
supi-flow-debug |
Systematic root-cause debugging when verification fails or the cause is unclear |
Prompt template
| Prompt | Purpose |
|---|---|
/supi-coding-retro |
Retrospective on setup, architecture, tooling, workflow, and conventions |
Package layout
plugins/supi-flow/
├── extensions/
│ ├── index.ts
│ ├── cli.ts
│ └── tools/
├── skills/
│ ├── supi-flow-brainstorm/
│ ├── supi-flow-plan/
│ ├── supi-flow-apply/
│ ├── supi-flow-archive/
│ └── supi-flow-debug/
├── prompts/
│ └── supi-coding-retro.md
└── __tests__/
Development
cd plugins/supi-flow
pnpm install
# Type-check
pnpm exec tsc --noEmit
# Run the full test suite
pnpm exec vitest run
Useful targeted checks from the current package guidance:
# Version-check / tool registration behavior
pnpm exec vitest run __tests__/index.test.ts __tests__/resources.test.ts
# CLI wrapper behavior
pnpm exec vitest run __tests__/cli.test.ts
# Flow tools
pnpm exec vitest run __tests__/flow-tools.test.ts
# TNDM CLI tool behavior
pnpm exec vitest run __tests__/tndm-cli-tool.test.ts
Validation notes while developing
- After changing
extensions/,skills/, orprompts/, use/reloador restart PI before validating behavior. - Use the plugin source and tests as the source of truth for README claims.
- Keep runtime PI packages in
peerDependencieswith"*"ranges and non-PI runtime deps independencies. - Do not add
resources_discoverforskills/orprompts/; PI already auto-discovers them from the conventional directories.