@bhargavvc/sdd-cc 1.30.1 → 1.35.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.
- package/README.ja-JP.md +144 -110
- package/README.ko-KR.md +143 -107
- package/README.md +183 -112
- package/README.pt-BR.md +90 -52
- package/README.zh-CN.md +141 -101
- package/agents/sdd-advisor-researcher.md +23 -0
- package/agents/sdd-ai-researcher.md +133 -0
- package/agents/sdd-code-fixer.md +516 -0
- package/agents/sdd-code-reviewer.md +355 -0
- package/agents/sdd-codebase-mapper.md +3 -3
- package/agents/sdd-debugger.md +17 -5
- package/agents/sdd-doc-verifier.md +201 -0
- package/agents/sdd-doc-writer.md +602 -0
- package/agents/sdd-domain-researcher.md +153 -0
- package/agents/sdd-eval-auditor.md +164 -0
- package/agents/sdd-eval-planner.md +154 -0
- package/agents/sdd-executor.md +87 -4
- package/agents/sdd-framework-selector.md +160 -0
- package/agents/sdd-intel-updater.md +314 -0
- package/agents/sdd-nyquist-auditor.md +1 -1
- package/agents/sdd-phase-researcher.md +71 -4
- package/agents/sdd-plan-checker.md +100 -6
- package/agents/sdd-planner.md +145 -206
- package/agents/sdd-project-researcher.md +25 -2
- package/agents/sdd-research-synthesizer.md +3 -3
- package/agents/sdd-roadmapper.md +6 -6
- package/agents/sdd-security-auditor.md +128 -0
- package/agents/sdd-ui-auditor.md +43 -3
- package/agents/sdd-ui-checker.md +5 -5
- package/agents/sdd-ui-researcher.md +27 -4
- package/agents/sdd-user-profiler.md +2 -2
- package/agents/sdd-verifier.md +142 -22
- package/bin/install.js +2145 -545
- package/commands/sdd/add-backlog.md +5 -5
- package/commands/sdd/add-tests.md +2 -2
- package/commands/sdd/ai-integration-phase.md +36 -0
- package/commands/sdd/analyze-dependencies.md +34 -0
- package/commands/sdd/audit-fix.md +33 -0
- package/commands/sdd/autonomous.md +7 -2
- package/commands/sdd/cleanup.md +5 -0
- package/commands/sdd/code-review-fix.md +52 -0
- package/commands/sdd/code-review.md +55 -0
- package/commands/sdd/complete-milestone.md +6 -6
- package/commands/sdd/debug.md +22 -9
- package/commands/sdd/discuss-phase.md +7 -2
- package/commands/sdd/do.md +1 -1
- package/commands/sdd/docs-update.md +48 -0
- package/commands/sdd/eval-review.md +32 -0
- package/commands/sdd/execute-phase.md +4 -0
- package/commands/sdd/explore.md +27 -0
- package/commands/sdd/fast.md +2 -2
- package/commands/sdd/from-sdd2.md +45 -0
- package/commands/sdd/help.md +2 -0
- package/commands/sdd/import.md +36 -0
- package/commands/sdd/intel.md +179 -0
- package/commands/sdd/join-discord.md +2 -1
- package/commands/sdd/manager.md +1 -0
- package/commands/sdd/map-codebase.md +3 -3
- package/commands/sdd/new-milestone.md +1 -1
- package/commands/sdd/new-project.md +5 -1
- package/commands/sdd/new-workspace.md +1 -1
- package/commands/sdd/next.md +2 -0
- package/commands/sdd/plan-milestone-gaps.md +2 -2
- package/commands/sdd/plan-phase.md +6 -1
- package/commands/sdd/plant-seed.md +1 -1
- package/commands/sdd/profile-user.md +1 -1
- package/commands/sdd/quick.md +5 -3
- package/commands/sdd/reapply-patches.md +230 -42
- package/commands/sdd/research-phase.md +3 -3
- package/commands/sdd/review-backlog.md +1 -0
- package/commands/sdd/review.md +6 -3
- package/commands/sdd/scan.md +26 -0
- package/commands/sdd/secure-phase.md +35 -0
- package/commands/sdd/ship.md +1 -1
- package/commands/sdd/thread.md +5 -5
- package/commands/sdd/undo.md +34 -0
- package/commands/sdd/verify-work.md +1 -1
- package/commands/sdd/workstreams.md +17 -11
- package/hooks/dist/sdd-check-update.js +33 -8
- package/hooks/dist/sdd-context-monitor.js +17 -8
- package/hooks/dist/sdd-phase-boundary.sh +27 -0
- package/hooks/dist/sdd-prompt-guard.js +1 -0
- package/hooks/dist/sdd-read-guard.js +82 -0
- package/hooks/dist/sdd-session-state.sh +33 -0
- package/hooks/dist/sdd-statusline.js +137 -15
- package/hooks/dist/sdd-validate-commit.sh +47 -0
- package/hooks/dist/sdd-workflow-guard.js +4 -4
- package/hooks/sdd-check-update.js +139 -0
- package/hooks/sdd-context-monitor.js +165 -0
- package/hooks/sdd-phase-boundary.sh +27 -0
- package/hooks/sdd-prompt-guard.js +97 -0
- package/hooks/sdd-read-guard.js +82 -0
- package/hooks/sdd-session-state.sh +33 -0
- package/hooks/sdd-statusline.js +241 -0
- package/hooks/sdd-validate-commit.sh +47 -0
- package/hooks/sdd-workflow-guard.js +94 -0
- package/package.json +3 -3
- package/scripts/build-hooks.js +18 -7
- package/scripts/prompt-injection-scan.sh +1 -0
- package/scripts/rebrand-gsd-to-sdd.sh +221 -220
- package/scripts/run-tests.cjs +5 -1
- package/scripts/sync-upstream.sh +1 -1
- package/sdd/bin/lib/commands.cjs +79 -17
- package/sdd/bin/lib/config.cjs +90 -48
- package/sdd/bin/lib/core.cjs +452 -87
- package/sdd/bin/lib/docs.cjs +267 -0
- package/sdd/bin/lib/frontmatter.cjs +381 -336
- package/sdd/bin/lib/init.cjs +110 -16
- package/sdd/bin/lib/intel.cjs +660 -0
- package/sdd/bin/lib/learnings.cjs +378 -0
- package/sdd/bin/lib/milestone.cjs +42 -11
- package/sdd/bin/lib/model-profiles.cjs +17 -15
- package/sdd/bin/lib/phase.cjs +367 -288
- package/sdd/bin/lib/profile-output.cjs +106 -10
- package/sdd/bin/lib/roadmap.cjs +146 -115
- package/sdd/bin/lib/schema-detect.cjs +238 -0
- package/sdd/bin/lib/sdd2-import.cjs +511 -0
- package/sdd/bin/lib/security.cjs +124 -3
- package/sdd/bin/lib/state.cjs +648 -264
- package/sdd/bin/lib/template.cjs +8 -4
- package/sdd/bin/lib/verify.cjs +209 -28
- package/sdd/bin/lib/workstream.cjs +7 -3
- package/sdd/bin/sdd-tools.cjs +184 -12
- package/sdd/contexts/dev.md +21 -0
- package/sdd/contexts/research.md +22 -0
- package/sdd/contexts/review.md +22 -0
- package/sdd/references/agent-contracts.md +79 -0
- package/sdd/references/ai-evals.md +156 -0
- package/sdd/references/ai-frameworks.md +186 -0
- package/sdd/references/artifact-types.md +113 -0
- package/sdd/references/common-bug-patterns.md +114 -0
- package/sdd/references/context-budget.md +49 -0
- package/sdd/references/continuation-format.md +25 -25
- package/sdd/references/domain-probes.md +125 -0
- package/sdd/references/few-shot-examples/plan-checker.md +73 -0
- package/sdd/references/few-shot-examples/verifier.md +109 -0
- package/sdd/references/gate-prompts.md +100 -0
- package/sdd/references/gates.md +70 -0
- package/sdd/references/git-integration.md +1 -1
- package/sdd/references/ios-scaffold.md +123 -0
- package/sdd/references/model-profile-resolution.md +2 -0
- package/sdd/references/model-profiles.md +24 -18
- package/sdd/references/planner-gap-closure.md +62 -0
- package/sdd/references/planner-reviews.md +39 -0
- package/sdd/references/planner-revision.md +87 -0
- package/sdd/references/planning-config.md +252 -0
- package/sdd/references/revision-loop.md +97 -0
- package/sdd/references/thinking-models-debug.md +44 -0
- package/sdd/references/thinking-models-execution.md +50 -0
- package/sdd/references/thinking-models-planning.md +62 -0
- package/sdd/references/thinking-models-research.md +50 -0
- package/sdd/references/thinking-models-verification.md +55 -0
- package/sdd/references/thinking-partner.md +96 -0
- package/sdd/references/ui-brand.md +4 -4
- package/sdd/references/universal-anti-patterns.md +63 -0
- package/sdd/references/verification-overrides.md +227 -0
- package/sdd/references/workstream-flag.md +56 -3
- package/sdd/templates/AI-SPEC.md +246 -0
- package/sdd/templates/DEBUG.md +1 -1
- package/sdd/templates/SECURITY.md +61 -0
- package/sdd/templates/UAT.md +4 -4
- package/sdd/templates/VALIDATION.md +4 -4
- package/sdd/templates/claude-md.md +32 -9
- package/sdd/templates/config.json +4 -0
- package/sdd/templates/debug-subagent-prompt.md +1 -1
- package/sdd/templates/dev-preferences.md +1 -1
- package/sdd/templates/discovery.md +2 -2
- package/sdd/templates/phase-prompt.md +1 -1
- package/sdd/templates/planner-subagent-prompt.md +3 -3
- package/sdd/templates/project.md +1 -1
- package/sdd/templates/research.md +1 -1
- package/sdd/templates/state.md +2 -2
- package/sdd/workflows/add-phase.md +8 -8
- package/sdd/workflows/add-tests.md +12 -9
- package/sdd/workflows/add-todo.md +5 -3
- package/sdd/workflows/ai-integration-phase.md +284 -0
- package/sdd/workflows/analyze-dependencies.md +96 -0
- package/sdd/workflows/audit-fix.md +157 -0
- package/sdd/workflows/audit-milestone.md +11 -11
- package/sdd/workflows/audit-uat.md +2 -2
- package/sdd/workflows/autonomous.md +195 -27
- package/sdd/workflows/check-todos.md +12 -10
- package/sdd/workflows/cleanup.md +2 -0
- package/sdd/workflows/code-review-fix.md +497 -0
- package/sdd/workflows/code-review.md +515 -0
- package/sdd/workflows/complete-milestone.md +56 -22
- package/sdd/workflows/diagnose-issues.md +10 -3
- package/sdd/workflows/discovery-phase.md +5 -3
- package/sdd/workflows/discuss-phase-assumptions.md +24 -6
- package/sdd/workflows/discuss-phase-power.md +291 -0
- package/sdd/workflows/discuss-phase.md +173 -21
- package/sdd/workflows/do.md +23 -21
- package/sdd/workflows/docs-update.md +1155 -0
- package/sdd/workflows/eval-review.md +155 -0
- package/sdd/workflows/execute-phase.md +594 -38
- package/sdd/workflows/execute-plan.md +67 -96
- package/sdd/workflows/explore.md +139 -0
- package/sdd/workflows/fast.md +5 -5
- package/sdd/workflows/forensics.md +2 -2
- package/sdd/workflows/health.md +4 -4
- package/sdd/workflows/help.md +122 -119
- package/sdd/workflows/import.md +276 -0
- package/sdd/workflows/inbox.md +387 -0
- package/sdd/workflows/insert-phase.md +7 -7
- package/sdd/workflows/list-phase-assumptions.md +4 -4
- package/sdd/workflows/list-workspaces.md +2 -2
- package/sdd/workflows/manager.md +35 -32
- package/sdd/workflows/map-codebase.md +7 -5
- package/sdd/workflows/milestone-summary.md +2 -2
- package/sdd/workflows/new-milestone.md +17 -9
- package/sdd/workflows/new-project.md +50 -25
- package/sdd/workflows/new-workspace.md +7 -5
- package/sdd/workflows/next.md +67 -11
- package/sdd/workflows/note.md +9 -7
- package/sdd/workflows/pause-work.md +75 -12
- package/sdd/workflows/plan-milestone-gaps.md +8 -8
- package/sdd/workflows/plan-phase.md +294 -42
- package/sdd/workflows/plant-seed.md +6 -3
- package/sdd/workflows/pr-branch.md +42 -14
- package/sdd/workflows/profile-user.md +9 -7
- package/sdd/workflows/progress.md +45 -45
- package/sdd/workflows/quick.md +195 -47
- package/sdd/workflows/remove-phase.md +6 -6
- package/sdd/workflows/remove-workspace.md +3 -1
- package/sdd/workflows/research-phase.md +2 -2
- package/sdd/workflows/resume-project.md +12 -12
- package/sdd/workflows/review.md +109 -9
- package/sdd/workflows/scan.md +102 -0
- package/sdd/workflows/secure-phase.md +166 -0
- package/sdd/workflows/session-report.md +2 -2
- package/sdd/workflows/settings.md +38 -12
- package/sdd/workflows/ship.md +21 -9
- package/sdd/workflows/stats.md +1 -1
- package/sdd/workflows/transition.md +23 -23
- package/sdd/workflows/ui-phase.md +15 -7
- package/sdd/workflows/ui-review.md +29 -4
- package/sdd/workflows/undo.md +314 -0
- package/sdd/workflows/update.md +171 -20
- package/sdd/workflows/validate-phase.md +6 -4
- package/sdd/workflows/verify-phase.md +210 -6
- package/sdd/workflows/verify-work.md +83 -9
- package/sdd/commands/sdd/workstreams.md +0 -63
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# AI Framework Decision Matrix
|
|
2
|
+
|
|
3
|
+
> Reference used by `sdd-framework-selector` and `sdd-ai-researcher`.
|
|
4
|
+
> Distilled from official docs, benchmarks, and developer reports (2026).
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Quick Picks
|
|
9
|
+
|
|
10
|
+
| Situation | Pick |
|
|
11
|
+
|-----------|------|
|
|
12
|
+
| Simplest path to a working agent (OpenAI) | OpenAI Agents SDK |
|
|
13
|
+
| Simplest path to a working agent (model-agnostic) | CrewAI |
|
|
14
|
+
| Production RAG / document Q&A | LlamaIndex |
|
|
15
|
+
| Complex stateful workflows with branching | LangGraph |
|
|
16
|
+
| Multi-agent teams with defined roles | CrewAI |
|
|
17
|
+
| Code-aware autonomous agents (Anthropic) | Claude Agent SDK |
|
|
18
|
+
| "I don't know my requirements yet" | LangChain |
|
|
19
|
+
| Regulated / audit-trail required | LangGraph |
|
|
20
|
+
| Enterprise Microsoft/.NET shops | AutoGen/AG2 |
|
|
21
|
+
| Google Cloud / Gemini-committed teams | Google ADK |
|
|
22
|
+
| Pure NLP pipelines with explicit control | Haystack |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Framework Profiles
|
|
27
|
+
|
|
28
|
+
### CrewAI
|
|
29
|
+
- **Type:** Multi-agent orchestration
|
|
30
|
+
- **Language:** Python only
|
|
31
|
+
- **Model support:** Model-agnostic
|
|
32
|
+
- **Learning curve:** Beginner (role/task/crew maps to real teams)
|
|
33
|
+
- **Best for:** Content pipelines, research automation, business process workflows, rapid prototyping
|
|
34
|
+
- **Avoid if:** Fine-grained state management, TypeScript, fault-tolerant checkpointing, complex conditional branching
|
|
35
|
+
- **Strengths:** Fastest multi-agent prototyping, 5.76x faster than LangGraph on QA tasks, built-in memory (short/long/entity/contextual), Flows architecture, standalone (no LangChain dep)
|
|
36
|
+
- **Weaknesses:** Limited checkpointing, coarse error handling, Python only
|
|
37
|
+
- **Eval concerns:** Task decomposition accuracy, inter-agent handoff, goal completion rate, loop detection
|
|
38
|
+
|
|
39
|
+
### LlamaIndex
|
|
40
|
+
- **Type:** RAG and data ingestion
|
|
41
|
+
- **Language:** Python + TypeScript
|
|
42
|
+
- **Model support:** Model-agnostic
|
|
43
|
+
- **Learning curve:** Intermediate
|
|
44
|
+
- **Best for:** Legal research, internal knowledge assistants, enterprise document search, any system where retrieval quality is the #1 priority
|
|
45
|
+
- **Avoid if:** Primary need is agent orchestration, multi-agent collaboration, or chatbot conversation flow
|
|
46
|
+
- **Strengths:** Best-in-class document parsing (LlamaParse), 35% retrieval accuracy improvement, 20-30% faster queries, mixed retrieval strategies (vector + graph + reranker)
|
|
47
|
+
- **Weaknesses:** Data framework first — agent orchestration is secondary
|
|
48
|
+
- **Eval concerns:** Context faithfulness, hallucination, answer relevance, retrieval precision/recall
|
|
49
|
+
|
|
50
|
+
### LangChain
|
|
51
|
+
- **Type:** General-purpose LLM framework
|
|
52
|
+
- **Language:** Python + TypeScript
|
|
53
|
+
- **Model support:** Model-agnostic (widest ecosystem)
|
|
54
|
+
- **Learning curve:** Intermediate–Advanced
|
|
55
|
+
- **Best for:** Evolving requirements, many third-party integrations, teams wanting one framework for everything, RAG + agents + chains
|
|
56
|
+
- **Avoid if:** Simple well-defined use case, RAG-primary (use LlamaIndex), complex stateful workflows (use LangGraph), performance at scale is critical
|
|
57
|
+
- **Strengths:** Largest community and integration ecosystem, 25% faster development vs scratch, covers RAG/agents/chains/memory
|
|
58
|
+
- **Weaknesses:** Abstraction overhead, p99 latency degrades under load, complexity creep risk
|
|
59
|
+
- **Eval concerns:** End-to-end task completion, chain correctness, retrieval quality
|
|
60
|
+
|
|
61
|
+
### LangGraph
|
|
62
|
+
- **Type:** Stateful agent workflows (graph-based)
|
|
63
|
+
- **Language:** Python + TypeScript (full parity)
|
|
64
|
+
- **Model support:** Model-agnostic (inherits LangChain integrations)
|
|
65
|
+
- **Learning curve:** Intermediate–Advanced (graph mental model)
|
|
66
|
+
- **Best for:** Production-grade stateful workflows, regulated industries, audit trails, human-in-the-loop flows, fault-tolerant multi-step agents
|
|
67
|
+
- **Avoid if:** Simple chatbot, purely linear workflow, rapid prototyping
|
|
68
|
+
- **Strengths:** Best checkpointing (every node), time-travel debugging, native Postgres/Redis persistence, streaming support, chosen by 62% of developers for stateful agent work (2026)
|
|
69
|
+
- **Weaknesses:** More upfront scaffolding, steeper curve, overkill for simple cases
|
|
70
|
+
- **Eval concerns:** State transition correctness, goal completion rate, tool use accuracy, safety guardrails
|
|
71
|
+
|
|
72
|
+
### OpenAI Agents SDK
|
|
73
|
+
- **Type:** Native OpenAI agent framework
|
|
74
|
+
- **Language:** Python + TypeScript
|
|
75
|
+
- **Model support:** Optimized for OpenAI (supports 100+ via Chat Completions compatibility)
|
|
76
|
+
- **Learning curve:** Beginner (4 primitives: Agents, Handoffs, Guardrails, Tracing)
|
|
77
|
+
- **Best for:** OpenAI-committed teams, rapid agent prototyping, voice agents (gpt-realtime), teams wanting visual builder (AgentKit)
|
|
78
|
+
- **Avoid if:** Model flexibility needed, complex multi-agent collaboration, persistent state management required, vendor lock-in concern
|
|
79
|
+
- **Strengths:** Simplest mental model, built-in tracing and guardrails, Handoffs for agent delegation, Realtime Agents for voice
|
|
80
|
+
- **Weaknesses:** OpenAI vendor lock-in, no built-in persistent state, younger ecosystem
|
|
81
|
+
- **Eval concerns:** Instruction following, safety guardrails, escalation accuracy, tone consistency
|
|
82
|
+
|
|
83
|
+
### Claude Agent SDK (Anthropic)
|
|
84
|
+
- **Type:** Code-aware autonomous agent framework
|
|
85
|
+
- **Language:** Python + TypeScript
|
|
86
|
+
- **Model support:** Claude models only
|
|
87
|
+
- **Learning curve:** Intermediate (18 hook events, MCP, tool decorators)
|
|
88
|
+
- **Best for:** Developer tooling, code generation/review agents, autonomous coding assistants, MCP-heavy architectures, safety-critical applications
|
|
89
|
+
- **Avoid if:** Model flexibility needed, stable/mature API required, use case unrelated to code/tool-use
|
|
90
|
+
- **Strengths:** Deepest MCP integration, built-in filesystem/shell access, 18 lifecycle hooks, automatic context compaction, extended thinking, safety-first design
|
|
91
|
+
- **Weaknesses:** Claude-only vendor lock-in, newer/evolving API, smaller community
|
|
92
|
+
- **Eval concerns:** Tool use correctness, safety, code quality, instruction following
|
|
93
|
+
|
|
94
|
+
### AutoGen / AG2 / Microsoft Agent Framework
|
|
95
|
+
- **Type:** Multi-agent conversational framework
|
|
96
|
+
- **Language:** Python (AG2), Python + .NET (Microsoft Agent Framework)
|
|
97
|
+
- **Model support:** Model-agnostic
|
|
98
|
+
- **Learning curve:** Intermediate–Advanced
|
|
99
|
+
- **Best for:** Research applications, conversational problem-solving, code generation + execution loops, Microsoft/.NET shops
|
|
100
|
+
- **Avoid if:** You want ecosystem stability, deterministic workflows, or "safest long-term bet" (fragmentation risk)
|
|
101
|
+
- **Strengths:** Most sophisticated conversational agent patterns, code generation + execution loop, async event-driven (v0.4+), cross-language interop (Microsoft Agent Framework)
|
|
102
|
+
- **Weaknesses:** Ecosystem fragmented (AutoGen maintenance mode, AG2 fork, Microsoft Agent Framework preview) — genuine long-term risk
|
|
103
|
+
- **Eval concerns:** Conversation goal completion, consensus quality, code execution correctness
|
|
104
|
+
|
|
105
|
+
### Google ADK (Agent Development Kit)
|
|
106
|
+
- **Type:** Multi-agent orchestration framework
|
|
107
|
+
- **Language:** Python + Java
|
|
108
|
+
- **Model support:** Optimized for Gemini; supports other models via LiteLLM
|
|
109
|
+
- **Learning curve:** Intermediate (agent/tool/session model, familiar if you know LangGraph)
|
|
110
|
+
- **Best for:** Google Cloud / Vertex AI shops, multi-agent workflows needing built-in session management and memory, teams already committed to Gemini, agent pipelines that need Google Search / BigQuery tool integration
|
|
111
|
+
- **Avoid if:** Model flexibility is required beyond Gemini, no Google Cloud dependency acceptable, TypeScript-only stack
|
|
112
|
+
- **Strengths:** First-party Google support, built-in session/memory/artifact management, tight Vertex AI and Google Search integration, own eval framework (RAGAS-compatible), multi-agent by design (sequential, parallel, loop patterns), Java SDK for enterprise teams
|
|
113
|
+
- **Weaknesses:** Gemini vendor lock-in in practice, younger community than LangChain/LlamaIndex, less third-party integration depth
|
|
114
|
+
- **Eval concerns:** Multi-agent task decomposition, tool use correctness, session state consistency, goal completion rate
|
|
115
|
+
|
|
116
|
+
### Haystack
|
|
117
|
+
- **Type:** NLP pipeline framework
|
|
118
|
+
- **Language:** Python
|
|
119
|
+
- **Model support:** Model-agnostic
|
|
120
|
+
- **Learning curve:** Intermediate
|
|
121
|
+
- **Best for:** Explicit, auditable NLP pipelines, document processing with fine-grained control, enterprise search, regulated industries needing transparency
|
|
122
|
+
- **Avoid if:** Rapid prototyping, multi-agent workflows, or you want a large community
|
|
123
|
+
- **Strengths:** Explicit pipeline control, strong for structured data pipelines, good documentation
|
|
124
|
+
- **Weaknesses:** Smaller community, less agent-oriented than alternatives
|
|
125
|
+
- **Eval concerns:** Extraction accuracy, pipeline output validity, retrieval quality
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Decision Dimensions
|
|
130
|
+
|
|
131
|
+
### By System Type
|
|
132
|
+
|
|
133
|
+
| System Type | Primary Framework(s) | Key Eval Concerns |
|
|
134
|
+
|-------------|---------------------|-------------------|
|
|
135
|
+
| RAG / Knowledge Q&A | LlamaIndex, LangChain | Context faithfulness, hallucination, retrieval precision/recall |
|
|
136
|
+
| Multi-agent orchestration | CrewAI, LangGraph, Google ADK | Task decomposition, handoff quality, goal completion |
|
|
137
|
+
| Conversational assistants | OpenAI Agents SDK, Claude Agent SDK | Tone, safety, instruction following, escalation |
|
|
138
|
+
| Structured data extraction | LangChain, LlamaIndex | Schema compliance, extraction accuracy |
|
|
139
|
+
| Autonomous task agents | LangGraph, OpenAI Agents SDK | Safety guardrails, tool correctness, cost adherence |
|
|
140
|
+
| Content generation | Claude Agent SDK, OpenAI Agents SDK | Brand voice, factual accuracy, tone |
|
|
141
|
+
| Code automation | Claude Agent SDK | Code correctness, safety, test pass rate |
|
|
142
|
+
|
|
143
|
+
### By Team Size and Stage
|
|
144
|
+
|
|
145
|
+
| Context | Recommendation |
|
|
146
|
+
|---------|----------------|
|
|
147
|
+
| Solo dev, prototyping | OpenAI Agents SDK or CrewAI (fastest to running) |
|
|
148
|
+
| Solo dev, RAG | LlamaIndex (batteries included) |
|
|
149
|
+
| Team, production, stateful | LangGraph (best fault tolerance) |
|
|
150
|
+
| Team, evolving requirements | LangChain (broadest escape hatches) |
|
|
151
|
+
| Team, multi-agent | CrewAI (simplest role abstraction) |
|
|
152
|
+
| Enterprise, .NET | AutoGen AG2 / Microsoft Agent Framework |
|
|
153
|
+
|
|
154
|
+
### By Model Commitment
|
|
155
|
+
|
|
156
|
+
| Preference | Framework |
|
|
157
|
+
|-----------|-----------|
|
|
158
|
+
| OpenAI-only | OpenAI Agents SDK |
|
|
159
|
+
| Anthropic/Claude-only | Claude Agent SDK |
|
|
160
|
+
| Google/Gemini-committed | Google ADK |
|
|
161
|
+
| Model-agnostic (full flexibility) | LangChain, LlamaIndex, CrewAI, LangGraph, Haystack |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Anti-Patterns
|
|
166
|
+
|
|
167
|
+
1. **Using LangChain for simple chatbots** — Direct SDK call is less code, faster, and easier to debug
|
|
168
|
+
2. **Using CrewAI for complex stateful workflows** — Checkpointing gaps will bite you in production
|
|
169
|
+
3. **Using OpenAI Agents SDK with non-OpenAI models** — Loses the integration benefits you chose it for
|
|
170
|
+
4. **Using LlamaIndex as a multi-agent framework** — It can do agents, but that's not its strength
|
|
171
|
+
5. **Defaulting to LangChain without evaluating alternatives** — "Everyone uses it" ≠ right for your use case
|
|
172
|
+
6. **Starting a new project on AutoGen (not AG2)** — AutoGen is in maintenance mode; use AG2 or wait for Microsoft Agent Framework GA
|
|
173
|
+
7. **Choosing LangGraph for simple linear flows** — The graph overhead is not worth it; use LangChain chains instead
|
|
174
|
+
8. **Ignoring vendor lock-in** — Provider-native SDKs (OpenAI, Claude) trade flexibility for integration depth; decide consciously
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Combination Plays (Multi-Framework Stacks)
|
|
179
|
+
|
|
180
|
+
| Production Pattern | Stack |
|
|
181
|
+
|-------------------|-------|
|
|
182
|
+
| RAG with observability | LlamaIndex + LangSmith or Langfuse |
|
|
183
|
+
| Stateful agent with RAG | LangGraph + LlamaIndex |
|
|
184
|
+
| Multi-agent with tracing | CrewAI + Langfuse |
|
|
185
|
+
| OpenAI agents with evals | OpenAI Agents SDK + Promptfoo or Braintrust |
|
|
186
|
+
| Claude agents with MCP | Claude Agent SDK + LangSmith or Arize Phoenix |
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# SDD Artifact Types
|
|
2
|
+
|
|
3
|
+
This reference documents all artifact types in the SDD planning taxonomy. Each type has a defined
|
|
4
|
+
shape, lifecycle, location, and consumption mechanism. A well-formatted artifact that no workflow
|
|
5
|
+
reads is inert — the consumption mechanism is what gives an artifact meaning.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Artifacts
|
|
10
|
+
|
|
11
|
+
### ROADMAP.md
|
|
12
|
+
- **Shape**: Milestone + phase listing with goals and canonical refs
|
|
13
|
+
- **Lifecycle**: Created → Updated per milestone → Archived
|
|
14
|
+
- **Location**: `.planning/ROADMAP.md`
|
|
15
|
+
- **Consumed by**: `plan-phase`, `discuss-phase`, `execute-phase`, `progress`, `state` commands
|
|
16
|
+
|
|
17
|
+
### STATE.md
|
|
18
|
+
- **Shape**: Current position tracker (phase, plan, progress, decisions)
|
|
19
|
+
- **Lifecycle**: Continuously updated throughout the project
|
|
20
|
+
- **Location**: `.planning/STATE.md`
|
|
21
|
+
- **Consumed by**: All orchestration workflows; `resume-project`, `progress`, `next` commands
|
|
22
|
+
|
|
23
|
+
### REQUIREMENTS.md
|
|
24
|
+
- **Shape**: Numbered acceptance criteria with traceability table
|
|
25
|
+
- **Lifecycle**: Created at project start → Updated as requirements are satisfied
|
|
26
|
+
- **Location**: `.planning/REQUIREMENTS.md`
|
|
27
|
+
- **Consumed by**: `discuss-phase`, `plan-phase`, CONTEXT.md generation; executor marks complete
|
|
28
|
+
|
|
29
|
+
### CONTEXT.md (per-phase)
|
|
30
|
+
- **Shape**: 6-section format: domain, decisions, canonical_refs, code_context, specifics, deferred
|
|
31
|
+
- **Lifecycle**: Created before planning → Used during planning and execution → Superseded by next phase
|
|
32
|
+
- **Location**: `.planning/phases/XX-name/XX-CONTEXT.md`
|
|
33
|
+
- **Consumed by**: `plan-phase` (reads decisions), `execute-phase` (reads code_context and canonical_refs)
|
|
34
|
+
|
|
35
|
+
### PLAN.md (per-plan)
|
|
36
|
+
- **Shape**: Frontmatter + objective + tasks with types + success criteria + output spec
|
|
37
|
+
- **Lifecycle**: Created by planner → Executed → SUMMARY.md produced
|
|
38
|
+
- **Location**: `.planning/phases/XX-name/XX-YY-PLAN.md`
|
|
39
|
+
- **Consumed by**: `execute-phase` executor; task commits reference plan IDs
|
|
40
|
+
|
|
41
|
+
### SUMMARY.md (per-plan)
|
|
42
|
+
- **Shape**: Frontmatter with dependency graph + narrative + deviations + self-check
|
|
43
|
+
- **Lifecycle**: Created at plan completion → Read by subsequent plans in same phase
|
|
44
|
+
- **Location**: `.planning/phases/XX-name/XX-YY-SUMMARY.md`
|
|
45
|
+
- **Consumed by**: Orchestrator (progress), planner (context for future plans), `milestone-summary`
|
|
46
|
+
|
|
47
|
+
### HANDOFF.json / .continue-here.md
|
|
48
|
+
- **Shape**: Structured pause state (JSON machine-readable + Markdown human-readable)
|
|
49
|
+
- **Lifecycle**: Created on pause → Consumed on resume → Replaced by next pause
|
|
50
|
+
- **Location**: `.planning/HANDOFF.json` + `.planning/phases/XX-name/.continue-here.md` (or spike/deliberation path)
|
|
51
|
+
- **Consumed by**: `resume-project` workflow
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Extended Artifacts
|
|
56
|
+
|
|
57
|
+
### DISCUSSION-LOG.md (per-phase)
|
|
58
|
+
- **Shape**: Audit trail of assumptions and corrections from discuss-phase
|
|
59
|
+
- **Lifecycle**: Created at discussion time → Read-only audit record
|
|
60
|
+
- **Location**: `.planning/phases/XX-name/XX-DISCUSSION-LOG.md`
|
|
61
|
+
- **Consumed by**: Human review; not read by automated workflows
|
|
62
|
+
|
|
63
|
+
### USER-PROFILE.md
|
|
64
|
+
- **Shape**: Calibration tier and preferences profile
|
|
65
|
+
- **Lifecycle**: Created by `profile-user` → Updated as preferences are observed
|
|
66
|
+
- **Location**: `~/.claude/sdd/USER-PROFILE.md`
|
|
67
|
+
- **Consumed by**: `discuss-phase-assumptions` (calibration tier), `plan-phase`
|
|
68
|
+
|
|
69
|
+
### SPIKE.md / DESIGN.md (per-spike)
|
|
70
|
+
- **Shape**: Research question + methodology + findings + recommendation
|
|
71
|
+
- **Lifecycle**: Created → Investigated → Decided → Archived
|
|
72
|
+
- **Location**: `.planning/spikes/SPIKE-NNN/`
|
|
73
|
+
- **Consumed by**: Planner when spike is referenced; `pause-work` for spike context handoff
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Standing Reference Artifacts
|
|
78
|
+
|
|
79
|
+
### METHODOLOGY.md
|
|
80
|
+
|
|
81
|
+
- **Shape**: Standing reference — reusable interpretive frameworks (lenses) that apply across phases
|
|
82
|
+
- **Lifecycle**: Created → Active → Superseded (when a lens is replaced by a better one)
|
|
83
|
+
- **Location**: `.planning/METHODOLOGY.md` (project-scoped, not phase-scoped)
|
|
84
|
+
- **Contents**: Named lenses, each documenting:
|
|
85
|
+
- What it diagnoses (the class of problem it detects)
|
|
86
|
+
- What it recommends (the class of response it prescribes)
|
|
87
|
+
- When to apply (triggering conditions)
|
|
88
|
+
- Example: Bayesian updating, STRIDE threat modeling, Cost-of-delay prioritization
|
|
89
|
+
- **Consumed by**:
|
|
90
|
+
- `discuss-phase-assumptions` — reads METHODOLOGY.md (if it exists) and applies active lenses
|
|
91
|
+
to the current assumption analysis before surfacing findings to the user
|
|
92
|
+
- `plan-phase` — reads METHODOLOGY.md to inform methodology selection for each plan
|
|
93
|
+
- `pause-work` — includes METHODOLOGY.md in the Required Reading section of `.continue-here.md`
|
|
94
|
+
so resuming agents inherit the project's analytical orientation
|
|
95
|
+
|
|
96
|
+
**Why consumption matters:** A METHODOLOGY.md that no workflow reads is inert. The lenses only
|
|
97
|
+
take effect when an agent loads them into its reasoning context before analysis. This is why
|
|
98
|
+
both the discuss-phase-assumptions and pause-work workflows explicitly reference this file.
|
|
99
|
+
|
|
100
|
+
**Example lens entry:**
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
## Bayesian Updating
|
|
104
|
+
|
|
105
|
+
**Diagnoses:** Decisions made with stale priors — assumptions formed early that evidence has since
|
|
106
|
+
contradicted, but which remain embedded in the plan.
|
|
107
|
+
|
|
108
|
+
**Recommends:** Before confirming an assumption, ask: "What evidence would make me change this?"
|
|
109
|
+
If no evidence could change it, it's a belief, not an assumption. Flag for user review.
|
|
110
|
+
|
|
111
|
+
**Apply when:** Any assumption carries Confident label but was formed before recent architectural
|
|
112
|
+
changes, library upgrades, or scope corrections.
|
|
113
|
+
```
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Common Bug Patterns
|
|
2
|
+
|
|
3
|
+
Checklist of frequent bug patterns to scan before forming hypotheses. Ordered by frequency. Check these FIRST — they cover ~80% of bugs across all technology stacks.
|
|
4
|
+
|
|
5
|
+
<patterns>
|
|
6
|
+
|
|
7
|
+
## Null / Undefined Access
|
|
8
|
+
|
|
9
|
+
- **Null property access** — accessing property on `null` or `undefined`, missing null check or optional chaining
|
|
10
|
+
- **Missing return value** — function returns `undefined` instead of expected value, missing `return` statement or wrong branch
|
|
11
|
+
- **Destructuring null** — array/object destructuring on `null`/`undefined`, API returned error shape instead of data
|
|
12
|
+
- **Undefaulted optional** — optional parameter used without default, caller omitted argument
|
|
13
|
+
|
|
14
|
+
## Off-by-One / Boundary
|
|
15
|
+
|
|
16
|
+
- **Wrong loop bound** — loop starts at 1 instead of 0, or ends at `length` instead of `length - 1`
|
|
17
|
+
- **Fence-post error** — "N items need N-1 separators" miscounted
|
|
18
|
+
- **Inclusive vs exclusive** — range boundary `<` vs `<=`, slice/substring end index
|
|
19
|
+
- **Empty collection** — `.length === 0` falls through to logic assuming items exist
|
|
20
|
+
|
|
21
|
+
## Async / Timing
|
|
22
|
+
|
|
23
|
+
- **Missing await** — async function called without `await`, gets Promise object instead of resolved value
|
|
24
|
+
- **Race condition** — two async operations read/write same state without coordination
|
|
25
|
+
- **Stale closure** — callback captures old variable value, not current one
|
|
26
|
+
- **Initialization order** — event handler fires before setup complete
|
|
27
|
+
- **Leaked timer** — timeout/interval not cleaned up, fires after component/context destroyed
|
|
28
|
+
|
|
29
|
+
## State Management
|
|
30
|
+
|
|
31
|
+
- **Shared mutation** — object/array modified in place affects other consumers
|
|
32
|
+
- **Stale render** — state updated but UI not re-rendered, missing reactive trigger or wrong reference
|
|
33
|
+
- **Stale handler state** — closure captures state at bind time, not current value
|
|
34
|
+
- **Dual source of truth** — same data stored in two places, one gets out of sync
|
|
35
|
+
- **Invalid transition** — state machine allows transition missing guard condition
|
|
36
|
+
|
|
37
|
+
## Import / Module
|
|
38
|
+
|
|
39
|
+
- **Circular dependency** — module A imports B, B imports A, one gets `undefined`
|
|
40
|
+
- **Export mismatch** — default vs named export, `import X` vs `import { X }`
|
|
41
|
+
- **Wrong extension** — `.js` vs `.cjs` vs `.mjs`, `.ts` vs `.tsx`
|
|
42
|
+
- **Path case sensitivity** — works on Windows/macOS, fails on Linux
|
|
43
|
+
- **Missing extension** — ESM requires explicit file extensions in imports
|
|
44
|
+
|
|
45
|
+
## Type / Coercion
|
|
46
|
+
|
|
47
|
+
- **String vs number compare** — `"5" > "10"` is `true` (lexicographic), `5 > 10` is `false`
|
|
48
|
+
- **Implicit coercion** — `==` instead of `===`, truthy/falsy surprises (`0`, `""`, `[]`)
|
|
49
|
+
- **Numeric precision** — `0.1 + 0.2 !== 0.3`, large integers lose precision
|
|
50
|
+
- **Falsy valid value** — value is `0` or `""` which is valid but falsy
|
|
51
|
+
|
|
52
|
+
## Environment / Config
|
|
53
|
+
|
|
54
|
+
- **Missing env var** — environment variable missing or wrong value in dev vs prod vs CI
|
|
55
|
+
- **Hardcoded path** — works on one machine, fails on another
|
|
56
|
+
- **Port conflict** — port already in use, previous process still running
|
|
57
|
+
- **Permission denied** — different user/group in deployment
|
|
58
|
+
- **Missing dependency** — not in package.json or not installed
|
|
59
|
+
|
|
60
|
+
## Data Shape / API Contract
|
|
61
|
+
|
|
62
|
+
- **Changed response shape** — backend updated, frontend expects old format
|
|
63
|
+
- **Wrong container type** — array where object expected or vice versa, `data` vs `data.results` vs `data[0]`
|
|
64
|
+
- **Missing required field** — required field omitted in payload, backend returns validation error
|
|
65
|
+
- **Date format mismatch** — ISO string vs timestamp vs locale string
|
|
66
|
+
- **Encoding mismatch** — UTF-8 vs Latin-1, URL encoding, HTML entities
|
|
67
|
+
|
|
68
|
+
## Regex / String
|
|
69
|
+
|
|
70
|
+
- **Sticky lastIndex** — regex `g` flag with `.test()` then `.exec()`, `lastIndex` not reset between calls
|
|
71
|
+
- **Missing escape** — `.` matches any char, `$` is special, backslash needs doubling
|
|
72
|
+
- **Greedy overmatch** — `.*` eats through delimiters, need `.*?`
|
|
73
|
+
- **Wrong quote type** — string interpolation needs backticks for template literals
|
|
74
|
+
|
|
75
|
+
## Error Handling
|
|
76
|
+
|
|
77
|
+
- **Swallowed error** — empty `catch {}` or logs but doesn't rethrow/handle
|
|
78
|
+
- **Wrong error type** — catches base `Error` when specific type needed
|
|
79
|
+
- **Error in handler** — cleanup code throws, masking original error
|
|
80
|
+
- **Unhandled rejection** — missing `.catch()` or try/catch around `await`
|
|
81
|
+
|
|
82
|
+
## Scope / Closure
|
|
83
|
+
|
|
84
|
+
- **Variable shadowing** — inner scope declares same name, hides outer variable
|
|
85
|
+
- **Loop variable capture** — all closures share same `var i`, use `let` or bind
|
|
86
|
+
- **Lost this binding** — callback loses context, need `.bind()` or arrow function
|
|
87
|
+
- **Scope confusion** — `var` hoisted to function, `let`/`const` block-scoped
|
|
88
|
+
|
|
89
|
+
</patterns>
|
|
90
|
+
|
|
91
|
+
<usage>
|
|
92
|
+
|
|
93
|
+
## How to Use This Checklist
|
|
94
|
+
|
|
95
|
+
1. **Before forming any hypothesis**, scan the relevant categories based on the symptom
|
|
96
|
+
2. **Match symptom to pattern** — if the bug involves "undefined is not an object", check Null/Undefined first
|
|
97
|
+
3. **Each checked pattern is a hypothesis candidate** — verify or eliminate with evidence
|
|
98
|
+
4. **If no pattern matches**, proceed to open-ended investigation
|
|
99
|
+
|
|
100
|
+
### Symptom-to-Category Quick Map
|
|
101
|
+
|
|
102
|
+
| Symptom | Check First |
|
|
103
|
+
|---------|------------|
|
|
104
|
+
| "Cannot read property of undefined/null" | Null/Undefined Access |
|
|
105
|
+
| "X is not a function" | Import/Module, Type/Coercion |
|
|
106
|
+
| Works sometimes, fails sometimes | Async/Timing, State Management |
|
|
107
|
+
| Works locally, fails in CI/prod | Environment/Config |
|
|
108
|
+
| Wrong data displayed | Data Shape, State Management |
|
|
109
|
+
| Off by one item / missing last item | Off-by-One/Boundary |
|
|
110
|
+
| "Unexpected token" / parse error | Data Shape, Type/Coercion |
|
|
111
|
+
| Memory leak / growing resource usage | Async/Timing (cleanup), Scope/Closure |
|
|
112
|
+
| Infinite loop / max call stack | State Management, Async/Timing |
|
|
113
|
+
|
|
114
|
+
</usage>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Context Budget Rules
|
|
2
|
+
|
|
3
|
+
Standard rules for keeping orchestrator context lean. Reference this in workflows that spawn subagents or read significant content.
|
|
4
|
+
|
|
5
|
+
See also: `references/universal-anti-patterns.md` for the complete set of universal rules.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Universal Rules
|
|
10
|
+
|
|
11
|
+
Every workflow that spawns agents or reads significant content must follow these rules:
|
|
12
|
+
|
|
13
|
+
1. **Never** read agent definition files (`agents/*.md`) -- `subagent_type` auto-loads them
|
|
14
|
+
2. **Never** inline large files into subagent prompts -- tell agents to read files from disk instead
|
|
15
|
+
3. **Read depth scales with context window** -- check `context_window_tokens` in `.planning/config.json`:
|
|
16
|
+
- At < 500000 tokens (default 200k): read only frontmatter, status fields, or summaries. Never read full SUMMARY.md, VERIFICATION.md, or RESEARCH.md bodies.
|
|
17
|
+
- At >= 500000 tokens (1M model): MAY read full subagent output bodies when the content is needed for inline presentation or decision-making. Still avoid unnecessary reads.
|
|
18
|
+
4. **Delegate** heavy work to subagents -- the orchestrator routes, it doesn't execute
|
|
19
|
+
5. **Proactive warning**: If you've already consumed significant context (large file reads, multiple subagent results), warn the user: "Context budget is getting heavy. Consider checkpointing progress."
|
|
20
|
+
|
|
21
|
+
## Read Depth by Context Window
|
|
22
|
+
|
|
23
|
+
| Context Window | Subagent Output Reading | SUMMARY.md | VERIFICATION.md | PLAN.md (other phases) |
|
|
24
|
+
|---------------|------------------------|------------|-----------------|------------------------|
|
|
25
|
+
| < 500k (200k model) | Frontmatter only | Frontmatter only | Frontmatter only | Current phase only |
|
|
26
|
+
| >= 500k (1M model) | Full body permitted | Full body permitted | Full body permitted | Current phase only |
|
|
27
|
+
|
|
28
|
+
**How to check:** Read `.planning/config.json` and inspect `context_window_tokens`. If the field is absent, treat as 200k (conservative default).
|
|
29
|
+
|
|
30
|
+
## Context Degradation Tiers
|
|
31
|
+
|
|
32
|
+
Monitor context usage and adjust behavior accordingly:
|
|
33
|
+
|
|
34
|
+
| Tier | Usage | Behavior |
|
|
35
|
+
|------|-------|----------|
|
|
36
|
+
| PEAK | 0-30% | Full operations. Read bodies, spawn multiple agents, inline results. |
|
|
37
|
+
| GOOD | 30-50% | Normal operations. Prefer frontmatter reads, delegate aggressively. |
|
|
38
|
+
| DEGRADING | 50-70% | Economize. Frontmatter-only reads, minimal inlining, warn user about budget. |
|
|
39
|
+
| POOR | 70%+ | Emergency mode. Checkpoint progress immediately. No new reads unless critical. |
|
|
40
|
+
|
|
41
|
+
## Context Degradation Warning Signs
|
|
42
|
+
|
|
43
|
+
Quality degrades gradually before panic thresholds fire. Watch for these early signals:
|
|
44
|
+
|
|
45
|
+
- **Silent partial completion** -- agent claims task is done but implementation is incomplete. Self-check catches file existence but not semantic completeness. Always verify agent output meets the plan's must_haves, not just that files exist.
|
|
46
|
+
- **Increasing vagueness** -- agent starts using phrases like "appropriate handling" or "standard patterns" instead of specific code. This indicates context pressure even before budget warnings fire.
|
|
47
|
+
- **Skipped steps** -- agent omits protocol steps it would normally follow. If an agent's success criteria has 8 items but it only reports 5, suspect context pressure.
|
|
48
|
+
|
|
49
|
+
When delegating to agents, the orchestrator cannot verify semantic correctness of agent output -- only structural completeness. This is a fundamental limitation. Mitigate with must_haves.truths and spot-check verification.
|
|
@@ -11,9 +11,9 @@ Standard format for presenting next steps after completing a command or workflow
|
|
|
11
11
|
|
|
12
12
|
**{identifier}: {name}** — {one-line description}
|
|
13
13
|
|
|
14
|
-
`
|
|
14
|
+
`/clear` then:
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
`{command to copy-paste}`
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -29,7 +29,7 @@ Standard format for presenting next steps after completing a command or workflow
|
|
|
29
29
|
1. **Always show what it is** — name + description, never just a command path
|
|
30
30
|
2. **Pull context from source** — ROADMAP.md for phases, PLAN.md `<objective>` for plans
|
|
31
31
|
3. **Command in inline code** — backticks, easy to copy-paste, renders as clickable link
|
|
32
|
-
4. **`/clear`
|
|
32
|
+
4. **`/clear` first** — always show `/clear` before the command so users run it in the correct order
|
|
33
33
|
5. **"Also available" not "Other options"** — sounds more app-like
|
|
34
34
|
6. **Visual separators** — `---` above and below to make it stand out
|
|
35
35
|
|
|
@@ -44,15 +44,15 @@ Standard format for presenting next steps after completing a command or workflow
|
|
|
44
44
|
|
|
45
45
|
**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
|
|
46
46
|
|
|
47
|
-
`/
|
|
47
|
+
`/clear` then:
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
`/sdd-execute-phase 2`
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
53
|
**Also available:**
|
|
54
54
|
- Review plan before executing
|
|
55
|
-
- `/sdd
|
|
55
|
+
- `/sdd-list-phase-assumptions 2` — check assumptions
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
```
|
|
@@ -69,9 +69,9 @@ Add note that this is the last plan and what comes after:
|
|
|
69
69
|
**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
|
|
70
70
|
<sub>Final plan in Phase 2</sub>
|
|
71
71
|
|
|
72
|
-
`/
|
|
72
|
+
`/clear` then:
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
`/sdd-execute-phase 2`
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
@@ -91,15 +91,15 @@ Add note that this is the last plan and what comes after:
|
|
|
91
91
|
|
|
92
92
|
**Phase 2: Authentication** — JWT login flow with refresh tokens
|
|
93
93
|
|
|
94
|
-
`/
|
|
94
|
+
`/clear` then:
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
`/sdd-plan-phase 2`
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
100
100
|
**Also available:**
|
|
101
|
-
- `/sdd
|
|
102
|
-
- `/sdd
|
|
101
|
+
- `/sdd-discuss-phase 2` — gather context first
|
|
102
|
+
- `/sdd-research-phase 2` — investigate unknowns
|
|
103
103
|
- Review roadmap
|
|
104
104
|
|
|
105
105
|
---
|
|
@@ -120,15 +120,15 @@ Show completion status before next action:
|
|
|
120
120
|
|
|
121
121
|
**Phase 3: Core Features** — User dashboard, settings, and data export
|
|
122
122
|
|
|
123
|
-
`/
|
|
123
|
+
`/clear` then:
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
`/sdd-plan-phase 3`
|
|
126
126
|
|
|
127
127
|
---
|
|
128
128
|
|
|
129
129
|
**Also available:**
|
|
130
|
-
- `/sdd
|
|
131
|
-
- `/sdd
|
|
130
|
+
- `/sdd-discuss-phase 3` — gather context first
|
|
131
|
+
- `/sdd-research-phase 3` — investigate unknowns
|
|
132
132
|
- Review what Phase 2 built
|
|
133
133
|
|
|
134
134
|
---
|
|
@@ -145,13 +145,13 @@ When there's no clear primary action:
|
|
|
145
145
|
|
|
146
146
|
**Phase 3: Core Features** — User dashboard, settings, and data export
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
`/clear` then one of:
|
|
149
149
|
|
|
150
|
-
**To
|
|
150
|
+
**To plan directly:** `/sdd-plan-phase 3`
|
|
151
151
|
|
|
152
|
-
**To
|
|
152
|
+
**To discuss context first:** `/sdd-discuss-phase 3`
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
**To research unknowns:** `/sdd-research-phase 3`
|
|
155
155
|
|
|
156
156
|
---
|
|
157
157
|
```
|
|
@@ -169,9 +169,9 @@ All 4 phases shipped
|
|
|
169
169
|
|
|
170
170
|
**Start v1.1** — questioning → research → requirements → roadmap
|
|
171
171
|
|
|
172
|
-
`/
|
|
172
|
+
`/clear` then:
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
`/sdd-new-milestone`
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
```
|
|
@@ -214,7 +214,7 @@ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with slidi
|
|
|
214
214
|
## To Continue
|
|
215
215
|
|
|
216
216
|
Run `/clear`, then paste:
|
|
217
|
-
/sdd
|
|
217
|
+
/sdd-execute-phase 2
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
User has no idea what 02-03 is about.
|
|
@@ -222,7 +222,7 @@ User has no idea what 02-03 is about.
|
|
|
222
222
|
### Don't: Missing /clear explanation
|
|
223
223
|
|
|
224
224
|
```
|
|
225
|
-
`/sdd
|
|
225
|
+
`/sdd-plan-phase 3`
|
|
226
226
|
|
|
227
227
|
Run /clear first.
|
|
228
228
|
```
|
|
@@ -242,7 +242,7 @@ Sounds like an afterthought. Use "Also available:" instead.
|
|
|
242
242
|
|
|
243
243
|
```
|
|
244
244
|
```
|
|
245
|
-
/sdd
|
|
245
|
+
/sdd-plan-phase 3
|
|
246
246
|
```
|
|
247
247
|
```
|
|
248
248
|
|