@jakkrichm/create-nexus-devflow 2.0.16 → 2.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/create-nexus-devflow.d.ts +2 -1
- package/dist/bin/create-nexus-devflow.js +81 -3
- package/dist/bin/create-nexus-devflow.js.map +1 -1
- package/dist/lib/current-work.d.ts +2 -3
- package/dist/lib/current-work.js +93 -66
- package/dist/lib/current-work.js.map +1 -1
- package/dist/lib/uninstall.d.ts +20 -0
- package/dist/lib/uninstall.js +129 -0
- package/dist/lib/uninstall.js.map +1 -0
- package/dist/scripts/prepare-template.js +120 -10
- package/dist/scripts/prepare-template.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/00-discover/SKILL.md +2 -2
- package/template/.agents/skills/10-define/SKILL.md +24 -140
- package/template/.agents/skills/20-spec/SKILL.md +2 -2
- package/template/.agents/skills/30-plan/SKILL.md +2 -2
- package/template/.agents/skills/50-verify/SKILL.md +2 -2
- package/template/.agents/skills/60-report/SKILL.md +1 -1
- package/template/.agents/skills/70-release/SKILL.md +19 -143
- package/template/.agents/skills/check/SKILL.md +10 -10
- package/template/.agents/skills/ci/SKILL.md +1 -1
- package/template/.agents/skills/complete/SKILL.md +49 -28
- package/template/.agents/skills/deploy/SKILL.md +1 -1
- package/template/.agents/skills/devflow/SKILL.md +5 -5
- package/template/.agents/skills/feature/SKILL.md +25 -20
- package/template/.agents/skills/fix/SKILL.md +25 -19
- package/template/.agents/skills/implement/SKILL.md +10 -10
- package/template/.agents/skills/insight/SKILL.md +1 -1
- package/template/.agents/skills/overview/SKILL.md +3 -3
- package/template/.agents/skills/report-html/SKILL.md +3 -3
- package/template/.agents/skills/security-review/SKILL.md +1 -1
- package/template/.agents/skills/spec/SKILL.md +7 -6
- package/template/.agents/skills/spec-driven-development/SKILL.md +2 -2
- package/template/.agents/skills/test/SKILL.md +1 -1
- package/template/.claude/skills/00-discover/SKILL.md +2 -2
- package/template/.claude/skills/10-define/SKILL.md +24 -140
- package/template/.claude/skills/20-spec/SKILL.md +2 -2
- package/template/.claude/skills/30-plan/SKILL.md +2 -2
- package/template/.claude/skills/50-verify/SKILL.md +2 -2
- package/template/.claude/skills/60-report/SKILL.md +1 -1
- package/template/.claude/skills/70-release/SKILL.md +19 -143
- package/template/.claude/skills/check/SKILL.md +10 -10
- package/template/.claude/skills/ci/SKILL.md +1 -1
- package/template/.claude/skills/complete/SKILL.md +49 -28
- package/template/.claude/skills/deploy/SKILL.md +1 -1
- package/template/.claude/skills/devflow/SKILL.md +5 -5
- package/template/.claude/skills/feature/SKILL.md +25 -20
- package/template/.claude/skills/fix/SKILL.md +25 -19
- package/template/.claude/skills/implement/SKILL.md +10 -10
- package/template/.claude/skills/insight/SKILL.md +1 -1
- package/template/.claude/skills/overview/SKILL.md +3 -3
- package/template/.claude/skills/report-html/SKILL.md +3 -3
- package/template/.claude/skills/security-review/SKILL.md +1 -1
- package/template/.claude/skills/spec/SKILL.md +7 -6
- package/template/.claude/skills/spec-driven-development/SKILL.md +2 -2
- package/template/.claude/skills/test/SKILL.md +1 -1
- package/template/AGENTS.md +15 -59
- package/template/devflow/context/ai-interaction.md +110 -23
- package/template/devflow/context/coding-standards.md +123 -32
- package/template/devflow/context/current-feature.md +3 -0
- package/template/devflow/context/current-stage.md +6 -6
- package/template/devflow/context/findings.md +10 -10
- package/template/devflow/context/project-overview.md +18 -32
- package/template/devflow/history/HISTORY.md +10 -25
- package/template/devflow/ideas.md +9 -5
- package/template/devflow/reference/running-id-contract.md +39 -39
- package/template/devflow/runs/.gitkeep +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../lib/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,11 +26,26 @@ async function copyEntry(entry) {
|
|
|
26
26
|
!normalized.endsWith("README.md")) {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
|
+
if (normalized.startsWith("devflow/history/features/") &&
|
|
30
|
+
!normalized.endsWith("README.md")) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (normalized.startsWith("devflow/history/fixes/") &&
|
|
34
|
+
!normalized.endsWith("README.md")) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (normalized.startsWith("devflow/history/rollbacks/") &&
|
|
38
|
+
!normalized.endsWith("README.md")) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
29
41
|
if (normalized.startsWith("devflow/discoveries/") &&
|
|
30
42
|
!normalized.endsWith(".gitkeep") &&
|
|
31
43
|
!normalized.endsWith("README.md")) {
|
|
32
44
|
return false;
|
|
33
45
|
}
|
|
46
|
+
if (normalized.startsWith("devflow/research/")) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
34
49
|
if (normalized.includes(".agents/skills/sync-upstream") ||
|
|
35
50
|
normalized.includes(".claude/skills/sync-upstream")) {
|
|
36
51
|
return false;
|
|
@@ -46,16 +61,21 @@ async function copyEntry(entry) {
|
|
|
46
61
|
}
|
|
47
62
|
}
|
|
48
63
|
async function ensureEmptyDirectories() {
|
|
49
|
-
const runsDir = path.join(templateRoot, "devflow", "runs");
|
|
50
64
|
const discDir = path.join(templateRoot, "devflow", "discoveries");
|
|
51
|
-
|
|
65
|
+
const featDir = path.join(templateRoot, "devflow", "history", "features");
|
|
66
|
+
const fixDir = path.join(templateRoot, "devflow", "history", "fixes");
|
|
67
|
+
const rollDir = path.join(templateRoot, "devflow", "history", "rollbacks");
|
|
52
68
|
await fs.mkdir(discDir, { recursive: true });
|
|
53
|
-
await fs.
|
|
69
|
+
await fs.mkdir(featDir, { recursive: true });
|
|
70
|
+
await fs.mkdir(fixDir, { recursive: true });
|
|
71
|
+
await fs.mkdir(rollDir, { recursive: true });
|
|
54
72
|
await fs.writeFile(path.join(discDir, ".gitkeep"), "", "utf8");
|
|
55
73
|
}
|
|
56
|
-
async function
|
|
74
|
+
async function sanitizeStarterFiles() {
|
|
75
|
+
// 1. Sanitize AGENTS.md
|
|
57
76
|
try {
|
|
58
|
-
|
|
77
|
+
const agentsPath = path.join(templateRoot, "AGENTS.md");
|
|
78
|
+
let agentsContent = await fs.readFile(agentsPath, "utf8");
|
|
59
79
|
const maintainerCommandsRegex = /## Verification & Commands[\s\S]*$/;
|
|
60
80
|
const starterCommands = `## Commands
|
|
61
81
|
|
|
@@ -64,14 +84,104 @@ async function sanitizeAgentsEntryFile(filePath) {
|
|
|
64
84
|
- Test: \`npm test\`
|
|
65
85
|
- Verify: \`npm run check\` (Run \`/onboard\` to auto-configure)
|
|
66
86
|
`;
|
|
67
|
-
|
|
68
|
-
await fs.writeFile(
|
|
87
|
+
agentsContent = agentsContent.replace(maintainerCommandsRegex, starterCommands);
|
|
88
|
+
await fs.writeFile(agentsPath, agentsContent, "utf8");
|
|
69
89
|
}
|
|
70
90
|
catch (error) {
|
|
71
|
-
if (error.code !== "ENOENT")
|
|
91
|
+
if (error.code !== "ENOENT")
|
|
72
92
|
throw error;
|
|
73
|
-
}
|
|
74
93
|
}
|
|
94
|
+
// 2. Clean Starter HISTORY.md
|
|
95
|
+
const starterHistory = `# Master Release History Ledger
|
|
96
|
+
|
|
97
|
+
This master ledger tracks all released delivery runs, milestones, and rollbacks in chronological order. Each entry is recorded during \`/complete\` or \`70-release\` and links to its exact Git commit hash, release status, category, and archived delivery artifacts.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 📜 Master Release Log
|
|
102
|
+
|
|
103
|
+
| Completed Date | Run ID | Category | Title | Git Commit | Status | Archive Link |
|
|
104
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
105
|
+
| _No shipped runs yet_ | - | - | Run \`/feature\` or \`/00-discover\` to start your first delivery run | - | - | - |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🗄️ History Categories (The Core 3 Model)
|
|
110
|
+
|
|
111
|
+
- **\`features/\`**: New user-facing features, enhancements, architecture migrations, refactoring, and tooling/infra.
|
|
112
|
+
- **\`fixes/\`**: Bug fixes, hotfixes, regressions, security patches, and performance optimizations.
|
|
113
|
+
- **\`rollbacks/\`**: Safe feature reversal and rollback execution records.
|
|
114
|
+
`;
|
|
115
|
+
await fs.writeFile(path.join(templateRoot, "devflow", "history", "HISTORY.md"), starterHistory, "utf8");
|
|
116
|
+
// 3. Clean Starter ideas.md
|
|
117
|
+
const starterIdeas = `# 🔮 Centralized Idea Inbox & Backlog
|
|
118
|
+
|
|
119
|
+
> Record, analyze, and prioritize feature ideas before starting active delivery.
|
|
120
|
+
> Use the \`/idea\` command to quickly capture and evaluate new ideas.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 💡 Active Idea Inbox
|
|
125
|
+
|
|
126
|
+
| ID | Title | Value (1-5) | Feasibility (1-5) | Status | Notes |
|
|
127
|
+
| :--- | :--- | :---: | :---: | :--- | :--- |
|
|
128
|
+
| _No pending ideas_ | - | - | - | Use \`/idea <your idea>\` to capture | - |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 📦 Archived / Shipped Ideas
|
|
133
|
+
|
|
134
|
+
| ID | Title | Shipped In | Completed Date |
|
|
135
|
+
| :--- | :--- | :--- | :--- |
|
|
136
|
+
`;
|
|
137
|
+
await fs.writeFile(path.join(templateRoot, "devflow", "ideas.md"), starterIdeas, "utf8");
|
|
138
|
+
// 4. Clean Starter project-overview.md
|
|
139
|
+
const starterOverview = `# Project Overview & Source of Truth
|
|
140
|
+
|
|
141
|
+
> Living context artifact automatically synchronized with codebase reality and DevFlow delivery history.
|
|
142
|
+
> Run \`/onboard\` (for new projects) or \`/adopt\` (for existing codebases) to populate this file.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 1. Project Purpose & Target Users
|
|
147
|
+
- Describe what this application does, who it is for, and the problems it solves.
|
|
148
|
+
|
|
149
|
+
## 2. Architecture & Directory Layout
|
|
150
|
+
- Visual directory layout and overview of core modules.
|
|
151
|
+
|
|
152
|
+
## 3. Technology Stack & Key Tooling
|
|
153
|
+
- Frameworks, languages, databases, ORMs, package managers, and runtime environment.
|
|
154
|
+
|
|
155
|
+
## 4. Concrete Data Models & Entities
|
|
156
|
+
- Core entities, database schemas, API interfaces, and types.
|
|
157
|
+
|
|
158
|
+
## 5. Shipped Capabilities & Milestones
|
|
159
|
+
- Verified features and components currently functional in the codebase.
|
|
160
|
+
|
|
161
|
+
## 6. Verified Commands & Developer Workflow
|
|
162
|
+
- Dev Server, Build, Test, Lint, and Verify commands.
|
|
163
|
+
|
|
164
|
+
## 7. Known Architectural Focus Areas
|
|
165
|
+
- Upcoming priorities, refactoring targets, or known technical considerations.
|
|
166
|
+
`;
|
|
167
|
+
await fs.writeFile(path.join(templateRoot, "devflow", "context", "project-overview.md"), starterOverview, "utf8");
|
|
168
|
+
// 5. Clean Starter current-stage.md
|
|
169
|
+
const starterStage = `# Current DevFlow Run Status
|
|
170
|
+
|
|
171
|
+
- **Active Discovery ID**: \`None\`
|
|
172
|
+
- **Active Running ID**: \`None\`
|
|
173
|
+
- **Current Stage**: \`Idle (Ready for new /feature, /fix, /00-discover, or /10-define)\`
|
|
174
|
+
- **Living Spec**: \`None\`
|
|
175
|
+
- **Last Completed Run**: \`None\`
|
|
176
|
+
- **Last Updated**: \`None\`
|
|
177
|
+
`;
|
|
178
|
+
await fs.writeFile(path.join(templateRoot, "devflow", "context", "current-stage.md"), starterStage, "utf8");
|
|
179
|
+
// 6. Clean Starter current-feature.md
|
|
180
|
+
const starterFeature = `# Current Feature
|
|
181
|
+
|
|
182
|
+
_Nothing in progress. Run /feature, /fix, or /rollback to start._
|
|
183
|
+
`;
|
|
184
|
+
await fs.writeFile(path.join(templateRoot, "devflow", "context", "current-feature.md"), starterFeature, "utf8");
|
|
75
185
|
}
|
|
76
186
|
async function main() {
|
|
77
187
|
await fs.rm(templateRoot, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 });
|
|
@@ -80,7 +190,7 @@ async function main() {
|
|
|
80
190
|
await copyEntry(entry);
|
|
81
191
|
}
|
|
82
192
|
await ensureEmptyDirectories();
|
|
83
|
-
await
|
|
193
|
+
await sanitizeStarterFiles();
|
|
84
194
|
}
|
|
85
195
|
main().catch((error) => {
|
|
86
196
|
console.error(error instanceof Error ? error.message : String(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-template.js","sourceRoot":"","sources":["../../scripts/prepare-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAExD,MAAM,OAAO,GAAG;IACd,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE;YAC1B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpE,IACE,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;oBACtC,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EACjC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,UAAU,CAAC,UAAU,CAAC,sBAAsB,CAAC;oBAC7C,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAChC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EACjC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC;oBACnD,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EACnD,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-template.js","sourceRoot":"","sources":["../../scripts/prepare-template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
1
|
+
---
|
|
2
|
+
name: 00-discover
|
|
3
3
|
description: "[Devflow] Discover stage in DevFlow 2.0 - explore a request, route supporting inquiry, and decide whether delivery work should begin without allocating a running ID."
|
|
4
4
|
argument-hint: "{title, request, or discovery-id}"
|
|
5
5
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
description: "[Devflow] Define stage in DevFlow 2.0 - turn an approved discovery into
|
|
1
|
+
---
|
|
2
|
+
name: 10-define
|
|
3
|
+
description: "[Devflow] Define stage in DevFlow 2.0 - turn an approved discovery into a bounded delivery run in context/current-run with stable scope."
|
|
4
4
|
argument-hint: "{approved discovery-id, discovery path, running-id, or run path}"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,23 +8,21 @@ argument-hint: "{approved discovery-id, discovery path, running-id, or run path}
|
|
|
8
8
|
|
|
9
9
|
$ARGUMENTS
|
|
10
10
|
|
|
11
|
-
Convert an approved `Proceed` discovery into bounded delivery
|
|
11
|
+
Convert an approved `Proceed` discovery into a bounded delivery run. Checks the Single Active Run Guardrail, allocates a sequential ID without prefix (`xxx-slug`), and writes `devflow/context/current-run/10-define.md`.
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
16
|
10-define {discovery-id or discovery path}
|
|
17
|
-
10-define {
|
|
17
|
+
10-define {id or run path}
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
Use a Discovery ID to materialize new delivery runs. Use an existing Running ID only to revise or split a definition that already exists.
|
|
21
|
-
|
|
22
20
|
## Markdown-First Contract
|
|
23
21
|
|
|
24
|
-
For
|
|
22
|
+
For the active delivery run, write:
|
|
25
23
|
|
|
26
24
|
```text
|
|
27
|
-
devflow/
|
|
25
|
+
devflow/context/current-run/10-define.md
|
|
28
26
|
```
|
|
29
27
|
|
|
30
28
|
using:
|
|
@@ -33,138 +31,24 @@ using:
|
|
|
33
31
|
.agent/resources/schemas/define.template.md
|
|
34
32
|
```
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## Required Section Content
|
|
39
|
-
|
|
40
|
-
Before completing any generated artifact:
|
|
41
|
-
|
|
42
|
-
- preserve every heading required by the selected template
|
|
43
|
-
- write concrete information under every heading
|
|
44
|
-
- when no information exists or the section does not apply, write exactly `-`
|
|
45
|
-
- never leave a heading immediately followed by another heading with no body content
|
|
46
|
-
- remove template placeholders from the final artifact
|
|
47
|
-
- do not invent facts merely to avoid using `-`
|
|
48
|
-
- re-read the saved artifact and verify every heading satisfies this rule
|
|
49
|
-
|
|
50
|
-
## Process
|
|
51
|
-
|
|
52
|
-
### Loop Contract
|
|
53
|
-
|
|
54
|
-
Run definition as a scope-stabilization and run-allocation loop.
|
|
55
|
-
|
|
56
|
-
- **Intent**: turn an approved discovery into the smallest coherent set of delivery runs that can each be specified, planned, implemented, and verified without carrying the entire initiative context.
|
|
57
|
-
- **Context**: read the approved `00-discover.md`, linked Brainstorm/PRD/Research/Debug outputs, project-wide rules, existing run IDs, and dependencies between candidate slices.
|
|
58
|
-
- **Action**: lock initiative and scope boundaries, decompose delivery slices, review the run map, allocate collision-free Running IDs, and write one `10-define.md` per slice.
|
|
59
|
-
- **Observation**: use independent acceptance boundaries, release boundaries, ownership, dependencies, context size, cross-domain coupling, and reviewability as evidence for splitting or combining slices.
|
|
60
|
-
- **Adjustment**: merge slices that are only implementation tasks; split slices that require separate specs, releases, ownership, or large independent context; return to `00-discover` if the decision or product direction is still unstable.
|
|
61
|
-
- **Stop Condition**: stop when the run map is approved, IDs are materialized without collision, each run has stable in/out scope, and every generated run can proceed independently to `20-spec {running_id}`.
|
|
62
|
-
- **Handoff**: each `10-define.md` must identify its source Discovery ID, sibling runs, dependencies, scope, non-goals, and exact next command.
|
|
63
|
-
|
|
64
|
-
### 1. Validate The Discovery Gate
|
|
34
|
+
## Process & Quality Gates
|
|
65
35
|
|
|
66
|
-
|
|
36
|
+
### 1. Single Active Run Guardrail (One Thing at a Time)
|
|
37
|
+
1. Inspect `devflow/context/current-stage.md`, `devflow/context/current-feature.md`, and `devflow/context/current-run/`.
|
|
38
|
+
2. If an active uncompleted run exists:
|
|
39
|
+
- **HALT and reject opening a new define stage**.
|
|
40
|
+
- Warn the user to complete or close the active run with `/complete` or `70-release` first.
|
|
67
41
|
|
|
42
|
+
### 2. Validate The Discovery Gate
|
|
43
|
+
Require:
|
|
68
44
|
- `Decision: Proceed`
|
|
69
45
|
- `Approval Status: Approved`
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- acceptance or verification boundaries
|
|
81
|
-
- release or rollback boundaries
|
|
82
|
-
- domain context or ownership
|
|
83
|
-
- dependency sequencing
|
|
84
|
-
- implementation context large enough to threaten reliable planning or review
|
|
85
|
-
|
|
86
|
-
Keep ordinary subtasks inside `30-plan` and checklists.
|
|
87
|
-
|
|
88
|
-
For every slice record:
|
|
89
|
-
|
|
90
|
-
- title and slug
|
|
91
|
-
- outcome and scope boundary
|
|
92
|
-
- exclusions
|
|
93
|
-
- dependencies
|
|
94
|
-
- shared project constraints
|
|
95
|
-
- reason it deserves one Running ID
|
|
96
|
-
|
|
97
|
-
### 3. Review Before Allocation
|
|
98
|
-
|
|
99
|
-
Present the proposed run map for human review before consuming numeric IDs when the split is large, disputed, or high risk. A single clear slice may proceed directly when approval is already explicit.
|
|
100
|
-
|
|
101
|
-
### 4. Allocate Running IDs
|
|
102
|
-
|
|
103
|
-
- inspect `devflow/runs/` immediately before allocation
|
|
104
|
-
- choose sequential IDs after the highest existing numeric Running ID
|
|
105
|
-
- never reuse a gap merely because it is available
|
|
106
|
-
- create each target directory immediately to reserve it
|
|
107
|
-
- recheck for collisions before writing artifacts
|
|
108
|
-
- if any collision occurs, stop, rescan, and allocate a fresh contiguous range
|
|
109
|
-
|
|
110
|
-
One invocation may create one or many Running IDs. Record the complete allocation back into the source discovery's `related_runs` and allocated-run section.
|
|
111
|
-
|
|
112
|
-
### 5. Write One `10-define.md` Per Run
|
|
113
|
-
|
|
114
|
-
- preserve template headings
|
|
115
|
-
- set `source_discovery`
|
|
116
|
-
- identify sibling runs and dependencies
|
|
117
|
-
- carry forward only the project context needed by this slice
|
|
118
|
-
- make scope, non-goals, assumptions, and success criteria explicit
|
|
119
|
-
- keep implementation tasks out of Define
|
|
120
|
-
|
|
121
|
-
### 6. Split An Existing Run When Necessary
|
|
122
|
-
|
|
123
|
-
If an existing definition is too broad:
|
|
124
|
-
|
|
125
|
-
- propose a replacement run map
|
|
126
|
-
- preserve traceability to the original run and discovery
|
|
127
|
-
- allocate new IDs only after approval
|
|
128
|
-
- mark the old definition as `Superseded` and list its replacement runs
|
|
129
|
-
- do not silently fork scope during `20-spec`
|
|
130
|
-
|
|
131
|
-
### 7. Manual Review Gate
|
|
132
|
-
|
|
133
|
-
Before recommending `20-spec`, confirm each generated definition independently. Approval of one run must not imply approval of every sibling run.
|
|
134
|
-
|
|
135
|
-
## Output
|
|
136
|
-
|
|
137
|
-
Report:
|
|
138
|
-
|
|
139
|
-
- source Discovery ID
|
|
140
|
-
- proposed and allocated run map
|
|
141
|
-
- workspace path for every generated run
|
|
142
|
-
- scope and dependency summary per run
|
|
143
|
-
- any superseded run
|
|
144
|
-
- exact `20-spec {running_id}` commands for approved runs
|
|
145
|
-
|
|
146
|
-
## Relationship To DevFlow 2.0
|
|
147
|
-
|
|
148
|
-
- Classification: Mainline workflow and Running ID creation boundary
|
|
149
|
-
- Previous state: approved `00-discover`
|
|
150
|
-
- Next state: `20-spec {running_id}` per generated run
|
|
151
|
-
- Running ID lifecycle: starts here
|
|
152
|
-
|
|
153
|
-
## Sources
|
|
154
|
-
|
|
155
|
-
- `AGENTS.md`
|
|
156
|
-
- `docs/workspace-artifacts.md`
|
|
157
|
-
- `.agent/resources/schemas/define.template.md`
|
|
158
|
-
|
|
159
|
-
## Next Workflow Recommendation
|
|
160
|
-
|
|
161
|
-
- **Primary**: `20-spec {running_id}` for each approved run
|
|
162
|
-
- **Alternatives**:
|
|
163
|
-
- `00-discover {discovery_id}` when the go/no-go decision or direction is unstable
|
|
164
|
-
- `Research {discovery_id}` when evidence still blocks a reliable split
|
|
165
|
-
- `grill-with-docs` when boundaries or terminology remain ambiguous
|
|
166
|
-
|
|
167
|
-
## Nexus Event
|
|
168
|
-
|
|
169
|
-
- Use `domain-modeling` when sibling runs need shared language or durable architectural decisions.
|
|
170
|
-
- Use `planning-and-task-breakdown` only after the delivery boundary is stable; small tasks belong in `30-plan`, not separate Running IDs.
|
|
46
|
+
- A resolvable Discovery ID and `00-discover.md`
|
|
47
|
+
|
|
48
|
+
### 3. Allocate Sequential ID
|
|
49
|
+
- Inspect `devflow/history/HISTORY.md` and allocate sequential ID without prefix (e.g. `022-{slug}`).
|
|
50
|
+
- Create directory `devflow/context/current-run/` if it does not exist.
|
|
51
|
+
- Write `devflow/context/current-run/10-define.md`.
|
|
52
|
+
- Update `devflow/context/current-stage.md`:
|
|
53
|
+
- `Active Running ID`: `{ID}`
|
|
54
|
+
- `Current Stage`: `10-define (Completed -> Ready for 20-spec)`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 60-report
|
|
3
|
-
description: "[Devflow] Report stage in DevFlow 2.0 - produce standardized markdown summary report for the completed run."
|
|
3
|
+
description: "[Devflow] Report stage in DevFlow 2.0 - produce standardized markdown and HTML summary report for the completed run."
|
|
4
4
|
argument-hint: "{running-id or workspace path}"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
description: "[Devflow] Release stage in DevFlow 2.0 - package verified work for delivery, git merge, PR, or deployment."
|
|
1
|
+
---
|
|
2
|
+
name: 70-release
|
|
3
|
+
description: "[Devflow] Release stage in DevFlow 2.0 - package verified work for delivery, archive run to categorized history, git merge, PR, or deployment."
|
|
4
4
|
argument-hint: "{running-id or workspace path}"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,26 +8,20 @@ argument-hint: "{running-id or workspace path}"
|
|
|
8
8
|
|
|
9
9
|
$ARGUMENTS
|
|
10
10
|
|
|
11
|
-
Package approved work for delivery after the report stage has captured the final verified story.
|
|
11
|
+
Package approved work for delivery after the report stage has captured the final verified story. Archives the active run from `devflow/context/current-run/` to `devflow/history/{features|fixes|rollbacks}/{xxx-slug}/`, updates `HISTORY.md`, performs git merge, and closes the run.
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
|
-
70-release {
|
|
16
|
+
70-release {id or workspace path}
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
Use this when:
|
|
20
|
-
|
|
21
|
-
- `60-report` is complete
|
|
22
|
-
- the work needs release execution or a release-facing handoff packet
|
|
23
|
-
- downstream stakeholders need delivery notes instead of raw implementation detail
|
|
24
|
-
|
|
25
19
|
## Markdown-First Contract
|
|
26
20
|
|
|
27
21
|
Write the primary stage artifact to:
|
|
28
22
|
|
|
29
23
|
```text
|
|
30
|
-
devflow/
|
|
24
|
+
devflow/context/current-run/70-release.md
|
|
31
25
|
```
|
|
32
26
|
|
|
33
27
|
using:
|
|
@@ -36,142 +30,24 @@ using:
|
|
|
36
30
|
.agent/resources/schemas/release.template.md
|
|
37
31
|
```
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
## Required Section Content
|
|
42
|
-
|
|
43
|
-
Before completing any generated artifact:
|
|
44
|
-
|
|
45
|
-
- preserve every heading required by the selected template
|
|
46
|
-
- write concrete information under every heading
|
|
47
|
-
- when no information exists or the section does not apply, write exactly `-`
|
|
48
|
-
- never leave a heading immediately followed by another heading with no body content
|
|
49
|
-
- remove template placeholders from the final artifact
|
|
50
|
-
- do not invent facts merely to avoid using `-`
|
|
51
|
-
- re-read the saved artifact and verify every heading satisfies this rule
|
|
52
|
-
|
|
53
|
-
## Process
|
|
54
|
-
|
|
55
|
-
### Loop Contract
|
|
56
|
-
|
|
57
|
-
Run release as a readiness-packaging loop, not as a celebratory summary.
|
|
58
|
-
|
|
59
|
-
- **Intent**: convert verified work into a clear release, PR, merge, deploy, or handoff packet without hiding unresolved risk.
|
|
60
|
-
- **Context**: read `50-verify.md`, `50-verify-impact.md` when present, `40-execute.md`, `20-spec.md`, checklist state, and any PR, deploy, merge, or handoff notes.
|
|
61
|
-
- **Action**: summarize delivered scope, user/system impact, readiness state, validation evidence, rollback or mitigation notes, and follow-up items.
|
|
62
|
-
- **Observation**: use concrete evidence such as verify verdict, failed or skipped checks, impact notes, residual risks, merge/deploy constraints, and checklist status.
|
|
63
|
-
- **Adjustment**: if release readiness becomes uncertain, return to `50-verify`; if fixes are required, return to `40-execute`; if context must transfer, use `handoff`.
|
|
64
|
-
- **Stop Condition**: stop when the release state is explicit, evidence supports readiness, residual risks and follow-ups are named, and the next delivery or reporting route is clear.
|
|
65
|
-
- **Handoff**: `70-release.md` must close the mainline run or tell the next reader what shipped, what did not ship, what evidence supports readiness, and what follow-ups remain.
|
|
33
|
+
## Process & Quality Gates
|
|
66
34
|
|
|
67
35
|
### 0. Step 0 Safety Pass & Findings Ledger Gate
|
|
68
36
|
|
|
69
37
|
Before packaging, merging, or releasing:
|
|
70
38
|
|
|
71
39
|
1. **Findings Ledger Blockers**:
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
40
|
+
- Inspect `devflow/context/findings.md`.
|
|
41
|
+
- No Finding of severity `P0` or `P1` in `open` or `fixed` status is permitted.
|
|
42
|
+
- `fixed` still blocks release until reviewed and closed in `50-verify`.
|
|
75
43
|
2. **2-Stage Approval Separation**:
|
|
76
|
-
-
|
|
77
|
-
- **การ Push ไปยัง Remote หรือ Deploy จะต้องขออนุมัติแยกต่างหากอย่างชัดเจน (Merge approval DOES NOT equal Push approval)**
|
|
44
|
+
- Consent to merge into `main` is strictly separate from consent to `git push` to remote or deploy.
|
|
78
45
|
3. **Archive Resolved Findings**:
|
|
79
|
-
-
|
|
80
|
-
4. **
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- `60-report.md`
|
|
88
|
-
- `50-verify.md`
|
|
89
|
-
- `40-execute.md`
|
|
90
|
-
- `20-spec.md`
|
|
91
|
-
- `devflow/context/findings.md`
|
|
92
|
-
- any PR, deploy, merge, or handoff notes already captured
|
|
93
|
-
|
|
94
|
-
### 2. Package The Release Outcome
|
|
95
|
-
|
|
96
|
-
Summarize:
|
|
97
|
-
|
|
98
|
-
- what is being delivered
|
|
99
|
-
- what changed in user or system terms
|
|
100
|
-
- what state the work is in for PR, deploy, merge, or handoff
|
|
101
|
-
- resolved and archived findings
|
|
102
|
-
- what follow-up items remain
|
|
103
|
-
|
|
104
|
-
### 3. Write `70-release.md`
|
|
105
|
-
|
|
106
|
-
Keep the language understandable for someone who did not do the work.
|
|
107
|
-
Follow the `artifact_language` configured in `release.template.md`.
|
|
108
|
-
|
|
109
|
-
Prefer clear release-note style wording:
|
|
110
|
-
|
|
111
|
-
- what was added
|
|
112
|
-
- what changed
|
|
113
|
-
- what was fixed
|
|
114
|
-
- what is intentionally deferred
|
|
115
|
-
- archived findings summary
|
|
116
|
-
|
|
117
|
-
### 4. Confirm Readiness & 2-Stage Execution
|
|
118
|
-
|
|
119
|
-
If release readiness changes because unresolved issues are found:
|
|
120
|
-
|
|
121
|
-
- route back to `50-verify` or `40-execute`
|
|
122
|
-
|
|
123
|
-
Do not package unfinished work as release-ready through wording tricks.
|
|
124
|
-
When executing git operations:
|
|
125
|
-
1. Obtain explicit user confirmation before merging.
|
|
126
|
-
2. Obtain separate explicit user confirmation before running `git push` or deployment.
|
|
127
|
-
|
|
128
|
-
### 5. Manual Review Soft Gate
|
|
129
|
-
|
|
130
|
-
Before closing the mainline run, warn when release approval is still pending.
|
|
131
|
-
If release blockers, operator questions, or handoff approvals remain open:
|
|
132
|
-
|
|
133
|
-
- mark them visibly in `70-release.md`
|
|
134
|
-
- recommend human confirmation before closing the phase
|
|
135
|
-
- keep the mainline closeout as a soft recommendation only
|
|
136
|
-
|
|
137
|
-
## Output
|
|
138
|
-
|
|
139
|
-
Report:
|
|
140
|
-
|
|
141
|
-
- delivered scope
|
|
142
|
-
- release, PR, merge, deploy, or handoff state
|
|
143
|
-
- follow-up items
|
|
144
|
-
- recommended next step
|
|
145
|
-
|
|
146
|
-
## Relationship To DevFlow 2.0
|
|
147
|
-
|
|
148
|
-
- Classification: Mainline workflow
|
|
149
|
-
- Previous state: `60-report`
|
|
150
|
-
- Next state: End of the mainline run when release packaging or handoff is complete
|
|
151
|
-
- Common companion commands: `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`, `overview`
|
|
152
|
-
- Support skills: `resolving-merge-conflicts`, `handoff`, and `setup-pre-commit` when release packaging needs conflict resolution, transfer notes, or local quality gates
|
|
153
|
-
|
|
154
|
-
## Sources
|
|
155
|
-
|
|
156
|
-
- `AGENTS.md`
|
|
157
|
-
- `docs/workspace-artifacts.md`
|
|
158
|
-
- `.agent/resources/schemas/release.template.md`
|
|
159
|
-
- Related commands: `60-report`, `Commit`, `PR`, `Deploy`, `Changelog`, `Merge`, `Wiki`, `overview`
|
|
160
|
-
|
|
161
|
-
## Next Workflow Recommendation
|
|
162
|
-
|
|
163
|
-
- **Primary**: End of Timeline flow (or run `/overview` to sync living project context)
|
|
164
|
-
- **Why**: The report is already complete, and this phase is the final release-facing execution step.
|
|
165
|
-
- **Alternatives**:
|
|
166
|
-
- `overview` - choose this to immediately sync newly shipped capabilities into `devflow/context/project-overview.md`.
|
|
167
|
-
- `60-report` - choose this when the release package diverges from the approved report and the summary must be refreshed first.
|
|
168
|
-
- `50-verify` - choose this when release readiness becomes uncertain.
|
|
169
|
-
- `40-execute` - choose this when additional fixes are needed before release can proceed.
|
|
170
|
-
- `handoff` - choose this when release-ready context must move to another session, agent, or stakeholder packet.
|
|
171
|
-
|
|
172
|
-
## Nexus Event
|
|
173
|
-
|
|
174
|
-
- Use `Commit`, `PR`, `Deploy`, `Merge`, `Changelog`, or `overview` when release execution still needs a concrete lane.
|
|
175
|
-
- Return to `60-report` when release notes, scope, or handoff wording diverge from the approved summary.
|
|
176
|
-
- Return to `50-verify` or `40-execute` when release readiness changes because unresolved issues are discovered.
|
|
177
|
-
|
|
46
|
+
- Move resolved findings (`closed`, `accepted`, `invalid`) into release archive notes and clean `findings.md`.
|
|
47
|
+
4. **Archive Run Folder to Categorized History**:
|
|
48
|
+
- Determine Category (`features`, `fixes`, `rollbacks`).
|
|
49
|
+
- Move directory `devflow/context/current-run/` (or `devflow/runs/{xxx-slug}/`) ➔ `devflow/history/{category}/{xxx-slug}/`.
|
|
50
|
+
5. **Append to Master History Ledger**:
|
|
51
|
+
- Append entry to `devflow/history/HISTORY.md` linking to `history/{category}/{xxx-slug}/60-report.md`.
|
|
52
|
+
6. **Update Workspace State**:
|
|
53
|
+
- Set `devflow/context/current-stage.md` to `Idle`.
|