ai-spector 0.8.52 → 0.8.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/core/workflow/route-intent.d.ts.map +1 -1
  2. package/dist/core/workflow/route-intent.js +21 -1
  3. package/dist/core/workflow/route-intent.js.map +1 -1
  4. package/package.json +1 -1
  5. package/scaffold/cursor/WORKFLOW.md +42 -61
  6. package/scaffold/cursor/commands/generate-srs.md +9 -9
  7. package/scaffold/cursor/commands/resolve-comments.md +5 -4
  8. package/scaffold/cursor/commands/review.md +4 -3
  9. package/scaffold/cursor/rules/ai-spector-routing.mdc +42 -60
  10. package/scaffold/cursor/skills/README.md +16 -17
  11. package/scaffold/cursor/skills/_skill-router.md +4 -6
  12. package/scaffold/cursor/skills/ai-spector-check/SKILL.md +0 -7
  13. package/scaffold/cursor/skills/ai-spector-generate/SKILL.md +0 -4
  14. package/scaffold/cursor/skills/ai-spector-generate-basic-design/SKILL.md +0 -7
  15. package/scaffold/cursor/skills/ai-spector-generate-prototype/SKILL.md +0 -7
  16. package/scaffold/cursor/skills/ai-spector-generate-srs/SKILL.md +0 -7
  17. package/scaffold/cursor/skills/ai-spector-graph/SKILL.md +0 -7
  18. package/scaffold/cursor/skills/ai-spector-resolve-comments/SKILL.md +0 -7
  19. package/scaffold/cursor/skills/ai-spector-resolve-task/SKILL.md +0 -7
  20. package/scaffold/cursor/skills/ai-spector-review/SKILL.md +0 -6
  21. package/scaffold/cursor/skills/ai-spector-search/SKILL.md +0 -7
  22. package/scaffold/cursor/skills/ai-spector-setup/SKILL.md +0 -7
  23. package/scaffold/cursor/skills/ai-spector-task/SKILL.md +0 -7
  24. package/scaffold/cursor/ACTIVE-WORKER.md +0 -46
  25. package/scaffold/cursor/subagents/README.md +0 -53
  26. package/scaffold/cursor/subagents/doc-review.md +0 -45
  27. package/scaffold/cursor/subagents/generate-basic-design.md +0 -28
  28. package/scaffold/cursor/subagents/generate-prototype.md +0 -31
  29. package/scaffold/cursor/subagents/generate-srs.md +0 -44
  30. package/scaffold/cursor/subagents/graph-ops.md +0 -34
  31. package/scaffold/cursor/subagents/resolve-comments.md +0 -38
  32. package/scaffold/cursor/subagents/resolve-task.md +0 -40
  33. package/scaffold/cursor/subagents/search.md +0 -25
  34. package/scaffold/cursor/subagents/setup-check.md +0 -25
  35. package/scaffold/cursor/subagents/spec-queue.md +0 -34
  36. package/scaffold/cursor/subagents/task-router.md +0 -39
@@ -1 +1 @@
1
- {"version":3,"file":"route-intent.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/route-intent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,kBAAkB,GAClB,cAAc,GACd,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,sBAAsB,EAAE,CAAA;KAAE,CAAC;IAClE,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAC3C;AA0OD,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,oBAAoB,GACxB,mBAAmB,CA0KrB"}
1
+ {"version":3,"file":"route-intent.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/route-intent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,kBAAkB,GAClB,cAAc,GACd,uBAAuB,GACvB,oBAAoB,GACpB,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,sBAAsB,EAAE,CAAA;KAAE,CAAC;IAClE,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAC3C;AA+PD,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,oBAAoB,GACxB,mBAAmB,CA0KrB"}
@@ -106,6 +106,26 @@ function inferPhase(skill, ctx, matchedBy) {
106
106
  }
107
107
  return "start";
108
108
  }
109
+ function skillReadBrief(skill) {
110
+ if (skill === "ai-spector-generate") {
111
+ return ".cursor/skills/ai-spector/references/extract-specs.md";
112
+ }
113
+ const runbookSkills = new Set([
114
+ "ai-spector-review",
115
+ "ai-spector-resolve-comments",
116
+ "ai-spector-generate-srs",
117
+ "ai-spector-generate-basic-design",
118
+ "ai-spector-generate-prototype",
119
+ "ai-spector-resolve-task",
120
+ "ai-spector-task",
121
+ "ai-spector-setup",
122
+ "ai-spector-resolve-translation",
123
+ ]);
124
+ if (runbookSkills.has(skill)) {
125
+ return `.cursor/skills/${skill}/references/runbook.md`;
126
+ }
127
+ return `.cursor/skills/${skill}/SKILL.md`;
128
+ }
109
129
  function buildHandoff(workflowId, skill, userGoal, ctx, matchedBy, allowedTools, forbiddenTools) {
110
130
  const hasPersistedState = !!ctx.reviewSession || !!ctx.activeTask;
111
131
  const gated = !["graph-ops", "search"].includes(workflowId);
@@ -115,7 +135,7 @@ function buildHandoff(workflowId, skill, userGoal, ctx, matchedBy, allowedTools,
115
135
  phase: inferPhase(skill, ctx, matchedBy),
116
136
  userGoal,
117
137
  resumeFromState: hasPersistedState,
118
- readBrief: `.cursor/subagents/${workflowId}.md`,
138
+ readBrief: skillReadBrief(skill),
119
139
  runInBackground: !gated,
120
140
  ...(allowedTools?.length ? { allowedTools } : {}),
121
141
  ...(forbiddenTools?.length ? { forbiddenTools } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"route-intent.js","sourceRoot":"","sources":["../../../src/core/workflow/route-intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-intent.js","sourceRoot":"","sources":["../../../src/core/workflow/route-intent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-spector",
3
- "version": "0.8.52",
3
+ "version": "0.8.54",
4
4
  "description": "Cursor-first documentation workflow: traceability graph, SRS/basic/detail design templates, and ai-spector CLI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,25 +1,8 @@
1
1
  # AI Spector workflow
2
2
 
3
- **You describe what you need in chat.** The **orchestrator** (parent agent) classifies intent, asks clarifying questions when needed, and **delegates** to a specialized **subagent worker** one workflow per worker. Workers read briefs under [subagents/](./subagents/README.md); the parent does not inline heavy runbooks.
3
+ **You describe what you need in chat.** Cursor picks the right **skill**; the agent calls **MCP tools** (when `ai-spector` server is configured) or falls back to **`npx ai-spector`** CLI. You do not need to memorize command names.
4
4
 
5
- Enable all skills under `.cursor/skills/` (see [skills/README.md](./skills/README.md)). Routing rule: [rules/ai-spector-routing.mdc](./rules/ai-spector-routing.mdc). On CLI or tool failure: agent pauses, shows output, and offers fix / workaround / pause — [cli-failures](./skills/ai-spector/references/cli-failures.md).
6
-
7
- ## Orchestrator vs worker
8
-
9
- | Layer | Role | Asks user? |
10
- |-------|------|------------|
11
- | **Orchestrator** | `workflow_route`, disambiguate approve, spawn worker | Yes — routing questions **before** spawn |
12
- | **Worker** | One runbook + MCP tools for one job | Returns `waiting_user` → orchestrator relays question in chat |
13
-
14
- After you answer a worker question, the orchestrator **resumes the same `workflowId`** (or respawns with state from disk).
15
-
16
- ## Slash commands → worker
17
-
18
- | Command | workflowId |
19
- |---------|------------|
20
- | `/review` | `doc-review` |
21
- | `/resolve-comments` | `resolve-comments` |
22
- | `/generate-srs` | `generate-srs` |
5
+ Enable all skills under `.cursor/skills/` (see [skills/README.md](./skills/README.md)). On CLI or tool failure: agent pauses, shows output, and offers fix / workaround / pause — [cli-failures](./skills/ai-spector/references/cli-failures.md).
23
6
 
24
7
  ## One-time setup
25
8
 
@@ -42,35 +25,33 @@ Then: add files under `docs/data-source/`, enable **all** skills under `.cursor/
42
25
 
43
26
  | You want to… | Say (examples) | Skill | Agent runs (MCP preferred) |
44
27
  |--------------|----------------|-------|---------------------------|
45
- | **Learn / open course** | open the course”, learn ai-spector”, mở khóa học”, khóa học tiếng Việt | `ai-spector-course` | `course serve --open [--lang vi]` → link lesson |
46
- | **Setup project** | setup ai-spector”, initialize project”, bootstrap project | `ai-spector-setup` | `setup --check` → `setup -y` → enable skills checklist |
47
- | **Check workspace** | check my workspace”, why did pre-commit block me”, stale clarifications | `ai-spector-check` | `workspace_check({})` → findings table → optional `fix: true` |
48
- | **Resume / manage tasks** | resume my SRS”, continue generation”, active tasks”, pause task | `ai-spector-task` | `task_list` → `task_resume` / `task_get` → route to generate or resolve skill |
49
- | Ingest sources | analyze my data source”, build the knowledge graph | `ai-spector-graph` | `index({})` → agent extracts → `knowledge_validate` → `graph_merge` → `graph_validate` |
50
- | Check graph health | validate the graph”, graph errors”, graph report | `ai-spector-graph` | `graph_validate({})` · `graph_report({})` |
51
- | Refresh after edits | re-index”, sync the graph | `ai-spector-graph` | `index({ cocoindexSync: true })` (or `index({})` if no CocoIndex) |
52
- | Write SRS | generate SRS”, write use cases | `ai-spector-generate-srs` | `task_create` → **gated**: check → clarify → briefing + plan → `task_approve_plan` → `task_record_wave` per wave → `spec_record` → `task_complete` |
53
- | Basic design | screen list”, API design”, wireframes | `ai-spector-generate-basic-design` | same task-state flow → docs/basic-design → index each wave |
54
- | Review extracted specs | pending specs”, approve SPEC-001 | (generate skills, stage 6) | `spec_list` → `spec_approve` (merges to graph) / `spec_reject` |
55
- | Answer clarifications | open questions”, what did I answer about auth | `ai-spector-check` | `context_list` → `context_resolve` |
56
- | Detail design | detail design for checkout | `ai-spector-generate-detail-design` | docs/detail-design |
57
- | HTML prototype | HTML mockup”, prototype with stripe theme | `ai-spector-generate-prototype` | auth picker (if needed) → theme picker → setup → HTML → validate |
58
- | Pick / preview UI theme | help me pick a theme”, show me themes | `ai-spector-generate-prototype` | read project context → recommend 3 → `prototype preview` ×3 |
59
- | What to redo | whats impacted”, what should I regenerate | `ai-spector-graph` | `graph_impact({ git: true, change: “…” })` — includes `semanticSuggestions` when CocoIndex ready |
60
- | Find docs by concept | find all mentions of rate limiting”, which docs describe login?” | `ai-spector-search` | `docs_search({ query })` MCP |
61
- | Find graph node by name | show graph for user login (node ID unknown) | `ai-spector-search` | `graph_query_fuzzy({ query })` MCP |
62
- | Translation status | whats stale in JP”, pending translations | `ai-spector-lang-status` | `lang_queue({})` MCP |
63
- | Sync translations | resolve translations”, update JP from EN | `ai-spector-resolve-translation` | read queue → translate → `index({ cocoindexSync: true })` |
64
- | Review comments | resolve comments”, fix C-001 | `ai-spector-resolve-comments` | inbox → plan → edit → commit |
65
- | **Review documents** | **`/review`**, review docs”, approve SRS”, approve srs/01-overview”, pending review”, what changed since approval | `ai-spector-review` | `review_check` → queue → pick → `review_status` (readiness + custom checklists) → read doc → graph_impact → **write review** → user decision → `review_approve` / `review_reject` |
66
- | Add/update one feature or section | I want to add login with Google”, add requirement”, update auth section | `ai-spector-resolve-task` | `task_create` → clarify → plan → `task_approve_plan` → `resolve_task({ taskId })` → `task_complete` |
67
- | Explore graph | show the graph | `ai-spector-graph` | `npx ai-spector graph visualize --open` (no MCP equivalent) |
68
-
69
- Unsure? Say **"help me approve"** or call **`workflow_route`** — orchestrator uses [skills/_skill-router.md](./skills/_skill-router.md), may ask one question, then spawns a worker from [subagents/](./subagents/README.md).
70
-
71
- Design: [../../docs/subagent-routing-design.md](../../docs/subagent-routing-design.md)
72
-
73
- ### “Approve” disambiguation
28
+ | **Learn / open course** | "open the course", "learn ai-spector", "mở khóa học", "khóa học tiếng Việt" | `ai-spector-course` | `course serve --open [--lang vi]` → link lesson |
29
+ | **Setup project** | "setup ai-spector", "initialize project", "bootstrap project" | `ai-spector-setup` | `setup --check` → `setup -y` → enable skills checklist |
30
+ | **Check workspace** | "check my workspace", "why did pre-commit block me", "stale clarifications" | `ai-spector-check` | `workspace_check({})` → findings table → optional `fix: true` |
31
+ | **Resume / manage tasks** | "resume my SRS", "continue generation", "active tasks", "pause task" | `ai-spector-task` | `task_list` → `task_resume` / `task_get` → route to generate or resolve skill |
32
+ | Ingest sources | "analyze my data source", "build the knowledge graph" | `ai-spector-graph` | `index({})` → agent extracts → `knowledge_validate` → `graph_merge` → `graph_validate` |
33
+ | Check graph health | "validate the graph", "graph errors", "graph report" | `ai-spector-graph` | `graph_validate({})` · `graph_report({})` |
34
+ | Refresh after edits | "re-index", "sync the graph" | `ai-spector-graph` | `index({ cocoindexSync: true })` (or `index({})` if no CocoIndex) |
35
+ | Write SRS | "generate SRS", "write use cases" | `ai-spector-generate-srs` | `task_create` → **gated**: check → clarify → briefing + plan → `task_approve_plan` → `task_record_wave` per wave → `spec_record` → `task_complete` |
36
+ | Basic design | "screen list", "API design", "wireframes" | `ai-spector-generate-basic-design` | same task-state flow → docs/basic-design → index each wave |
37
+ | Review extracted specs | "pending specs", "approve SPEC-001" | (generate skills, stage 6) | `spec_list` → `spec_approve` (merges to graph) / `spec_reject` |
38
+ | Answer clarifications | "open questions", "what did I answer about auth" | `ai-spector-check` | `context_list` → `context_resolve` |
39
+ | Detail design | "detail design for checkout" | `ai-spector-generate-detail-design` | docs/detail-design |
40
+ | HTML prototype | "HTML mockup", "prototype with stripe theme" | `ai-spector-generate-prototype` | auth picker (if needed) → theme picker → setup → HTML → validate |
41
+ | Pick / preview UI theme | "help me pick a theme", "show me themes" | `ai-spector-generate-prototype` | read project context → recommend 3 → `prototype preview` ×3 |
42
+ | What to redo | "what's impacted", "what should I regenerate" | `ai-spector-graph` | `graph_impact({ git: true, change: "…" })` — includes `semanticSuggestions` when CocoIndex ready |
43
+ | Find docs by concept | "find all mentions of rate limiting", "which docs describe login?" | `ai-spector-search` | `docs_search({ query })` MCP |
44
+ | Find graph node by name | "show graph for user login" (node ID unknown) | `ai-spector-search` | `graph_query_fuzzy({ query })` MCP |
45
+ | Translation status | "what's stale in JP", "pending translations" | `ai-spector-lang-status` | `lang_queue({})` MCP |
46
+ | Sync translations | "resolve translations", "update JP from EN" | `ai-spector-resolve-translation` | read queue → translate → `index({ cocoindexSync: true })` |
47
+ | Review comments | "resolve comments", "fix C-001" | `ai-spector-resolve-comments` | inbox → plan → edit → commit |
48
+ | **Review documents** | **`/review`**, "review docs", "approve SRS", "approve srs/01-overview", "pending review", "what changed since approval" | `ai-spector-review` | `review_check` → queue → pick → `review_status` (readiness + custom checklists) → read doc → graph_impact → **write review** → user decision → `review_approve` / `review_reject` |
49
+ | Add/update one feature or section | "I want to add login with Google", "add requirement", "update auth section" | `ai-spector-resolve-task` | `task_create` → clarify → plan → `task_approve_plan` → `resolve_task({ taskId })` → `task_complete` |
50
+ | Explore graph | "show the graph" | `ai-spector-graph` | `npx ai-spector graph visualize --open` (no MCP equivalent) |
51
+
52
+ Unsure? Say **"help me approve"** or call **`workflow_route`** — the agent uses [skills/_skill-router.md](./skills/_skill-router.md) or asks one clarifying question.
53
+
54
+ ### "Approve" disambiguation
74
55
 
75
56
  When intent is unclear, the agent asks:
76
57
 
@@ -84,10 +65,10 @@ Which did you mean?
84
65
 
85
66
  | You mean… | Say… | Tool |
86
67
  |-----------|------|------|
87
- | Sign off a document | **`/review`** or approve srs/01-overview | `review_approve` via `ai-spector-review` (includes readiness + custom checklists) |
88
- | Approve extracted spec | approve SPEC-001 | `spec_approve` |
89
- | Approve plan to execute | yes, go ahead (after plan table) | `task_approve_plan` |
90
- | Mark comment thread done | resolve C-012 | `comments_resolve` |
68
+ | Sign off a document | **`/review`** or "approve srs/01-overview" | `review_approve` via `ai-spector-review` |
69
+ | Approve extracted spec | "approve SPEC-001" | `spec_approve` |
70
+ | Approve plan to execute | "yes, go ahead" (after plan table) | `task_approve_plan` |
71
+ | Mark comment thread done | "resolve C-012" | `comments_resolve` |
91
72
 
92
73
  Full plan: [../../docs/review-routing-impl-plan.md](../../docs/review-routing-impl-plan.md).
93
74
 
@@ -96,10 +77,10 @@ Full plan: [../../docs/review-routing-impl-plan.md](../../docs/review-routing-im
96
77
  ```text
97
78
  npx ai-spector init
98
79
  docs/data-source/ ← your inputs
99
- analyze the data source
100
- validate the graph
101
- generate the SRS
102
- refresh the index
80
+ "analyze the data source"
81
+ "validate the graph"
82
+ "generate the SRS"
83
+ "refresh the index"
103
84
  ```
104
85
 
105
86
  ## Pipeline order
@@ -124,10 +105,10 @@ offers extracted key specs for review — only approved specs reach the graph, a
124
105
 
125
106
  | Symptom | What to say / do |
126
107
  |---------|------------------|
127
- | Analyze failed | Agent offers fix vs workaround; say **1** to retry or analyze again after fixing data-source |
128
- | Validate errors | validate the graph — agent explains each error |
129
- | Empty SRS | analyze then generate SRS — not bulk-read all docs |
130
- | Unsure what regen | whats the impact of my changes |
131
- | Comments incomplete | resolve comments — commit must include doc + `comments/` meta |
108
+ | Analyze failed | Agent offers fix vs workaround; say **1** to retry or "analyze again" after fixing data-source |
109
+ | Validate errors | "validate the graph" — agent explains each error |
110
+ | Empty SRS | "analyze" then "generate SRS" — not bulk-read all docs |
111
+ | Unsure what regen | "what's the impact of my changes" |
112
+ | Comments incomplete | "resolve comments" — commit must include doc + `comments/` meta |
132
113
 
133
114
  References: [cli-failures](./skills/ai-spector/references/cli-failures.md), [graph CLI](./skills/ai-spector/references/graph.md), [prerequisites](./skills/ai-spector/references/prerequisites.md).
@@ -2,11 +2,12 @@
2
2
 
3
3
  Full **SRS generation** from the traceability graph (gated waves). Not incremental single-feature adds.
4
4
 
5
- ## Orchestrator
5
+ ## Start here
6
6
 
7
- Spawn **`generate-srs`** worker — brief: [../subagents/generate-srs.md](../subagents/generate-srs.md)
7
+ 1. Activate skill **`ai-spector-generate-srs`**
8
+ 2. Read `.cursor/skills/ai-spector-generate-srs/references/runbook.md`
8
9
 
9
- ## Worker steps (MCP preferred)
10
+ ## Agent steps (MCP preferred)
10
11
 
11
12
  | Phase | Action |
12
13
  |-------|--------|
@@ -15,18 +16,17 @@ Spawn **`generate-srs`** worker — brief: [../subagents/generate-srs.md](../sub
15
16
  | 2 | Clarify gaps → context store |
16
17
  | 3 | Briefing + plan table → **wait for user yes** → `task_approve_plan` |
17
18
  | 4 | DAG waves → `task_record_wave` per wave → `index` |
18
- | 5 | Offer spec extraction → hand off to **`spec-queue`** worker if user wants |
19
+ | 5 | Offer spec extraction → `spec_list` / `spec_approve` if user wants |
19
20
 
20
21
  ## Hard gate
21
22
 
22
- **No writes under `docs/srs/`** until `task_approve_plan`.
23
+ No writes under `docs/` until **`task_approve_plan`**.
23
24
 
24
25
  ## Not this command
25
26
 
26
27
  | You mean | Use instead |
27
28
  |----------|-------------|
28
- | "add login with Google" | resolve-task worker |
29
- | Approve document | `/review` |
30
- | Approve SPEC-003 | spec-queue after extract |
29
+ | Add one feature ("add login with Google") | `ai-spector-resolve-task` |
30
+ | Approve SPEC-003 only | "approve SPEC-003" |
31
31
 
32
- References: [skills/ai-spector-generate-srs/references/runbook.md](../skills/ai-spector-generate-srs/references/runbook.md), [skills/ai-spector/references/generate-workflow.md](../skills/ai-spector/references/generate-workflow.md)
32
+ Routing: [skills/_skill-router.md](../skills/_skill-router.md)
@@ -2,11 +2,12 @@
2
2
 
3
3
  Git-backed **comment threads** — not formal document sign-off, specs, or task plans.
4
4
 
5
- ## Orchestrator
5
+ ## Start here
6
6
 
7
- Spawn **`resolve-comments`** worker — brief: [../subagents/resolve-comments.md](../subagents/resolve-comments.md)
7
+ 1. Activate skill **`ai-spector-resolve-comments`**
8
+ 2. Read `.cursor/skills/ai-spector-resolve-comments/references/runbook.md`
8
9
 
9
- ## Worker steps (MCP preferred)
10
+ ## Agent steps (MCP preferred)
10
11
 
11
12
  | Phase | Action |
12
13
  |-------|--------|
@@ -28,4 +29,4 @@ Spawn **`resolve-comments`** worker — brief: [../subagents/resolve-comments.md
28
29
  | Approve SPEC-003 | "approve SPEC-003" |
29
30
  | Yes to plan table | "yes, go ahead" (task approval) |
30
31
 
31
- Routing: [skills/_skill-router.md](../skills/_skill-router.md) · Subagents: [subagents/README.md](../subagents/README.md)
32
+ Routing: [skills/_skill-router.md](../skills/_skill-router.md)
@@ -2,11 +2,12 @@
2
2
 
3
3
  Formal **document sign-off** — not comment threads, extracted specs, or task plans.
4
4
 
5
- ## Orchestrator
5
+ ## Start here
6
6
 
7
- Spawn **`doc-review`** worker — brief: [../subagents/doc-review.md](../subagents/doc-review.md). Skill runbook loads inside the worker only.
7
+ 1. Activate skill **`ai-spector-review`**
8
+ 2. Read `.cursor/skills/ai-spector-review/references/runbook.md`
8
9
 
9
- ## Worker steps (MCP preferred)
10
+ ## Agent steps (MCP preferred)
10
11
 
11
12
  | Phase | Action |
12
13
  |-------|--------|
@@ -1,58 +1,25 @@
1
1
  ---
2
2
  description: >-
3
- Orchestrator: route ai-spector requests, disambiguate approve/review, delegate to
4
- specialized subagents. Do not inline worker runbooks in parent chat.
3
+ Route ai-spector requests to the correct skill and MCP tools. Disambiguate approve/review
4
+ intent; enforce review, generate, and resolve-task gates. See _skill-router.md for full tables.
5
5
  alwaysApply: true
6
6
  ---
7
7
 
8
- # AI Spector orchestrator
8
+ # AI Spector routing
9
9
 
10
- **Router:** `.cursor/skills/_skill-router.md` · **Subagents:** `.cursor/subagents/` · **Guide:** `.cursor/WORKFLOW.md`
11
-
12
- ## You are the orchestrator (parent)
13
-
14
- 1. **Classify** — priority table below, or `workflow_route({ message })` when ambiguous
15
- 2. **Ask before spawn** — if `askUser` or low confidence, show question in main chat and **do not spawn** a worker yet
16
- 3. **Delegate** — spawn one worker from `.cursor/subagents/<workflowId>.md` with `handoff` from `workflow_route` (or build from table below)
17
- 4. **Relay gates** — workers return `waiting_user` + `askUser`; you show it in main chat. User reply → **resume same `workflowId`** (prefer `Task resume`) or fresh spawn with `resumeFromState: true`
18
- 5. **Never inline runbooks** — do not load generate + review + resolve runbooks in parent chat
19
-
20
- Workers must **not** call `workflow_route` or read `_skill-router.md`.
10
+ **Full router:** `.cursor/skills/_skill-router.md` · **User guide:** `.cursor/WORKFLOW.md`
21
11
 
22
12
  ## Priority (first match wins)
23
13
 
24
- 0. **Document sign-off** `workflowId: doc-review` (`ai-spector-review`)
25
- 0.5. **Active review session** — `.session.json` phase `queue`/`reviewing`/`awaiting_decision` → `doc-review` (overrides "continue" unless topic switch)
26
- 1. **Resume task** → `task-router` (skip if sign-off cues or active review session)
27
- 2. **Incremental change** → `resolve-task`
28
- 3. **Full generation** `generate-srs` / `generate-basic-design` / `generate-prototype`
29
-
30
- ## skill → workflowId
31
-
32
- | Skill | workflowId |
33
- |-------|------------|
34
- | `ai-spector-review` | `doc-review` |
35
- | `ai-spector-resolve-comments` | `resolve-comments` |
36
- | `ai-spector-generate-srs` | `generate-srs` |
37
- | `ai-spector-generate-basic-design` | `generate-basic-design` |
38
- | `ai-spector-generate-prototype` | `generate-prototype` |
39
- | `ai-spector-resolve-task` | `resolve-task` |
40
- | `ai-spector-task` | `task-router` |
41
- | `ai-spector-generate` (spec) | `spec-queue` |
42
- | `ai-spector-graph` | `graph-ops` |
43
- | `ai-spector-search` | `search` |
44
- | `ai-spector-course` | *(parent — open course + link lesson; no worker)* |
45
- | `ai-spector-setup` / `ai-spector-check` | `setup-check` |
46
-
47
- Spawn: `Task({ prompt: handoff from workflow_route, run_in_background: false })` for gated workflows.
48
-
49
- ## Active worker (observability)
50
-
51
- Call **`workflow_status({})`** at session start or after delegating — show `statusLine` to the user when `active` is set (e.g. `Active worker: doc-review (reviewing srs/01-overview)`). Details: [ACTIVE-WORKER.md](../ACTIVE-WORKER.md).
14
+ 0. **Document sign-off** `/review`, approve doc, review queue, pending client, logical path (`srs/…`) → **`ai-spector-review`**
15
+ 0.5. **Active review session** — if `.ai-spector/.docflow/review-queue/.session.json` phase is `queue`, `reviewing`, or `awaiting_decision` → **`ai-spector-review`** (overrides "continue"/"resume" unless user clearly switches topic)
16
+ 1. **Resume task** — resume, continue generation, active tasks **`ai-spector-task`** (skip if sign-off cues or active review session)
17
+ 2. **Incremental change** — add/update/change/"I want to…" **`ai-spector-resolve-task`**
18
+ 3. **Full generation** generate SRS/chapter/DAG → **`ai-spector-generate-*`**
52
19
 
53
20
  ## Ambiguous "approve" or "looks good"
54
21
 
55
- `workflow_route` or ask **one** question — **no worker, no approve tool** until answered:
22
+ Call **`workflow_route({ message })`** or ask **one** question — do **not** call any approve tool until answered:
56
23
 
57
24
  ```
58
25
  Which did you mean?
@@ -62,25 +29,40 @@ Which did you mean?
62
29
  4. Mark a comment thread done (e.g. C-012) — feedback addressed
63
30
  ```
64
31
 
65
- | Answer | workflowId | Tool (in worker) |
66
- |--------|------------|------------------|
67
- | 1 | `doc-review` | `review_approve` (after runbook) |
68
- | 2 | `spec-queue` | `spec_approve` |
69
- | 3 | `resolve-task` or generate | `task_approve_plan` |
70
- | 4 | `resolve-comments` | `comments_resolve` |
32
+ | Answer | Skill | Tool |
33
+ |--------|-------|------|
34
+ | 1 | `ai-spector-review` | `review_approve` (after runbook) |
35
+ | 2 | generate + extract-specs | `spec_approve` |
36
+ | 3 | resolve-task or generate | `task_approve_plan` |
37
+ | 4 | `ai-spector-resolve-comments` | `comments_resolve` |
38
+
39
+ ## Document review gate
40
+
41
+ Triggers: review documents, approve doc, review queue, `/review`.
42
+
43
+ 1. Activate **`ai-spector-review`** — read `references/runbook.md`
44
+ 2. Phases: `review_check` → `review_queue` → `review_status` + read doc → `graph_impact` → **write review in chat** → `review_session_ack_review` → decision menu → `review_approve` only on user **Approve**
45
+ 3. **Forbidden:** `review_approve` without written review + ack; using `spec_approve` / `task_approve_plan` / `comments_resolve` for document sign-off
46
+
47
+ ## Generate gate (SRS / basic design)
48
+
49
+ Triggers: generate SRS, write chapter, DAG wave.
50
+
51
+ 1. **`ai-spector-generate-srs`** or **`ai-spector-generate-basic-design`** — not resolve-task
52
+ 2. `task_list` → clarify → briefing → plan → **`task_approve_plan`** before any `docs/` write
53
+ 3. `task_approve_plan` is **plan** approval — not document sign-off (`review_approve`)
54
+
55
+ ## Resolve-task gate (incremental)
71
56
 
72
- ## Quick gates (workers enforce; you delegate)
57
+ Triggers: add/update/change feature, section, or prototype.
73
58
 
74
- | Workflow | Spawn brief | Forbidden in parent |
75
- |----------|-------------|---------------------|
76
- | Document review | `subagents/doc-review.md` | `review_approve` without worker ack |
77
- | Generate SRS/BD | `subagents/generate-srs.md` | `docs/` writes before `task_approve_plan` |
78
- | Resolve task | `subagents/resolve-task.md` | edits before plan yes |
79
- | Comments | `subagents/resolve-comments.md` | `review_approve` for threads |
59
+ 1. **`ai-spector-resolve-task`** not generate-srs for single-feature adds
60
+ 2. Clarify → GoalSpec + TaskPlan → wait for **yes** → then edit / `graph_impact` / `resolve_task`
61
+ 3. **Forbidden before plan approval:** edits under `docs/` or `prototype/`, `graph_impact`, `index`
80
62
 
81
63
  ## Generate vs incremental
82
64
 
83
- | Request | workflowId |
84
- |---------|------------|
85
- | "generate SRS", "write chapter 4" | `generate-srs` |
86
- | "add login with Google", "update auth section" | `resolve-task` |
65
+ | Request | Skill |
66
+ |---------|-------|
67
+ | "generate SRS", "write chapter 4" | generate-srs / generate-basic-design |
68
+ | "add login with Google", "update auth section" | resolve-task |
@@ -2,31 +2,30 @@
2
2
 
3
3
  Enable **every** folder under `.cursor/skills/` in Cursor (Settings → Rules → Agent Skills).
4
4
 
5
- **Orchestrator** routes and spawns **subagent workers** from [../subagents/README.md](../subagents/README.md). **You do not need slash commands** for most work describe what you want; orchestrator delegates to the right worker.
5
+ **You do not need slash commands.** Describe what you want ("generate SRS", "analyze data source"); Cursor matches the skill `description` and the agent reads that skill's **runbook** under `references/`.
6
6
 
7
7
  **Pipeline overview:** [../WORKFLOW.md](../WORKFLOW.md)
8
- **Disambiguation:** [_skill-router.md](./_skill-router.md)
9
- **Subagent catalog:** [../subagents/README.md](../subagents/README.md)
8
+ **Disambiguation:** [_skill-router.md](./_skill-router.md)
10
9
 
11
10
  ## Quick pick
12
11
 
13
- | You want to… | Skill / worker |
14
- |--------------|----------------|
12
+ | You want to… | Skill |
13
+ |--------------|-------|
15
14
  | **Learn / open course / tutorials** | `ai-spector-course` |
16
- | **Setup / bootstrap project** | `setup-check` |
17
- | Check workspace structure / stale clarifications | `setup-check` |
18
- | Analyze, index, validate graph, impact, visualize | `graph-ops` |
19
- | SRS / requirements | `generate-srs` — or **`/generate-srs`** |
20
- | Screens, APIs, DB basic design | `generate-basic-design` |
21
- | HTML prototype | `generate-prototype` |
22
- | Review comments | `resolve-comments` — or **`/resolve-comments`** |
23
- | **Document sign-off / review queue** | `doc-review` — or **`/review`** |
24
- | Add/update feature or section (I want to add…”) | `resolve-task` (plan-first) |
25
- | Resume / active tasks | `task-router` |
26
- | Approve SPEC-NNN | `spec-queue` |
15
+ | **Setup / bootstrap project** | `ai-spector-setup` |
16
+ | Check workspace structure / stale clarifications | `ai-spector-check` |
17
+ | Analyze, index, validate graph, impact, visualize | `ai-spector-graph` |
18
+ | SRS / requirements | `ai-spector-generate-srs` — or **`/generate-srs`** |
19
+ | Screens, APIs, DB basic design | `ai-spector-generate-basic-design` |
20
+ | HTML prototype | `ai-spector-generate-prototype` |
21
+ | Review comments | `ai-spector-resolve-comments` — or **`/resolve-comments`** |
22
+ | **Document sign-off / review queue** | `ai-spector-review` — or **`/review`** |
23
+ | Add/update feature or section ("I want to add…") | `ai-spector-resolve-task` (plan-first) |
24
+ | Resume / active tasks | `ai-spector-task` |
25
+ | Approve SPEC-NNN | `ai-spector-generate` + extract-specs |
27
26
  | Translation status (read-only) | `ai-spector-lang-status` |
28
27
  | Resolve / sync translations | `ai-spector-resolve-translation` |
29
- | Unsure | orchestrator + `workflow_route` |
28
+ | Unsure | `workflow_route` or `ai-spector` (core) |
30
29
 
31
30
  ## Shared references (core skill)
32
31
 
@@ -1,7 +1,5 @@
1
1
  # AI Spector skill router
2
2
 
3
- **Orchestrator** uses this for classification. **Workers** must not read this file — they follow `.cursor/subagents/<workflowId>.md` only.
4
-
5
3
  Agents use this when intent is ambiguous.
6
4
 
7
5
  ## Priority
@@ -12,8 +10,8 @@ Agents use this when intent is ambiguous.
12
10
  2. **Incremental change (plan-first)** — verbs *add*, *update*, *change*, *modify*, *extend*, or phrases *"I want to"*, *"we need to"*, *create task* → **`ai-spector-resolve-task`** before any generate-* skill. Example: "add login with Google" → resolve-task, **not** generate-srs.
13
11
  3. **Full generation** — *generate*, *write chapter*, *DAG wave*, *from graph* → `ai-spector-generate` or layer skill.
14
12
  4. **File context** — `paths` in skill frontmatter (e.g. `prototype/**` → prototype skill) when intent is still ambiguous.
15
- 5. **Natural language** — match skill `description`; then read that skills `references/` runbook.
16
- 6. **Still unclear** — call MCP `workflow_route({ message })` → if `handoff` present, spawn worker from `.cursor/subagents/`; if `askUser`, ask in parent chat first (see approve disambiguation below).
13
+ 5. **Natural language** — match skill `description`; then read that skill's `references/` runbook.
14
+ 6. **Still unclear** — call MCP `workflow_route({ message })` → read `handoff.readBrief` skill runbook; if `askUser`, ask in chat first (see approve disambiguation below).
17
15
 
18
16
  ## DISAMBIGUATION: "approve" means four different things
19
17
 
@@ -79,10 +77,10 @@ When in doubt: if the user names a document and asks about approval/status → `
79
77
  | set up template pack, import template, custom template, install template | `ai-spector-template-import` | `references/runbook.md` |
80
78
  | create task, new task, resolve task, change prototype | `ai-spector-resolve-task` | `references/runbook.md` |
81
79
  | comment threads, C-001, inbox, resolve comments, open threads | `ai-spector-resolve-comments` | `references/runbook.md` |
82
- | document approval, approve doc, review status, review queue, "which docs reviewed", "has X been approved", "pending review", "what changed since approval", "does all document has reviewed", custom review checklist | `ai-spector-review` | `references/runbook.md`, `references/custom-checklists.md` |
80
+ | document approval, approve doc, review status, review queue, "which docs reviewed", "has X been approved", "pending review", "what changed since approval", "does all document has reviewed" | `ai-spector-review` | `references/runbook.md` |
83
81
  | translation status, stale langs | `ai-spector-lang-status` | `SKILL.md` |
84
82
  | resolve translations, sync JP/VI | `ai-spector-resolve-translation` | `references/runbook.md` |
85
- | generate docs (no layer named) | `ai-spector-generate` | `SKILL.md` |
83
+ | "generate docs" (no layer named) | `ai-spector-generate` | `SKILL.md` |
86
84
 
87
85
  Shared: [ai-spector/references/cli-failures.md](./ai-spector/references/cli-failures.md), [generate-workflow.md](./ai-spector/references/generate-workflow.md), [generate-graph.md](./ai-spector/references/generate-graph.md).
88
86
 
@@ -8,13 +8,6 @@ description: >-
8
8
  ---
9
9
 
10
10
  # Workspace check
11
-
12
- ## Subagent worker
13
-
14
- **workflowId:** `setup-check` · **Brief:** [../../subagents/setup-check.md](../../subagents/setup-check.md)
15
-
16
- Orchestrator spawns this worker for workspace audit flows.
17
-
18
11
  ## Load at start
19
12
  1. [../ai-spector/references/workspace-check.md](../ai-spector/references/workspace-check.md)
20
13
 
@@ -9,10 +9,6 @@ description: >-
9
9
 
10
10
  # AI Spector — Generate (router)
11
11
 
12
- ## Subagent note
13
-
14
- Orchestrator may spawn **`spec-queue`** worker for SPEC-NNN approval — brief: [../../subagents/spec-queue.md](../../subagents/spec-queue.md). Full generate → `generate-srs` / `generate-basic-design` workers.
15
-
16
12
  ## Step 0 — Incremental vs full generate
17
13
 
18
14
  | User intent | Route to |
@@ -11,13 +11,6 @@ paths:
11
11
  ---
12
12
 
13
13
  # Generate Basic Design
14
-
15
- ## Subagent worker
16
-
17
- **workflowId:** `generate-basic-design` · **Brief:** [../../subagents/generate-basic-design.md](../../subagents/generate-basic-design.md)
18
-
19
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
20
-
21
14
  ## Step 0 — HARD GATE (before anything else)
22
15
 
23
16
  **Do not** run `workspace_check`, read templates, or write under `docs/basic-design/` until task state exists.
@@ -11,13 +11,6 @@ paths:
11
11
  ---
12
12
 
13
13
  # Generate Prototype
14
-
15
- ## Subagent worker
16
-
17
- **workflowId:** `generate-prototype` · **Brief:** [../../subagents/generate-prototype.md](../../subagents/generate-prototype.md)
18
-
19
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
20
-
21
14
  ## Load at start
22
15
  1. [references/runbook.md](references/runbook.md)
23
16
 
@@ -11,13 +11,6 @@ paths:
11
11
  ---
12
12
 
13
13
  # Generate SRS
14
-
15
- ## Subagent worker
16
-
17
- **workflowId:** `generate-srs` · **Brief:** [../../subagents/generate-srs.md](../../subagents/generate-srs.md)
18
-
19
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
20
-
21
14
  ## Step 0 — HARD GATE (before anything else)
22
15
 
23
16
  **Do not** run `workspace_check`, read templates, or write under `docs/srs/` until task state exists.
@@ -14,13 +14,6 @@ paths:
14
14
  ---
15
15
 
16
16
  # AI Spector — Graph
17
-
18
- ## Subagent worker
19
-
20
- **workflowId:** `graph-ops` · **Brief:** [../../subagents/graph-ops.md](../../subagents/graph-ops.md)
21
-
22
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
23
-
24
17
  **Core:** [../ai-spector/SKILL.md](../ai-spector/SKILL.md) · **Workflow:** [../../WORKFLOW.md](../../WORKFLOW.md)
25
18
 
26
19
  ## When this skill applies
@@ -10,13 +10,6 @@ paths:
10
10
  ---
11
11
 
12
12
  # AI Spector — Resolve comments
13
-
14
- ## Subagent worker
15
-
16
- **workflowId:** `resolve-comments` · **Brief:** [../../subagents/resolve-comments.md](../../subagents/resolve-comments.md)
17
-
18
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
19
-
20
13
  **Core:** [../ai-spector/SKILL.md](../ai-spector/SKILL.md)
21
14
 
22
15
  ## Required reading
@@ -15,13 +15,6 @@ paths:
15
15
  ---
16
16
 
17
17
  # AI Spector — Resolve Task
18
-
19
- ## Subagent worker
20
-
21
- **workflowId:** `resolve-task` · **Brief:** [../../subagents/resolve-task.md](../../subagents/resolve-task.md)
22
-
23
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
24
-
25
18
  **Read first:** [references/runbook.md](references/runbook.md) — follow every phase in order.
26
19
 
27
20
  ## You are in plan-first mode
@@ -15,12 +15,6 @@ paths:
15
15
 
16
16
  # AI Spector — Document Review
17
17
 
18
- ## Subagent worker
19
-
20
- **workflowId:** `doc-review` · **Brief:** [../../subagents/doc-review.md](../../subagents/doc-review.md)
21
-
22
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
23
-
24
18
  **Core:** [../ai-spector/SKILL.md](../ai-spector/SKILL.md)
25
19
 
26
20
  ## Required reading
@@ -11,13 +11,6 @@ paths:
11
11
  ---
12
12
 
13
13
  # AI Spector — Semantic Search
14
-
15
- ## Subagent worker
16
-
17
- **workflowId:** `search` · **Brief:** [../../subagents/search.md](../../subagents/search.md)
18
-
19
- Orchestrator spawns this worker. Workers do not call `workflow_route` or read `_skill-router.md`.
20
-
21
14
  **Core:** [../ai-spector/SKILL.md](../ai-spector/SKILL.md)
22
15
 
23
16
  CocoIndex adds **semantic proximity** on top of the formal traceability graph.
@@ -12,13 +12,6 @@ paths:
12
12
  ---
13
13
 
14
14
  # AI Spector — Project setup
15
-
16
- ## Subagent worker
17
-
18
- **workflowId:** `setup-check` · **Brief:** [../../subagents/setup-check.md](../../subagents/setup-check.md)
19
-
20
- Orchestrator spawns this worker for setup flows.
21
-
22
15
  **Core:** [../ai-spector/SKILL.md](../ai-spector/SKILL.md)
23
16
 
24
17
  ## Two paths
@@ -9,13 +9,6 @@ paths:
9
9
  ---
10
10
 
11
11
  # AI Spector — Task state
12
-
13
- ## Subagent worker
14
-
15
- **workflowId:** `task-router` · **Brief:** [../../subagents/task-router.md](../../subagents/task-router.md)
16
-
17
- Orchestrator spawns this worker to list/resume tasks, then hand off to `generate-srs` or `resolve-task`.
18
-
19
12
  **Read first:** [references/runbook.md](references/runbook.md)
20
13
 
21
14
  ## When to use
@@ -1,46 +0,0 @@
1
- # Active worker status (orchestrator)
2
-
3
- Optional observability for subagent routing. Persisted under `.ai-spector/.docflow/`.
4
-
5
- ## MCP
6
-
7
- ```text
8
- workflow_status({})
9
- ```
10
-
11
- Returns:
12
-
13
- ```json
14
- {
15
- "active": {
16
- "workflowId": "doc-review",
17
- "phase": "reviewing",
18
- "displayLabel": "doc-review (reviewing srs/01-overview)",
19
- "context": { "logicalPath": "srs/01-overview" }
20
- },
21
- "statusLine": "Active worker: doc-review (reviewing srs/01-overview)",
22
- "recentTransitions": [...]
23
- }
24
- ```
25
-
26
- ## Orchestrator behavior
27
-
28
- 1. At session start (or after routing), call `workflow_status` and show `statusLine` once if `active` is set.
29
- 2. After `workflow_route` with `handoff`, active state is updated automatically.
30
- 3. Review session phase changes (`review_check`, `review_queue`, `review_status`, …) update active worker via `.session.json` hooks.
31
- 4. `review_approve` / `review_reject` clears active doc-review worker.
32
-
33
- ## Cursor status line (optional)
34
-
35
- In Cursor Settings → Status Line, you can reference project context. Simpler approach: orchestrator prefixes replies when `workflow_status.active` exists:
36
-
37
- > **Active worker:** doc-review (reviewing srs/01-overview)
38
-
39
- Files:
40
-
41
- | Path | Purpose |
42
- |------|---------|
43
- | `workflow-active.json` | Current worker + phase |
44
- | `workflow-log.jsonl` | Recent transitions (tail) |
45
-
46
- Design: [../../docs/subagent-routing-design.md](../../docs/subagent-routing-design.md)
@@ -1,53 +0,0 @@
1
- # AI Spector subagent briefs
2
-
3
- **Orchestrator-only routing** — parent reads [../rules/ai-spector-routing.mdc](../rules/ai-spector-routing.mdc) and spawns workers from this folder. Workers must **not** read `_skill-router.md` or call `workflow_route`.
4
-
5
- ## Catalog
6
-
7
- | workflowId | Brief | Skill | Command |
8
- |------------|-------|-------|---------|
9
- | `doc-review` | [doc-review.md](./doc-review.md) | `ai-spector-review` | `/review` |
10
- | `resolve-comments` | [resolve-comments.md](./resolve-comments.md) | `ai-spector-resolve-comments` | `/resolve-comments` |
11
- | `generate-srs` | [generate-srs.md](./generate-srs.md) | `ai-spector-generate-srs` | `/generate-srs` |
12
- | `generate-basic-design` | [generate-basic-design.md](./generate-basic-design.md) | `ai-spector-generate-basic-design` | `/generate-basic-design` |
13
- | `generate-prototype` | [generate-prototype.md](./generate-prototype.md) | `ai-spector-generate-prototype` | `/generate-prototype` |
14
- | `resolve-task` | [resolve-task.md](./resolve-task.md) | `ai-spector-resolve-task` | — |
15
- | `task-router` | [task-router.md](./task-router.md) | `ai-spector-task` | — |
16
- | `spec-queue` | [spec-queue.md](./spec-queue.md) | extract-specs ref | — |
17
- | `graph-ops` | [graph-ops.md](./graph-ops.md) | `ai-spector-graph` | — |
18
- | `search` | [search.md](./search.md) | `ai-spector-search` | — |
19
- | `setup-check` | [setup-check.md](./setup-check.md) | `ai-spector-setup` / `ai-spector-check` | — |
20
-
21
- ## Spawn prompt (parent → worker)
22
-
23
- Copy from `workflow_route` response `handoff`, or build manually:
24
-
25
- ```yaml
26
- workflowId: doc-review
27
- phase: queue # from ReviewSession or runbook
28
- userGoal: "<original user request>"
29
- userAnswer: "<if answering worker gate>"
30
- resumeFromState: true # when continuing after waiting_user
31
- readBrief: .cursor/subagents/doc-review.md
32
- runInBackground: false # required when HITL gates exist
33
- ```
34
-
35
- Prefer **`Task({ resume: priorAgentId })`** when the worker just returned `waiting_user`. Otherwise spawn fresh with `resumeFromState: true` — phase lives on disk (`ReviewSession`, `TaskState`).
36
-
37
- ## Worker output (worker → parent)
38
-
39
- ```yaml
40
- status: waiting_user | phase_complete | workflow_complete | blocked
41
- summary: "<user-facing>"
42
- askUser: # when status === waiting_user
43
- question: "..."
44
- options: [{ id, label }]
45
- suggestedNext:
46
- workflowId: task-router # optional handoff
47
- ```
48
-
49
- Parent shows `askUser` in main chat. User reply → resume same `workflowId` (do not re-route unless topic switch).
50
-
51
- **Observability:** `workflow_status({})` → `statusLine` (see [ACTIVE-WORKER.md](../ACTIVE-WORKER.md)).
52
-
53
- Design: [../../../docs/subagent-routing-design.md](../../../docs/subagent-routing-design.md)
@@ -1,45 +0,0 @@
1
- # Subagent: doc-review
2
-
3
- **One job:** Formal document sign-off (`review_approve`). Not comment threads, specs, or task plans.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-review/references/runbook.md](../skills/ai-spector-review/references/runbook.md)
8
- 2. [../skills/ai-spector-review/references/readiness-compliance.md](../skills/ai-spector-review/references/readiness-compliance.md)
9
- 3. [../skills/ai-spector-review/references/custom-checklists.md](../skills/ai-spector-review/references/custom-checklists.md) — user-extensible JSON checklists
10
-
11
- ## NOT WHEN
12
-
13
- | User means | Wrong tool | Use instead |
14
- |------------|------------|-------------|
15
- | Comment thread C-NNN | `comments_resolve` | `resolve-comments` worker |
16
- | SPEC-NNN | `spec_approve` | `spec-queue` worker |
17
- | Plan yes after GoalSpec table | `task_approve_plan` | `resolve-task` / generate worker |
18
- | Routing / which workflow | `workflow_route` | Return `blocked` — orchestrator only |
19
-
20
- ## Phase → tools
21
-
22
- | Phase | Allowed | Forbidden |
23
- |-------|---------|-----------|
24
- | `detect` | `review_check` | `review_approve` |
25
- | `queue` | `review_queue` | `review_approve` |
26
- | `reviewing` | `review_status`, read doc, `readiness_scan`, `readiness_output_checklist`, `graph_impact`, `review_session_ack_review` | `review_approve` until ack |
27
- | `awaiting_decision` | `review_approve`, `review_reject` | `spec_approve`, `task_approve_plan`, `comments_resolve` |
28
-
29
- On entry with `resumeFromState: true`, load `.ai-spector/.docflow/review-queue/.session.json` or last `review_status` — do not restart from `detect` if phase is already `reviewing`.
30
-
31
- ## Human gates (return `waiting_user`)
32
-
33
- - After `review_queue` table → ask which document
34
- - After written review + ack → decision menu (Approve / Request changes / Dismiss)
35
-
36
- Workers cannot ask user directly — return `askUser` and stop.
37
-
38
- ## Output contract
39
-
40
- ```yaml
41
- status: waiting_user | phase_complete | workflow_complete
42
- summary: review summary for user
43
- askUser: { question, options? }
44
- artifacts: [logicalPath]
45
- ```
@@ -1,28 +0,0 @@
1
- # Subagent: generate-basic-design
2
-
3
- **One job:** Basic design docs (screens, APIs, DB) in gated waves. Same task-state pattern as SRS.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-generate-basic-design/references/runbook.md](../skills/ai-spector-generate-basic-design/references/runbook.md) (if present) or skill `SKILL.md`
8
- 2. [../skills/ai-spector/references/generate-workflow.md](../skills/ai-spector/references/generate-workflow.md)
9
-
10
- ## NOT WHEN
11
-
12
- Incremental section update → `resolve-task`. Document sign-off → `doc-review`.
13
-
14
- ## Phase → tools
15
-
16
- Same gates as `generate-srs` but `docType: basic-design`, paths under `docs/basic-design/`.
17
-
18
- | Phase | Forbidden until `task_approve_plan` |
19
- |-------|-------------------------------------|
20
- | pre-plan | writes under `docs/basic-design/`, `index`, `graph_merge` |
21
-
22
- ## Human gates
23
-
24
- Clarify → plan → user yes → `task_approve_plan` → waves.
25
-
26
- ## Output contract
27
-
28
- Same as `generate-srs.md`.
@@ -1,31 +0,0 @@
1
- # Subagent: generate-prototype
2
-
3
- **One job:** HTML prototype setup and screen generation.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-generate-prototype/references/runbook.md](../skills/ai-spector-generate-prototype/references/runbook.md)
8
-
9
- ## NOT WHEN
10
-
11
- SRS/basic-design chapter writes → generate workers. Incremental prototype tweak → `resolve-task`.
12
-
13
- ## Phase → tools
14
-
15
- | Phase | Allowed |
16
- |-------|---------|
17
- | `auth` | auth picker flow |
18
- | `theme` | theme picker, `prototype preview` |
19
- | `setup` | `prototype setup` |
20
- | `generate` | write `prototype/src/*.html`, validate |
21
-
22
- ## Human gates
23
-
24
- Auth picker, theme picker (3 previews) — return `waiting_user` with options.
25
-
26
- ## Output contract
27
-
28
- ```yaml
29
- status: waiting_user | workflow_complete
30
- artifacts: [prototype paths, theme]
31
- ```
@@ -1,44 +0,0 @@
1
- # Subagent: generate-srs
2
-
3
- **One job:** Full SRS generation in DAG order (gated waves). Not incremental single-feature adds.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-generate-srs/references/runbook.md](../skills/ai-spector-generate-srs/references/runbook.md)
8
- 2. [../skills/ai-spector/references/generate-workflow.md](../skills/ai-spector/references/generate-workflow.md)
9
-
10
- ## NOT WHEN
11
-
12
- | User means | Route to |
13
- |------------|----------|
14
- | "add login", "update section" | `resolve-task` worker |
15
- | Approve doc sign-off | `doc-review` worker |
16
- | Approve SPEC after extract | `spec-queue` worker (separate spawn) |
17
-
18
- ## Phase → tools
19
-
20
- | Phase | Allowed | Forbidden |
21
- |-------|---------|-----------|
22
- | `bootstrap` | `task_list` (with bootstrap), `task_resume` | writes under `docs/srs/` |
23
- | `check` | `workspace_check`, `context_list` | `index`, `graph_merge` |
24
- | `clarify` | `context_resolve`, `task_update` | doc writes |
25
- | `plan` | briefing in chat, `task_update` | doc writes, `task_approve_plan` until user yes |
26
- | `approved` | `task_record_wave`, `index`, `spec_record` | `review_approve` |
27
- | `extract_offer` | offer spec extraction → hand off to `spec-queue` | inline `spec_approve` in same long session optional |
28
-
29
- ## Human gates
30
-
31
- - Clarification questions (≤ batch per runbook)
32
- - Plan table → wait for explicit **yes** → `task_approve_plan`
33
- - Spec extraction offer → user picks specs to queue
34
-
35
- `runInBackground: false` always.
36
-
37
- ## Output contract
38
-
39
- ```yaml
40
- status: waiting_user | phase_complete | workflow_complete
41
- suggestedNext:
42
- workflowId: spec-queue # after extract offer accepted
43
- artifacts: [taskId, wave ids]
44
- ```
@@ -1,34 +0,0 @@
1
- # Subagent: graph-ops
2
-
3
- **One job:** Analyze, index, validate graph, impact, visualize, sync.
4
-
5
- ## Read first
6
-
7
- 1. Relevant ref from [../skills/ai-spector-graph/](../skills/ai-spector-graph/) (`analyze.md`, `index.md`, `impact.md`, etc.)
8
-
9
- ## NOT WHEN
10
-
11
- Semantic doc search → `search` worker. Generate/write docs → generate or resolve workers.
12
-
13
- ## Phase → tools
14
-
15
- | Intent | Tools |
16
- |--------|-------|
17
- | analyze | agent extract → `knowledge_validate` → `graph_merge` |
18
- | index | `index` |
19
- | validate | `graph_validate`, `graph_report` |
20
- | impact | `graph_impact` |
21
- | visualize | CLI `graph visualize --open` |
22
-
23
- ## Human gates
24
-
25
- Usually none. May ask before destructive `graph_merge` if runbook requires.
26
-
27
- Background OK for read-only validate/report.
28
-
29
- ## Output contract
30
-
31
- ```yaml
32
- status: workflow_complete
33
- summary: findings table or impact summary
34
- ```
@@ -1,38 +0,0 @@
1
- # Subagent: resolve-comments
2
-
3
- **One job:** Resolve git-backed comment threads (`comments_resolve`). Not document sign-off.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-resolve-comments/references/runbook.md](../skills/ai-spector-resolve-comments/references/runbook.md)
8
-
9
- ## NOT WHEN
10
-
11
- | User means | Wrong tool | Use instead |
12
- |------------|------------|-------------|
13
- | Approve doc / review queue | `review_approve` | `doc-review` worker |
14
- | SPEC-NNN | `spec_approve` | `spec-queue` worker |
15
- | `workflow_route` | — | orchestrator only |
16
-
17
- ## Phase → tools
18
-
19
- | Phase | Allowed | Forbidden |
20
- |-------|---------|-----------|
21
- | `inbox` | `comments_inbox`, `comments_show` | `comments_resolve` |
22
- | `plan` | `comments_plan` | `comments_resolve` until edits done |
23
- | `resolve` | edit docs, `comments_resolve` | `review_approve`, `spec_approve` |
24
-
25
- ## Human gates
26
-
27
- - After inbox table → user picks C-NNN
28
- - After plan → confirm before edits (if runbook requires)
29
-
30
- Commit must include **both** doc and `comments/` meta (amend pattern in runbook).
31
-
32
- ## Output contract
33
-
34
- ```yaml
35
- status: waiting_user | workflow_complete
36
- summary: what was resolved
37
- artifacts: [C-NNN, doc paths]
38
- ```
@@ -1,40 +0,0 @@
1
- # Subagent: resolve-task
2
-
3
- **One job:** Incremental doc/graph/prototype changes — plan first, execute after `task_approve_plan`.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-resolve-task/references/runbook.md](../skills/ai-spector-resolve-task/references/runbook.md)
8
-
9
- ## NOT WHEN
10
-
11
- | User means | Route to |
12
- |------------|----------|
13
- | Full SRS generate | `generate-srs` |
14
- | Document sign-off | `doc-review` |
15
- | Comment thread | `resolve-comments` |
16
-
17
- ## Phase → tools
18
-
19
- | Phase | Allowed | Forbidden |
20
- |-------|---------|-----------|
21
- | `clarify` | `task_create`, `task_update`, `context_list` | edits, `graph_impact`, `resolve_task` |
22
- | `discover` | `docs_search`, `graph_query`, `graph_query_fuzzy` (readonly) | `graph_impact`, edits |
23
- | `plan` | GoalSpec + TaskPlan in chat | all writes |
24
- | `awaiting_yes` | — | everything until user says yes |
25
- | `execute` | `task_approve_plan`, edits, `graph_impact`, `resolve_task`, `index` | `review_approve` |
26
-
27
- Discover phase may use `readonly: true` spawn if parent splits phases.
28
-
29
- ## Human gates
30
-
31
- - Clarification (≤3 questions)
32
- - GoalSpec + TaskPlan table → wait for **yes**
33
-
34
- ## Output contract
35
-
36
- ```yaml
37
- status: waiting_user | workflow_complete
38
- summary: plan table or execution summary
39
- artifacts: [taskId]
40
- ```
@@ -1,25 +0,0 @@
1
- # Subagent: search
2
-
3
- **One job:** Semantic doc search and fuzzy graph node lookup.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-search/SKILL.md](../skills/ai-spector-search/SKILL.md)
8
-
9
- ## NOT WHEN
10
-
11
- Full graph analyze/index → `graph-ops`. Writing docs → generate/resolve workers.
12
-
13
- ## Tools
14
-
15
- - `docs_search({ query })`
16
- - `graph_query_fuzzy({ query })`
17
-
18
- Read-only. `runInBackground: true` OK.
19
-
20
- ## Output contract
21
-
22
- ```yaml
23
- status: workflow_complete
24
- summary: ranked results for user
25
- ```
@@ -1,25 +0,0 @@
1
- # Subagent: setup-check
2
-
3
- **One job:** Project bootstrap (`setup`) or workspace audit (`check`).
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-setup/references/runbook.md](../skills/ai-spector-setup/references/runbook.md) or [../skills/ai-spector-check/SKILL.md](../skills/ai-spector-check/SKILL.md)
8
-
9
- ## Phase → tools
10
-
11
- | Intent | Tools / CLI |
12
- |--------|-------------|
13
- | setup | `setup --check`, `setup -y` |
14
- | check | `workspace_check`, optional `fix: true` |
15
-
16
- ## Human gates
17
-
18
- Setup wizard choices, fix approval for workspace_check.
19
-
20
- ## Output contract
21
-
22
- ```yaml
23
- status: waiting_user | workflow_complete
24
- summary: setup checklist or findings table
25
- ```
@@ -1,34 +0,0 @@
1
- # Subagent: spec-queue
2
-
3
- **One job:** Review and approve/reject extracted specs (SPEC-NNN) after generation stage 6.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector/references/extract-specs.md](../skills/ai-spector/references/extract-specs.md)
8
-
9
- ## NOT WHEN
10
-
11
- | User means | Wrong tool |
12
- |------------|------------|
13
- | Document sign-off | `review_approve` |
14
- | Task plan yes | `task_approve_plan` |
15
- | Comment done | `comments_resolve` |
16
-
17
- ## Phase → tools
18
-
19
- | Phase | Allowed |
20
- |-------|---------|
21
- | `list` | `spec_list` |
22
- | `review` | show pending specs to user |
23
- | `decide` | `spec_approve`, `spec_reject`, `graph_merge` |
24
-
25
- ## Human gates
26
-
27
- User picks which SPEC(s) to approve/reject.
28
-
29
- ## Output contract
30
-
31
- ```yaml
32
- status: waiting_user | workflow_complete
33
- artifacts: [SPEC-NNN ids]
34
- ```
@@ -1,39 +0,0 @@
1
- # Subagent: task-router
2
-
3
- **One job:** List, resume, pause task state — then hand off to generate or resolve worker.
4
-
5
- ## Read first
6
-
7
- 1. [../skills/ai-spector-task/references/runbook.md](../skills/ai-spector-task/references/runbook.md)
8
-
9
- ## NOT WHEN
10
-
11
- Active `ReviewSession` (phase queue/reviewing/awaiting_decision) → orchestrator spawns `doc-review` instead on "continue".
12
-
13
- ## Phase → tools
14
-
15
- | Phase | Allowed |
16
- |-------|---------|
17
- | `list` | `task_list`, `task_status` |
18
- | `resume` | `task_resume`, `task_get` |
19
- | `handoff` | return `suggestedNext.workflowId` |
20
-
21
- ## Handoff map
22
-
23
- | `task.kind` + `workflow` | Spawn next |
24
- |--------------------------|------------|
25
- | `generate` + `generate-srs` | `generate-srs` |
26
- | `generate` + basic design | `generate-basic-design` |
27
- | `resolve` | `resolve-task` |
28
-
29
- Do not execute generation or resolve inside this worker — only load state and suggest handoff.
30
-
31
- ## Output contract
32
-
33
- ```yaml
34
- status: phase_complete | workflow_complete
35
- suggestedNext:
36
- workflowId: generate-srs | resolve-task | ...
37
- message: "Resuming task X — continuing generation"
38
- artifacts: [taskId]
39
- ```