@codename_inc/spectre 3.7.0 → 4.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.
- package/README.md +3 -4
- package/package.json +3 -2
- package/plugins/spectre/.claude-plugin/plugin.json +1 -1
- package/plugins/spectre/bin/spectre-register +5 -0
- package/plugins/spectre/hooks/hooks.json +3 -14
- package/plugins/spectre/hooks/scripts/bootstrap.mjs +98 -0
- package/plugins/spectre/hooks/scripts/handoff-resume.mjs +404 -0
- package/plugins/spectre/hooks/scripts/lib.mjs +82 -0
- package/plugins/spectre/hooks/scripts/load-knowledge.mjs +189 -0
- package/plugins/spectre/hooks/scripts/register_learning.mjs +264 -0
- package/plugins/spectre/hooks/scripts/{test_bootstrap.cjs → test_bootstrap.mjs} +12 -7
- package/plugins/spectre/hooks/scripts/{test_handoff-resume.cjs → test_handoff-resume.mjs} +13 -11
- package/plugins/spectre/hooks/scripts/{test_load-knowledge.cjs → test_load-knowledge.mjs} +103 -22
- package/plugins/spectre/hooks/scripts/test_register-learning.mjs +335 -0
- package/plugins/spectre/skills/apply/SKILL.md +87 -0
- package/plugins/spectre/{commands/architecture_review.md → skills/architecture_review/SKILL.md} +9 -0
- package/plugins/spectre/{commands/clean.md → skills/clean/SKILL.md} +9 -0
- package/plugins/spectre/{commands/code_review.md → skills/code_review/SKILL.md} +9 -0
- package/plugins/spectre/{commands/create_plan.md → skills/create_plan/SKILL.md} +9 -0
- package/plugins/spectre/{commands/create_tasks.md → skills/create_tasks/SKILL.md} +9 -0
- package/plugins/spectre/{commands/create_test_guide.md → skills/create_test_guide/SKILL.md} +9 -0
- package/plugins/spectre/{commands/evaluate.md → skills/evaluate/SKILL.md} +11 -2
- package/plugins/spectre/{commands/execute.md → skills/execute/SKILL.md} +12 -3
- package/plugins/spectre/{commands/fix.md → skills/fix/SKILL.md} +9 -0
- package/plugins/spectre/{commands/forget.md → skills/forget/SKILL.md} +9 -0
- package/plugins/spectre/skills/{spectre-guide → guide}/SKILL.md +2 -1
- package/plugins/spectre/{commands/handoff.md → skills/handoff/SKILL.md} +9 -0
- package/plugins/spectre/{commands/kickoff.md → skills/kickoff/SKILL.md} +9 -0
- package/plugins/spectre/skills/{spectre-learn → learn}/SKILL.md +19 -59
- package/plugins/spectre/skills/learn/references/recall-template.md +34 -0
- package/plugins/spectre/{commands/plan.md → skills/plan/SKILL.md} +66 -25
- package/plugins/spectre/{commands/plan_review.md → skills/plan_review/SKILL.md} +9 -0
- package/plugins/spectre/{commands/quick_dev.md → skills/quick_dev/SKILL.md} +9 -0
- package/plugins/spectre/{commands/rebase.md → skills/rebase/SKILL.md} +9 -0
- package/plugins/spectre/skills/recall/SKILL.md +17 -0
- package/plugins/spectre/{commands/research.md → skills/research/SKILL.md} +9 -0
- package/plugins/spectre/{commands/scope.md → skills/scope/SKILL.md} +9 -0
- package/plugins/spectre/{commands/ship.md → skills/ship/SKILL.md} +9 -0
- package/plugins/spectre/{commands/sweep.md → skills/sweep/SKILL.md} +9 -0
- package/plugins/spectre/skills/tdd/SKILL.md +111 -0
- package/plugins/spectre/{commands/test.md → skills/test/SKILL.md} +9 -0
- package/plugins/spectre/{commands/ux_spec.md → skills/ux_spec/SKILL.md} +9 -0
- package/plugins/spectre/{commands/validate.md → skills/validate/SKILL.md} +9 -0
- package/plugins/spectre-codex/agents/analyst.toml +117 -0
- package/plugins/spectre-codex/agents/dev.toml +65 -0
- package/plugins/spectre-codex/agents/finder.toml +101 -0
- package/plugins/spectre-codex/agents/patterns.toml +203 -0
- package/plugins/spectre-codex/agents/reviewer.toml +123 -0
- package/plugins/spectre-codex/agents/sync.toml +146 -0
- package/plugins/spectre-codex/agents/tester.toml +205 -0
- package/plugins/spectre-codex/agents/web-research.toml +104 -0
- package/plugins/spectre-codex/hooks/hooks.json +23 -0
- package/plugins/{spectre/hooks/scripts/bootstrap.cjs → spectre-codex/hooks/scripts/bootstrap.mjs} +15 -16
- package/plugins/{spectre/hooks/scripts/handoff-resume.cjs → spectre-codex/hooks/scripts/handoff-resume.mjs} +21 -27
- package/plugins/{spectre/hooks/scripts/lib.cjs → spectre-codex/hooks/scripts/lib.mjs} +3 -4
- package/plugins/spectre-codex/hooks/scripts/load-knowledge.mjs +189 -0
- package/plugins/spectre-codex/hooks/scripts/register_learning.mjs +264 -0
- package/plugins/spectre-codex/skills/apply/SKILL.md +87 -0
- package/plugins/spectre-codex/skills/architecture_review/SKILL.md +129 -0
- package/plugins/spectre-codex/skills/clean/SKILL.md +322 -0
- package/plugins/spectre-codex/skills/code_review/SKILL.md +417 -0
- package/plugins/spectre-codex/skills/create_plan/SKILL.md +126 -0
- package/plugins/spectre-codex/skills/create_tasks/SKILL.md +383 -0
- package/plugins/spectre-codex/skills/create_test_guide/SKILL.md +129 -0
- package/plugins/spectre-codex/skills/evaluate/SKILL.md +59 -0
- package/plugins/spectre-codex/skills/execute/SKILL.md +96 -0
- package/plugins/spectre-codex/skills/fix/SKILL.md +70 -0
- package/plugins/spectre-codex/skills/forget/SKILL.md +67 -0
- package/plugins/spectre-codex/skills/guide/SKILL.md +359 -0
- package/plugins/spectre-codex/skills/handoff/SKILL.md +170 -0
- package/plugins/spectre-codex/skills/kickoff/SKILL.md +124 -0
- package/plugins/spectre-codex/skills/learn/SKILL.md +595 -0
- package/plugins/{spectre/skills/spectre-learn → spectre-codex/skills/learn}/references/recall-template.md +4 -1
- package/plugins/spectre-codex/skills/plan/SKILL.md +211 -0
- package/plugins/spectre-codex/skills/plan_review/SKILL.md +42 -0
- package/plugins/spectre-codex/skills/quick_dev/SKILL.md +110 -0
- package/plugins/spectre-codex/skills/rebase/SKILL.md +82 -0
- package/plugins/spectre-codex/skills/recall/SKILL.md +17 -0
- package/plugins/spectre-codex/skills/research/SKILL.md +168 -0
- package/plugins/spectre-codex/skills/scope/SKILL.md +128 -0
- package/plugins/spectre-codex/skills/ship/SKILL.md +181 -0
- package/plugins/spectre-codex/skills/sweep/SKILL.md +91 -0
- package/plugins/{spectre/skills/spectre-tdd → spectre-codex/skills/tdd}/SKILL.md +1 -1
- package/plugins/spectre-codex/skills/test/SKILL.md +389 -0
- package/plugins/spectre-codex/skills/ux_spec/SKILL.md +100 -0
- package/plugins/spectre-codex/skills/validate/SKILL.md +352 -0
- package/src/config.test.js +6 -5
- package/src/install.test.js +100 -11
- package/src/lib/config.js +107 -54
- package/src/lib/constants.js +17 -23
- package/src/lib/doctor.js +19 -22
- package/src/lib/install.js +98 -313
- package/src/lib/knowledge.js +7 -37
- package/src/lib/paths.js +0 -12
- package/src/pack.test.js +87 -0
- package/plugins/spectre/commands/learn.md +0 -15
- package/plugins/spectre/commands/recall.md +0 -5
- package/plugins/spectre/hooks/scripts/load-knowledge.cjs +0 -120
- package/plugins/spectre/hooks/scripts/precompact-warning.cjs +0 -19
- package/plugins/spectre/hooks/scripts/register_learning.cjs +0 -144
- package/plugins/spectre/hooks/scripts/test_register-learning.cjs +0 -146
- package/plugins/spectre/skills/spectre-apply/SKILL.md +0 -189
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "plan"
|
|
3
|
+
description: "👻 | Unified planning entry point - researches, assesses complexity, routes to workflow - primary agent"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# plan
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
# plan: Intelligent Planning Router
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
- **What** — Research codebase, assess complexity, route to appropriate workflow (direct tasks or plan-first)
|
|
18
|
+
- **Outcome** — Detailed task breakdown ready for execution
|
|
19
|
+
|
|
20
|
+
## ARGUMENTS Input
|
|
21
|
+
|
|
22
|
+
<ARGUMENTS> $ARGUMENTS </ARGUMENTS>
|
|
23
|
+
|
|
24
|
+
## MANDATORY COMPLIANCE RULES
|
|
25
|
+
|
|
26
|
+
> **⚠️ NON-NEGOTIABLE**: This workflow MUST invoke nested workflows via the Skill tool. Failure to invoke `Skill(create_plan)` and `Skill(create_tasks)` (Claude slash route: `create_plan` and `create_tasks`) is a critical error. Do NOT summarize, describe, or skip these workflows. INVOKE THEM.
|
|
27
|
+
|
|
28
|
+
**After ANY user conversation or questions:**
|
|
29
|
+
|
|
30
|
+
1. Re-read this prompt from Step 4
|
|
31
|
+
2. Determine where you are in the workflow
|
|
32
|
+
3. Execute the next required Skill invocation
|
|
33
|
+
|
|
34
|
+
**You MUST call these skills (not describe them):**
|
|
35
|
+
|
|
36
|
+
- Use the **Skill** tool with `skill: "spectre-create_plan"` and `args: "{path} --depth {tier}"` — generates plan.md
|
|
37
|
+
- Use the **Skill** tool with `skill: "spectre-create_tasks"` and `args: "{path}"` — generates tasks.md
|
|
38
|
+
|
|
39
|
+
## Instructions
|
|
40
|
+
|
|
41
|
+
- Research before routing; present architectural options for user buy-in
|
|
42
|
+
- Route based on hard-stops and clarity, not point-scoring
|
|
43
|
+
- Never overwrite existing `tasks.md` or `plan.md` — use scoped names
|
|
44
|
+
|
|
45
|
+
## Step 1 - Research Codebase
|
|
46
|
+
|
|
47
|
+
- **Action** — DetermineOutputDir:
|
|
48
|
+
|
|
49
|
+
- `OUT_DIR=docs/tasks/{branch_name}` (or user-specified)
|
|
50
|
+
- `mkdir -p "${OUT_DIR}"`
|
|
51
|
+
|
|
52
|
+
- **Action** — ScanExistingContext: Read all existing artifacts in `{OUT_DIR}/ (if you haven’t already)` and assess coverage across 4 dimensions.
|
|
53
|
+
|
|
54
|
+
Scan for: `task_context.md`, `specs/plan.md`, `concepts/scope.md`, `research/*.md`
|
|
55
|
+
|
|
56
|
+
| Dimension | Covered if artifact contains... | Covered by |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| **File locations** | Specific file paths relevant to this feature, entry points, config files | `@finder` |
|
|
59
|
+
| **Code understanding** | Data flow analysis, dependency tracing, how current code works with file:line refs | `@analyst` |
|
|
60
|
+
| **Codebase patterns** | Similar implementations found in codebase, reusable components, naming/style conventions | `@patterns` |
|
|
61
|
+
| **External research** | Best practices, libraries/frameworks, prior art, common pitfalls with source links | `@web-research` |
|
|
62
|
+
|
|
63
|
+
For each dimension, assess: **covered** (artifact has substantive findings for this feature) or **gap** (missing, superficial, or about a different feature).
|
|
64
|
+
|
|
65
|
+
- **Action** — DispatchResearch: Spawn agents **only for dimensions marked as gaps**. Skip agents whose dimensions are already covered. Each prompt must include the feature/problem description from ARGUMENTS so the agent has full context.
|
|
66
|
+
|
|
67
|
+
- **If all 4 covered** → skip to SaveResearch (merge existing findings into task_context.md if scattered across files)
|
|
68
|
+
|
|
69
|
+
- **If gaps exist** → spawn only the needed agents in parallel:
|
|
70
|
+
|
|
71
|
+
- `@finder` *(if File locations = gap)* — "Find all files, components, entry points, routes, and configuration related to \[feature/problem\]. Include: (1) files that would need to be modified or extended, (2) entry points where this feature connects to the system (routes, handlers, event listeners, CLI commands), (3) configuration files, schemas, or migrations that may be affected, (4) test files covering the affected areas. Return file paths organized by relevance."
|
|
72
|
+
|
|
73
|
+
- `@analyst` *(if Code understanding = gap)* — "Analyze how the code paths related to \[feature/problem\] work end-to-end. Trace: (1) data flow from input through processing to storage and output, (2) key dependencies and how components interact, (3) state management patterns and data access methods in the affected areas, (4) error handling and edge cases in the current implementation. Return findings with specific file:line references."
|
|
74
|
+
|
|
75
|
+
- `@patterns` *(if Codebase patterns = gap)* — "Find existing implementations in this codebase that are similar to \[feature/problem\] and could serve as a reference. Look for: (1) analogous features already built — how were they structured?, (2) reusable components, utilities, or abstractions we should leverage, (3) conventions for naming, file organization, and code style in this area, (4) testing patterns used for similar features. Return concrete code examples with file:line references."
|
|
76
|
+
|
|
77
|
+
- `@web-research` *(if External research = gap)* — "Research best practices, proven patterns, relevant libraries/frameworks, and how other projects solve \[feature/problem\]. Focus on: (1) industry best practices and common pitfalls, (2) libraries or frameworks that simplify this work, (3) how well-known open-source projects approach similar problems, (4) architectural patterns recommended for this type of feature. Return findings with source links."
|
|
78
|
+
|
|
79
|
+
- **Wait** for all dispatched agents; read identified files
|
|
80
|
+
|
|
81
|
+
- **Action** — SaveResearch: Merge all findings (existing artifacts + new agent results) into `{OUT_DIR}/task_context.md` with sections: Architecture Patterns, Dependencies, Implementation Approaches, Impact Summary, and External Research (best practices, recommended libraries/frameworks, prior art, common pitfalls)
|
|
82
|
+
|
|
83
|
+
## Step 2 - Assess Complexity
|
|
84
|
+
|
|
85
|
+
Use research findings from Step 1 to determine appropriate planning depth.
|
|
86
|
+
|
|
87
|
+
- **Action** — AssessFromResearch: Score complexity signals from research:
|
|
88
|
+
|
|
89
|
+
| Signal | Source | Assessment |
|
|
90
|
+
| --- | --- | --- |
|
|
91
|
+
| Files impacted | @finder | 1-3 files = Low, 4-8 = Med, 9+ = High |
|
|
92
|
+
| Pattern match | @patterns | Clear existing pattern = Low, Adapt pattern = Med, New pattern = High |
|
|
93
|
+
| Components crossed | @analyst | 1 component = Low, 2-3 = Med, 4+ = High |
|
|
94
|
+
| Data model changes | Research findings | None = Low, Modify existing = Med, New models/schema = High |
|
|
95
|
+
| Integration points | Research findings | Internal only = Low, 1-2 external = Med, 3+ external = High |
|
|
96
|
+
| External complexity | @web-research | Well-documented with libraries = Low, Some prior art = Med, Novel/emerging = High |
|
|
97
|
+
|
|
98
|
+
- **Action** — CheckHardStops: Any true = automatic COMPREHENSIVE | db_schema_destructive | new_service_or_component | auth_or_pii_change | | payment_billing_logic | public_api_change | caching_consistency | slo_sla_risk |
|
|
99
|
+
|
|
100
|
+
- **Action** — DetermineTier:
|
|
101
|
+
|
|
102
|
+
- **LIGHT**: All/most Low signals, single component, clear pattern match, no hard-stops
|
|
103
|
+
- **STANDARD**: Mix of Low/Med signals, multi-file but contained scope, no hard-stops
|
|
104
|
+
- **COMPREHENSIVE**: Any High signal, multiple Med signals, or any hard-stop triggered
|
|
105
|
+
|
|
106
|
+
- **Action** — LogTier: Note the assessed tier in your response for transparency, then proceed immediately to the next step. Do NOT ask for confirmation.
|
|
107
|
+
|
|
108
|
+
> **CHECKPOINT**: After determining tier, proceed IMMEDIATELY to the next step — Step 3 (High-Level Design) for STANDARD/COMPREHENSIVE, or Step 4 (Route) for LIGHT. Do NOT end turn here. Do NOT ask user to confirm the tier.
|
|
109
|
+
|
|
110
|
+
## Step 3 - High-Level Design
|
|
111
|
+
|
|
112
|
+
**SKIP IF LIGHT** — proceed directly to Step 4.
|
|
113
|
+
|
|
114
|
+
Goal: align on the *shape* of the solution before generating a full plan. This catches misalignments early and gives the user a chance to redirect before reading a long plan doc.
|
|
115
|
+
|
|
116
|
+
- **Action** — PresentDesign: Synthesize research from Step 1 into a single proposed approach with open questions. Present inline (do not write a separate design file).
|
|
117
|
+
|
|
118
|
+
**Format**:
|
|
119
|
+
|
|
120
|
+
> Here's the high-level design I'd take. Scan the shape, then resolve any open questions or push back on the approach.
|
|
121
|
+
>
|
|
122
|
+
> **Approach**: [1-2 paragraph summary of the solution shape — what changes structurally, not file-by-file]
|
|
123
|
+
>
|
|
124
|
+
> **Key components touched**:
|
|
125
|
+
> - `path/file.ts` — [what shifts and why]
|
|
126
|
+
> - `path/other.ts` — [what shifts and why]
|
|
127
|
+
>
|
|
128
|
+
> **Key decisions**:
|
|
129
|
+
> - [decision] — [rationale; alternative considered]
|
|
130
|
+
> - [decision] — [rationale; alternative considered]
|
|
131
|
+
>
|
|
132
|
+
> **Open questions** (with default assumption):
|
|
133
|
+
> 1. [question] — *default: [assumption]*
|
|
134
|
+
> 2. [question] — *default: [assumption]*
|
|
135
|
+
>
|
|
136
|
+
> Reply with answers, edits to the approach, or 'looks good' to continue.
|
|
137
|
+
|
|
138
|
+
**CRITICAL**:
|
|
139
|
+
- **Single proposed approach**, not a menu. If a true fork exists, surface it as an open question with your recommendation — not as parallel options.
|
|
140
|
+
- Stay at the *shape* level: components, key decisions, structural changes. Defer file-by-file detail to `create_plan`.
|
|
141
|
+
- Open questions should be specific and answerable; pair each with a default assumption so the user can skip if the default is fine.
|
|
142
|
+
|
|
143
|
+
- **Action** — IterateDesign: If the user replies with answers, edits, or pushback, update the design and re-present. Loop until user says 'looks good' (or equivalent).
|
|
144
|
+
|
|
145
|
+
- **Wait** — User signals alignment.
|
|
146
|
+
|
|
147
|
+
- **Action** — PersistDesign: Append a "Selected Design" section to `{OUT_DIR}/task_context.md` capturing the agreed approach, key decisions, and resolved questions. This is what `create_plan` consumes.
|
|
148
|
+
|
|
149
|
+
> **CHECKPOINT**: After alignment, proceed IMMEDIATELY to Step 4. The ONLY valid next action is invoking a Skill.
|
|
150
|
+
|
|
151
|
+
## Step 4 - Route to Workflow
|
|
152
|
+
|
|
153
|
+
### ⛔ MANDATORY SKILL INVOCATION ⛔
|
|
154
|
+
|
|
155
|
+
```plaintext
|
|
156
|
+
┌────────────────────────────────────────────────────────────────────────┐
|
|
157
|
+
│ YOU MUST USE THE SKILL TOOL TO INVOKE THESE COMMANDS │
|
|
158
|
+
│ │
|
|
159
|
+
│ ❌ WRONG: "I'll now create the plan..." │
|
|
160
|
+
│ ❌ WRONG: "The next step would be to run create_plan" │
|
|
161
|
+
│ ❌ WRONG: Ending turn without invoking Skill tool │
|
|
162
|
+
│ │
|
|
163
|
+
│ ✅ CORRECT: Skill tool with skill: "spectre-create_plan", args: "..." │
|
|
164
|
+
│ ✅ CORRECT: Skill tool with skill: "spectre-create_tasks", args: "..."│
|
|
165
|
+
└────────────────────────────────────────────────────────────────────────┘
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**DO NOT:**
|
|
169
|
+
|
|
170
|
+
- Say you’ll create a plan or set of tasks yourself without running the skill tool
|
|
171
|
+
- Describe what you would do
|
|
172
|
+
- Summarize the plan/task steps yourself
|
|
173
|
+
- End your turn without invoking Skill
|
|
174
|
+
- Write plan.md or tasks.md content directly
|
|
175
|
+
|
|
176
|
+
**YOU MUST:**
|
|
177
|
+
|
|
178
|
+
- Use the Skill tool: `skill: "spectre-create_plan"`, `args: "{OUT_DIR}/task_context.md --depth {tier}"`
|
|
179
|
+
- Use the Skill tool: `skill: "spectre-create_tasks"`, `args: "{OUT_DIR}/task_context.md"`
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Routing Logic
|
|
184
|
+
|
|
185
|
+
- **If LIGHT**:
|
|
186
|
+
|
|
187
|
+
- **INVOKE NOW** → Skill tool with `skill: "spectre-create_tasks"`, `args: "{OUT_DIR}/task_context.md --depth light"`
|
|
188
|
+
- **Wait** — Returns task breakdown with brief implementation approach
|
|
189
|
+
- Skip to footer
|
|
190
|
+
|
|
191
|
+
- **ElseIf STANDARD**:
|
|
192
|
+
|
|
193
|
+
- **INVOKE NOW** → Skill tool with `skill: "spectre-create_plan"`, `args: "{OUT_DIR}/task_context.md --depth standard"`
|
|
194
|
+
- **Wait** — Returns focused plan (Overview, Approach, Out of Scope)
|
|
195
|
+
- **Action** — PromptUser: "Review plan. Reply 'Approved' or provide feedback."
|
|
196
|
+
- **Wait** — User approval
|
|
197
|
+
- **INVOKE NOW** → Skill tool with `skill: "spectre-create_tasks"`, `args: "{OUT_DIR}/task_context.md"`
|
|
198
|
+
- **Wait** — Returns task breakdown
|
|
199
|
+
|
|
200
|
+
- **ElseIf COMPREHENSIVE**:
|
|
201
|
+
|
|
202
|
+
- **INVOKE NOW** → Skill tool with `skill: "spectre-create_plan"`, `args: "{OUT_DIR}/task_context.md --depth comprehensive"`
|
|
203
|
+
- **Wait** — Returns full plan (all sections: Architecture, Phases, API Design, Testing Strategy, etc.)
|
|
204
|
+
- **Action** — PromptUser: "Review plan. Reply 'Approved' or provide feedback."
|
|
205
|
+
- **Wait** — User approval
|
|
206
|
+
- **INVOKE NOW** → Skill tool with `skill: "spectre-create_tasks"`, `args: "{OUT_DIR}/task_context.md"`
|
|
207
|
+
- **Wait** — Returns task breakdown
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
- **Action** — RenderFooter: Use `Skill(spectre-guide)` skill for Next Steps
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "plan_review"
|
|
3
|
+
description: "👻 | Find simplifications in a plan or tasks"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# plan_review
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
You are a senior staff engineer with deep expertise in system design, architecture, and pragmatic problem-solving. Your specialty is finding the simplest path to meet all requirements.
|
|
15
|
+
|
|
16
|
+
Review the following [plan/document/tasks/context] and identify opportunities to simplify while ensuring all requirements and functionality are delivered.
|
|
17
|
+
|
|
18
|
+
For each simplification opportunity, provide:
|
|
19
|
+
1. **What to simplify** - Specific component, process, or decision
|
|
20
|
+
2. **Why** - What complexity it removes (cognitive load, dependencies, maintenance burden, etc.)
|
|
21
|
+
3. **Impact** - Confirm that all original requirements remain satisfied
|
|
22
|
+
4. **Risk** - Any trade-offs or risks introduced by the simplification
|
|
23
|
+
|
|
24
|
+
Focus on:
|
|
25
|
+
- Removing unnecessary abstractions or indirection
|
|
26
|
+
- Consolidating duplicated logic or patterns
|
|
27
|
+
- Questioning assumptions that add complexity
|
|
28
|
+
- Identifying over-engineering
|
|
29
|
+
- Suggesting proven, boring solutions over novel approaches
|
|
30
|
+
|
|
31
|
+
## Testing Review
|
|
32
|
+
**Context**: We use fast TDD with 1 happy path test + 1 unhappy path test per feature. A separate task handles achieving 100% test coverage post-feature work.
|
|
33
|
+
|
|
34
|
+
Evaluate the testing approach and flag:
|
|
35
|
+
- **Over-testing**: Tests beyond 1 happy + 1 unhappy path that should be deferred to the coverage task
|
|
36
|
+
- **Wrong tests**: Testing implementation details instead of behavior, brittle tests that will break on refactors, or tests that don't actually validate requirements
|
|
37
|
+
- **Missing critical paths**: Cases where the 1+1 approach genuinely misses a requirement-breaking scenario (rare, but call it out)
|
|
38
|
+
- **Test complexity**: Overly elaborate test setup, mocking, or assertions that could be simpler
|
|
39
|
+
|
|
40
|
+
Remember: The goal is fast feedback during development. More comprehensive testing comes later.
|
|
41
|
+
|
|
42
|
+
End with a prioritized list of recommendations (high/medium/low impact).
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "quick_dev"
|
|
3
|
+
description: "👻 | Quickly scope, research, & plan s/m tasks - primary agent"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# quick_dev
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# quick_dev: Scope → Research → Plan for Small/Medium Tasks
|
|
15
|
+
|
|
16
|
+
## Description
|
|
17
|
+
- **What** — Lightweight workflow for bug fixes and small features: confirm scope, research via parallel agents, create implementation plan
|
|
18
|
+
- **Outcome** — Validated scope, research synthesis, `quick_task_plan.md` with parent/sub-task structure
|
|
19
|
+
|
|
20
|
+
## ARGUMENTS Input
|
|
21
|
+
|
|
22
|
+
<ARGUMENTS>
|
|
23
|
+
$ARGUMENTS
|
|
24
|
+
</ARGUMENTS>
|
|
25
|
+
|
|
26
|
+
## Step 1 - Gather Context
|
|
27
|
+
|
|
28
|
+
- **Action** — ImmediateReply: Respond before running tools
|
|
29
|
+
- **If** ARGUMENTS has task context → proceed to Step 2
|
|
30
|
+
- **Else** → ask: "What are you trying to build or fix? Share any docs or context."
|
|
31
|
+
- **CRITICAL**: No tool calls here. No technical questions — research answers those.
|
|
32
|
+
- **Wait** — Only if ARGUMENTS empty
|
|
33
|
+
|
|
34
|
+
- **Action** — ReadFiles: Read any files mentioned by user completely (no limit/offset)
|
|
35
|
+
|
|
36
|
+
## Step 2 - Confirm Scope (Functional Only)
|
|
37
|
+
|
|
38
|
+
**Scope is about WHAT we're building, not HOW.** Technical approach comes from research.
|
|
39
|
+
|
|
40
|
+
**DO NOT ask about**: implementation approach or technical decisions — research answers those.
|
|
41
|
+
|
|
42
|
+
- **Action** — PresentScope:
|
|
43
|
+
> **📋 Scope Confirmation**
|
|
44
|
+
>
|
|
45
|
+
> **Objective**: {functional outcome}
|
|
46
|
+
>
|
|
47
|
+
> **✅ In Scope**: {what the feature does — behaviors, not implementation}
|
|
48
|
+
>
|
|
49
|
+
> **❌ Out of Scope**: {what we're NOT building}
|
|
50
|
+
>
|
|
51
|
+
> **UX Assumptions**: {how you imagine the user flow working}
|
|
52
|
+
>
|
|
53
|
+
> **Constraints**: {user-provided only}
|
|
54
|
+
>
|
|
55
|
+
> Any items to move between IN/OUT? Clarify UX flow? Reply with changes or 'Confirmed'.
|
|
56
|
+
|
|
57
|
+
- **Wait** — User confirms or provides changes (apply and proceed)
|
|
58
|
+
|
|
59
|
+
## Step 3 - Research
|
|
60
|
+
|
|
61
|
+
- **Action** — SpawnAgents: Launch parallel research agents
|
|
62
|
+
- `@finder` — find WHERE files/components live
|
|
63
|
+
- `@analyst` — understand HOW code works
|
|
64
|
+
- `@patterns` — find similar implementations
|
|
65
|
+
- `@web-research` — external docs (only if user asks)
|
|
66
|
+
- **Wait** for ALL agents to complete
|
|
67
|
+
|
|
68
|
+
- **Action** — Synthesize: Compile findings with file paths, patterns, architectural decisions
|
|
69
|
+
|
|
70
|
+
## Step 4 - Clarify Ambiguities
|
|
71
|
+
|
|
72
|
+
- **Action** — AskClarifyingQuestions: Use AskUserQuestion tool for 2-4 questions
|
|
73
|
+
- **Only ask** what research revealed needs user decision: UX preferences, behavioral trade-offs
|
|
74
|
+
- For multi-option questions: include Pros/Cons/Trade-offs
|
|
75
|
+
- **Never ask** scope questions (settled in Step 2) or technical questions answerable by code
|
|
76
|
+
|
|
77
|
+
## Step 5 - Create Plan
|
|
78
|
+
|
|
79
|
+
- **Action** — DetermineOutputDir:
|
|
80
|
+
- `OUT_DIR=docs/tasks/{branch_name}` (or user-specified)
|
|
81
|
+
- `mkdir -p "${OUT_DIR}/specs"`
|
|
82
|
+
|
|
83
|
+
- **Action** — GeneratePlan: Create `{OUT_DIR}/specs/quick_task_plan.md` (use scoped name if exists)
|
|
84
|
+
|
|
85
|
+
**Plan Structure**:
|
|
86
|
+
1. Agreed Scope (Objective, In/Out of Scope, Constraints)
|
|
87
|
+
2. Research Summary (key codebase findings)
|
|
88
|
+
3. Approach Summary (strategy, integration points)
|
|
89
|
+
4. Implementation Tasks (see format below)
|
|
90
|
+
5. Success Criteria
|
|
91
|
+
|
|
92
|
+
**Task Format**: `## Phase` → `### [1.1] Parent Task` → `- [ ] **1.1.1** Sub-task` → `- [ ] Criterion`
|
|
93
|
+
|
|
94
|
+
**Sub-task guidance**:
|
|
95
|
+
- Start with action verb, use technical terms, name files/components
|
|
96
|
+
- Include: patterns, integration points, constraints
|
|
97
|
+
- Exclude: code snippets, line-by-line steps
|
|
98
|
+
- 2-3 acceptance criteria per sub-task
|
|
99
|
+
|
|
100
|
+
**Bounds**: ~3 phases, ~8 parent tasks max. If exceeds → suggest `create_tasks`
|
|
101
|
+
|
|
102
|
+
- **Action** — ValidateCoverage: Verify all in-scope items have tasks; no out-of-scope tasks added
|
|
103
|
+
|
|
104
|
+
## Step 6 - Document & Handoff
|
|
105
|
+
|
|
106
|
+
- **Action** — PresentSummary:
|
|
107
|
+
> **Task Plan Created**: `{path}`
|
|
108
|
+
> ✅ Scope | ✅ Research | ✅ Plan
|
|
109
|
+
|
|
110
|
+
- **Action** — RenderFooter: Use `Skill(spectre-guide)` skill for Next Steps
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "rebase"
|
|
3
|
+
description: "👻 | Safe guided rebase w/conflict handling - primary agent"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# rebase
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# rebase: Safe Git Rebase with Automatic Conflict Resolution
|
|
15
|
+
|
|
16
|
+
## Description
|
|
17
|
+
- **What** — Guide rebase with safety refs, automatic conflict resolution, test verification
|
|
18
|
+
- **Outcome** — Successfully rebased branch with resolved conflicts, passing tests, smoketest guide
|
|
19
|
+
|
|
20
|
+
## ARGUMENTS Input
|
|
21
|
+
|
|
22
|
+
Optional target branch to rebase onto.
|
|
23
|
+
|
|
24
|
+
<ARGUMENTS>
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
</ARGUMENTS>
|
|
27
|
+
|
|
28
|
+
## Instructions
|
|
29
|
+
- Auto-commit uncommitted changes (no confirmation)
|
|
30
|
+
- Auto-resolve conflicts favoring target branch conventions (no prompts)
|
|
31
|
+
- Track every resolution decision for summary
|
|
32
|
+
- Actually run tests, don't just suggest
|
|
33
|
+
|
|
34
|
+
## Step 1 - Confirm Target Branch
|
|
35
|
+
|
|
36
|
+
- **Action** — CheckArguments:
|
|
37
|
+
- **If** ARGUMENTS has branch → proceed
|
|
38
|
+
- **Else** → ask: "What branch to rebase onto? (e.g., `origin/main`)"
|
|
39
|
+
- **Wait** — If needed
|
|
40
|
+
|
|
41
|
+
## Step 2 - Prepare
|
|
42
|
+
|
|
43
|
+
- **Action** — EnsureCleanTree:
|
|
44
|
+
- **If** uncommitted changes → `git commit -am "chore: snapshot before rebase"`
|
|
45
|
+
- **Action** — FetchLatest: `git fetch origin`
|
|
46
|
+
- **Action** — CreateSafetyRef: `git branch backup/rebase-$(date +%Y%m%d-%H%M%S)`
|
|
47
|
+
- **Action** — AssessComplexity: Light (≤5 commits), Moderate (5-20), Large (>20)
|
|
48
|
+
|
|
49
|
+
## Step 3 - Execute Rebase
|
|
50
|
+
|
|
51
|
+
- **Action** — StartRebase: `git rebase {target_branch}`
|
|
52
|
+
- **If** no conflicts → skip to Step 4
|
|
53
|
+
|
|
54
|
+
- **Action** — ResolveAllConflicts: For each conflict:
|
|
55
|
+
1. Read conflict markers
|
|
56
|
+
2. Resolve (favor target branch patterns)
|
|
57
|
+
3. Track: `{file}: {decision} — {rationale}`
|
|
58
|
+
4. `git add {file}`
|
|
59
|
+
5. `git rebase --continue`
|
|
60
|
+
- Repeat until complete
|
|
61
|
+
|
|
62
|
+
## Step 4 - Verify
|
|
63
|
+
|
|
64
|
+
- **Action** — RunLint: Fix violations
|
|
65
|
+
- **Action** — RunTestSuite: Detect command (npm test, pytest, cargo test, go test), run full suite
|
|
66
|
+
- **Action** — ValidateRebase: Confirm commit count, no unexpected changes
|
|
67
|
+
|
|
68
|
+
## Step 5 - Summary
|
|
69
|
+
|
|
70
|
+
- **Action** — GenerateSummary:
|
|
71
|
+
> **Rebase Summary**
|
|
72
|
+
> - Branch: {current} → {target}
|
|
73
|
+
> - Commits: {count} | Conflicts: {count} | Tests: {PASS/FAIL}
|
|
74
|
+
>
|
|
75
|
+
> **Decisions**: | File | Decision | Rationale |
|
|
76
|
+
>
|
|
77
|
+
> **Smoketest Guide** (based on files touched):
|
|
78
|
+
> - {Feature Area}: [ ] {behavior to verify}
|
|
79
|
+
>
|
|
80
|
+
> **Safety**: Backup `{branch}` | Restore: `git reset --hard {backup}`
|
|
81
|
+
|
|
82
|
+
- **Action** — RenderFooter: Use `Skill(spectre-guide)` skill for Next Steps
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "recall"
|
|
3
|
+
description: "👻 | Search Project Knowledge"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# recall
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
# /recall - Search Project Knowledge
|
|
14
|
+
|
|
15
|
+
Load the `spectre-recall` skill and follow its instructions.
|
|
16
|
+
|
|
17
|
+
**Search query**: $ARGUMENTS
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "research"
|
|
3
|
+
description: "👻 | Research codebase with parallel agents - primary agent"
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# research
|
|
8
|
+
|
|
9
|
+
## Input Handling
|
|
10
|
+
|
|
11
|
+
Treat the current command arguments as this workflow's input. When invoked from a slash command, use the forwarded `$ARGUMENTS` value.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# research_codebase: Parallel Evidence-Based Codebase Analysis
|
|
15
|
+
|
|
16
|
+
## Description
|
|
17
|
+
- Description — Conduct comprehensive codebase research by spawning parallel specialized sub-agents and synthesizing their findings into structured documentation. Prioritizes direct readings of live code with specific file paths and line numbers. Supports follow-up questions with document updates.
|
|
18
|
+
- Desired Outcome — Complete research document with YAML frontmatter, concrete evidence (file paths/line numbers), architectural insights, GitHub permalinks (when applicable), saved to `TASK_DIR/research/{topic}_{date}.md`, ready for task formalization or planning.
|
|
19
|
+
|
|
20
|
+
## ARGUMENTS Input
|
|
21
|
+
|
|
22
|
+
Optional user input to seed this workflow.
|
|
23
|
+
|
|
24
|
+
<ARGUMENTS>
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
</ARGUMENTS>
|
|
27
|
+
|
|
28
|
+
## Step (1/8) - Immediate Reply & Gather Context
|
|
29
|
+
|
|
30
|
+
- **Action** — ImmediateReply: Respond immediately before running any commands or tools.
|
|
31
|
+
- Check for ARGUMENTS and extract research topic
|
|
32
|
+
- **If** ARGUMENTS exists → acknowledge topic; extract research question
|
|
33
|
+
- **Else** → prompt user: "I'm ready to research the codebase. Please provide your research question or area of interest, and I'll analyze it thoroughly by exploring relevant components and connections."
|
|
34
|
+
- **CRITICAL**: Do NOT run any tool calls in this step
|
|
35
|
+
- **Wait** — User provides research query (if needed)
|
|
36
|
+
|
|
37
|
+
## Step (2/8) - Read Mentioned Files
|
|
38
|
+
|
|
39
|
+
- **Action** — ReadMentionedFiles: Read any directly mentioned files FULLY before decomposition.
|
|
40
|
+
- **If** user mentions specific files (tickets, docs, JSON) → read them FULLY using Read tool WITHOUT limit/offset
|
|
41
|
+
- **CRITICAL**: Read these files in main context before spawning sub-agents
|
|
42
|
+
- Ensures full context before decomposing research
|
|
43
|
+
|
|
44
|
+
## Step (3/8) - Decompose & Plan Research
|
|
45
|
+
|
|
46
|
+
- **Action** — AnalyzeQuestion: Break down research query into composable areas.
|
|
47
|
+
- Ultrathink about underlying patterns, connections, architectural implications user seeking
|
|
48
|
+
- Identify specific components, patterns, concepts to investigate
|
|
49
|
+
- Consider relevant directories, files, architectural patterns
|
|
50
|
+
- Create research plan using TodoWrite to track all subtasks
|
|
51
|
+
- **Action** — SpawnSpecializedAgents: Launch parallel sub-agents for comprehensive research.
|
|
52
|
+
- **Codebase Research**:
|
|
53
|
+
- **finder**: Find WHERE files and components live
|
|
54
|
+
- **analyst**: Understand HOW specific code works
|
|
55
|
+
- **patterns**: Find examples of similar implementations
|
|
56
|
+
- **Web Research** (when task requires 3rd party frameworks/platforms/services/libraries/SDKs):
|
|
57
|
+
- **web-research**: External documentation and resources
|
|
58
|
+
- **IMPORTANT**: Instruct to return LINKS with findings; include links in final report
|
|
59
|
+
- **3rd Party Libraries** (only if user explicitly asks):
|
|
60
|
+
- Use Context 7 MCP tool to search external documentation
|
|
61
|
+
- **Linear Tickets** (if relevant):
|
|
62
|
+
- **linear-ticket-reader**: Get full details of specific ticket
|
|
63
|
+
- **linear-searcher**: Find related tickets or historical context
|
|
64
|
+
- **Agent Strategy**: Start with locator → use analyzer on promising findings → run multiple agents in parallel for different searches; each agent knows its job (tell what you're looking for, not how to search)
|
|
65
|
+
|
|
66
|
+
## Step (4/8) - Synthesize Findings
|
|
67
|
+
|
|
68
|
+
- **Action** — WaitForAgents: Wait for ALL sub-agent tasks to complete before proceeding.
|
|
69
|
+
- **Action** — CompileResults: Synthesize all sub-agent results into coherent findings.
|
|
70
|
+
- Prioritize live codebase findings as primary source of truth
|
|
71
|
+
- Connect findings across different components
|
|
72
|
+
- Include specific file paths and line numbers for reference
|
|
73
|
+
- Highlight patterns, connections, architectural decisions
|
|
74
|
+
- Answer user's specific questions with concrete evidence
|
|
75
|
+
- **Action** — GatherMetadata: Collect document metadata for YAML frontmatter.
|
|
76
|
+
- Current date/time with timezone (ISO format)
|
|
77
|
+
- Current commit hash (`git rev-parse HEAD`)
|
|
78
|
+
- Current branch name (`git rev-parse --abbrev-ref HEAD`)
|
|
79
|
+
- Repository name
|
|
80
|
+
|
|
81
|
+
## Step (5/8) - Generate Research Document
|
|
82
|
+
|
|
83
|
+
- **Output Location** — DetermineOutputDir: Decide where to save artifacts for this workflow.
|
|
84
|
+
- `branch_name=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo unknown)`
|
|
85
|
+
- **If** user specifies `target_dir/path` → `OUT_DIR={that value}`
|
|
86
|
+
- **Else** → `OUT_DIR=docs/tasks/{branch_name}`
|
|
87
|
+
- `mkdir -p "OUT_DIR/research"`
|
|
88
|
+
- **Action** — CreateDocument: Structure research document with YAML frontmatter and comprehensive findings.
|
|
89
|
+
- **Frontmatter** (YAML at top):
|
|
90
|
+
- date: [ISO format with timezone]
|
|
91
|
+
- git_commit: [commit hash]
|
|
92
|
+
- branch: [branch name]
|
|
93
|
+
- repository: [repo name]
|
|
94
|
+
- topic: "[User's Question/Topic]"
|
|
95
|
+
- tags: [research, codebase, relevant-component-names]
|
|
96
|
+
- status: complete
|
|
97
|
+
- last_updated: [YYYY-MM-DD]
|
|
98
|
+
- last_updated_by: [Researcher name]
|
|
99
|
+
- **Document Sections** (in order):
|
|
100
|
+
1. Title: `# Research: [User's Question/Topic]`
|
|
101
|
+
2. Metadata header (Date, Git Commit, Branch, Repository)
|
|
102
|
+
3. Research Question (original user query)
|
|
103
|
+
4. Summary (high-level findings answering question)
|
|
104
|
+
5. Detailed Findings (by Component/Area with file:line references)
|
|
105
|
+
6. Code References (path/to/file:line with descriptions)
|
|
106
|
+
7. Architecture Insights (patterns, conventions, design decisions)
|
|
107
|
+
8. Related Research (links to other research docs in `docs/` (look for /research directories))
|
|
108
|
+
9. Open Questions (areas needing further investigation)
|
|
109
|
+
|
|
110
|
+
## Step (6/8) - Add Permalinks & Save
|
|
111
|
+
|
|
112
|
+
- **Action** — AddGitHubPermalinks: Generate GitHub permalinks if applicable.
|
|
113
|
+
- Check if on main branch or commit pushed: `git branch --show-current` and `git status`
|
|
114
|
+
- **If** on main/master OR pushed → generate permalinks:
|
|
115
|
+
- Get repo info: `gh repo view --json owner,name`
|
|
116
|
+
- Create: `https://github.com/{owner}/{repo}/blob/{commit}/{file}#L{line}`
|
|
117
|
+
- Replace local file references with permalinks in document
|
|
118
|
+
- **Else** → keep local file references
|
|
119
|
+
- **Action** — SaveDocument: Save research document to standardized location under `{OUT_DIR}/research/`.
|
|
120
|
+
- Filename: `{research_topic}_{MMDDYY}.md`
|
|
121
|
+
- Path: `{OUT_DIR}/research/{filename}`
|
|
122
|
+
- **Action** — PresentFindings: Present concise summary to user.
|
|
123
|
+
- Concise summary of key findings
|
|
124
|
+
- Include key file references for easy navigation
|
|
125
|
+
- Ask if they have follow-up questions or need clarification
|
|
126
|
+
|
|
127
|
+
## Step (7/8) - Handle Follow-ups & Handoff
|
|
128
|
+
|
|
129
|
+
- **Action** — HandleFollowUps: If user has follow-up questions, update same document.
|
|
130
|
+
- **If** follow-up questions asked:
|
|
131
|
+
- Update frontmatter: `last_updated`, `last_updated_by`, add `last_updated_note: "Added follow-up research for [brief description]"`
|
|
132
|
+
- Add new section: `## Follow-up Research [timestamp]`
|
|
133
|
+
- Spawn new sub-agents as needed for additional investigation
|
|
134
|
+
- Continue updating document
|
|
135
|
+
- **Else** → proceed to handoff
|
|
136
|
+
- **Action** — RenderFooter: Render Next Steps footer using `Skill(spectre-guide)` skill (contains format template and spectre command options)
|
|
137
|
+
|
|
138
|
+
## Next Steps
|
|
139
|
+
|
|
140
|
+
See `Skill(spectre-guide)` skill for footer format and command options.
|
|
141
|
+
|
|
142
|
+
## Success Criteria
|
|
143
|
+
|
|
144
|
+
- [ ] Immediate reply sent; research topic requested (Step 1 - no tool calls)
|
|
145
|
+
- [ ] User research query received
|
|
146
|
+
- [ ] Output directory determined inline (`OUT_DIR`) using branch name or user-specified path
|
|
147
|
+
- [ ] Directly mentioned files read FULLY in main context before decomposition
|
|
148
|
+
- [ ] Research question decomposed into composable areas with ultra-thinking about patterns/connections
|
|
149
|
+
- [ ] Research plan created using TodoWrite to track subtasks
|
|
150
|
+
- [ ] Specialized sub-agents spawned in parallel (finder, analyst, patterns, web-research as needed, linear agents if relevant)
|
|
151
|
+
- [ ] Agent strategy followed (locator → analyzer → parallel execution)
|
|
152
|
+
- [ ] Web research agents instructed to return LINKS (if used)
|
|
153
|
+
- [ ] ALL sub-agents completed before synthesis
|
|
154
|
+
- [ ] Findings compiled with live codebase prioritized as source of truth
|
|
155
|
+
- [ ] Results include specific file paths and line numbers
|
|
156
|
+
- [ ] Cross-component connections and patterns highlighted
|
|
157
|
+
- [ ] Concrete evidence provided for user's questions
|
|
158
|
+
- [ ] Metadata gathered for frontmatter (date/time ISO, commit hash, branch, repo name)
|
|
159
|
+
- [ ] Research document created with YAML frontmatter at top
|
|
160
|
+
- [ ] Frontmatter fields consistent (snake_case for multi-word: git_commit, last_updated)
|
|
161
|
+
- [ ] Document includes all 9 required sections in order
|
|
162
|
+
- [ ] GitHub permalinks generated if on main/master or pushed commit
|
|
163
|
+
- [ ] Local file references replaced with permalinks (when applicable)
|
|
164
|
+
- [ ] Document saved to `{OUT_DIR}/research/{topic}_{MMDDYY}.md`
|
|
165
|
+
- [ ] Concise findings summary presented to user with key file references
|
|
166
|
+
- [ ] Follow-up questions handled with document updates (frontmatter updated, new section added)
|
|
167
|
+
|
|
168
|
+
- [ ] Next steps guide read and relevant options sourced for footer
|