@esoteric-logic/praxis-harness 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +14 -34
  2. package/base/CLAUDE.md +7 -11
  3. package/base/commands/context-reset.md +0 -1
  4. package/base/commands/debug.md +4 -4
  5. package/base/commands/discover.md +2 -2
  6. package/base/commands/discuss.md +94 -0
  7. package/base/commands/{gsd-execute.md → execute.md} +7 -11
  8. package/base/commands/fast.md +26 -0
  9. package/base/commands/kit.md +2 -2
  10. package/base/commands/next.md +31 -0
  11. package/base/commands/plan.md +38 -10
  12. package/base/commands/quick.md +40 -0
  13. package/base/commands/review.md +2 -2
  14. package/base/commands/ship.md +1 -1
  15. package/base/commands/spec.md +13 -7
  16. package/base/commands/standup.md +0 -10
  17. package/base/commands/{gsd-verify.md → verify.md} +7 -6
  18. package/base/hooks/vault-checkpoint.sh +1 -9
  19. package/base/rules/context-management.md +3 -50
  20. package/base/rules/execution-loop.md +41 -61
  21. package/base/rules/vault.md +1 -1
  22. package/base/skills/code-simplifier/SKILL.md +4 -4
  23. package/base/skills/pre-commit-lint/SKILL.md +7 -4
  24. package/base/skills/scaffold-exist/SKILL.md +9 -8
  25. package/base/skills/scaffold-new/SKILL.md +1 -1
  26. package/base/skills/scaffold-new/references/claude-progress-template.json +0 -10
  27. package/base/skills/scaffold-new/references/repo-CLAUDE-md-template.md +0 -1
  28. package/base/skills/session-retro/SKILL.md +3 -19
  29. package/base/skills/subagent-review/SKILL.md +6 -5
  30. package/base/skills/verify-app/SKILL.md +5 -5
  31. package/kits/infrastructure/KIT.md +2 -15
  32. package/kits/web-designer/KIT.md +4 -17
  33. package/package.json +2 -3
  34. package/templates/claude-progress.json +0 -10
  35. package/base/commands/gsd-discuss.md +0 -53
  36. package/base/commands/ralph.md +0 -110
  37. package/base/skills/prd-writer/SKILL.md +0 -108
  38. package/base/skills/prd-writer/references/prd-template.md +0 -22
package/README.md CHANGED
@@ -8,7 +8,7 @@ A layered harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-co
8
8
 
9
9
  Praxis gives Claude Code a three-layer operating system:
10
10
 
11
- **Universal base** — always loaded. [GSD](https://github.com/gsd-build/get-shit-done) structures work (spec → plan → execute → verify). [Superpowers](https://github.com/obra/superpowers) enforces quality (TDD, debugging, code review). [Ralph](https://github.com/snarktank/ralph) runs autonomous execution loops.
11
+ **Universal base** — always loaded. Praxis structures work (discuss → plan → execute → verify → simplify → ship). Built-in quality enforcement (debugging, code review, simplification).
12
12
 
13
13
  **AI-Kits** — activated on demand via `/kit:<name>`. Each kit bundles domain-specific rules, skills, MCP servers, and slash commands. Activate the web-designer kit and your components get design system enforcement, accessibility auditing, and production lint. Deactivate with `/kit:off`.
14
14
 
@@ -31,32 +31,23 @@ npx praxis-harness uninstall # remove Praxis-owned files from ~/.claude/
31
31
 
32
32
  ## After install
33
33
 
34
- Open Claude Code and run:
35
-
36
- ```
37
- /plugin marketplace add obra/superpowers-marketplace
38
- /plugin install superpowers@superpowers-marketplace
39
- /plugin marketplace add snarktank/ralph
40
- /plugin install ralph-skills@ralph-marketplace
41
- ```
42
-
43
- Verify with `/help` — you should see GSD, Superpowers, and Praxis commands.
34
+ Verify with `/help` you should see Praxis commands (`/discuss`, `/execute`, `/verify`, `/plan`, `/ship`, `/kit:*`).
44
35
 
45
36
  ## Workflow
46
37
 
47
- The standard GSD workflow for feature development:
38
+ The standard Praxis workflow for feature development:
48
39
 
49
40
  ```
50
41
  /standup → orient (reads status.md, surfaces stale state)
51
- /gsd:discuss → frame the problem (SPEC questions, scope guard)
42
+ /discuss → frame the problem (conversational, scope guard)
52
43
  /discover → research options with confidence levels (before /spec)
53
- /gsd:plan-phase → plan milestones (with dependency ordering + boundaries)
54
- /gsd:execute → implement one milestone at a time (file-group isolation)
55
- /gsd:verify → validate (test/lint/typecheck/build, self-review, UNIFY)
44
+ /plan → plan milestones (with dependency ordering + boundaries)
45
+ /execute → implement one milestone at a time (file-group isolation)
46
+ /verify → validate (test/lint/typecheck/build, self-review, UNIFY)
56
47
  /session-retro → capture learnings, update vault
57
48
  ```
58
49
 
59
- For pure bugfixes: `/debug` (test-first debugging, skips GSD).
50
+ For pure bugfixes: `/debug` (test-first debugging, skips the full loop).
60
51
  For code review: `/review` (launches subagent review at any time).
61
52
  For technical research: `/discover` (structured options evaluation before decisions).
62
53
 
@@ -64,10 +55,10 @@ For technical research: `/discover` (structured options evaluation before decisi
64
55
 
65
56
  | Command | Purpose |
66
57
  |---------|---------|
67
- | `gsd-discuss` | Frame the problem, SPEC questions, scope guard |
68
- | `gsd-execute` | Implement one milestone with file-group isolation + boundary enforcement |
69
- | `gsd-verify` | Validate milestone (test/lint/build), self-review, UNIFY phase summary |
70
- | `ralph` | Autonomous multi-story execution from a PRD |
58
+ | `discuss` | Conversational problem framing, SPEC synthesis, scope guard |
59
+ | `execute` | Implement one milestone with file-group isolation + boundary enforcement |
60
+ | `verify` | Validate milestone (test/lint/build), self-review, UNIFY phase summary |
61
+
71
62
  | `plan` | Create a dated work plan with milestone dependencies + checkpoints |
72
63
  | `spec` | Create a structured spec or ADR with conflict detection |
73
64
  | `discover` | Structured technical discovery with confidence-rated options |
@@ -86,17 +77,6 @@ Key additions in this version:
86
77
  - **context-management** — context brackets (FRESH/MODERATE/DEPLETED/CRITICAL) adapt behavior to session stage
87
78
  - **vault** — Obsidian vault integration
88
79
 
89
- ## Ralph
90
-
91
- Ralph is the autonomous execution mode for multi-story work. Use it when you have >5 independent stories that don't require human checkpoints.
92
-
93
- 1. Write a PRD using `/prd-writer` (structured story format with file groups and estimates)
94
- 2. Run `/ralph` to begin autonomous execution
95
- 3. Each story runs in a fresh context with its own verify cycle
96
- 4. Blocked stories are recorded and skipped — reported at run end
97
-
98
- Ralph is not a replacement for GSD — it runs GSD internally per story. Use GSD for work that needs cross-story reasoning or architectural decisions.
99
-
100
80
  ## Architecture
101
81
 
102
82
  ```
@@ -108,7 +88,7 @@ Ralph is not a replacement for GSD — it runs GSD internally per story. Use GSD
108
88
  │ Skills chain + domain rules + MCPs │
109
89
  ├────────────────────────────────────────┤
110
90
  │ Universal base (always loaded) │
111
- GSD Superpowers → Ralph
91
+ Praxis workflow engine
112
92
  ├────────────────────────────────────────┤
113
93
  │ Vault layer │
114
94
  │ Obsidian │
@@ -118,7 +98,7 @@ Ralph is not a replacement for GSD — it runs GSD internally per story. Use GSD
118
98
  └────────────────────────────────────────┘
119
99
  ```
120
100
 
121
- **Workflow hierarchy:** GSD owns the outer loop (discuss → plan → execute → verify). Superpowers enforces quality inside execution (TDD, review, debug). Ralph runs autonomous multi-story iterations. Kits inject domain context into this workflow — they don't replace it.
101
+ **Workflow hierarchy:** Praxis owns the outer loop (discuss → plan → execute → verify simplify ship). Kits inject domain context into this workflow — they don't replace it.
122
102
 
123
103
  ## Available kits
124
104
 
package/base/CLAUDE.md CHANGED
@@ -13,14 +13,11 @@ You are a senior engineering partner. Think before you build. Verify before you
13
13
  - Every option presented MUST include a recommendation and why.
14
14
 
15
15
  ## Workflow Hierarchy
16
- - **GSD** owns the outer loop: discuss → plan → execute → verify → simplify → ship.
17
- Always start feature work with GSD.
18
- - **Superpowers** enforces quality inside execution (TDD, review, debug).
19
- Its skills auto-activate — never invoke them alongside GSD phases.
20
- - **Ralph** runs autonomous multi-story iterations from the terminal.
16
+ - **Praxis** owns the outer loop: discuss → plan → execute → verify → simplify → ship.
17
+ Always start feature work with `/discuss` or `/next`.
21
18
  - **Kits** inject domain context into this workflow — they don't replace it.
22
- - Never invoke `/superpowers:write-plan` alongside `/gsd:plan-phase`.
23
- - Pure bugfixes: skip GSD, use Superpowers debugging directly.
19
+ - Pure bugfixes: skip the full loop, use `/debug` directly.
20
+ - Trivial changes (typos, config): use `/fast` to skip planning.
24
21
  - After every implementation: run `/simplify` to clean up code before verify.
25
22
  - Use `/verify-app` for end-to-end checks, `/ship` when ready to commit+push+PR.
26
23
 
@@ -40,7 +37,7 @@ permanent institutional memory. Don't wait for session-retro — fix the rule im
40
37
  ## Non-Negotiables (fire every session)
41
38
 
42
39
  **Before any non-trivial task:**
43
- - WHAT / DONE-WHEN / CONSTRAINTS / NON-GOALS — answer all four before starting.
40
+ - PROBLEM / DELIVERABLE / ACCEPTANCE / BOUNDARIES — answer all four before starting.
44
41
 
45
42
  **Stop-and-Fix Rule:** Validation fails → fix now → re-validate → proceed.
46
43
  If cannot fix in 3 attempts: STOP. Report What / So What / Now What.
@@ -92,8 +89,7 @@ Missing servers are non-blocking — features degrade gracefully.
92
89
 
93
90
  ## After Compaction — Bootstrap
94
91
  1. Read project CLAUDE.md (always first)
95
- 2. Check `claude-progress.json` if `.ralph_state.current_story` is set: read it NOW, it is authoritative
96
- 3. Active task? → read active plan current milestone only
92
+ 2. Active task? read active plan current milestone only
97
93
  No active task? → read `status.md`
98
94
  4. Load rules only for what the current task touches:
99
95
  - Terraform/Azure → `~/.claude/rules/terraform.md`
@@ -137,7 +133,7 @@ Kit manifests live in `~/.claude/kits/<name>/KIT.md`.
137
133
  | `~/.claude/rules/communication.md` | Client writing, no AI attribution |
138
134
  | `~/.claude/rules/vault.md` | Second brain integration — Obsidian vault |
139
135
  | `~/.claude/rules/architecture.md` | ADR format, What/So What/Now What, risk docs |
140
- | `~/.claude/rules/context-management.md` | GSD/Ralph anti-rot, context reset protocol |
136
+ | `~/.claude/rules/context-management.md` | Context anti-rot, context reset protocol |
141
137
 
142
138
  ### Scoped — load only when paths match
143
139
  | File | Loads when |
@@ -52,7 +52,6 @@ Update `status.md` with current What / So What / Now What:
52
52
  **Step 5 — Update claude-progress.json**
53
53
  Write a session snapshot to `claude-progress.json`:
54
54
  - Update `last_session` with current date and a note about the context reset
55
- - If Ralph is active: preserve `ralph_state` exactly as-is
56
55
 
57
56
  **Step 6 — Instruct the user**
58
57
  Print:
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Structured test-first debugging. Reproduce the bug, write a failing test, isolate root cause, fix, verify. Use for pure bugfixes — skips GSD phases.
2
+ description: Structured test-first debugging. Reproduce the bug, write a failing test, isolate root cause, fix, verify. Use for pure bugfixes — skips the full loop.
3
3
  ---
4
4
 
5
5
  You are running structured debugging.
@@ -58,6 +58,6 @@ Before touching any implementation code:
58
58
  **Rules:**
59
59
  - Never fix without first reproducing.
60
60
  - Never say "fixed" without showing the test passing.
61
- - Skips GSD phases — for pure bugfixes only.
62
- - If the "bug" is actually a feature gap: redirect to `/gsd:discuss`.
63
- - If the fix touches >5 files: it is not a bugfix. Use GSD.
61
+ - Skips the full loop — for pure bugfixes only.
62
+ - If the "bug" is actually a feature gap: redirect to `/discuss`.
63
+ - If the fix touches >5 files: it is not a bugfix. Use the full loop.
@@ -41,9 +41,9 @@ You are running a structured technical discovery.
41
41
  ---
42
42
  ```
43
43
  - Include all options evaluated, recommendation, and confidence
44
- - Report: "Discovery written. Run `/spec` to formalize as ADR, or `/gsd:discuss` to proceed."
44
+ - Report: "Discovery written. Run `/spec` to formalize as ADR, or `/discuss` to proceed."
45
45
 
46
46
  **Rules:**
47
47
  - Discovery is research, not implementation. Zero code output.
48
48
  - If the question is already answered by an existing spec: point to it instead.
49
- - Fills the gap between `/gsd:discuss` (problem framing) and `/spec` (formal decision).
49
+ - Fills the gap between `/discuss` (problem framing) and `/spec` (formal decision).
@@ -0,0 +1,94 @@
1
+ ---
2
+ description: Entry point for all feature work. Conversational problem framing — listen first, then synthesize scope. Use before /plan.
3
+ ---
4
+
5
+ You are starting the discuss phase — a conversation to frame the problem before planning.
6
+
7
+ **Step 1 — Load minimal context**
8
+ - Read vault_path from `~/.claude/praxis.config.json`
9
+ - Detect project from CWD matching `local_path` in vault `_index.md`
10
+ - If no project detected: ask which project before continuing
11
+ - Read `{vault_path}/status.md` — current state and blockers
12
+ - If `current_plan:` is set: skim the active plan objectives only
13
+ - Read `~/.claude/rules/profile.md` — user context (soft-fail if unconfigured)
14
+
15
+ Do NOT load rules, kit context, or session history at this phase.
16
+
17
+ **Step 2 — Listen**
18
+ Ask ONE open question: "What are we working on?"
19
+ Wait for the user to describe the problem in their own words.
20
+ Do NOT present a template or form. Let them talk.
21
+
22
+ **Step 3 — Search for related work**
23
+ After the user describes the task, search vault for prior art:
24
+ Run: `obsidian search query="{topic}" limit=5`
25
+ If related specs, plans, or research exist: mention them briefly.
26
+ If nothing exists: proceed silently.
27
+
28
+ **Step 4 — Clarify gaps conversationally**
29
+ From the user's description, identify which of these four dimensions are unclear:
30
+ - **PROBLEM**: Why are we doing this? What's broken or missing?
31
+ - **DELIVERABLE**: What concrete thing will exist when done?
32
+ - **ACCEPTANCE**: What specific checks prove completion?
33
+ - **BOUNDARIES**: What's in scope and what's out?
34
+
35
+ Ask ONLY about what's missing or ambiguous — do not re-ask what the user already stated.
36
+ Frame questions naturally, not as a checklist. Examples:
37
+ - "What's the actual problem this solves?"
38
+ - "What does 'done' look like for this?"
39
+ - "Anything we should explicitly leave out?"
40
+
41
+ If the user's initial description covers all four: skip to Step 5.
42
+
43
+ **Step 5 — Synthesize and frame**
44
+ Write a SPEC block that captures the four dimensions from the conversation:
45
+
46
+ ```
47
+ SPEC
48
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
49
+ PROBLEM: {why we're doing this}
50
+ DELIVERABLE: {concrete output}
51
+ ACCEPTANCE: {checks that prove completion}
52
+ BOUNDARIES:
53
+ In: {what's in scope}
54
+ Out: {what's explicitly excluded}
55
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
56
+ ```
57
+
58
+ Then output a 1-paragraph problem framing (max 200 words):
59
+ - What exists today (from status.md / vault search)
60
+ - What gap or need the user described
61
+ - Recommendation: proceed to `/plan` or write a `/spec` first
62
+
63
+ **Step 5b — Persist to vault**
64
+ - Write the SPEC block to `{vault_path}/plans/{YYYY-MM-DD}_{slug}-context.md` with frontmatter:
65
+ ```yaml
66
+ ---
67
+ tags: [context, {project-slug}]
68
+ date: {YYYY-MM-DD}
69
+ source: agent
70
+ ---
71
+ ```
72
+ - Append one-line summary to `{vault_path}/notes/discussion-log.md`:
73
+ `{date} | {project} | {problem summary} | → /plan`
74
+ - If `discussion-log.md` doesn't exist: create it with a `# Discussion Log` header.
75
+ - The `/plan` command reads this file if the conversation SPEC block is lost to compaction.
76
+
77
+ **Step 5c — Scope guard**
78
+ - If the framing implies >5 milestones or >3 file groups: flag as scope explosion
79
+ risk and recommend splitting before `/plan`.
80
+ - After framing: list what is NOT being decided in this discuss phase.
81
+ - Never output implementation code, pseudocode, or file-level changes.
82
+ This phase produces a problem statement, not a solution.
83
+
84
+ **Step 6 — Handoff**
85
+ End with: "Run `/plan` to continue, or `/spec` if this needs a design spec first."
86
+
87
+ The SPEC block from Step 5 is the artifact that `/plan` consumes — it replaces
88
+ the need for `/plan` to re-ask what the task is.
89
+
90
+ **Rules:**
91
+ - This is a conversation, not a form. Listen first, synthesize second.
92
+ - Problem framing is a paragraph, not a design doc.
93
+ - If scope exceeds 5 milestones: recommend splitting into multiple passes.
94
+ - The SPEC block is the discuss→plan handoff artifact. `/plan` reads it from conversation.
@@ -2,13 +2,15 @@
2
2
  description: Implementation phase — loads scoped context and works one milestone at a time. Use after plan is approved.
3
3
  ---
4
4
 
5
- You are executing the GSD implementation phase.
5
+ You are executing the implementation phase.
6
6
 
7
7
  **Step 1 — Load implementation context**
8
8
  - Read vault_path from `~/.claude/praxis.config.json`
9
9
  - Read `{vault_path}/status.md` → get `current_plan:`
10
- - Read the active plan file — focus on the CURRENT milestone only (not full plan)
11
- - If no active plan: STOP. Tell user to run `/gsd:discuss` first.
10
+ - Read the active plan file:
11
+ - `## SPEC` section PROBLEM, DELIVERABLE, ACCEPTANCE, BOUNDARIES (the contract)
12
+ - Current milestone steps and acceptance criteria only (not full plan)
13
+ - If no active plan: STOP. Tell user to run `/discuss` first.
12
14
 
13
15
  **Step 2 — Load scoped rules**
14
16
  Load ONLY rules relevant to files being touched in this milestone:
@@ -45,14 +47,8 @@ When the milestone is complete:
45
47
  1. Write a brief summary to the active plan file under the milestone entry
46
48
  2. Confirm actual diff matches declared file group
47
49
  3. Output ONE recommendation — no menu, no alternatives:
48
- `Next: /gsd:verify` followed by one sentence explaining why
49
- Example: "Next: /gsd:verify — 3 files changed in declared group, tests and lint needed"
50
-
51
- **Step 5 — Ralph handoff trigger**
52
- If remaining milestones >5 and all are independent (no cross-milestone reasoning):
53
- - After `/gsd:verify` passes (not during Step 4), append:
54
- "Also consider: /ralph — {n} independent milestones remaining"
55
- - Never surface Ralph before verify completes.
50
+ `Next: /verify` followed by one sentence explaining why
51
+ Example: "Next: /verify — 3 files changed in declared group, tests and lint needed"
56
52
 
57
53
  **Rules:**
58
54
  - Never skip a milestone or reorder without approval.
@@ -0,0 +1,26 @@
1
+ ---
2
+ description: Skip planning for trivial changes. Edit, verify, commit. Use for typos, config tweaks, single-line fixes, and other changes too small for a plan.
3
+ ---
4
+
5
+ You are running a fast task — no planning, just edit/verify/commit.
6
+
7
+ **Step 1 — Understand the change**
8
+ The user describes the change inline (e.g., `/fast fix typo in README`).
9
+ If no description provided: ask "What's the change?"
10
+
11
+ **Step 2 — Make the edit**
12
+ Apply the change directly. No SPEC, no plan, no milestones.
13
+ Keep the diff minimal — if the change touches >3 files, stop and suggest `/quick` instead.
14
+
15
+ **Step 3 — Verify**
16
+ Run lint and test commands from project CLAUDE.md `## Commands` section.
17
+ Show output. If failing: fix immediately.
18
+
19
+ **Step 4 — Commit**
20
+ On pass: commit with conventional commit format.
21
+ No vault writes, no status.md update, no plan file.
22
+
23
+ **Rules:**
24
+ - This is for genuinely trivial changes. If you need to think about the approach, use `/quick`.
25
+ - Maximum 3 files changed. Beyond that: escalate to `/quick` or `/discuss`.
26
+ - Pre-commit checks (secrets, identity) still apply — never skip those.
@@ -18,7 +18,7 @@ If `~/.claude/praxis.config.json` has `installed_kits`, cross-reference to show
18
18
 
19
19
  1. Check if `~/.claude/kits/<name>/KIT.md` exists. If not: report "Kit not found. Run /kit:list."
20
20
  2. Read `KIT.md` manifest to get skills_chain, rules, and mcp_servers.
21
- 3. **Idempotency check**: If this kit is already active in the current session, report "Kit already active" and do nothing. This is critical for Ralph integration where every iteration may re-activate.
21
+ 3. **Idempotency check**: If this kit is already active in the current session, report "Kit already active" and do nothing.
22
22
  4. Print the skills chain:
23
23
  ```
24
24
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -44,7 +44,7 @@ If `~/.claude/praxis.config.json` has `installed_kits`, cross-reference to show
44
44
  1. Report which kit is being deactivated.
45
45
  2. Unload kit-specific rules from the active context.
46
46
  3. Note: MCP servers persist globally — they are not unregistered on deactivation.
47
- 4. Print: `✓ Kit deactivated. Universal base (GSD + Superpowers) still active.`
47
+ 4. Print: `✓ Kit deactivated. Praxis base workflow still active.`
48
48
 
49
49
  ## /kit:update <name>
50
50
 
@@ -0,0 +1,31 @@
1
+ ---
2
+ description: Auto-advance to the next workflow phase. Reads status.md loop_position and plan state to determine what comes next. Use anytime to keep moving.
3
+ ---
4
+
5
+ You are advancing the Praxis workflow to the next phase.
6
+
7
+ **Step 1 — Read current state**
8
+ - Read vault_path from `~/.claude/praxis.config.json`
9
+ - Read `{vault_path}/status.md` → get `loop_position` and `current_plan`
10
+ - If `current_plan` is set: read the plan file — check milestone completion status
11
+
12
+ **Step 2 — Determine next action**
13
+
14
+ | loop_position | Plan state | Action |
15
+ |---------------|------------|--------|
16
+ | IDLE | No plan | Ask "What are we working on?" — behave like `/discuss` |
17
+ | IDLE | Plan exists, incomplete milestones | "Existing plan has work remaining. Resume?" → `/execute` |
18
+ | IDLE | Plan exists, all milestones done | "Plan complete. Run `/ship` to commit+push+PR?" |
19
+ | DISCUSS | — | "Discuss complete. Run `/plan` to create the work plan." → invoke `/plan` |
20
+ | PLAN | — | "Plan ready. Run `/execute` to start implementation." → invoke `/execute` |
21
+ | EXECUTE | — | "Milestone complete. Run `/verify` to validate." → invoke `/verify` |
22
+ | VERIFY | Last verify passed | "Verified. Run `/simplify` to clean up, then `/ship`." → invoke `/simplify` |
23
+ | VERIFY | Last verify failed | "Verification failed. Fix the issue, then run `/verify` again." |
24
+
25
+ **Step 3 — Update loop_position**
26
+ After invoking the next command, update `status.md` → `loop_position` to reflect the new phase.
27
+
28
+ **Rules:**
29
+ - Always show one clear next action — no menus.
30
+ - If state is ambiguous (e.g., status.md is stale): read the plan file to determine actual progress.
31
+ - This command is a convenience — it never skips phases or bypasses verification.
@@ -4,19 +4,36 @@ description: Create a dated work plan for the current project. Writes to vault p
4
4
 
5
5
  You are creating a work plan for the current project.
6
6
 
7
- **Step 1 — Detect project**
7
+ **Step 1 — Detect project and read SPEC**
8
8
  - Read vault_path from `~/.claude/praxis.config.json`
9
9
  - Match CWD to `local_path` in vault `_index.md`
10
10
  - Read `status.md` — check if `current_plan:` is already set
11
11
  - If current_plan is set: warn. Ask if starting a new plan or updating the existing one.
12
12
 
13
- **Step 2Gather plan details**
14
- Ask in a single message:
15
- - What is the task or feature this plan covers?
16
- - What is the target completion date (or "open" if no deadline)?
17
- - Any known blockers or dependencies upfront?
13
+ **Step 1bConsume discuss output**
14
+ Check the conversation for a SPEC block from `/discuss`:
15
+ ```
16
+ SPEC
17
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
18
+ PROBLEM: ...
19
+ DELIVERABLE: ...
20
+ ACCEPTANCE: ...
21
+ BOUNDARIES:
22
+ In: ...
23
+ Out: ...
24
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
+ ```
26
+
27
+ - If a SPEC block exists in conversation: use it as the plan's objective, acceptance criteria, and boundaries.
28
+ Do NOT re-ask what the task is.
29
+ - If no SPEC block in conversation: check vault for `{vault_path}/plans/*-context.md` (most recent).
30
+ If found and recent (today): read it and use as the SPEC source.
31
+ - If no SPEC block found anywhere (plan invoked directly): ask in a single message:
32
+ - What is the task or feature this plan covers?
33
+ - What is the target completion date (or "open" if no deadline)?
34
+ - Any known blockers or dependencies upfront?
18
35
 
19
- **Step 3 — Build the plan**
36
+ **Step 2 — Build the plan**
20
37
 
21
38
  ```markdown
22
39
  ---
@@ -32,6 +49,14 @@ source: agent
32
49
  ## Objective
33
50
  One sentence.
34
51
 
52
+ ## SPEC
53
+ PROBLEM: {from SPEC block or user input}
54
+ DELIVERABLE: {from SPEC block or user input}
55
+ ACCEPTANCE: {from SPEC block or user input}
56
+ BOUNDARIES:
57
+ In: {from SPEC block or user input}
58
+ Out: {from SPEC block or user input}
59
+
35
60
  ## Context
36
61
  Why this work is happening now.
37
62
 
@@ -66,7 +91,7 @@ Checkpoint types:
66
91
  - `checkpoint: human-verify` — user must validate output before proceeding
67
92
  - No annotation = autonomous (default)
68
93
 
69
- **Step 3b — Dependency and boundary validation**
94
+ **Step 2b — Dependency and boundary validation**
70
95
  After building the milestone list:
71
96
  - Scan for circular dependencies (topological sort). If cycle detected:
72
97
  report the cycle and ask user to break it.
@@ -79,9 +104,9 @@ After building the milestone list:
79
104
  - Validate checkpoints: milestones with architectural decisions or user-facing output
80
105
  should be annotated as `checkpoint: decision` or `checkpoint: human-verify`.
81
106
 
82
- **Step 4 — Write and wire**
107
+ **Step 3 — Write and wire**
83
108
  - Write to: `{vault_path}/plans/{YYYY-MM-DD}_{kebab-title}.md`
84
- - Update `status.md`: set `current_plan:`, update `last_updated`, update `## Now What`
109
+ - Update `status.md`: set `current_plan:`, update `last_updated`, set `loop_position: PLAN`, update `## Now What`
85
110
  - Update `claude-progress.json` milestones array
86
111
  - Report:
87
112
  ```
@@ -89,3 +114,6 @@ After building the milestone list:
89
114
  ✓ status.md: current_plan updated
90
115
  ✓ progress.json: milestone added
91
116
  ```
117
+
118
+ The plan file now contains the SPEC — `/execute` reads it directly.
119
+ No information is lost at the discuss→plan→execute boundary.
@@ -0,0 +1,40 @@
1
+ ---
2
+ description: Ad-hoc task with full quality guarantees in a single compressed flow. Use for tasks that need planning but aren't worth the full loop.
3
+ ---
4
+
5
+ You are running a quick task — full guarantees, compressed flow.
6
+
7
+ **Step 1 — Capture the task**
8
+ The user describes the task inline with the command (e.g., `/quick add error handling to the API route`).
9
+ If no description provided: ask "What's the task?"
10
+
11
+ **Step 2 — Inline SPEC**
12
+ Synthesize from the description (do not ask the user to fill out a form):
13
+ - PROBLEM: why this needs doing
14
+ - DELIVERABLE: what will change
15
+ - ACCEPTANCE: how to verify
16
+ - BOUNDARIES: what's out of scope
17
+
18
+ Output the SPEC block, then proceed immediately — no separate discuss or plan phase.
19
+
20
+ **Step 3 — Inline plan**
21
+ Generate a 1-3 milestone plan. Do NOT write to vault — keep it in conversation only.
22
+ Each milestone: description + files + verification command.
23
+
24
+ **Step 4 — Execute**
25
+ Implement each milestone in sequence. Follow the same rules as `/execute`:
26
+ - Declare file group before editing
27
+ - One milestone at a time
28
+ - No scope expansion without approval
29
+
30
+ **Step 5 — Verify**
31
+ After all milestones: run lint + test. Show output.
32
+ If failing: fix immediately (stop-and-fix rule applies).
33
+
34
+ **Step 6 — Commit**
35
+ On pass: commit with conventional commit format. Update `status.md` briefly.
36
+
37
+ **Rules:**
38
+ - This is a compressed full loop, not a shortcut that skips verification.
39
+ - No vault plan file written — this is for tasks that don't need persistent tracking.
40
+ - If the task turns out to need >3 milestones: stop and suggest `/discuss` instead.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Manual code review trigger. Launches a subagent to review a diff for bugs, security, and convention violations. Use independently of GSD phases.
2
+ description: Manual code review trigger. Launches a subagent to review a diff for bugs, security, and convention violations. Use independently of Praxis phases.
3
3
  ---
4
4
 
5
5
  You are running a manual code review.
@@ -75,7 +75,7 @@ CLEAN
75
75
  - Vault indexing is automatic.
76
76
 
77
77
  **Rules:**
78
- - Works independently of GSD phases.
78
+ - Works independently of Praxis phases.
79
79
  - Never skip the subagent — review must come from fresh context.
80
80
  - Subagent receives zero conversation history.
81
81
  - If no project CLAUDE.md exists: proceed with base rules only.
@@ -71,4 +71,4 @@ Checks: secrets ✓ lint ✓ types ✓ tests ✓
71
71
  - Never skip pre-flight checks. They are the safety net.
72
72
  - Never force-push without explicit user approval.
73
73
  - If the diff touches >20 files: warn about PR size and suggest splitting.
74
- - This command is the end of a GSD cycle — run after `/gsd:verify` passes.
74
+ - This command is the end of a Praxis cycle — run after `/verify` passes.
@@ -1,9 +1,14 @@
1
1
  ---
2
- description: Create a structured spec or ADR for the current project. Writes directly to vault specs/ directory. Use for any significant decision, design, or work item that needs documentation before implementation.
2
+ description: Create a structured spec or ADR for the current project. Writes to vault specs/ directory. Use for architecture decisions, technical designs, and risk documentation NOT for task framing (use /discuss for that).
3
3
  ---
4
4
 
5
5
  You are creating a spec for the current project.
6
6
 
7
+ **When to use /spec vs /discuss:**
8
+ - `/discuss` frames a task — "what are we building and why?" Produces a SPEC block for `/plan`.
9
+ - `/spec` documents a decision or design — "what did we decide and what are the consequences?"
10
+ Use for ADRs, technical specs, and risk entries that outlive the current task.
11
+
7
12
  **Step 1 — Identify project context**
8
13
  - Read vault_path from `~/.claude/praxis.config.json`
9
14
  - Detect project from CWD matching `local_path` in vault `_index.md`
@@ -13,7 +18,7 @@ You are creating a spec for the current project.
13
18
  **Step 2 — Gather spec details**
14
19
  Ask the following in a single message:
15
20
  - What is this spec for? (one sentence)
16
- - Type: ADR (architecture decision) / PLAN (work plan) / RISK (risk register entry) / SPEC (technical spec)
21
+ - Type: ADR (architecture decision) / RISK (risk register entry) / SPEC (technical spec)
17
22
  - Is there an existing related spec in `specs/`? (run `obsidian search query="{topic}" limit=3` first)
18
23
 
19
24
  **Step 2b — Cross-spec conflict check**
@@ -32,11 +37,12 @@ After the vault search from Step 2, check for conflicts with accepted ADRs:
32
37
  - Never silently create a spec that contradicts an accepted ADR.
33
38
  - If no conflicts: proceed silently.
34
39
 
35
- **Step 3 — Answer the four SPEC questions**
36
- - **WHAT**: Concrete deliverable
37
- - **DONE-WHEN**: Specific checks that prove completion
38
- - **CONSTRAINTS**: Performance, compatibility, compliance requirements
39
- - **NON-GOALS**: What this explicitly does NOT include
40
+ **Step 3 — Capture the decision or design**
41
+ For ADR: What was decided, what context drove it, what alternatives were considered.
42
+ For SPEC: What is being built, what constraints apply, what the design looks like.
43
+ For RISK: What the risk is, what triggers it, what mitigates it.
44
+
45
+ Synthesize from the conversation — do not present a blank form to fill out.
40
46
 
41
47
  **Step 4 — Write the spec**
42
48
 
@@ -7,16 +7,10 @@ You are generating a standup summary for the current project.
7
7
  **Step 1 — Load project state**
8
8
  Read vault_path from `~/.claude/praxis.config.json`. Then read in order (detect from CWD — do not ask):
9
9
  1. `{vault_path}/_index.md` → project name, stack, goals
10
- 1b. `{vault_path}/claude-progress.json` → check `ralph_state`
11
10
  2. `{vault_path}/status.md` → current_plan, last_updated, What/So What/Now What
12
11
  3. `{vault_path}/tasks.md` → Active, Blocked sections
13
12
  4. If `current_plan` is set → read `{vault_path}/plans/{current_plan}` → Milestones, Blockers
14
13
 
15
- **Ralph state check:**
16
- - If `.ralph_state.current_story` is set: note "Ralph iteration active" for output
17
- - Use `completed_stories` count and `last_iteration` alongside `status.md`
18
- - If `status.md` last_updated is stale but `ralph_state.last_iteration` is recent: suppress stale warning
19
-
20
14
  **Step 2 — Output standup format**
21
15
 
22
16
  ```
@@ -30,10 +24,6 @@ Read vault_path from `~/.claude/praxis.config.json`. Then read in order (detect
30
24
  IN PROGRESS
31
25
  {active plan name} — {next milestone}
32
26
 
33
- RALPH STATUS
34
- {current story if active, or "No Ralph iteration running"}
35
- Completed: {n} stories | Last: {last_iteration}
36
-
37
27
  BLOCKED
38
28
  {blocker with owner if known}
39
29
 
@@ -2,7 +2,7 @@
2
2
  description: Validation phase — runs test/lint/typecheck/build and reports PASS or FAIL. Use after each milestone completion.
3
3
  ---
4
4
 
5
- You are running the GSD verification phase for the current milestone.
5
+ You are running the verification phase for the current milestone.
6
6
 
7
7
  **Step 1 — Run validation sequence**
8
8
  Execute in order, showing actual output (never assertions):
@@ -21,13 +21,14 @@ If no commands are defined: warn and ask user for the correct commands.
21
21
 
22
22
  **Step 3 — On PASS**
23
23
  1. Update the active plan file: mark milestone status as complete
24
- 2. Prompt: "Milestone verified. Ready to commit proceed?"
25
- 3. After commit: check if more milestones remain
26
- - Yes "Run `/gsd:execute` for the next milestone."
27
- - No → "All milestones complete. Running self-review."
24
+ 2. Commit immediately verification passed, no permission needed.
25
+ Use conventional commit format. See git-workflow.md.
26
+ 3. Check if more milestones remain:
27
+ - Yes → "Milestone committed. Run `/execute` for the next milestone."
28
+ - No → "All milestones committed. Running self-review."
28
29
  4. After ALL milestones: trigger Self-Review Protocol
29
30
  - Launch a subagent to review the full diff as a critical code reviewer
30
- - Subagent receives ONLY: the diff, the SPEC, relevant rules files
31
+ - Subagent receives ONLY: the diff, the SPEC (from plan file `## SPEC` section), relevant rules files
31
32
  - Address all Critical and Major findings before reporting done
32
33
 
33
34
  **Step 3b — UNIFY (mandatory after all milestones verified)**