dev-playbooks 1.0.6 → 1.0.8
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/bin/devbooks.js +15 -73
- package/package.json +1 -1
- package/templates/dev-playbooks/README.md +74 -99
- package/templates/dev-playbooks/docs/devbooks-setup-guide.md +204 -0
- package/templates/dev-playbooks/docs/workflow-diagram.svg +200 -0
- package/templates/claude-commands/devbooks/apply.md +0 -38
- package/templates/claude-commands/devbooks/archive.md +0 -33
- package/templates/claude-commands/devbooks/backport.md +0 -19
- package/templates/claude-commands/devbooks/bootstrap.md +0 -20
- package/templates/claude-commands/devbooks/c4.md +0 -20
- package/templates/claude-commands/devbooks/challenger.md +0 -19
- package/templates/claude-commands/devbooks/code.md +0 -20
- package/templates/claude-commands/devbooks/debate.md +0 -20
- package/templates/claude-commands/devbooks/delivery.md +0 -20
- package/templates/claude-commands/devbooks/design.md +0 -20
- package/templates/claude-commands/devbooks/entropy.md +0 -19
- package/templates/claude-commands/devbooks/federation.md +0 -19
- package/templates/claude-commands/devbooks/gardener.md +0 -19
- package/templates/claude-commands/devbooks/impact.md +0 -19
- package/templates/claude-commands/devbooks/index.md +0 -19
- package/templates/claude-commands/devbooks/judge.md +0 -19
- package/templates/claude-commands/devbooks/plan.md +0 -20
- package/templates/claude-commands/devbooks/proposal.md +0 -20
- package/templates/claude-commands/devbooks/quick.md +0 -43
- package/templates/claude-commands/devbooks/review.md +0 -20
- package/templates/claude-commands/devbooks/router.md +0 -19
- package/templates/claude-commands/devbooks/spec.md +0 -20
- package/templates/claude-commands/devbooks/test-review.md +0 -19
- package/templates/claude-commands/devbooks/test.md +0 -20
- package/templates/dev-playbooks/docs/devbooks-integration-template.md +0 -121
- package/templates/dev-playbooks/docs/installation-prompt.md +0 -42
- package/templates/dev-playbooks/docs/slash-commands-guide.md +0 -485
package/bin/devbooks.js
CHANGED
|
@@ -30,7 +30,7 @@ import ora from 'ora';
|
|
|
30
30
|
const __filename = fileURLToPath(import.meta.url);
|
|
31
31
|
const __dirname = path.dirname(__filename);
|
|
32
32
|
|
|
33
|
-
const CLI_COMMAND = 'dev-playbooks
|
|
33
|
+
const CLI_COMMAND = 'dev-playbooks';
|
|
34
34
|
|
|
35
35
|
// ============================================================================
|
|
36
36
|
// Skills 支持级别定义
|
|
@@ -202,26 +202,6 @@ function copyDirSync(src, dest) {
|
|
|
202
202
|
return count;
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
function copyCodexPromptsSync(srcDir, destDir) {
|
|
206
|
-
if (!fs.existsSync(srcDir)) return 0;
|
|
207
|
-
fs.mkdirSync(destDir, { recursive: true });
|
|
208
|
-
|
|
209
|
-
let count = 0;
|
|
210
|
-
const entries = fs.readdirSync(srcDir, { withFileTypes: true });
|
|
211
|
-
for (const entry of entries) {
|
|
212
|
-
if (!entry.isFile()) continue;
|
|
213
|
-
if (!entry.name.endsWith('.md')) continue;
|
|
214
|
-
|
|
215
|
-
const srcPath = path.join(srcDir, entry.name);
|
|
216
|
-
const destName = entry.name.startsWith('devbooks-') ? entry.name : `devbooks-${entry.name}`;
|
|
217
|
-
const destPath = path.join(destDir, destName);
|
|
218
|
-
fs.copyFileSync(srcPath, destPath);
|
|
219
|
-
count++;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return count;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
205
|
function getSkillsSupportLabel(level) {
|
|
226
206
|
switch (level) {
|
|
227
207
|
case SKILLS_SUPPORT.FULL:
|
|
@@ -327,40 +307,6 @@ async function promptToolSelection(projectDir) {
|
|
|
327
307
|
return selectedTools;
|
|
328
308
|
}
|
|
329
309
|
|
|
330
|
-
// ============================================================================
|
|
331
|
-
// 安装 Slash 命令
|
|
332
|
-
// ============================================================================
|
|
333
|
-
|
|
334
|
-
function installSlashCommands(toolIds, projectDir) {
|
|
335
|
-
const slashSrcDir = path.join(__dirname, '..', 'templates', 'claude-commands', 'devbooks');
|
|
336
|
-
|
|
337
|
-
if (!fs.existsSync(slashSrcDir)) {
|
|
338
|
-
return { results: [], total: 0 };
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
const results = [];
|
|
342
|
-
|
|
343
|
-
for (const toolId of toolIds) {
|
|
344
|
-
const tool = AI_TOOLS.find(t => t.id === toolId);
|
|
345
|
-
if (!tool) continue;
|
|
346
|
-
|
|
347
|
-
let destDir;
|
|
348
|
-
if (tool.slashDir) {
|
|
349
|
-
destDir = path.join(projectDir, tool.slashDir);
|
|
350
|
-
} else if (tool.globalSlashDir) {
|
|
351
|
-
destDir = expandPath(tool.globalSlashDir);
|
|
352
|
-
} else {
|
|
353
|
-
continue;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
const count = toolId === 'codex'
|
|
357
|
-
? copyCodexPromptsSync(slashSrcDir, destDir)
|
|
358
|
-
: copyDirSync(slashSrcDir, destDir);
|
|
359
|
-
results.push({ tool: tool.name, count, path: destDir });
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
return { results, total: results.length };
|
|
363
|
-
}
|
|
364
310
|
|
|
365
311
|
// ============================================================================
|
|
366
312
|
// 安装 Skills(Claude Code, Codex CLI, Qoder)
|
|
@@ -624,6 +570,7 @@ function createProjectStructure(projectDir) {
|
|
|
624
570
|
'dev-playbooks/specs/architecture',
|
|
625
571
|
'dev-playbooks/changes',
|
|
626
572
|
'dev-playbooks/scripts',
|
|
573
|
+
'dev-playbooks/docs',
|
|
627
574
|
'.devbooks'
|
|
628
575
|
];
|
|
629
576
|
|
|
@@ -641,6 +588,18 @@ function createProjectStructure(projectDir) {
|
|
|
641
588
|
{ src: '.devbooks/config.yaml', dest: '.devbooks/config.yaml' }
|
|
642
589
|
];
|
|
643
590
|
|
|
591
|
+
// 动态添加 docs 目录下的所有文件
|
|
592
|
+
const docsDir = path.join(templateDir, 'dev-playbooks', 'docs');
|
|
593
|
+
if (fs.existsSync(docsDir)) {
|
|
594
|
+
const docFiles = fs.readdirSync(docsDir).filter(f => f.endsWith('.md'));
|
|
595
|
+
for (const docFile of docFiles) {
|
|
596
|
+
templateFiles.push({
|
|
597
|
+
src: `dev-playbooks/docs/${docFile}`,
|
|
598
|
+
dest: `dev-playbooks/docs/${docFile}`
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
644
603
|
let copiedCount = 0;
|
|
645
604
|
for (const { src, dest } of templateFiles) {
|
|
646
605
|
const srcPath = path.join(templateDir, src);
|
|
@@ -750,15 +709,6 @@ async function initCommand(projectDir, options) {
|
|
|
750
709
|
return;
|
|
751
710
|
}
|
|
752
711
|
|
|
753
|
-
// 安装 Slash 命令
|
|
754
|
-
const slashSpinner = ora('安装 Slash 命令...').start();
|
|
755
|
-
const slashResults = installSlashCommands(selectedTools, projectDir);
|
|
756
|
-
slashSpinner.succeed(`安装了 ${slashResults.results.length} 个工具的 Slash 命令`);
|
|
757
|
-
|
|
758
|
-
for (const result of slashResults.results) {
|
|
759
|
-
console.log(chalk.gray(` └ ${result.tool}: ${result.count} 个命令`));
|
|
760
|
-
}
|
|
761
|
-
|
|
762
712
|
// 安装 Skills(仅完整支持的工具)
|
|
763
713
|
const fullSupportTools = selectedTools.filter(id => {
|
|
764
714
|
const tool = AI_TOOLS.find(t => t.id === id);
|
|
@@ -824,10 +774,8 @@ async function initCommand(projectDir, options) {
|
|
|
824
774
|
// 下一步提示
|
|
825
775
|
console.log(chalk.bold('下一步:'));
|
|
826
776
|
console.log(` 1. 编辑 ${chalk.cyan('dev-playbooks/project.md')} 添加项目信息`);
|
|
827
|
-
console.log(` 2. 使用 ${chalk.cyan('
|
|
777
|
+
console.log(` 2. 使用 ${chalk.cyan('devbooks-proposal-author')} Skill 创建第一个变更提案`);
|
|
828
778
|
console.log();
|
|
829
|
-
console.log(chalk.yellow('重要提示:'));
|
|
830
|
-
console.log(' Slash 命令在 IDE 启动时加载,请重启你的 AI 工具以使命令生效。');
|
|
831
779
|
}
|
|
832
780
|
|
|
833
781
|
// ============================================================================
|
|
@@ -861,12 +809,6 @@ async function updateCommand(projectDir) {
|
|
|
861
809
|
});
|
|
862
810
|
console.log(chalk.blue('ℹ') + ` 检测到已配置的工具: ${toolNames.join(', ')}`);
|
|
863
811
|
|
|
864
|
-
// 更新 Slash 命令
|
|
865
|
-
const slashResults = installSlashCommands(configuredTools, projectDir);
|
|
866
|
-
for (const result of slashResults.results) {
|
|
867
|
-
console.log(chalk.green('✓') + ` ${result.tool}: 更新了 ${result.count} 个 slash 命令`);
|
|
868
|
-
}
|
|
869
|
-
|
|
870
812
|
// 更新 Skills
|
|
871
813
|
const skillsResults = installSkills(configuredTools, true);
|
|
872
814
|
for (const result of skillsResults) {
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> Turn large changes into a controlled, traceable, verifiable loop: Skills + quality gates + role isolation.
|
|
6
6
|
|
|
7
|
-
[](https://www.npmjs.com/package/dev-playbooks)
|
|
8
8
|
[](../LICENSE)
|
|
9
9
|
|
|
10
10
|
---
|
|
@@ -46,30 +46,9 @@ AI coding assistants are powerful, but often **unpredictable**:
|
|
|
46
46
|
|
|
47
47
|
## How It Works
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
DevBooks Workflow
|
|
51
|
-
|
|
52
|
-
PROPOSAL stage APPLY stage ARCHIVE stage
|
|
53
|
-
(no coding) (role isolation enforced) (quality gates)
|
|
54
|
-
|
|
55
|
-
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
56
|
-
│ /devbooks: │ │ Chat A │ │ /devbooks: │
|
|
57
|
-
│ proposal │ │ ┌───────────┐ │ │ gardener │
|
|
58
|
-
│ impact │────────────│ │Test Owner │ │──────────────│ delivery │
|
|
59
|
-
│ design │ │ │(Red first)│ │ │ │
|
|
60
|
-
│ spec │ │ └───────────┘ │ │ Gates: │
|
|
61
|
-
│ plan │ │ │ │ ✓ Green evidence│
|
|
62
|
-
└─────────────────┘ │ Chat B │ │ ✓ Tasks done │
|
|
63
|
-
│ │ ┌───────────┐ │ │ ✓ Role boundary│
|
|
64
|
-
▼ │ │ Coder │ │ │ ✓ No failures │
|
|
65
|
-
┌─────────────────┐ │ │(no tests!)│ │ └─────────────────┘
|
|
66
|
-
│ Triangle debate │ │ └───────────┘ │
|
|
67
|
-
│ Author/Challenger│ └─────────────────┘
|
|
68
|
-
│ /Judge │
|
|
69
|
-
└─────────────────┘
|
|
70
|
-
```
|
|
49
|
+

|
|
71
50
|
|
|
72
|
-
**Hard constraint**: Test Owner and Coder **must work in separate conversations**. This is not a suggestion. Coder cannot modify `tests/**`.
|
|
51
|
+
**Hard constraint**: Test Owner and Coder **must work in separate conversations**. This is not a suggestion. Coder cannot modify `tests/**`. "Done" is defined by tests/build verification, not AI self-evaluation.
|
|
73
52
|
|
|
74
53
|
---
|
|
75
54
|
|
|
@@ -77,18 +56,18 @@ AI coding assistants are powerful, but often **unpredictable**:
|
|
|
77
56
|
|
|
78
57
|
### Supported AI tools
|
|
79
58
|
|
|
80
|
-
| Tool | Support Level |
|
|
81
|
-
|
|
82
|
-
| **Claude Code** | Full Skills |
|
|
83
|
-
| **Codex CLI** | Full Skills |
|
|
84
|
-
| **Qoder** | Full Skills |
|
|
85
|
-
| **Cursor** | Rules |
|
|
86
|
-
| **Windsurf** | Rules |
|
|
87
|
-
| **Gemini CLI** | Rules |
|
|
88
|
-
| **Continue** | Rules |
|
|
89
|
-
| **GitHub Copilot** | Instructions |
|
|
59
|
+
| Tool | Support Level | Config File |
|
|
60
|
+
|------|---------------|-------------|
|
|
61
|
+
| **Claude Code** | Full Skills | `CLAUDE.md` |
|
|
62
|
+
| **Codex CLI** | Full Skills | `AGENTS.md` |
|
|
63
|
+
| **Qoder** | Full Skills | `AGENTS.md` |
|
|
64
|
+
| **Cursor** | Rules | `.cursor/rules/` |
|
|
65
|
+
| **Windsurf** | Rules | `.windsurf/rules/` |
|
|
66
|
+
| **Gemini CLI** | Rules | `GEMINI.md` |
|
|
67
|
+
| **Continue** | Rules | `.continue/rules/` |
|
|
68
|
+
| **GitHub Copilot** | Instructions | `.github/copilot-instructions.md` |
|
|
90
69
|
|
|
91
|
-
> **Tip**:
|
|
70
|
+
> **Tip**: Use natural language to invoke skills, e.g., "Run devbooks-proposal-author skill to create a proposal for adding OAuth2 authentication"
|
|
92
71
|
|
|
93
72
|
### Install & init
|
|
94
73
|
|
|
@@ -96,16 +75,16 @@ AI coding assistants are powerful, but often **unpredictable**:
|
|
|
96
75
|
|
|
97
76
|
```bash
|
|
98
77
|
# global install
|
|
99
|
-
npm install -g dev-playbooks
|
|
78
|
+
npm install -g dev-playbooks
|
|
100
79
|
|
|
101
80
|
# init inside your project
|
|
102
|
-
dev-playbooks
|
|
81
|
+
dev-playbooks init
|
|
103
82
|
```
|
|
104
83
|
|
|
105
84
|
**One-off usage:**
|
|
106
85
|
|
|
107
86
|
```bash
|
|
108
|
-
npx dev-playbooks
|
|
87
|
+
npx dev-playbooks@latest init
|
|
109
88
|
```
|
|
110
89
|
|
|
111
90
|
**From source (contributors):**
|
|
@@ -130,7 +109,7 @@ DevBooks uses two directory roots:
|
|
|
130
109
|
| `<truth-root>` | Current specs (read-only truth) | `dev-playbooks/specs/` |
|
|
131
110
|
| `<change-root>` | Change packages (workspace) | `dev-playbooks/changes/` |
|
|
132
111
|
|
|
133
|
-
See `docs/devbooks-
|
|
112
|
+
See `docs/devbooks-setup-guide.md`, or use the "Quick Start" prompt in that guide to let your assistant configure it automatically.
|
|
134
113
|
|
|
135
114
|
---
|
|
136
115
|
|
|
@@ -139,19 +118,19 @@ See `docs/devbooks-integration-template.md`, or use `docs/installation-prompt.md
|
|
|
139
118
|
### Use Router (recommended)
|
|
140
119
|
|
|
141
120
|
```
|
|
142
|
-
|
|
121
|
+
Run devbooks-router skill: <your request>
|
|
143
122
|
```
|
|
144
123
|
|
|
145
|
-
Router analyzes your request and outputs an execution plan (which
|
|
124
|
+
Router analyzes your request and outputs an execution plan (which skill to run next).
|
|
146
125
|
|
|
147
|
-
### Direct
|
|
126
|
+
### Direct skill invocation
|
|
148
127
|
|
|
149
128
|
Once you know the flow, call the Skills directly:
|
|
150
129
|
|
|
151
130
|
**1) Proposal stage (no coding)**
|
|
152
131
|
|
|
153
132
|
```
|
|
154
|
-
|
|
133
|
+
Run devbooks-proposal-author skill to create a proposal: Add OAuth2 user authentication
|
|
155
134
|
```
|
|
156
135
|
|
|
157
136
|
Artifacts: `proposal.md` (required), `design.md`, `tasks.md`
|
|
@@ -162,10 +141,10 @@ You must use **two separate conversations**:
|
|
|
162
141
|
|
|
163
142
|
```
|
|
164
143
|
# Chat A - Test Owner
|
|
165
|
-
|
|
144
|
+
Run devbooks-test-owner skill for change add-oauth2
|
|
166
145
|
|
|
167
146
|
# Chat B - Coder
|
|
168
|
-
|
|
147
|
+
Run devbooks-coder skill for change add-oauth2
|
|
169
148
|
```
|
|
170
149
|
|
|
171
150
|
- Test Owner: writes `verification.md` + tests, runs **Red** first
|
|
@@ -174,64 +153,63 @@ You must use **two separate conversations**:
|
|
|
174
153
|
**3) Review stage**
|
|
175
154
|
|
|
176
155
|
```
|
|
177
|
-
|
|
156
|
+
Run devbooks-code-review skill for change add-oauth2
|
|
178
157
|
```
|
|
179
158
|
|
|
180
159
|
**4) Archive stage**
|
|
181
160
|
|
|
182
161
|
```
|
|
183
|
-
|
|
162
|
+
Run devbooks-spec-gardener skill for change add-oauth2
|
|
184
163
|
```
|
|
185
164
|
|
|
186
165
|
---
|
|
187
166
|
|
|
188
|
-
##
|
|
167
|
+
## Skills Reference
|
|
189
168
|
|
|
190
169
|
### Proposal stage
|
|
191
170
|
|
|
192
|
-
|
|
|
193
|
-
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
|
|
|
199
|
-
|
|
|
200
|
-
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
171
|
+
| Skill | Description |
|
|
172
|
+
|-------|-------------|
|
|
173
|
+
| devbooks-router | Route to the right Skill |
|
|
174
|
+
| devbooks-proposal-author | Create a change proposal |
|
|
175
|
+
| devbooks-impact-analysis | Cross-module impact analysis |
|
|
176
|
+
| devbooks-proposal-challenger | Challenge a proposal |
|
|
177
|
+
| devbooks-proposal-judge | Adjudicate a proposal |
|
|
178
|
+
| devbooks-proposal-debate-workflow | Triangle debate (Author/Challenger/Judge) |
|
|
179
|
+
| devbooks-design-doc | Create a design doc |
|
|
180
|
+
| devbooks-spec-contract | Define specs & contracts |
|
|
181
|
+
| devbooks-c4-map | Generate a C4 map |
|
|
182
|
+
| devbooks-implementation-plan | Create an implementation plan |
|
|
204
183
|
|
|
205
184
|
### Apply stage
|
|
206
185
|
|
|
207
|
-
|
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
|
|
|
186
|
+
| Skill | Description |
|
|
187
|
+
|-------|-------------|
|
|
188
|
+
| devbooks-test-owner | Test Owner role (separate chat required) |
|
|
189
|
+
| devbooks-coder | Coder role (separate chat required) |
|
|
190
|
+
| devbooks-design-backport | Backport discoveries to design |
|
|
212
191
|
|
|
213
192
|
### Review stage
|
|
214
193
|
|
|
215
|
-
|
|
|
216
|
-
|
|
217
|
-
|
|
|
218
|
-
| `/devbooks:test-review` | devbooks-test-reviewer | Test quality & coverage review |
|
|
194
|
+
| Skill | Description |
|
|
195
|
+
|-------|-------------|
|
|
196
|
+
| devbooks-code-review | Code review (readability/consistency) |
|
|
219
197
|
|
|
220
198
|
### Archive stage
|
|
221
199
|
|
|
222
|
-
|
|
|
223
|
-
|
|
224
|
-
|
|
|
225
|
-
|
|
|
200
|
+
| Skill | Description |
|
|
201
|
+
|-------|-------------|
|
|
202
|
+
| devbooks-spec-gardener | Maintain/dedupe specs |
|
|
203
|
+
| devbooks-delivery-workflow | End-to-end delivery workflow |
|
|
226
204
|
|
|
227
205
|
### Standalone Skills
|
|
228
206
|
|
|
229
|
-
|
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
|
233
|
-
|
|
|
234
|
-
|
|
|
207
|
+
| Skill | Description |
|
|
208
|
+
|-------|-------------|
|
|
209
|
+
| devbooks-entropy-monitor | System entropy metrics |
|
|
210
|
+
| devbooks-federation | Cross-repo federation analysis |
|
|
211
|
+
| devbooks-brownfield-bootstrap | Brownfield project bootstrap |
|
|
212
|
+
| devbooks-index-bootstrap | Generate a SCIP index |
|
|
235
213
|
|
|
236
214
|
---
|
|
237
215
|
|
|
@@ -353,7 +331,7 @@ DevBooks tracks four dimensions of system entropy:
|
|
|
353
331
|
| Test entropy | coverage/quality decay over time |
|
|
354
332
|
| Dependency entropy | external dependency health |
|
|
355
333
|
|
|
356
|
-
Use
|
|
334
|
+
Use `devbooks-entropy-monitor` skill to generate reports and identify refactor opportunities.
|
|
357
335
|
|
|
358
336
|
Scripts (in `../skills/devbooks-entropy-monitor/scripts/`): `entropy-measure.sh`, `entropy-report.sh`
|
|
359
337
|
|
|
@@ -365,7 +343,7 @@ Scripts (in `../skills/devbooks-entropy-monitor/scripts/`): `entropy-measure.sh`
|
|
|
365
343
|
When `<truth-root>` is empty:
|
|
366
344
|
|
|
367
345
|
```
|
|
368
|
-
|
|
346
|
+
Run devbooks-brownfield-bootstrap skill
|
|
369
347
|
```
|
|
370
348
|
|
|
371
349
|
Generates:
|
|
@@ -383,7 +361,7 @@ Generates:
|
|
|
383
361
|
For multi-repo analysis:
|
|
384
362
|
|
|
385
363
|
```
|
|
386
|
-
|
|
364
|
+
Run devbooks-federation skill
|
|
387
365
|
```
|
|
388
366
|
|
|
389
367
|
Analyzes cross-repo contracts and dependencies to support coordinated changes.
|
|
@@ -414,7 +392,7 @@ DevBooks Skills support graceful MCP (Model Context Protocol) degradation: you c
|
|
|
414
392
|
- Timeout/failure → silently falls back to basic mode (non-blocking)
|
|
415
393
|
- No manual “basic/enhanced” switch required
|
|
416
394
|
|
|
417
|
-
To enable enhanced mode: configure CKB per `docs/Recommended-MCP.md` and run
|
|
395
|
+
To enable enhanced mode: configure CKB per `docs/Recommended-MCP.md` and run `devbooks-index-bootstrap` skill to generate `index.scip`.
|
|
418
396
|
|
|
419
397
|
</details>
|
|
420
398
|
|
|
@@ -424,7 +402,7 @@ To enable enhanced mode: configure CKB per `docs/Recommended-MCP.md` and run `/d
|
|
|
424
402
|
For strict proposal review, run the triangle debate:
|
|
425
403
|
|
|
426
404
|
```
|
|
427
|
-
|
|
405
|
+
Run devbooks-proposal-debate-workflow skill
|
|
428
406
|
```
|
|
429
407
|
|
|
430
408
|
Three roles:
|
|
@@ -448,13 +426,13 @@ If you're currently using [OpenSpec](https://github.com/Fission-AI/OpenSpec) wit
|
|
|
448
426
|
|
|
449
427
|
```bash
|
|
450
428
|
# Using CLI (recommended)
|
|
451
|
-
dev-playbooks
|
|
429
|
+
dev-playbooks migrate --from openspec
|
|
452
430
|
|
|
453
431
|
# Preview changes first
|
|
454
|
-
dev-playbooks
|
|
432
|
+
dev-playbooks migrate --from openspec --dry-run
|
|
455
433
|
|
|
456
434
|
# Keep original directory after migration
|
|
457
|
-
dev-playbooks
|
|
435
|
+
dev-playbooks migrate --from openspec --keep-old
|
|
458
436
|
```
|
|
459
437
|
|
|
460
438
|
**What gets migrated:**
|
|
@@ -470,13 +448,13 @@ If you're using [GitHub spec-kit](https://github.com/github/spec-kit) with `spec
|
|
|
470
448
|
|
|
471
449
|
```bash
|
|
472
450
|
# Using CLI (recommended)
|
|
473
|
-
dev-playbooks
|
|
451
|
+
dev-playbooks migrate --from speckit
|
|
474
452
|
|
|
475
453
|
# Preview changes first
|
|
476
|
-
dev-playbooks
|
|
454
|
+
dev-playbooks migrate --from speckit --dry-run
|
|
477
455
|
|
|
478
456
|
# Keep original directories after migration
|
|
479
|
-
dev-playbooks
|
|
457
|
+
dev-playbooks migrate --from speckit --keep-old
|
|
480
458
|
```
|
|
481
459
|
|
|
482
460
|
**Mapping rules:**
|
|
@@ -504,10 +482,10 @@ Both migration scripts support:
|
|
|
504
482
|
|
|
505
483
|
After migration:
|
|
506
484
|
|
|
507
|
-
1. Run `dev-playbooks
|
|
485
|
+
1. Run `dev-playbooks init` to set up DevBooks Skills
|
|
508
486
|
2. Review migrated files in `dev-playbooks/`
|
|
509
487
|
3. Update `verification.md` files with proper AC mappings
|
|
510
|
-
4. Run
|
|
488
|
+
4. Run `devbooks-brownfield-bootstrap` skill if you need baseline specs
|
|
511
489
|
|
|
512
490
|
---
|
|
513
491
|
|
|
@@ -524,20 +502,17 @@ dev-playbooks/
|
|
|
524
502
|
├── changes/ # Change packages (workspace)
|
|
525
503
|
├── scripts/ # Helper scripts
|
|
526
504
|
└── docs/ # Documentation
|
|
527
|
-
├──
|
|
528
|
-
├──
|
|
529
|
-
|
|
530
|
-
└── installation-prompt.md
|
|
505
|
+
├── devbooks-setup-guide.md # Configuration guide
|
|
506
|
+
├── workflow-diagram.svg # Workflow visualization
|
|
507
|
+
└── Recommended-MCP.md # MCP configuration
|
|
531
508
|
```
|
|
532
509
|
|
|
533
510
|
---
|
|
534
511
|
|
|
535
512
|
## Documentation
|
|
536
513
|
|
|
537
|
-
- [
|
|
514
|
+
- [Setup guide](docs/devbooks-setup-guide.md)
|
|
538
515
|
- [MCP configuration recommendations](docs/Recommended-MCP.md)
|
|
539
|
-
- [Integration template](docs/devbooks-integration-template.md)
|
|
540
|
-
- [Installation prompt](docs/installation-prompt.md)
|
|
541
516
|
|
|
542
517
|
---
|
|
543
518
|
|