Stack
Thin launcher for the prompt-stack runtime at
$HOME/digital/leviathan/plugins/prompt-stack.
Runtime ownership stays with the plugin. This skill teaches agents how to call it correctly and present results as a dashboard, not raw JSON.
Autopilot Rule
When the user says /stack next, treat it as an autopilot command, not a checkpoint request.
- Prefer the most recent active session for the current project before initializing a new stack.
- If an active session exists:
- run
nextorstatusto confirm the true active step - finish that step
- run
record - immediately follow the CLI response
- continue until the stack completes or a real blocker occurs
- run
- Do not stop after each successful step to ask for permission to continue.
- Send short progress updates, but keep the session moving.
Only stop for:
- missing required artifact or context that cannot be inferred from disk
- contradictory session state after re-checking with
status - failed
recordthat cannot be corrected locally - a true product decision that is not covered by existing plan/spec/proposal artifacts
Run Modes
Once launch is approved, do not ask again until completion or blocker.
foreground= current agent/session drives the run in-process through the returned CLI contractbackground= detached execution managed by prompt-stack andlev exec- chained runs continue across stacks without stopping
- blockers come from merged runtime + project + invocation policy
Hard Rules
- Respect the chosen run mode after launch approval.
- Never ask “should I continue?” after go.
- Stack session serialization stays single-writer per session.
- Git checkpoint serialization stays single-writer per repo through
.lev/steering/checkpoint.lock. - Use the prompt-stack checkpoint helper, not ad hoc repo-local scripts.
Checkpoint Mode
Use the canonical prompt-stack helper layer when multiple runs share one repo and need serialized git checkpoints:
cd $HOME/digital/leviathan
prompt-stack checkpoint-lock status --project-dir <path>
prompt-stack checkpoint-lock acquire --project-dir <path> --owner-tag <tag>
prompt-stack checkpoint-lock release --project-dir <path> --owner-tag <tag>
Rules:
- concurrent prompt-stack runs keep runtime state under
.lev/steering/runs/<run-id>/... - git checkpointing is serialized through
.lev/steering/checkpoint.lock - dirty worktrees are warning-only, not automatic blockers
Session Serialization
A stack session is single-writer state.
- Never run
next,record,status, orvalidatein parallel against the same session. - Always use this order:
statusornext- do the step work
recordstatusornextagain- repeat
- After any interruption, timeout, or aborted turn, re-run
statusand trust the session file over memory.
Dashboard Mode (/stack list)
When the user says /stack list, do NOT dump raw JSON. Instead:
- Run
cd $HOME/digital/leviathan && bun plugins/prompt-stack/src/cli.ts list - Parse the JSON response
- Format as a grouped dashboard — one line per stack:
━━━ CORE-LEV (9 stacks) ━━━
handoff (4 steps) gather → distill → write → validate
lev-align (4 steps) load north-star → inspect → classify drift → propose action
plan-align-gates (5 steps) governance → refresh plan → align canon → gates → emit proposal
research-propose-spec(3 steps) research evidence → proposal synthesis → spec crystallization
validate-emit-learn (4 steps) review artifacts → validate → emit → capture learnings
work-deepen (5 steps) decompose → discover skills → parallel research → review → brief
work-full-lifecycle (9 steps) governance → plan → align → gates → proposal → review → validate → emit → learn
work-proof-loop (3 steps) handoff update → spec delta → validation report
robot-readme-harden (3 steps) robot-mode hardening → cli error tolerance → readme sync
━━━ JEFF (5 stacks) ━━━
jeff-delivery-loop (10 steps) primer → ideation → synthesis → premortem → robot → cli → readme → review → e2e → commit
jeff-ideation-risk (4 steps) idea wizard → multi-model synthesis → premortem → readme
jeff-primer-quality (4 steps) deep primer → e2e validator → peer review → bug hunter
jeff-quality-gauntlet(5 steps) bug hunter → peer review → e2e → deploy verify → de-slopify
jeff-robot-launch (4 steps) robot-mode → idea wizard → readme → git commit
━━━ SDLC (7 stacks) ━━━
sdlc-deepen-plan (3 steps) decompose → parallel research → synthesize
sdlc-exec-validate (3 steps) implement → fitness functions → route verdict
sdlc-handoff-close (4 steps) verify handoff → extract decisions → approve → process
sdlc-handoff-rollup (4 steps) scan unprocessed → pick one → extract all → process items
sdlc-hygiene (4 steps) scan staleness → check alignment → propose updates → report
sdlc-plan-to-beads (5 steps) extract items → create issues → review pass 1 → pass 2 → pass 3
sdlc-spec-lifecycle (5 steps) validate completeness → check transition → quality gates → route → approve/iterate
━━━ OTHER ━━━
knowledge-6r (6 steps) record → reduce → reflect → reweave → verify → rethink
drift-detection (5 steps) positive drift → negative → undocumented → stale → alignment
spec-driven-dev (5 steps) detect divergence → classify → push/pull → arbitrate → sync
cass-cm-audit (6 steps) health check → memory scan → playbook audit → gap analysis → reindex → report
research-worker (3 steps) orient → research rounds → synthesize
- After the full list, add context-aware suggestions:
━━━ SUGGESTED FOR CURRENT CONTEXT ━━━
Based on: {describe what you detected — active handoff, case folder, recent work}
(1) {stack-id} — {why this stack fits right now}
(2) {stack-id} — {why}
(3) {stack-id} — {why}
(s)how <id> — Inspect a specific stack
(r)un <id> — Init a session immediately
Context detection rules:
.lev/osint/exists → suggestresearch-worker,work-deepen.lev/pm/handoffs/has unprocessed handoffs → suggestsdlc-handoff-rollup- Conversation mentions case/legal/research → suggest
jeff-ideation-risk,research-propose-spec - Recent code changes or implementation work → suggest
jeff-quality-gauntlet,sdlc-exec-validate - Session ending or handoff requested → suggest
handoff,validate-emit-learn - First time seeing the stacks → suggest
work-deepen,jeff-ideation-risk,sdlc-exec-validate
Commands
cd $HOME/digital/leviathan
# List (then format as dashboard above)
bun plugins/prompt-stack/src/cli.ts list
# Inspect (show steps, schemas, no hidden prompts)
bun plugins/prompt-stack/src/cli.ts show <stack-id>
# Init session
bun plugins/prompt-stack/src/cli.ts init --stack <stack-id> --project-dir <path>
# Get active step prompt
bun plugins/prompt-stack/src/cli.ts next --session <id> --project-dir <path>
# Record step output (validates and advances)
bun plugins/prompt-stack/src/cli.ts record --session <id> --step <step-id> --report <path> --project-dir <path>
# Check progress
bun plugins/prompt-stack/src/cli.ts status --session <id> --project-dir <path>
# Validate completed session
bun plugins/prompt-stack/src/cli.ts validate --session <id> --project-dir <path>
Workflow
/stack list→ dashboard with suggestions- User picks a stack (by number or name)
init --stack <id>→ creates sessionnext --session <id>→ reveals active step prompt- Agent does the work, writes report matching schema
record --session <id> --step <step-id> --report <path>→ validates + advances- Repeat 4-6 until all steps complete
validate --session <id>→ checks lifecycle integrity
For /stack next, steps 4-8 are one continuous autopilot loop. Do not pause between them unless blocked.
Skill Discovery Integration
Before executing the first step of any stack, run lev-skills <domain> to surface
relevant skills from the skills-db. The domain is inferred from context:
- Stack family
legal-osint→lev-skills legal - Stack family
sdlc→lev-skills sdlc - Stack family
jeff→ skip (jeff prompts are self-contained) - Active case folder detected →
lev-skillswith case domain keywords - Unknown →
lev-skillswith the stack'stitleas query
Inject discovered skill names + one-line descriptions into the first step's context. Workers then know what specialized skills are available during execution.
Operator Notes
- Always use absolute paths for
--project-dirand--report - Session state lives in
<project>/.lev/steering/sessions/ recordREJECTS invalid reports — fix and re-submit- Report format: YAML frontmatter + required sections (varies by stack)
- If part of active
$workhandoff, keep planning there — stack is execution only - If the stack is being used inside active
$work, stack state is not the only artifact. You must also persist the corresponding disk-backedworktemplate artifact:- planning / execution slice ->
.lev/pm/plans/plan-*.md - research lane ->
.lev/pm/reports/report-*.md - shaping / architecture lane ->
.lev/pm/designs/*.md,.lev/pm/proposals/*.md, or.lev/pm/specs/*.md
- planning / execution slice ->
- For large or multi-workstream implementation planning, route through
writing-plansand split independent workstreams into separate plan files. Do not keep one thin coordination plan where the actual execution detail belongs in child plans. - A good default: stack session for runtime state,
workartifact for durable repo state, handoff for continuity. All three should agree. - For subagent orchestration:
plugins/prompt-stack/references/subagent-contract.md
References
- CLI:
plugins/prompt-stack/src/cli.ts - Catalog:
plugins/prompt-stack/prompts/prompt-stack.prompts.yaml - Subagent contract:
plugins/prompt-stack/references/subagent-contract.md - FlowMind path (optional):
plugins/prompt-stack/flows/prompt-stack.flow.yaml