@jakkrichm/create-nexus-devflow 2.0.13 → 2.0.14
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 -0
- package/dist/bin/create-nexus-devflow.js +233 -0
- package/dist/bin/create-nexus-devflow.js.map +1 -0
- package/dist/lib/starter-templates.d.ts +6 -0
- package/dist/lib/starter-templates.js +8 -0
- package/dist/lib/starter-templates.js.map +1 -0
- package/dist/lib/update.d.ts +68 -0
- package/dist/lib/update.js +325 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/scripts/clean-template.d.ts +1 -0
- package/dist/scripts/clean-template.js +14 -0
- package/dist/scripts/clean-template.js.map +1 -0
- package/dist/scripts/prepare-template.d.ts +1 -0
- package/dist/scripts/prepare-template.js +89 -0
- package/dist/scripts/prepare-template.js.map +1 -0
- package/package.json +11 -9
- package/template/.agents/skills/00-discover/SKILL.md +2 -0
- package/template/.agents/skills/60-report/SKILL.md +21 -75
- package/template/.agents/skills/70-release/SKILL.md +5 -4
- package/template/.agents/skills/check/SKILL.md +68 -0
- package/template/.agents/skills/complete/SKILL.md +73 -0
- package/template/.agents/skills/devflow/SKILL.md +89 -80
- package/template/.agents/skills/idea/SKILL.md +57 -0
- package/template/.agents/skills/implement/SKILL.md +64 -0
- package/template/.agents/skills/overview/SKILL.md +114 -0
- package/template/.agents/skills/report-html/SKILL.md +45 -0
- package/template/.agents/skills/spec/SKILL.md +105 -0
- package/template/.claude/skills/00-discover/SKILL.md +2 -0
- package/template/.claude/skills/60-report/SKILL.md +21 -75
- package/template/.claude/skills/70-release/SKILL.md +5 -4
- package/template/.claude/skills/check/SKILL.md +68 -0
- package/template/.claude/skills/complete/SKILL.md +73 -0
- package/template/.claude/skills/devflow/SKILL.md +89 -80
- package/template/.claude/skills/idea/SKILL.md +57 -0
- package/template/.claude/skills/implement/SKILL.md +64 -0
- package/template/.claude/skills/overview/SKILL.md +114 -0
- package/template/.claude/skills/report-html/SKILL.md +45 -0
- package/template/.claude/skills/spec/SKILL.md +105 -0
- package/template/AGENTS.md +71 -74
- package/template/devflow/context/ai-interaction.md +1 -0
- package/template/devflow/context/coding-standards.md +31 -18
- package/template/devflow/context/current-stage.md +3 -3
- package/template/devflow/context/findings.md +10 -6
- package/template/devflow/context/project-overview.md +29 -11
- package/template/devflow/discoveries/.gitkeep +0 -0
- package/template/devflow/history/HISTORY.md +4 -0
- package/template/devflow/ideas.md +15 -0
- package/template/devflow/runs/.gitkeep +0 -0
- package/bin/create-nexus-devflow.js +0 -287
- package/lib/starter-templates.js +0 -111
- package/lib/update.js +0 -393
- package/template/.nexus/nexus-devflow.json +0 -44
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
# Project Overview
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
> Single AI-facing source of truth for project architecture, stack, and shipped capabilities.
|
|
5
|
-
> Run `/onboard` (for fresh projects) or `/adopt` (for existing codebases) to populate this file automatically.
|
|
3
|
+
Primary source of truth for the project context, architecture, tech stack, and active DevFlow stage status.
|
|
6
4
|
|
|
7
|
-
##
|
|
5
|
+
## Application Summary
|
|
8
6
|
|
|
9
|
-
- **Name**:
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
7
|
+
- **Project Name**: Nexus-DevFlow
|
|
8
|
+
- **Goal**: Agent-ready DevFlow 2.0 workflow layer framework with .agents and .claude adapter tooling, living context synchronization, and automated AI Blueprint upstream monitoring.
|
|
9
|
+
- **Target Audience**: AI coding assistants (Google Antigravity, OpenAI Codex, Claude Code, Cursor) and software development teams building resilient agentic delivery workflows.
|
|
12
10
|
|
|
13
|
-
##
|
|
11
|
+
## Tech Stack
|
|
14
12
|
|
|
15
|
-
-
|
|
13
|
+
- **Core & Runtime**: Node.js (>=18.17 / Node 22), TypeScript 5.7, Node Next ESM (`"type": "module"`)
|
|
14
|
+
- **Execution & Tooling**: `tsx` (TypeScript execute/test runner), `tsc` (Typecheck & compilation)
|
|
15
|
+
- **Installer Package**: `@jakkrichm/create-nexus-devflow` (with `dist/` compilation pipeline)
|
|
16
|
+
- **Documentation**: VitePress / Astro website under `website/` (GitHub Pages)
|
|
17
|
+
- **Upstream Integration**: Automated GitHub Actions monitor (`.github/workflows/check-upstream.yml`) tracking `aiblueprinthq/ai-blueprint`
|
|
18
|
+
- **Verification Gate**: `npm run check` (TypeScript typechecking, static contract validation, TF-IDF skill routing evaluations, installer unit tests, packed smoke tests)
|
|
16
19
|
|
|
17
|
-
##
|
|
20
|
+
## Architecture & Key Modules
|
|
18
21
|
|
|
19
|
-
-
|
|
22
|
+
- **`packages/create-nexus-devflow/`**: Distribution CLI package with TypeScript compilation (`dist/bin/create-nexus-devflow.js`), atomic update engine (`lib/update.ts`), and prepack template bundler (`scripts/prepare-template.ts`).
|
|
23
|
+
- **`.agents/skills/` & `.claude/skills/`**: 72 synchronized AI agent skills covering Mainline stages (00-70) and companion tools (`devflow`, `try`, `doctor`, `overview`, `sync-upstream`, `ci`, `rollback`).
|
|
24
|
+
- **`scripts/`**: Maintainer infrastructure (`check-devflow.ts`, `validate-framework.ts`, `smoke-package.ts`, `upstream-monitor.ts`, `evals/routing.ts`).
|
|
25
|
+
- **`devflow/`**: Workspace state, discoveries, runs, context, reference contracts, and master release history ledger.
|
|
26
|
+
|
|
27
|
+
## Shipped Capabilities (Recent Milestones)
|
|
28
|
+
|
|
29
|
+
- **`RUN-014` (2026-08-20)**: Upgraded DevFlow to full TypeScript architecture (`tsconfig.json`, `tsx`, `tsc`, `dist/`), migrated AI Blueprint Upstream Monitor workflow to DevFlow, and established multi-lane verification matrix.
|
|
30
|
+
- **`RUN-013` (2026-08-20)**: Added `/overview` skill for living context scanning and synchronization.
|
|
31
|
+
- **`RUN-008` (2026-08-18)**: Lean & Clean DevFlow optimization, consolidated skill taxonomy, and safe rollback mechanisms.
|
|
32
|
+
|
|
33
|
+
## DevFlow Workspace Status
|
|
34
|
+
|
|
35
|
+
- **Active Discovery ID**: None (Idle)
|
|
36
|
+
- **Active Running ID**: None (Idle)
|
|
37
|
+
- **Last Completed Run**: `RUN-014-typescript-migration-and-upstream-monitor-for-devflow`
|
|
File without changes
|
|
@@ -8,6 +8,10 @@ This master ledger tracks all released delivery runs, milestones, and rollbacks
|
|
|
8
8
|
|
|
9
9
|
| Release Date | Running ID | Title | Git Tag / Commit | Release Status | Report Link |
|
|
10
10
|
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
11
|
+
| 2026-08-20 | `RUN-016` | ระบบบันทึกไอเดียพร้อม AI วิเคราะห์ความเป็นไปได้ (`/idea`) และเชื่อมต่อกับ Status Backlog | `HEAD` | `Released` | [`spec.md`](../runs/RUN-016-idea-capture-inbox-and-status-integration/spec.md) |
|
|
12
|
+
| 2026-08-20 | `RUN-015` | Dual-Track Architecture (Fast-Track 4 Steps & Deep-Track 8 Steps) + Living Spec (`spec.md`) + Standalone HTML Report Policy | `HEAD` | `Released` | [`spec.md`](../runs/RUN-015-fast-track-and-living-blueprint/spec.md) |
|
|
13
|
+
| 2026-08-20 | `RUN-014` | ยกระดับสถาปัตยกรรม DevFlow สู่ TypeScript และย้ายระบบ Check AI Blueprint Upstream Monitor | `HEAD` | `Released` | [`60-report.md`](../runs/RUN-014-typescript-migration-and-upstream-monitor-for-devflow/60-report.md) |
|
|
14
|
+
| 2026-08-20 | `RUN-013` | เพิ่ม Skill `/overview` และระบบ Living Context Sync สำหรับ Nexus-DevFlow | `e30375b` | `Released` | [`60-report.md`](../runs/RUN-013-add-overview-and-context-sync-skill/60-report.md) |
|
|
11
15
|
| 2026-08-18 | `RUN-008` | ปรับปรุงโครงสร้าง Nexus-DevFlow ให้ Lean & Clean ยุบรวม Skills บริหารจัดการ History และ Safe Rollback | `be713ea` | `Released` | [`60-report.md`](../runs/RUN-008-lean-and-clean-devflow-optimization/60-report.md) |
|
|
12
16
|
| 2026-08-18 | `RUN-007` | ยกระดับระบบ Nexus-DevFlow ด้วยวินัยและกลไกสำคัญจาก Blueprint | `e79528b` | `Released` | [`60-report.md`](../runs/RUN-007-integrate-blueprint-skills-enhancements/60-report.md) |
|
|
13
17
|
| 2026-08-18 | `RUN-006` | Standardize Command Naming and Provider Invocation | `HEAD` | `Released` | [`60-report.md`](../runs/RUN-006-standardize-command-naming-and-provider-invocation/60-report.md) |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 💡 DevFlow Idea Inbox & Backlog
|
|
2
|
+
|
|
3
|
+
บันทึกไอเดียที่รอดำเนินการ พร้อมบทวิเคราะห์ความเป็นไปได้เบื้องต้นจาก AI (บันทึกด้วยคำสั่ง `/idea "<text>"`)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📌 Pending Ideas
|
|
8
|
+
|
|
9
|
+
*(ยังไม่มีไอเดียค้างอยู่ — เพิ่มไอเดียใหม่ได้ด้วยคำสั่ง `/idea "<ข้อความไอเดีย>" หรือ `$idea "<text>"`)*
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 📦 Archived / Shipped Ideas
|
|
14
|
+
|
|
15
|
+
*(ไอเดียที่ถูกหยิบไปทำด้วย `/spec IDEA-xxx` หรือ `/00-discover IDEA-xxx` จะถูกย้ายมาบันทึกที่นี่)*
|
|
File without changes
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const fs = require("node:fs/promises");
|
|
4
|
-
const fsSync = require("node:fs");
|
|
5
|
-
const path = require("node:path");
|
|
6
|
-
const readline = require("node:readline/promises");
|
|
7
|
-
const {
|
|
8
|
-
MANIFEST_PATH,
|
|
9
|
-
applyPreparedUpdate,
|
|
10
|
-
prepareUpdate,
|
|
11
|
-
writeInstallManifest
|
|
12
|
-
} = require("../lib/update");
|
|
13
|
-
|
|
14
|
-
const packageRoot = path.resolve(__dirname, "..");
|
|
15
|
-
const templateRoot = path.join(packageRoot, "template");
|
|
16
|
-
|
|
17
|
-
const adapterChoices = new Set(["codex", "antigravity", "claude", "both", "all"]);
|
|
18
|
-
|
|
19
|
-
async function main() {
|
|
20
|
-
const options = parseArgs(process.argv.slice(2));
|
|
21
|
-
|
|
22
|
-
if (options.help) {
|
|
23
|
-
printHelp();
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (options.version) {
|
|
28
|
-
console.log(readPackageVersion());
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (!fsSync.existsSync(templateRoot)) {
|
|
33
|
-
throw new Error(
|
|
34
|
-
"Installer template is missing. Run `npm run prepare-template` before local testing."
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const targetDir = path.resolve(process.cwd(), options.target || ".");
|
|
39
|
-
const version = readPackageVersion();
|
|
40
|
-
|
|
41
|
-
if (options.command === "update") {
|
|
42
|
-
const prepared = await prepareUpdate({
|
|
43
|
-
targetDir,
|
|
44
|
-
templateRoot,
|
|
45
|
-
version,
|
|
46
|
-
adapter: options.adapter
|
|
47
|
-
});
|
|
48
|
-
printUpdatePlan(prepared);
|
|
49
|
-
|
|
50
|
-
if (options.dryRun) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const replaceConflicts =
|
|
55
|
-
options.force || (await confirmUpdateConflicts(prepared, options));
|
|
56
|
-
const result = await applyPreparedUpdate(prepared, { replaceConflicts });
|
|
57
|
-
printUpdateSuccess(prepared, result);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const prepared = await prepareUpdate({
|
|
62
|
-
targetDir,
|
|
63
|
-
templateRoot,
|
|
64
|
-
version,
|
|
65
|
-
adapter: options.adapter
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
printInstallPlan(prepared, options);
|
|
69
|
-
|
|
70
|
-
if (options.dryRun) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (prepared.conflictList.length > 0 && !options.force) {
|
|
75
|
-
const proceed = await confirmInstallConflicts(prepared, options);
|
|
76
|
-
if (!proceed) {
|
|
77
|
-
console.log("Install cancelled.");
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const result = await applyPreparedUpdate(prepared, {
|
|
83
|
-
replaceConflicts: options.force || prepared.conflictList.length > 0
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
printInstallSuccess(targetDir, result, options);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function parseArgs(args) {
|
|
90
|
-
let command = "install";
|
|
91
|
-
let target = null;
|
|
92
|
-
let adapter = "both";
|
|
93
|
-
let force = false;
|
|
94
|
-
let dryRun = false;
|
|
95
|
-
let help = false;
|
|
96
|
-
let version = false;
|
|
97
|
-
let yes = false;
|
|
98
|
-
|
|
99
|
-
const positional = [];
|
|
100
|
-
|
|
101
|
-
for (let i = 0; i < args.length; i++) {
|
|
102
|
-
const arg = args[i];
|
|
103
|
-
|
|
104
|
-
if (arg === "--help" || arg === "-h") {
|
|
105
|
-
help = true;
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (arg === "--version" || arg === "-v") {
|
|
110
|
-
version = true;
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (arg === "--force" || arg === "-f") {
|
|
115
|
-
force = true;
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (arg === "--dry-run") {
|
|
120
|
-
dryRun = true;
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (arg === "-y" || arg === "--yes") {
|
|
125
|
-
yes = true;
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (arg === "--adapter") {
|
|
130
|
-
const value = args[++i];
|
|
131
|
-
if (!value || !adapterChoices.has(value.toLowerCase())) {
|
|
132
|
-
throw new Error(
|
|
133
|
-
`Invalid --adapter value "${value}". Expected one of: codex, antigravity, claude, both, all`
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
adapter = value.toLowerCase();
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (arg.startsWith("--adapter=")) {
|
|
141
|
-
const value = arg.slice("--adapter=".length);
|
|
142
|
-
if (!adapterChoices.has(value.toLowerCase())) {
|
|
143
|
-
throw new Error(
|
|
144
|
-
`Invalid --adapter value "${value}". Expected one of: codex, antigravity, claude, both, all`
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
adapter = value.toLowerCase();
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (arg.startsWith("-")) {
|
|
152
|
-
throw new Error(`Unknown option "${arg}". Use --help to see available options.`);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
positional.push(arg);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (positional.length > 0) {
|
|
159
|
-
if (positional[0] === "update") {
|
|
160
|
-
command = "update";
|
|
161
|
-
target = positional[1] || ".";
|
|
162
|
-
} else {
|
|
163
|
-
target = positional[0];
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return {
|
|
168
|
-
command,
|
|
169
|
-
target,
|
|
170
|
-
adapter,
|
|
171
|
-
force,
|
|
172
|
-
dryRun,
|
|
173
|
-
help,
|
|
174
|
-
version,
|
|
175
|
-
yes
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function readPackageVersion() {
|
|
180
|
-
const pkgPath = path.join(packageRoot, "package.json");
|
|
181
|
-
const content = fsSync.readFileSync(pkgPath, "utf8");
|
|
182
|
-
return JSON.parse(content).version;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function printHelp() {
|
|
186
|
-
console.log(`
|
|
187
|
-
Nexus-DevFlow Installer v${readPackageVersion()}
|
|
188
|
-
|
|
189
|
-
Usage:
|
|
190
|
-
npx @jakkrichm/create-nexus-devflow [target-dir] [options]
|
|
191
|
-
npx @jakkrichm/create-nexus-devflow update [target-dir] [options]
|
|
192
|
-
|
|
193
|
-
Options:
|
|
194
|
-
--adapter <name> Tool adapters to install: codex, antigravity, claude, both (default: both)
|
|
195
|
-
--force, -f Overwrite conflicting files without prompting
|
|
196
|
-
--dry-run Preview changes without modifying disk
|
|
197
|
-
-y, --yes Automatically confirm interactive prompts
|
|
198
|
-
--version, -v Show version number
|
|
199
|
-
--help, -h Show help screen
|
|
200
|
-
`);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
function printInstallPlan(prepared, options) {
|
|
204
|
-
console.log(`\nNexus-DevFlow v${readPackageVersion()}`);
|
|
205
|
-
console.log(`Target Directory: ${prepared.targetDir}`);
|
|
206
|
-
console.log(`Active Adapters : ${prepared.activeAdapters.join(", ")}\n`);
|
|
207
|
-
|
|
208
|
-
console.log(`Files to create : ${prepared.createList.length}`);
|
|
209
|
-
console.log(`Files to update : ${prepared.updateList.length}`);
|
|
210
|
-
console.log(`Conflicts found : ${prepared.conflictList.length}`);
|
|
211
|
-
|
|
212
|
-
if (prepared.conflictList.length > 0) {
|
|
213
|
-
console.log("\nConflicting files:");
|
|
214
|
-
for (const conflict of prepared.conflictList) {
|
|
215
|
-
console.log(` - ${conflict.relativePath} (${conflict.detail})`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
function printUpdatePlan(prepared) {
|
|
221
|
-
console.log(`\nNexus-DevFlow Update Plan (v${readPackageVersion()})`);
|
|
222
|
-
console.log(`Target Directory: ${prepared.targetDir}`);
|
|
223
|
-
console.log(`Active Adapters : ${prepared.activeAdapters.join(", ")}\n`);
|
|
224
|
-
|
|
225
|
-
console.log(`Files to create : ${prepared.createList.length}`);
|
|
226
|
-
console.log(`Files to update : ${prepared.updateList.length}`);
|
|
227
|
-
console.log(`Orphaned files : ${prepared.orphanedFiles.length}`);
|
|
228
|
-
console.log(`Conflicts found : ${prepared.conflictList.length}`);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
async function confirmInstallConflicts(prepared, options) {
|
|
232
|
-
if (options.yes) return true;
|
|
233
|
-
|
|
234
|
-
const rl = readline.createInterface({
|
|
235
|
-
input: process.stdin,
|
|
236
|
-
output: process.stdout
|
|
237
|
-
});
|
|
238
|
-
const answer = await rl.question(
|
|
239
|
-
`\nOverwrite ${prepared.conflictList.length} conflicting file(s)? [y/N] `
|
|
240
|
-
);
|
|
241
|
-
rl.close();
|
|
242
|
-
return answer.trim().toLowerCase() === "y";
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
async function confirmUpdateConflicts(prepared, options) {
|
|
246
|
-
if (options.yes) return true;
|
|
247
|
-
|
|
248
|
-
const rl = readline.createInterface({
|
|
249
|
-
input: process.stdin,
|
|
250
|
-
output: process.stdout
|
|
251
|
-
});
|
|
252
|
-
const answer = await rl.question(
|
|
253
|
-
`\nOverwrite ${prepared.conflictList.length} customized file(s) with update? [y/N] `
|
|
254
|
-
);
|
|
255
|
-
rl.close();
|
|
256
|
-
return answer.trim().toLowerCase() === "y";
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
function printNextSteps() {
|
|
260
|
-
console.log("\nNext steps in your AI IDE (Antigravity, Claude Code, Codex, etc.):");
|
|
261
|
-
console.log(" 1. Project Setup & Baseline:");
|
|
262
|
-
console.log(" - Existing project : Run `/adopt` (or `$adopt`) to scan codebase and bootstrap context.");
|
|
263
|
-
console.log(" - Fresh project : Run `/onboard` (or `$onboard`) to configure project baseline.");
|
|
264
|
-
console.log(" 2. System Health & CI:");
|
|
265
|
-
console.log(" - Health check : Run `/doctor` (or `$doctor`) to verify adapters and setup.");
|
|
266
|
-
console.log(" - CI configuration : Run `/ci` (or `$ci`) to setup GitHub Actions workflow.");
|
|
267
|
-
console.log(" 3. Delivery Flow:");
|
|
268
|
-
console.log(" - Interactive guide: Run `/devflow` (or `$devflow`) for state & routing assistance.");
|
|
269
|
-
console.log(" - Start new work : Run `/00-discover` (or `$00-discover`) to begin delivery lifecycle.");
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
function printInstallSuccess(targetDir, result, options) {
|
|
273
|
-
console.log("\nNexus-DevFlow overlay successfully installed!");
|
|
274
|
-
console.log(`Applied ${result.appliedCount} file(s).`);
|
|
275
|
-
printNextSteps();
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
function printUpdateSuccess(prepared, result) {
|
|
279
|
-
console.log("\nNexus-DevFlow update successfully applied!");
|
|
280
|
-
console.log(`Applied ${result.appliedCount} file(s), removed ${result.removedCount} orphaned file(s).`);
|
|
281
|
-
printNextSteps();
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
main().catch((err) => {
|
|
285
|
-
console.error(`\nError: ${err.message}`);
|
|
286
|
-
process.exit(1);
|
|
287
|
-
});
|
package/lib/starter-templates.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
const starterTemplates = {
|
|
2
|
-
projectOverview: `# Project Overview
|
|
3
|
-
|
|
4
|
-
> **DevFlow Context Source of Truth.**
|
|
5
|
-
> Single AI-facing source of truth for project architecture, stack, and shipped capabilities.
|
|
6
|
-
> Run \`/onboard\` (for fresh projects) or \`/adopt\` (for existing codebases) to populate this file automatically.
|
|
7
|
-
|
|
8
|
-
## 1. Project Summary
|
|
9
|
-
|
|
10
|
-
- **Name**: [Project Name]
|
|
11
|
-
- **Description**: [One-line summary of project purpose]
|
|
12
|
-
- **Primary Stack**: [Framework / Language / Runtime]
|
|
13
|
-
|
|
14
|
-
## 2. Architecture & Modules
|
|
15
|
-
|
|
16
|
-
- \`src/\` - Core application source code
|
|
17
|
-
|
|
18
|
-
## 3. Shipped Capabilities
|
|
19
|
-
|
|
20
|
-
- None recorded yet. Run \`/onboard\` or \`/adopt\` to initialize.
|
|
21
|
-
`,
|
|
22
|
-
|
|
23
|
-
codingStandards: `# Coding Standards
|
|
24
|
-
|
|
25
|
-
> Project conventions and rules to follow during development.
|
|
26
|
-
> Run \`/onboard\` (or \`/adopt\` for existing codebases) to tune these standards to your specific stack.
|
|
27
|
-
|
|
28
|
-
## Architecture and Conventions
|
|
29
|
-
|
|
30
|
-
- Write clean, modular, and maintainable code with clear single responsibilities.
|
|
31
|
-
- Prefer TypeScript and explicit interfaces where available.
|
|
32
|
-
- Keep dependencies lean and justified.
|
|
33
|
-
|
|
34
|
-
## Code Organization & Style
|
|
35
|
-
|
|
36
|
-
- Structure source code following framework-native conventions.
|
|
37
|
-
- Keep functions focused and avoid deeply nested logic.
|
|
38
|
-
- Use consistent naming conventions (camelCase for functions/variables, PascalCase for components/types).
|
|
39
|
-
|
|
40
|
-
## Error Handling & Security
|
|
41
|
-
|
|
42
|
-
- Handle errors explicitly and provide meaningful error messages.
|
|
43
|
-
- Never hardcode credentials, secrets, or API keys in source code.
|
|
44
|
-
- Sanitize and validate all user inputs.
|
|
45
|
-
|
|
46
|
-
## Testing & Quality
|
|
47
|
-
|
|
48
|
-
- Follow the TDD workflow for behavior-changing code units.
|
|
49
|
-
- Run tests and linting before completing features or fixes.
|
|
50
|
-
`,
|
|
51
|
-
|
|
52
|
-
currentStage: `# Current DevFlow Run Status
|
|
53
|
-
|
|
54
|
-
- **Active Discovery ID**: None
|
|
55
|
-
- **Active Running ID**: None
|
|
56
|
-
- **Current Stage**: Idle
|
|
57
|
-
- **Last Completed Run**: None
|
|
58
|
-
- **Last Updated**: -
|
|
59
|
-
`,
|
|
60
|
-
|
|
61
|
-
findings: `# Findings Ledger
|
|
62
|
-
|
|
63
|
-
> Review findings raised by \`/security-review\` or QA audits.
|
|
64
|
-
> Resolved findings are tracked with durable IDs.
|
|
65
|
-
|
|
66
|
-
- **Total Open P0/P1**: 0
|
|
67
|
-
- **Total Tracked**: 0
|
|
68
|
-
|
|
69
|
-
_No findings recorded._
|
|
70
|
-
`,
|
|
71
|
-
|
|
72
|
-
aiInteraction: `# AI Interaction Guidelines for DevFlow
|
|
73
|
-
|
|
74
|
-
> **DevFlow is an agentic workflow layer**, overlaying on top of scaffolded or existing codebases.
|
|
75
|
-
|
|
76
|
-
## Communication & Interaction
|
|
77
|
-
|
|
78
|
-
- Be concise and direct in communication.
|
|
79
|
-
- Explain technical trade-offs and non-obvious design decisions briefly.
|
|
80
|
-
- Always confirm before performing major refactors or destructive operations.
|
|
81
|
-
- Maintain markdown-first evidence for all stage activities.
|
|
82
|
-
|
|
83
|
-
## Artifact Language
|
|
84
|
-
|
|
85
|
-
- Default language for user-facing artifacts and summaries is Thai (\`th\`), while code, paths, and identifiers remain in English.
|
|
86
|
-
- Use exact schema headings when validators check for specific contract sections.
|
|
87
|
-
|
|
88
|
-
## Output Formatting
|
|
89
|
-
|
|
90
|
-
- Use GitHub-style markdown for clean scanning.
|
|
91
|
-
- Use lists for steps, options, and findings.
|
|
92
|
-
- Use tables for comparative matrices or stage summaries.
|
|
93
|
-
- Use backticks for paths, filenames, identifiers, and CLI commands.
|
|
94
|
-
|
|
95
|
-
## DevFlow Timeline Lifecycle
|
|
96
|
-
|
|
97
|
-
\`\`\`text
|
|
98
|
-
/00-Discover -> /10-Define -> /20-Spec -> /30-Plan -> /40-Implement -> /50-Verify -> /60-Report -> /70-Release
|
|
99
|
-
\`\`\`
|
|
100
|
-
|
|
101
|
-
- Run \`/00-Discover\` to explore requests under a Discovery ID.
|
|
102
|
-
- Run \`/10-Define\` to set delivery boundaries and allocate Running IDs.
|
|
103
|
-
- Run \`/20-Spec\` and \`/30-Plan\` to establish formal delivery specifications and execution plans.
|
|
104
|
-
- Run \`/40-Implement\` for step-by-step code implementation with evidence.
|
|
105
|
-
- Run \`/50-Verify\`, \`/60-Report\`, and \`/70-Release\` for quality verification, reporting, and release packaging.
|
|
106
|
-
`
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
module.exports = {
|
|
110
|
-
starterTemplates
|
|
111
|
-
};
|