Back to Discover

stack

plugin

kinojms

View on GitHub
0 starsSynced Aug 2, 2026

Install to Claude Code

/plugin marketplace add kinojms/stack

README

Stack Plugin

Untap, Upkeep, Draw, Deploy

Stack is an agentic DevOps workflow plugin for Claude Code. It manages your project's planning, development, testing, and review through a file-based board (.stack/BOARD.md): you describe what you want built, and an orchestrator dispatches five specialized agent roles — product owner, architect, developer, tester, and a four-angle review panel — one task at a time, in strict depends-on order.

Blocked work never silently retries; it waits for your decision. Small fixes can jump the queue. Sessions pick up exactly where the last one ended, and everything ever completed or dropped is preserved in a browsable graveyard archive. An optional MTG-flavored naming mode (stack:theme) reskins the board's labels — tasks become Spells, the backlog becomes The Stack — without changing any underlying data.

New to this kind of tool? GUIDE.md walks through the whole workflow in plain language — no technical background needed.

Installation Guide

Plugins load at session start — install first, then open a session in the project you want Stack to manage (.stack/ is created there on your first "start turn").

Option 1 — Try it without installing (local development):

claude --plugin-dir D:\path\to\stack

Loads the plugin for that session only. While iterating on the plugin's files, apply changes mid-session with /reload-plugins — no restart needed.

Option 2 — Install from a local clone (persistent):

Inside any Claude Code session:

/plugin marketplace add D:\path\to\stack
/plugin install stack@stack-marketplace

The plugin is then available in every future session.

Option 3 — Install straight from GitHub:

/plugin marketplace add kinojms/stack
/plugin install stack@stack-marketplace

No setup needed — the repo is public.

Staying up to date: enable auto-update once — /plugin → Marketplaces tab → stack-marketplaceEnable auto-update — and new versions are fetched in the background after each session starts (you'll be prompted to /reload-plugins when one lands). Or update manually anytime with /plugin marketplace update stack-marketplace.

Then say start turn in your project and answer two questions (naming mode, review mode) — the board takes it from there.

Using another AI tool? Stack's core is platform-neutral. A ready-made OpenAI Codex CLI adapter lives in codex/ (skills install natively — Codex reads the same SKILL.md standard — plus TOML role agents and an AGENTS.md snippet). Platform bindings for other tools: skills/cast/references/platforms.md.

Quick Start

# Begin your first work session — initializes .stack/ and asks your
# naming mode (default/mtg) and review mode (parallel/sequential)
start turn

# Add something to build
stack:new "User authentication"

# The work cycle dispatches the chain: product-owner → architect →
# developers → tester → reviewers. Continue until done or say no.

# End the session — prints a copy-paste-ready EoD report
end turn

Two Workflows

On a fresh project, start turn asks which workflow you want:

StandardPrototype
Before codeproduct-owner interview → architect PLANnothing — straight to code
Who buildsdevelopers, one at a time, in dependency orderone stack:builder agent
Testingdedicated tester (Playwright or unit framework)the builder runs the thing; no test files
Reviewup to 4 specialists, unanimous PASS requirednone
Spawns per feature~81
Recordsplan, tests, review verdictsa Shortcuts list of the debt taken

Prototype mode is for hackathons, spikes, and "will this even work?" — you expect to throw the code away, so the gates that check for correctness are the wrong trade. It still uses the board, the graveyard, and the session log, and blocked still blocks — nothing auto-retries.

When the prototype proves out, stack:promote switches to standard one-way and asks what to do with the code: keep it (every recorded shortcut becomes a Harden prototype requirement, planned and reviewed like any other work) or start clean (the board history is archived; your code files are never touched).

Existing projects always get standard mode, without being asked — say start turn the same way. The first time you add a requirement (stack:new) in a project that already has code Stack didn't build, stack:analyst scans the codebase first and shows you a plain-language report (tech stack, structure, conventions, notable risks) before anything is created. The report is saved to .stack/docs/CODEBASE-ANALYSIS.md and read by the product-owner and architect on every requirement after that. Runs once per project — later stack:new calls skip straight to the usual flow.

The Agent Chain

[standard mode]
User input
  └→ product-owner: interviews you, writes REQ with acceptance criteria
      └→ architect: explores codebase, writes PLAN (per-task subsections),
         declares the task chain with depends-on links + cost estimates
          └→ developer ×N: implement, strictly one at a time, in dependency order
              └→ tester: Playwright (UI/E2E work) or unit framework (logic work)
                  └→ assessed + confirmed reviewer subset (parallel or sequential,
                     per review-mode), from:
                      ├── reviewer-security
                      ├── reviewer-architecture
                      ├── reviewer-business-logic
                      └── reviewer-edge-case
                          ├→ [selected PASS] requirement complete
                          └→ [issues] Fix tasks → re-review (max 2 rounds, then ask)

[prototype mode]
User input
  └→ builder: decides its own approach, writes the code, runs it,
     records the shortcuts it took → requirement complete
      └→ (when it proves out) stack:promote → standard mode

Commands

Command names are fixed — they never change with naming mode.

Command / phraseWhat it does
stack:cast / "start turn" / "start session"Start/continue a work session: status report with last-session carry-over, routing menu, dependency-gated work cycle. Supports --dry-run (preview the next dispatch, change nothing).
"end turn" / "end session"End the session: writes a technical summary + human EoD report to SESSION-LOG.md, prints only the human report for copy-pasting into standups.
stack:status / "check board"Read-only board view with a cost/effort breakdown and a Mermaid dependency graph per requirement. Never dispatches.
stack:new / "new requirement"Add a requirement stub + a product-owner task to gather details.
stack:theme / "switch theme"Switch naming mode between default and mtg.
stack:release / "cut release"Finalize done requirements: stamp CHANGELOG.md, archive to the graveyard, annotated git tag. Never pushes. Supports --dry-run.
stack:graveyard / "show graveyard"Browse the historical archive, newest first. Read-only.
stack:promote / "promote the prototype"Prototype mode only: switch to the full workflow, turning the prototype's recorded shortcuts into a hardening requirement (or archiving it for a clean rebuild). One-way. Supports --dry-run.

Blocked/suspended-task triage lives inside stack:cast's routing menu; the dependency graph lives inside stack:status — by design, no extra commands.

Naming Modes

.stack/config.yml (naming: default | mtg) is the single source of truth. Labels are a display layer only — status values, field names, file formats, and commands are identical in both modes. Switch anytime with stack:theme.

ConceptDefaultMTG
TaskTaskSpell
BacklogBacklogThe Stack
In progressIn ProgressResolving
BlockedBlockedCountered
SuspendedSuspendedSuspended
DoneDoneResolved
DroppedDroppedExile
ArchiveArchiveGraveyard
PrerequisiteDepends-onCost
Fast-track taskQuick taskInstant

The Board

BOARD.md has emoji-coded sections (emoji map to the status concept, so they're the same in both naming modes):

SectionEmojiMeaning
Resolving🟡An agent is working on it
BacklogQueued, dispatched when depends-on is satisfied
Blocked🔴Something's wrong — never auto-retries, waits for your decision (reset / edit / drop / suspend)
Suspended🔵Deliberately parked by you — never auto-resumes
Done🟢Completed (capped at 20 rows; full history in the graveyard)
Dropped(In GRAVEYARD.md) permanently abandoned

Task rules:

  • Dependency rule: a task is only dispatched when every ID in its depends-on has status: done. Enforced every cycle, no exceptions.
  • Quick tasks (quick: true): fast lane for small fixes — checked before normal backlog order, still dependency-gated.
  • Cost (cost: 1-5): effort estimate per task; stack:status shows the backlog breakdown. Advisory only — never affects ordering.
  • Blocked vs Suspended: blocked = something's wrong, needs review; suspended = nothing's wrong, you parked it. Neither ever auto-progresses.

The Graveyard

Two ways in:

  1. Release (stack:release): done requirements + their tasks are archived to .stack/graveyard/{date}/ and summarized in GRAVEYARD.md.
  2. Drop: dropping a blocked/suspended task appends to GRAVEYARD.md immediately, tagged dropped with the reason — no release wait.

Browse it all with stack:graveyard.

Session Continuity

  • start turn reads only the latest SESSION-LOG.md entry (token discipline) and weaves it into the status report: "Last session you were mid-way through TASK-004…"
  • end turn appends two records to SESSION-LOG.md — a technical summary (for the tool's memory) and a plain-language EoD report (for your standup) — and prints only the latter. The log file is never trimmed.

State Structure

.stack/
  config.yml               # naming + review-mode (single source of truth)
  BOARD.md                 # the board (orchestrator-only writes)
  SESSION-LOG.md           # full session history
  requirements/REQ-NNN.md
  tasks/TASK-NNN.md
  plans/PLAN-NNN.md        # one per requirement, per-task subsections
  docs/                    # evergreen research/notes — survives releases
  graveyard/
    {release-date}/        # archived REQs/tasks/plans per release
    GRAVEYARD.md           # running index of everything resolved or dropped

Agents

AgentModelColorRole
stack:analystSonnettealOne-time codebase scan for existing projects, before the first requirement (not part of the task board)
stack:builderSonnetmagentaPrototype mode only — owns the whole slice: no plan, no tests, no review; records every shortcut it takes
stack:product-ownerSonnetpinkInterviews you, writes the requirement — what/why only
stack:architectOpuspurpleBreaks a REQ into a plan + dependency-ordered task chain with costs
stack:developerSonnetblueImplements one task, strictly sequential
stack:testerSonnetgreenWrites/runs tests — Playwright or unit framework by task nature
stack:reviewer-securityHaikuredOWASP Top 10, injection, auth, sensitive data
stack:reviewer-architectureHaikucyanPlan alignment, patterns, separation of concerns
stack:reviewer-business-logicHaikuorangeAcceptance criteria, business rules, testability
stack:reviewer-edge-caseHaikuyellowBoundaries, error paths, concurrency, robustness

role: reviewer on a task is a trigger alias — dispatching it spawns all 4 specialists (concurrently with review-mode: parallel, one at a time with sequential); the task passes only on 4/4 PASS verdicts.

License

MIT — Justin Sacdalan

Rendered live from kinojms/stack's GitHub README — not stored, always reflects the source repo.

1 Plugin

NameDescriptionCategorySource
stackAgentic DevOps-style workflow tool: file-based board, strict dependency handling, MTG-flavored naming, graveyard archive..

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.