spec-manager 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +27 -0
- package/CODEBUDDY.md +19 -0
- package/LICENSE +21 -0
- package/README.md +531 -0
- package/dist/cli/audit.d.ts +10 -0
- package/dist/cli/audit.d.ts.map +1 -0
- package/dist/cli/audit.js +62 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/change.d.ts +10 -0
- package/dist/cli/change.d.ts.map +1 -0
- package/dist/cli/change.js +103 -0
- package/dist/cli/change.js.map +1 -0
- package/dist/cli/common.d.ts +5 -0
- package/dist/cli/common.d.ts.map +1 -0
- package/dist/cli/common.js +17 -0
- package/dist/cli/common.js.map +1 -0
- package/dist/cli/decision.d.ts +13 -0
- package/dist/cli/decision.d.ts.map +1 -0
- package/dist/cli/decision.js +185 -0
- package/dist/cli/decision.js.map +1 -0
- package/dist/cli/dict.d.ts +10 -0
- package/dist/cli/dict.d.ts.map +1 -0
- package/dist/cli/dict.js +73 -0
- package/dist/cli/dict.js.map +1 -0
- package/dist/cli/incident.d.ts +10 -0
- package/dist/cli/incident.d.ts.map +1 -0
- package/dist/cli/incident.js +119 -0
- package/dist/cli/incident.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +30 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/project.d.ts +3 -0
- package/dist/cli/project.d.ts.map +1 -0
- package/dist/cli/project.js +144 -0
- package/dist/cli/project.js.map +1 -0
- package/dist/cli/spec.d.ts +3 -0
- package/dist/cli/spec.d.ts.map +1 -0
- package/dist/cli/spec.js +289 -0
- package/dist/cli/spec.js.map +1 -0
- package/dist/cli/task.d.ts +14 -0
- package/dist/cli/task.d.ts.map +1 -0
- package/dist/cli/task.js +287 -0
- package/dist/cli/task.js.map +1 -0
- package/dist/cli/usability.d.ts +3 -0
- package/dist/cli/usability.d.ts.map +1 -0
- package/dist/cli/usability.js +153 -0
- package/dist/cli/usability.js.map +1 -0
- package/dist/core/agents.d.ts +43 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/core/agents.js +194 -0
- package/dist/core/agents.js.map +1 -0
- package/dist/core/archive.d.ts +35 -0
- package/dist/core/archive.d.ts.map +1 -0
- package/dist/core/archive.js +360 -0
- package/dist/core/archive.js.map +1 -0
- package/dist/core/audit-events.d.ts +12 -0
- package/dist/core/audit-events.d.ts.map +1 -0
- package/dist/core/audit-events.js +16 -0
- package/dist/core/audit-events.js.map +1 -0
- package/dist/core/audit.d.ts +78 -0
- package/dist/core/audit.d.ts.map +1 -0
- package/dist/core/audit.js +157 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/constants.d.ts +28 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +30 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/decision.d.ts +69 -0
- package/dist/core/decision.d.ts.map +1 -0
- package/dist/core/decision.js +210 -0
- package/dist/core/decision.js.map +1 -0
- package/dist/core/delta.d.ts +85 -0
- package/dist/core/delta.d.ts.map +1 -0
- package/dist/core/delta.js +264 -0
- package/dist/core/delta.js.map +1 -0
- package/dist/core/dict.d.ts +28 -0
- package/dist/core/dict.d.ts.map +1 -0
- package/dist/core/dict.js +57 -0
- package/dist/core/dict.js.map +1 -0
- package/dist/core/frontmatter.d.ts +19 -0
- package/dist/core/frontmatter.d.ts.map +1 -0
- package/dist/core/frontmatter.js +57 -0
- package/dist/core/frontmatter.js.map +1 -0
- package/dist/core/incident.d.ts +45 -0
- package/dist/core/incident.d.ts.map +1 -0
- package/dist/core/incident.js +128 -0
- package/dist/core/incident.js.map +1 -0
- package/dist/core/paths.d.ts +68 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +162 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/repository.d.ts +13 -0
- package/dist/core/repository.d.ts.map +1 -0
- package/dist/core/repository.js +29 -0
- package/dist/core/repository.js.map +1 -0
- package/dist/core/spec-io.d.ts +125 -0
- package/dist/core/spec-io.d.ts.map +1 -0
- package/dist/core/spec-io.js +260 -0
- package/dist/core/spec-io.js.map +1 -0
- package/dist/core/status.d.ts +22 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/status.js +54 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/task.d.ts +118 -0
- package/dist/core/task.d.ts.map +1 -0
- package/dist/core/task.js +340 -0
- package/dist/core/task.js.map +1 -0
- package/dist/core/usability.d.ts +25 -0
- package/dist/core/usability.d.ts.map +1 -0
- package/dist/core/usability.js +136 -0
- package/dist/core/usability.js.map +1 -0
- package/dist/core/validate.d.ts +34 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +195 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/change.d.ts +138 -0
- package/dist/schemas/change.d.ts.map +1 -0
- package/dist/schemas/change.js +38 -0
- package/dist/schemas/change.js.map +1 -0
- package/dist/schemas/spec.d.ts +233 -0
- package/dist/schemas/spec.d.ts.map +1 -0
- package/dist/schemas/spec.js +56 -0
- package/dist/schemas/spec.js.map +1 -0
- package/package.json +66 -0
- package/rules/_TEMPLATE.md +20 -0
- package/rules/code-discipline.md +47 -0
- package/rules/codebase-survey.md +37 -0
- package/rules/delta.md +42 -0
- package/rules/doc-governance.md +195 -0
- package/rules/flow-control.md +65 -0
- package/rules/quality-gate.md +73 -0
- package/skill/SKILL.md +90 -0
- package/skill/subskills/adr.md +73 -0
- package/skill/subskills/change.md +118 -0
- package/skill/subskills/design.md +53 -0
- package/skill/subskills/impl.md +100 -0
- package/skill/subskills/plan.md +46 -0
- package/skill/subskills/postmortem.md +77 -0
- package/skill/subskills/prd.md +72 -0
- package/skill/subskills/quick.md +25 -0
- package/skill/subskills/release.md +50 -0
- package/skill/subskills/research.md +35 -0
- package/skill/subskills/runbook.md +44 -0
- package/skill/subskills/testplan.md +48 -0
- package/templates/L0-prd.md +43 -0
- package/templates/L1-prd.md +130 -0
- package/templates/L2-design.md +135 -0
- package/templates/L3-impl.md +125 -0
- package/templates/agent-plan.json +17 -0
- package/templates/agents/AGENTS.md +27 -0
- package/templates/agents/CLAUDE.md +11 -0
- package/templates/agents/CODEBUDDY.md +23 -0
- package/templates/agents/codebuddy-skill/SKILL.md +46 -0
- package/templates/decision.md +42 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Spec-Driven Development
|
|
2
|
+
|
|
3
|
+
This project uses `spec-manager` for local-first spec-driven development. CodeBuddy should use the project skill at `.codebuddy/skills/spec-manager/` when the user asks for `/spec-manager` or asks to follow the spec-manager workflow.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
- Feature work MUST go through `spec-manager`; avoid direct code edits for non-trivial work.
|
|
8
|
+
- New or non-trivial work follows L1 PRD -> L2 Design -> L3 Impl -> Agent Task.
|
|
9
|
+
- Never write implementation code unless the relevant L3 spec is `frozen`.
|
|
10
|
+
- `confirm` and `freeze` are user review actions. Stop after writing spec content and wait for explicit approval.
|
|
11
|
+
- Before creating a new spec, inspect existing specs and decisions.
|
|
12
|
+
- Before code edits, read the relevant frozen L3 spec and create/start an Agent Task.
|
|
13
|
+
- Record each execution step with `spec-manager task step`; complete with `spec-manager task complete`.
|
|
14
|
+
|
|
15
|
+
## Useful Commands
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
spec-manager project status
|
|
19
|
+
spec-manager spec list
|
|
20
|
+
spec-manager spec show <code> --include-content
|
|
21
|
+
spec-manager decision list --topic <topic>
|
|
22
|
+
spec-manager task list --topic <topic>
|
|
23
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-manager
|
|
3
|
+
description: Spec-driven project iteration workflow: L1 PRD -> L2 Design -> L3 Impl -> Agent Task, with human review gates at each layer.
|
|
4
|
+
allowed-tools: Read, Write, Grep, Glob, Bash(spec-manager:*), Bash(git:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# spec-manager
|
|
8
|
+
|
|
9
|
+
Use this skill when the user invokes `/spec-manager`, asks for a new feature, PRD, technical design, implementation spec, agent task, iteration plan, test plan, release notes, runbook, postmortem, ADR, or delta change.
|
|
10
|
+
|
|
11
|
+
## Entry Points
|
|
12
|
+
|
|
13
|
+
- `/spec-manager <request>` — start from the user's requirement and route to the right subskill.
|
|
14
|
+
- `/spec-manager run <taskId>` — execute an existing Agent Task.
|
|
15
|
+
|
|
16
|
+
## Route Table
|
|
17
|
+
|
|
18
|
+
| Signal | Subskill |
|
|
19
|
+
|---|---|
|
|
20
|
+
| typo / one-line edit / log level | [subskills/quick.md](subskills/quick.md) |
|
|
21
|
+
| inspect / list / search / stats | [subskills/research.md](subskills/research.md) |
|
|
22
|
+
| requirement / new feature / user story | [subskills/prd.md](subskills/prd.md) |
|
|
23
|
+
| technical plan / architecture / API design | [subskills/design.md](subskills/design.md) |
|
|
24
|
+
| implementation / coding / planJson | [subskills/impl.md](subskills/impl.md) |
|
|
25
|
+
| plan / milestone / schedule | [subskills/plan.md](subskills/plan.md) |
|
|
26
|
+
| test plan / QA / cases | [subskills/testplan.md](subskills/testplan.md) |
|
|
27
|
+
| release / changelog | [subskills/release.md](subskills/release.md) |
|
|
28
|
+
| runbook / oncall | [subskills/runbook.md](subskills/runbook.md) |
|
|
29
|
+
| postmortem / RCA | [subskills/postmortem.md](subskills/postmortem.md) |
|
|
30
|
+
| ADR / why choose X | [subskills/adr.md](subskills/adr.md) |
|
|
31
|
+
| delta / change / increment | [subskills/change.md](subskills/change.md) |
|
|
32
|
+
|
|
33
|
+
If intent is unclear, ask the user one concise clarification question before taking action.
|
|
34
|
+
|
|
35
|
+
## Hard Rules
|
|
36
|
+
|
|
37
|
+
- Do not write implementation code without a frozen L3 spec.
|
|
38
|
+
- Stop after writing L1/L2/L3 content and wait for explicit user approval.
|
|
39
|
+
- Status transitions (`confirm` and `freeze`) are user actions.
|
|
40
|
+
- Agent Tasks can only be created from frozen L3 specs.
|
|
41
|
+
- Before code edits, read the relevant spec and inspect the actual source files.
|
|
42
|
+
|
|
43
|
+
## Bundled References
|
|
44
|
+
|
|
45
|
+
- Rules: [rules/](rules/)
|
|
46
|
+
- Templates: [templates/](templates/)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- ========== Stage Charter: Decision Card ==========
|
|
2
|
+
Value: 知识沉淀 — 回答"为什么这么做/不这么做",支撑后续 L1 的 Q4 历史决策查询
|
|
3
|
+
Time horizon: 长期(直到被 supersede)
|
|
4
|
+
Target reader: 未来 AI agent 在做类似需求时的参照(尤其 L1 PRE-WRITE Q4)
|
|
5
|
+
Must NOT have:
|
|
6
|
+
- 文件路径 / DDL / planJson → 不属于本层
|
|
7
|
+
- 详细 trade-off / 备选方案 → 走 ADR
|
|
8
|
+
- 设计原则 → 写在 L1 正文的"设计原则"段落
|
|
9
|
+
Soft boundary: 决策卡片是结构化记录;多决策关联同一 topic 时用 supersededById 串联
|
|
10
|
+
|
|
11
|
+
Lifecycle:
|
|
12
|
+
active (新建) → superseded (被新决策取代,supersede 命令)
|
|
13
|
+
→ partial (部分被取代,set-partial 命令,需 --reason)
|
|
14
|
+
|
|
15
|
+
触发条件(R18): L1 spec 状态推进到 implemented 后,**必须**至少 1 张
|
|
16
|
+
查询入口: `spec-manager decision list --topic <topic> --criteria AC-1`
|
|
17
|
+
========== -->
|
|
18
|
+
|
|
19
|
+
# {{id}} — {{what}}
|
|
20
|
+
|
|
21
|
+
> 关联 spec: **{{docCode}}** | topic: **{{topic}}** | 状态: **{{status}}**{{supersededByLine}}
|
|
22
|
+
|
|
23
|
+
## 决定
|
|
24
|
+
|
|
25
|
+
<决定了什么,1-3 句话。不要写"我们决定..."这种铺垫,直接给结论。≤500 字>
|
|
26
|
+
|
|
27
|
+
## 为什么
|
|
28
|
+
|
|
29
|
+
<为什么做这个决定。引用证据(数据/事故/约束/权衡),≤500 字。可选,但强烈建议填写>
|
|
30
|
+
|
|
31
|
+
## 影响的验收标准
|
|
32
|
+
|
|
33
|
+
<这条决策改变了哪些 AC,以及改变方式(新增/修改/废止)。AC 编号必须与 L1 spec 验收标准段落中的编号一致。可选,但建议填写以支持 requirement 维度追溯>
|
|
34
|
+
|
|
35
|
+
- AC-...
|
|
36
|
+
- AC-...
|
|
37
|
+
|
|
38
|
+
## 关联
|
|
39
|
+
|
|
40
|
+
- spec: {{docCode}}
|
|
41
|
+
- topic: {{topic}}
|
|
42
|
+
- 状态: {{status}}{{supersededLink}}
|