opencodekit 0.15.21 → 0.16.1
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/dist/index.js +5 -7
- package/dist/template/.opencode/AGENTS.md +85 -23
- package/dist/template/.opencode/agent/build.md +88 -7
- package/dist/template/.opencode/agent/explore.md +1 -1
- package/dist/template/.opencode/agent/general.md +54 -4
- package/dist/template/.opencode/agent/looker.md +1 -1
- package/dist/template/.opencode/agent/painter.md +1 -1
- package/dist/template/.opencode/agent/plan.md +52 -0
- package/dist/template/.opencode/agent/review.md +1 -1
- package/dist/template/.opencode/agent/scout.md +3 -3
- package/dist/template/.opencode/agent/vision.md +1 -1
- package/dist/template/.opencode/command/create.md +231 -91
- package/dist/template/.opencode/command/design.md +40 -7
- package/dist/template/.opencode/command/handoff.md +22 -0
- package/dist/template/.opencode/command/init.md +49 -78
- package/dist/template/.opencode/command/plan.md +36 -16
- package/dist/template/.opencode/command/pr.md +15 -0
- package/dist/template/.opencode/command/research.md +3 -0
- package/dist/template/.opencode/command/resume.md +8 -18
- package/dist/template/.opencode/command/review-codebase.md +30 -0
- package/dist/template/.opencode/command/ship.md +199 -0
- package/dist/template/.opencode/command/start.md +316 -28
- package/dist/template/.opencode/command/status.md +24 -1
- package/dist/template/.opencode/command/ui-review.md +36 -7
- package/dist/template/.opencode/command/verify.md +307 -0
- package/dist/template/.opencode/memory/_templates/prd.md +29 -0
- package/dist/template/.opencode/memory/_templates/proposal.md +38 -0
- package/dist/template/.opencode/memory/_templates/spec.md +66 -0
- package/dist/template/.opencode/memory/_templates/tasks.md +198 -0
- package/dist/template/.opencode/memory/_templates/tech-stack.md +50 -0
- package/dist/template/.opencode/memory/project/tech-stack.md +53 -0
- package/dist/template/.opencode/memory/research/ccpm-analysis.md +334 -0
- package/dist/template/.opencode/memory/research/openspec-analysis.md +226 -0
- package/dist/template/.opencode/memory.db +0 -0
- package/dist/template/.opencode/memory.db-shm +0 -0
- package/dist/template/.opencode/memory.db-wal +0 -0
- package/dist/template/.opencode/opencode.json +18 -4
- package/dist/template/.opencode/package.json +1 -0
- package/dist/template/.opencode/plans/1770006237537-mighty-otter.md +418 -0
- package/dist/template/.opencode/plans/1770006913647-glowing-forest.md +170 -0
- package/dist/template/.opencode/plans/1770013678126-witty-planet.md +278 -0
- package/dist/template/.opencode/plugin/lib/memory-db.ts +828 -0
- package/dist/template/.opencode/plugin/memory.ts +38 -1
- package/dist/template/.opencode/skill/index-knowledge/SKILL.md +76 -31
- package/dist/template/.opencode/skill/memory-system/SKILL.md +110 -55
- package/dist/template/.opencode/skill/tool-priority/SKILL.md +2 -2
- package/dist/template/.opencode/tool/memory-get.ts +143 -0
- package/dist/template/.opencode/tool/memory-maintain.ts +167 -0
- package/dist/template/.opencode/tool/memory-migrate.ts +319 -0
- package/dist/template/.opencode/tool/memory-read.ts +17 -46
- package/dist/template/.opencode/tool/memory-search.ts +131 -28
- package/dist/template/.opencode/tool/memory-timeline.ts +105 -0
- package/dist/template/.opencode/tool/memory-update.ts +21 -26
- package/dist/template/.opencode/tool/observation.ts +112 -100
- package/dist/template/.opencode/tsconfig.json +19 -19
- package/package.json +1 -1
- package/dist/template/.opencode/command/accessibility-check.md +0 -331
- package/dist/template/.opencode/command/agent-browser.md +0 -21
- package/dist/template/.opencode/command/analyze-mockup.md +0 -423
- package/dist/template/.opencode/command/analyze-project.md +0 -295
- package/dist/template/.opencode/command/brainstorm.md +0 -373
- package/dist/template/.opencode/command/cloudflare.md +0 -70
- package/dist/template/.opencode/command/commit.md +0 -245
- package/dist/template/.opencode/command/complete-next-task.md +0 -77
- package/dist/template/.opencode/command/design-audit.md +0 -480
- package/dist/template/.opencode/command/edit-image.md +0 -242
- package/dist/template/.opencode/command/finish.md +0 -255
- package/dist/template/.opencode/command/fix-ci.md +0 -109
- package/dist/template/.opencode/command/fix-types.md +0 -104
- package/dist/template/.opencode/command/fix-ui.md +0 -117
- package/dist/template/.opencode/command/fix.md +0 -168
- package/dist/template/.opencode/command/frontend-design.md +0 -21
- package/dist/template/.opencode/command/generate-diagram.md +0 -349
- package/dist/template/.opencode/command/generate-icon.md +0 -283
- package/dist/template/.opencode/command/generate-image.md +0 -246
- package/dist/template/.opencode/command/generate-pattern.md +0 -247
- package/dist/template/.opencode/command/generate-storyboard.md +0 -250
- package/dist/template/.opencode/command/implement.md +0 -609
- package/dist/template/.opencode/command/import-plan.md +0 -406
- package/dist/template/.opencode/command/index-knowledge.md +0 -25
- package/dist/template/.opencode/command/integration-test.md +0 -424
- package/dist/template/.opencode/command/issue.md +0 -102
- package/dist/template/.opencode/command/new-feature.md +0 -651
- package/dist/template/.opencode/command/opensrc.md +0 -58
- package/dist/template/.opencode/command/quick-build.md +0 -238
- package/dist/template/.opencode/command/ralph.md +0 -41
- package/dist/template/.opencode/command/research-and-implement.md +0 -148
- package/dist/template/.opencode/command/research-ui.md +0 -466
- package/dist/template/.opencode/command/restore-image.md +0 -424
- package/dist/template/.opencode/command/revert-feature.md +0 -386
- package/dist/template/.opencode/command/skill-create.md +0 -517
- package/dist/template/.opencode/command/skill-optimize.md +0 -556
- package/dist/template/.opencode/command/summarize.md +0 -412
- package/dist/template/.opencode/command/triage.md +0 -398
- package/dist/template/.opencode/memory/_templates/README.md +0 -35
- package/dist/template/.opencode/memory/_templates/observation.md +0 -39
- package/dist/template/.opencode/memory/_templates/project/architecture.md +0 -60
- package/dist/template/.opencode/memory/_templates/project/commands.md +0 -72
- package/dist/template/.opencode/memory/_templates/project/conventions.md +0 -68
- package/dist/template/.opencode/memory/_templates/project/gotchas.md +0 -41
- package/dist/template/.opencode/memory/_templates/prompt-engineering.md +0 -333
- package/dist/template/.opencode/memory/observations/2026-01-22-decision-agents-md-prompt-engineering-improvement.md +0 -29
- package/dist/template/.opencode/memory/observations/2026-01-25-decision-agent-roles-build-orchestrates-general-e.md +0 -14
- package/dist/template/.opencode/memory/observations/2026-01-25-decision-simplified-swarm-helper-tool-to-fix-type.md +0 -20
- package/dist/template/.opencode/memory/observations/2026-01-25-decision-use-beads-as-swarm-board-source-of-truth.md +0 -14
- package/dist/template/.opencode/memory/observations/2026-01-25-learning-user-wants-real-swarm-coordination-guida.md +0 -15
- package/dist/template/.opencode/memory/observations/2026-01-28-decision-created-deep-research-skill-for-thorough.md +0 -29
- package/dist/template/.opencode/memory/observations/2026-01-28-decision-gh-grep-mcp-wrapper-vs-native-grep-searc.md +0 -21
- package/dist/template/.opencode/memory/observations/2026-01-28-decision-oracle-tool-optimal-usage-patterns.md +0 -32
- package/dist/template/.opencode/memory/observations/2026-01-28-learning-ampcode-deep-mode-research-integration-w.md +0 -42
- package/dist/template/.opencode/memory/observations/2026-01-28-pattern-research-delegation-pattern-explore-for-.md +0 -32
- package/dist/template/.opencode/memory/observations/2026-01-29-decision-copilot-auth-plugin-rate-limit-handling.md +0 -27
- package/dist/template/.opencode/memory/observations/2026-01-29-decision-spec-driven-approach-for-opencodekit.md +0 -21
- package/dist/template/.opencode/memory/observations/2026-01-29-learning-karpathy-llm-coding-insights-dec-2025.md +0 -44
- package/dist/template/.opencode/memory/observations/2026-01-30-decision-github-copilot-claude-routing-keep-disab.md +0 -32
- package/dist/template/.opencode/memory/observations/2026-01-30-discovery-context-management-research-critical-gap.md +0 -14
- package/dist/template/.opencode/memory/observations/2026-01-30-discovery-kimi-k2-5-agent-swarm-architecture-patte.md +0 -45
- package/dist/template/.opencode/memory/observations/2026-01-30-pattern-swarm-tools-architecture.md +0 -28
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-copilot-auth-plugin-updated-with-baseurl.md +0 -63
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-created-dedicated-worker-agent-for-swarm.md +0 -20
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-rollback-to-v1-1-47-for-copilot-claude-r.md +0 -21
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-simplified-swarm-to-task-tool-pattern.md +0 -44
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-swarm-architecture-task-tool-over-tmux.md +0 -33
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-worker-skills-defined-for-swarm-delegati.md +0 -30
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-gpt-reasoning-config-for-github-copilot.md +0 -51
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-auth-comparison-finding.md +0 -61
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-copilot-reasoning-architecture-.md +0 -66
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-custom-tools-api.md +0 -48
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-v1-1-48-skills-as-slash-command.md +0 -21
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-swarm-system-simplified-removed-mailbox-.md +0 -30
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-v1-1-48-native-copilot-reasoning-via-pr-.md +0 -45
- package/dist/template/.opencode/memory/observations/2026-01-31-warning-cannot-add-custom-config-to-opencode-jso.md +0 -18
- package/dist/template/.opencode/memory/observations/2026-01-31-warning-copilot-claude-v1-endpoint-returns-404-c.md +0 -48
- package/dist/template/.opencode/memory/observations/2026-01-31-warning-opencode-v1-1-48-claude-thinking-block-s.md +0 -51
- package/dist/template/.opencode/memory/project/architecture.md +0 -60
- package/dist/template/.opencode/memory/project/commands.md +0 -72
- package/dist/template/.opencode/memory/project/conventions.md +0 -68
- package/dist/template/.opencode/memory/project/gotchas.md +0 -41
- package/dist/template/.opencode/skill/notebooklm/SKILL.md +0 -272
- package/dist/template/.opencode/skill/notebooklm/references/setup.md +0 -353
- package/dist/template/.opencode/tool/notebooklm.ts +0 -488
- package/dist/template/.opencode/tool/oracle.ts +0 -240
- /package/dist/template/.opencode/memory/{user.example.md → _templates/user.md} +0 -0
- /package/dist/template/.opencode/memory/{user.md → project/user.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Start working on a bead - claim it and prepare context
|
|
3
|
-
argument-hint: "<bead-id> [--worktree] [--research]"
|
|
3
|
+
argument-hint: "<bead-id> [--worktree] [--research] [--parallel]"
|
|
4
4
|
agent: build
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,6 +8,9 @@ agent: build
|
|
|
8
8
|
|
|
9
9
|
You're claiming a task and preparing to work on it. This is the entry point before implementation.
|
|
10
10
|
|
|
11
|
+
> **CCPM Philosophy:** One issue ≠ one task. One issue = multiple parallel work streams.
|
|
12
|
+
> Agents are "context firewalls" - they do heavy work and return concise summaries.
|
|
13
|
+
|
|
11
14
|
## Parse Arguments
|
|
12
15
|
|
|
13
16
|
| Argument | Default | Description |
|
|
@@ -15,12 +18,16 @@ You're claiming a task and preparing to work on it. This is the entry point befo
|
|
|
15
18
|
| `<bead-id>` | required | The bead to start working on |
|
|
16
19
|
| `--worktree` | false | Create isolated git worktree for this work |
|
|
17
20
|
| `--research` | false | Run parallel subagent research before starting |
|
|
21
|
+
| `--parallel` | auto | Analyze and spawn parallel work streams |
|
|
18
22
|
|
|
19
23
|
## Load Skills
|
|
20
24
|
|
|
21
25
|
```typescript
|
|
22
26
|
skill({ name: "beads" });
|
|
23
27
|
skill({ name: "beads-bridge" }); // For cross-session todo coordination
|
|
28
|
+
skill({ name: "prd" }); // PRD creation workflow
|
|
29
|
+
skill({ name: "prd-task" }); // PRD to executable tasks conversion
|
|
30
|
+
skill({ name: "memory-system" });
|
|
24
31
|
```
|
|
25
32
|
|
|
26
33
|
## Ensure Git Hooks Installed
|
|
@@ -218,13 +225,42 @@ Task({
|
|
|
218
225
|
Look for:
|
|
219
226
|
|
|
220
227
|
- `spec.md` - Requirements and constraints
|
|
221
|
-
- `prd.md` - PRD (
|
|
222
|
-
- `prd.json` -
|
|
228
|
+
- `prd.md` - PRD created via `prd` skill (defines WHAT to build)
|
|
229
|
+
- `prd.json` - Executable tasks from `prd-task` skill
|
|
223
230
|
- `progress.txt` - PRD execution progress (append-only)
|
|
224
231
|
- `research.md` - Previous research
|
|
225
232
|
- `plan.md` - Implementation plan
|
|
226
233
|
- `handoffs/` - Previous session handoffs
|
|
227
234
|
|
|
235
|
+
### PRD Workflow (if prd.md exists but no prd.json)
|
|
236
|
+
|
|
237
|
+
If `prd.md` exists but `prd.json` doesn't, convert PRD to tasks:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
// The prd-task skill converts PRD markdown to executable JSON
|
|
241
|
+
// Read prd.md → Extract ## Tasks section → Write prd.json
|
|
242
|
+
skill({ name: "prd-task" });
|
|
243
|
+
|
|
244
|
+
// Then parse the PRD
|
|
245
|
+
// This creates:
|
|
246
|
+
// - .beads/artifacts/$ARGUMENTS/prd.json (task list)
|
|
247
|
+
// - .beads/artifacts/$ARGUMENTS/progress.txt (progress log)
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### PRD Workflow (if neither exists)
|
|
251
|
+
|
|
252
|
+
If no PRD exists and task is complex (epic/feature), consider creating one:
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
// The prd skill guides PRD creation with:
|
|
256
|
+
// - Clarifying questions (5-7 max)
|
|
257
|
+
// - Problem/solution framing
|
|
258
|
+
// - Machine-convertible Tasks section
|
|
259
|
+
skill({ name: "prd" });
|
|
260
|
+
|
|
261
|
+
// Creates: .beads/artifacts/$ARGUMENTS/prd.md
|
|
262
|
+
```
|
|
263
|
+
|
|
228
264
|
## Check Previous Sessions
|
|
229
265
|
|
|
230
266
|
```typescript
|
|
@@ -240,21 +276,10 @@ Search for relevant past work and learnings before starting:
|
|
|
240
276
|
|
|
241
277
|
```typescript
|
|
242
278
|
// Find similar past work (semantic similarity)
|
|
243
|
-
|
|
244
|
-
search({
|
|
245
|
-
query: "[task title/description from bead]",
|
|
246
|
-
mode: "semantic",
|
|
247
|
-
limit: 3,
|
|
248
|
-
});
|
|
279
|
+
memory_search({ query: "[task title/description from bead]", limit: 3 });
|
|
249
280
|
|
|
250
281
|
// Find related observations (gotchas, patterns, learnings)
|
|
251
|
-
|
|
252
|
-
search({
|
|
253
|
-
query: "[task keywords]",
|
|
254
|
-
mode: "semantic",
|
|
255
|
-
type: "observation",
|
|
256
|
-
limit: 3,
|
|
257
|
-
});
|
|
282
|
+
memory_search({ query: "[task keywords] gotchas patterns", limit: 3 });
|
|
258
283
|
```
|
|
259
284
|
|
|
260
285
|
**Review findings before diving in.** Past observations may contain:
|
|
@@ -265,10 +290,196 @@ memory -
|
|
|
265
290
|
|
|
266
291
|
If memory search fails (Ollama not running), continue without it.
|
|
267
292
|
|
|
293
|
+
## Parallel Stream Analysis (if --parallel flag or epic/task type)
|
|
294
|
+
|
|
295
|
+
> **CCPM Insight:** A single task isn't one unit of work. It's multiple parallel work streams.
|
|
296
|
+
> Streams are determined by analyzing the ACTUAL task requirements, not hardcoded categories.
|
|
297
|
+
|
|
298
|
+
### Step 1: Analyze Work Streams
|
|
299
|
+
|
|
300
|
+
Use swarm planning to analyze the specific task:
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
// Get task details from bead
|
|
304
|
+
const beadInfo = bd show $ARGUMENTS --json;
|
|
305
|
+
const taskTitle = beadInfo.title;
|
|
306
|
+
const taskDescription = beadInfo.description;
|
|
307
|
+
|
|
308
|
+
// Read spec/plan if exists for file context
|
|
309
|
+
const specContent = read(".beads/artifacts/$ARGUMENTS/spec.md");
|
|
310
|
+
const planContent = read(".beads/artifacts/$ARGUMENTS/plan.md");
|
|
311
|
+
|
|
312
|
+
// Analyze THIS SPECIFIC task for parallel execution
|
|
313
|
+
const analysis = swarm_plan({
|
|
314
|
+
operation: "analyze",
|
|
315
|
+
task: taskTitle, // User's actual task
|
|
316
|
+
context: taskDescription, // User's requirements
|
|
317
|
+
files: "[files from spec/plan]", // Actual affected files
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
The analysis returns **task-specific** streams:
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
// Example analysis result (varies per task):
|
|
325
|
+
{
|
|
326
|
+
classification: "search", // Can parallelize
|
|
327
|
+
recommended_agents: 3,
|
|
328
|
+
streams: [
|
|
329
|
+
{ id: "stream-1", scope: "src/auth/*", purpose: "Authentication logic" },
|
|
330
|
+
{ id: "stream-2", scope: "src/api/auth/*", purpose: "Auth endpoints" },
|
|
331
|
+
{ id: "stream-3", scope: "tests/auth/*", purpose: "Auth test coverage" },
|
|
332
|
+
]
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Step 2: Create Dynamic Delegation Packets
|
|
337
|
+
|
|
338
|
+
**For EACH stream from analysis** (not hardcoded):
|
|
339
|
+
|
|
340
|
+
```typescript
|
|
341
|
+
// Iterate over streams from analysis - these are DYNAMIC based on task
|
|
342
|
+
for (const stream of analysis.streams) {
|
|
343
|
+
swarm_delegate({
|
|
344
|
+
bead_id: "$ARGUMENTS",
|
|
345
|
+
title: stream.purpose, // From analysis, not hardcoded
|
|
346
|
+
expected_outcome: `Complete ${stream.purpose} for task requirements`,
|
|
347
|
+
required_tools: "read, grep, lsp, edit, bash",
|
|
348
|
+
must_do: "LSP before edits, verify changes, run relevant tests",
|
|
349
|
+
must_not_do: "no new deps without approval, stay within assigned scope",
|
|
350
|
+
acceptance_checks: "[derived from spec.md acceptance criteria]",
|
|
351
|
+
context: `Files: ${stream.scope}, Purpose: ${stream.purpose}`,
|
|
352
|
+
write: true,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Step 3: Spawn Workers for Each Stream
|
|
358
|
+
|
|
359
|
+
```typescript
|
|
360
|
+
// Launch workers based on ACTUAL analysis results
|
|
361
|
+
for (const stream of analysis.streams) {
|
|
362
|
+
// Initialize monitoring for this stream
|
|
363
|
+
swarm_monitor({
|
|
364
|
+
operation: "progress_update",
|
|
365
|
+
team_name: "$ARGUMENTS-swarm",
|
|
366
|
+
worker_id: stream.id,
|
|
367
|
+
phase: "starting",
|
|
368
|
+
progress: 0,
|
|
369
|
+
status: "working",
|
|
370
|
+
file: stream.scope,
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
// Spawn worker with task-specific instructions
|
|
374
|
+
Task({
|
|
375
|
+
subagent_type: "general",
|
|
376
|
+
description: `${stream.id}: ${stream.purpose}`,
|
|
377
|
+
prompt: `Execute work stream for $ARGUMENTS.
|
|
378
|
+
|
|
379
|
+
**Your Assignment:**
|
|
380
|
+
- Scope: ${stream.scope}
|
|
381
|
+
- Purpose: ${stream.purpose}
|
|
382
|
+
|
|
383
|
+
**Load Context:**
|
|
384
|
+
- Delegation: .beads/artifacts/$ARGUMENTS/delegation.md
|
|
385
|
+
- Spec: .beads/artifacts/$ARGUMENTS/spec.md (if exists)
|
|
386
|
+
|
|
387
|
+
**Work:**
|
|
388
|
+
Complete all work within your assigned scope that fulfills the task requirements.
|
|
389
|
+
|
|
390
|
+
**Return CONCISE summary only:**
|
|
391
|
+
- Files modified: [list]
|
|
392
|
+
- Changes made: [brief description]
|
|
393
|
+
- Verification: [pass/fail + what was checked]
|
|
394
|
+
|
|
395
|
+
DO NOT return verbose output or file contents.`,
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// All workers execute in parallel, results return when complete
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Step 4: Monitor Progress
|
|
403
|
+
|
|
404
|
+
```typescript
|
|
405
|
+
// Render progress visualization
|
|
406
|
+
swarm_monitor({
|
|
407
|
+
operation: "render_block",
|
|
408
|
+
team_name: "$ARGUMENTS-swarm",
|
|
409
|
+
});
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Output shows ACTUAL streams (dynamic):**
|
|
413
|
+
|
|
414
|
+
```
|
|
415
|
+
┌─ $ARGUMENTS-swarm ──────────────────────────┐
|
|
416
|
+
│ stream-1 [████████░░] 80% src/auth/* │
|
|
417
|
+
│ stream-2 [██████░░░░] 60% src/api/auth/* │
|
|
418
|
+
│ stream-3 [████░░░░░░] 40% tests/auth/* │
|
|
419
|
+
└─────────────────────────────────────────────┘
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Anti-Serial-Collapse Check
|
|
423
|
+
|
|
424
|
+
Before proceeding, verify parallelization makes sense:
|
|
425
|
+
|
|
426
|
+
```typescript
|
|
427
|
+
swarm_plan({
|
|
428
|
+
operation: "check",
|
|
429
|
+
task: taskTitle,
|
|
430
|
+
files: analysis.streams.length,
|
|
431
|
+
recommended_agents: analysis.recommended_agents,
|
|
432
|
+
});
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**Warning signs:**
|
|
436
|
+
|
|
437
|
+
- Only 1 stream identified for multi-file task
|
|
438
|
+
- All streams depend on each other (should be sequential)
|
|
439
|
+
- Same files appear in multiple streams (conflict risk)
|
|
440
|
+
|
|
441
|
+
### When NOT to Parallelize
|
|
442
|
+
|
|
443
|
+
Skip parallel analysis if:
|
|
444
|
+
|
|
445
|
+
- Task is a `subtask` (leaf-level, already atomic)
|
|
446
|
+
- Only 1-2 files affected
|
|
447
|
+
- Sequential dependency chain (each step needs previous)
|
|
448
|
+
- User explicitly passed `--no-parallel`
|
|
449
|
+
|
|
268
450
|
## PRD Tasks (If Present)
|
|
269
451
|
|
|
270
|
-
|
|
271
|
-
|
|
452
|
+
If `.beads/artifacts/$ARGUMENTS/prd.json` exists, execution is PRD-driven:
|
|
453
|
+
|
|
454
|
+
```typescript
|
|
455
|
+
// Load the prd-task skill for execution guidance
|
|
456
|
+
skill({ name: "prd-task" });
|
|
457
|
+
|
|
458
|
+
// Read task list
|
|
459
|
+
const prdJson = read(".beads/artifacts/$ARGUMENTS/prd.json");
|
|
460
|
+
const tasks = JSON.parse(prdJson).tasks;
|
|
461
|
+
|
|
462
|
+
// Find next incomplete task
|
|
463
|
+
const nextTask = tasks.find((t) => !t.passes);
|
|
464
|
+
|
|
465
|
+
if (nextTask) {
|
|
466
|
+
console.log(`Next PRD task: ${nextTask.id}`);
|
|
467
|
+
console.log(`Description: ${nextTask.description}`);
|
|
468
|
+
console.log(`Verification steps:`);
|
|
469
|
+
nextTask.steps.forEach((s) => console.log(` - ${s}`));
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**PRD execution flow:**
|
|
474
|
+
|
|
475
|
+
1. Read `prd.json` for task list
|
|
476
|
+
2. Find next task where `passes: false`
|
|
477
|
+
3. Implement to satisfy verification steps
|
|
478
|
+
4. Mark `passes: true` when verification passes
|
|
479
|
+
5. Append progress to `progress.txt`
|
|
480
|
+
6. Repeat until all tasks pass
|
|
481
|
+
|
|
482
|
+
Proceed directly to implementation using the PRD tasks as the guide.
|
|
272
483
|
|
|
273
484
|
## Determine Next Step
|
|
274
485
|
|
|
@@ -280,17 +491,28 @@ Based on task type and what exists:
|
|
|
280
491
|
| ------------------ | --------------------------------- |
|
|
281
492
|
| No subtasks | `/plan $ARGUMENTS --create-beads` |
|
|
282
493
|
| Has ready subtasks | `/start <first-subtask-id>` |
|
|
283
|
-
| All subtasks done | `/
|
|
494
|
+
| All subtasks done | `/ship $ARGUMENTS` |
|
|
284
495
|
|
|
285
496
|
### For Tasks/Subtasks (leaf work)
|
|
286
497
|
|
|
287
|
-
| Artifacts Found | Next
|
|
288
|
-
| --------------------- |
|
|
289
|
-
| Nothing | `/research $ARGUMENTS`
|
|
290
|
-
| Only spec.md | `/plan $ARGUMENTS`
|
|
291
|
-
|
|
|
292
|
-
|
|
|
293
|
-
|
|
|
498
|
+
| Artifacts Found | Next Step |
|
|
499
|
+
| --------------------- | ----------------------------------------- |
|
|
500
|
+
| Nothing | `/research $ARGUMENTS` or create PRD |
|
|
501
|
+
| Only spec.md | `/plan $ARGUMENTS` or create PRD |
|
|
502
|
+
| prd.md (no prd.json) | Run `prd-task` skill to convert to tasks |
|
|
503
|
+
| prd.json exists | `/ship $ARGUMENTS` (PRD-driven execution) |
|
|
504
|
+
| spec.md + research.md | `/plan $ARGUMENTS` |
|
|
505
|
+
| plan.md exists | `/ship $ARGUMENTS` |
|
|
506
|
+
|
|
507
|
+
### PRD vs Plan Decision
|
|
508
|
+
|
|
509
|
+
| Situation | Use PRD | Use Plan |
|
|
510
|
+
| ------------------------------------ | ----------------------- | ------------------ |
|
|
511
|
+
| New feature with unclear scope | ✅ Ask questions first | ❌ |
|
|
512
|
+
| Bug fix or small change | ❌ | ✅ Quick plan |
|
|
513
|
+
| Multi-session epic | ✅ PRD for each subtask | ✅ High-level plan |
|
|
514
|
+
| Refactoring with known scope | ❌ | ✅ Plan with tasks |
|
|
515
|
+
| Feature needing stakeholder sign-off | ✅ PRD for review | ❌ |
|
|
294
516
|
|
|
295
517
|
## Output
|
|
296
518
|
|
|
@@ -311,8 +533,35 @@ Artifacts:
|
|
|
311
533
|
• spec.md: [exists/missing]
|
|
312
534
|
• research.md: [exists/missing]
|
|
313
535
|
• plan.md: [exists/missing]
|
|
314
|
-
|
|
315
|
-
|
|
536
|
+
• prd.md: [exists/missing]
|
|
537
|
+
• prd.json: [exists/missing] ([N] tasks, [M] complete)
|
|
538
|
+
|
|
539
|
+
[If PRD exists:]
|
|
540
|
+
┌─ PRD Progress ──────────────────────────┐
|
|
541
|
+
│ Tasks: [completed]/[total] │
|
|
542
|
+
│ Next: [task-id] - [description] │
|
|
543
|
+
│ Verification: │
|
|
544
|
+
│ • [step 1] │
|
|
545
|
+
│ • [step 2] │
|
|
546
|
+
└─────────────────────────────────────────┘
|
|
547
|
+
|
|
548
|
+
┌─ Parallel Analysis ─────────────────────┐
|
|
549
|
+
│ Classification: [search/chain/blocked] │
|
|
550
|
+
│ Streams: [N] identified from task │
|
|
551
|
+
│ Agents: [N] recommended │
|
|
552
|
+
│ │
|
|
553
|
+
│ Streams detected: │
|
|
554
|
+
│ • [stream.purpose from analysis] │
|
|
555
|
+
│ • [stream.purpose from analysis] │
|
|
556
|
+
│ • ... │
|
|
557
|
+
└─────────────────────────────────────────┘
|
|
558
|
+
|
|
559
|
+
[If parallel spawned:]
|
|
560
|
+
┌─ $ARGUMENTS-swarm ──────────────────────┐
|
|
561
|
+
│ [stream-id] [░░░░░░░░░░] 0% [scope] │
|
|
562
|
+
│ [stream-id] [░░░░░░░░░░] 0% [scope] │
|
|
563
|
+
│ ... │
|
|
564
|
+
└─────────────────────────────────────────┘
|
|
316
565
|
|
|
317
566
|
Next: [recommended command based on state]
|
|
318
567
|
```
|
|
@@ -324,3 +573,42 @@ If `--quick` flag is passed and plan.md exists, skip directly to:
|
|
|
324
573
|
```
|
|
325
574
|
/implement $ARGUMENTS
|
|
326
575
|
```
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## Agent Return Format (CCPM Pattern)
|
|
580
|
+
|
|
581
|
+
> **Key insight:** Agents are context firewalls. They do heavy work and return CONCISE summaries.
|
|
582
|
+
|
|
583
|
+
When spawning subagents, always specify the return format:
|
|
584
|
+
|
|
585
|
+
```typescript
|
|
586
|
+
Task({
|
|
587
|
+
subagent_type: "explore",
|
|
588
|
+
prompt: `...
|
|
589
|
+
|
|
590
|
+
Return ONLY:
|
|
591
|
+
- 3-5 key files (not all files examined)
|
|
592
|
+
- Pattern summary (not full code)
|
|
593
|
+
- Actionable insights (not observations)
|
|
594
|
+
|
|
595
|
+
DO NOT return verbose output or file contents.`,
|
|
596
|
+
});
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
**Good return:** "Found auth pattern in 3 files: src/auth/\*.ts uses JWT with 24h expiry"
|
|
600
|
+
|
|
601
|
+
**Bad return:** [dumps entire file contents]
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## Related Commands
|
|
606
|
+
|
|
607
|
+
| Need | Command |
|
|
608
|
+
| -------------------- | -------------------------------- |
|
|
609
|
+
| Skip to implement | `/ship $ARGUMENTS` |
|
|
610
|
+
| Create PRD first | `/create $ARGUMENTS --prd` |
|
|
611
|
+
| Research first | `/research $ARGUMENTS` |
|
|
612
|
+
| Plan implementation | `/plan $ARGUMENTS` |
|
|
613
|
+
| Convert PRD to tasks | Use `prd-task` skill |
|
|
614
|
+
| Check PRD progress | Read `prd.json` + `progress.txt` |
|
|
@@ -11,9 +11,10 @@ subtask: true
|
|
|
11
11
|
|
|
12
12
|
```typescript
|
|
13
13
|
skill({ name: "beads" });
|
|
14
|
+
skill({ name: "memory-system" });
|
|
14
15
|
```
|
|
15
16
|
|
|
16
|
-
Generate a comprehensive project status report covering tasks, sessions, git state, and system health.
|
|
17
|
+
Generate a comprehensive project status report covering tasks, sessions, git state, memory health, and system health.
|
|
17
18
|
|
|
18
19
|
## Phase 1: Gather All State (Parallel)
|
|
19
20
|
|
|
@@ -250,6 +251,28 @@ Fri ██████████ 10
|
|
|
250
251
|
|
|
251
252
|
## Phase 5: Session Insights
|
|
252
253
|
|
|
254
|
+
### Memory Health
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
// Check memory system status
|
|
258
|
+
memory_maintain({ operation: "status", older_than_days: 90, dry_run: false });
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Display memory stats in dashboard:
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
MEMORY STATUS
|
|
265
|
+
━━━━━━━━━━━━
|
|
266
|
+
Observations: [N] stored
|
|
267
|
+
Database size: [X] KB
|
|
268
|
+
FTS Index: ✓ Healthy
|
|
269
|
+
Last search: [timestamp]
|
|
270
|
+
|
|
271
|
+
Recent learnings:
|
|
272
|
+
• [Latest observation title] (type: decision)
|
|
273
|
+
• [Latest observation title] (type: pattern)
|
|
274
|
+
```
|
|
275
|
+
|
|
253
276
|
### Context Health
|
|
254
277
|
|
|
255
278
|
```typescript
|
|
@@ -14,6 +14,7 @@ Comprehensive UI/UX review with structured scoring and actionable feedback.
|
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
skill({ name: "beads" }); // Session protocol
|
|
17
|
+
skill({ name: "memory-system" });
|
|
17
18
|
```
|
|
18
19
|
|
|
19
20
|
```typescript
|
|
@@ -22,6 +23,20 @@ skill({ name: "visual-analysis" });
|
|
|
22
23
|
skill({ name: "accessibility-audit" });
|
|
23
24
|
```
|
|
24
25
|
|
|
26
|
+
## Check Memory for Design Context
|
|
27
|
+
|
|
28
|
+
Search for existing design decisions and patterns:
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
// Find design system decisions
|
|
32
|
+
memory_search({ query: "design system colors typography", limit: 3 });
|
|
33
|
+
|
|
34
|
+
// Find previous UI reviews and findings
|
|
35
|
+
memory_search({ query: "[component/page] UI review", limit: 3 });
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Apply existing design decisions to the review.
|
|
39
|
+
|
|
25
40
|
## Parse Arguments
|
|
26
41
|
|
|
27
42
|
| Argument | Default | Description |
|
|
@@ -300,10 +315,24 @@ bd dep add <task-id> <bead-id>
|
|
|
300
315
|
|
|
301
316
|
## Related Commands
|
|
302
317
|
|
|
303
|
-
| Need
|
|
304
|
-
|
|
|
305
|
-
|
|
|
306
|
-
|
|
|
307
|
-
|
|
|
308
|
-
|
|
309
|
-
|
|
318
|
+
| Need | Command |
|
|
319
|
+
| -------------------- | --------------- |
|
|
320
|
+
| Design from scratch | `/design` |
|
|
321
|
+
| Start implementation | `/start <bead>` |
|
|
322
|
+
| Ship implementation | `/ship <bead>` |
|
|
323
|
+
|
|
324
|
+
## Record Significant Findings
|
|
325
|
+
|
|
326
|
+
For important UI/UX findings worth remembering:
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
observation({
|
|
330
|
+
type: "warning", // or "pattern", "decision"
|
|
331
|
+
title: "UI: [Component/page] [issue type]",
|
|
332
|
+
narrative: "Found [issue] in [location]. Impact: [description]...",
|
|
333
|
+
facts: "[severity], [category], [fix approach]",
|
|
334
|
+
concepts: "ui, accessibility, [component type]",
|
|
335
|
+
bead_id: "$ARGUMENTS", // if applicable
|
|
336
|
+
confidence: "high",
|
|
337
|
+
});
|
|
338
|
+
```
|