@damphuquy/agent-init 2.1.0 → 2.3.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/README.md CHANGED
@@ -57,7 +57,7 @@ Designed for minimal overhead, practical focus, and zero fluff:
57
57
  ## NPX CLI Commands
58
58
 
59
59
  ```bash
60
- # Bootstrap in current directory (interactive prompt: choose English or Tiếng Việt)
60
+ # Interactive setup in current directory (prompts for Language: English or Tiếng Việt)
61
61
  npx @damphuquy/agent-init .
62
62
 
63
63
  # Bootstrap directly with Vietnamese templates
@@ -69,10 +69,27 @@ npx @damphuquy/agent-init . --lang en
69
69
  # Bootstrap into a subfolder/monorepo package
70
70
  npx @damphuquy/agent-init ./services/billing --lang vi
71
71
 
72
- # Force overwrite existing scaffold files
72
+ # Force overwrite / Update instruction framework in an existing project
73
73
  npx @damphuquy/agent-init . --force
74
74
  ```
75
75
 
76
+ ### 🔄 Framework Versioning & Upgrades (`instruction-version.json`)
77
+ Every bootstrapped project includes an [`instruction-version.json`](instruction-version.json) manifest at its root:
78
+ * **Version Tracking:** Records the framework version (`version`), RIPER-5 specification (`frameworkVersion`), language (`language`), and installation/update timestamps (`installedAt`, `updatedAt`).
79
+ * **Safe Upgrade Strategy:** Clarifies which files are safe to overwrite (`safeToOverwrite`: `.agents/`, `process/_seeds/`, `process/context/`, `process/development-protocols/`) versus project-specific assets to preserve (`preserveUserFiles`: toolchain commands in `AGENTS.md`, active & backlog tasks in `process/features/`, `process/general-plans/`).
80
+ * **Checking & Upgrading:**
81
+ ```bash
82
+ # Check for newer version and upgrade automatically (outputs "nothing changed" if up-to-date)
83
+ npx @damphuquy/agent-init update
84
+
85
+ # Or force overwrite with latest published version
86
+ npx @damphuquy/agent-init@latest . --force
87
+ ```
88
+ * **AI Prompt Slash Command `/update`:**
89
+ While working in your project, simply prompt `/update` (or `/upgrade`). The AI Agent inspects `instruction-version.json`, queries the registry: if a newer version is available, it updates instructions and preserves custom project settings; if already on the latest version, it replies `"nothing changed"`.
90
+
91
+ > 💡 **Quick Task Tip**: Once installed, you can trigger automatic task creation directly via prompt pseudo-slash commands (e.g., `/feature <name>`, `/task <name>`, `/hotfix <name>`, `/update`) without manual copying!
92
+
76
93
  ---
77
94
 
78
95
  ## License
package/README.vi.md CHANGED
@@ -69,10 +69,27 @@ npx @damphuquy/agent-init . --lang en
69
69
  # Khởi tạo vào một thư mục con trong monorepo
70
70
  npx @damphuquy/agent-init ./services/billing --lang vi
71
71
 
72
- # Ghi đè file nếu đã tồn tại
72
+ # Ghi đè / Cập nhật phiên bản mới cho dự án hiện có
73
73
  npx @damphuquy/agent-init . --force
74
74
  ```
75
75
 
76
+ ### 🔄 Quản lý và Cập nhật Phiên bản (`instruction-version.json`)
77
+ Mỗi dự án sau khi khởi tạo đều sở hữu tệp [`instruction-version.json`](instruction-version.json) ở thư mục gốc:
78
+ * **Theo dõi phiên bản:** Lưu trữ phiên bản framework (`version`), chuẩn RIPER-5 (`frameworkVersion`), ngôn ngữ (`language`) và mốc thời gian cài đặt/cập nhật (`installedAt`, `updatedAt`).
79
+ * **Chiến lược cập nhật an toàn:** Định nghĩa rõ danh mục file an toàn để ghi đè cập nhật (`safeToOverwrite` như `.agents/`, `process/_seeds/`, `process/context/`, `process/development-protocols/`) và các file đặc thù dự án luôn được giữ gìn (`preserveUserFiles` như lệnh kiểm thử trong `AGENTS.md`, các task đang chạy trong `process/features/`, `process/general-plans/`).
80
+ * **Lệnh kiểm tra & nâng cấp:**
81
+ ```bash
82
+ # Tự động kiểm tra bản mới và nâng cấp (nếu đang ở bản mới nhất thì báo "nothing changed")
83
+ npx @damphuquy/agent-init update
84
+
85
+ # Hoặc ghi đè cưỡng bức bằng bản mới nhất
86
+ npx @damphuquy/agent-init@latest . --force
87
+ ```
88
+ * **Lệnh gạch chéo `/update` qua Prompt AI:**
89
+ Khi đang làm việc trong dự án, bạn chỉ cần gõ prompt `/update` (hoặc `/upgrade`). AI Agent sẽ tự động kiểm tra phiên bản mới từ registry: nếu có bản mới thì tự động cập nhật và báo cáo, nếu không có bản mới hơn thì phản hồi `"nothing changed"`.
90
+
91
+ > 💡 **Mẹo Tạo Task Nhanh**: Sau khi cài đặt, bạn có thể kích hoạt tạo task tự động trực tiếp bằng câu lệnh giả lập (pseudo-slash commands) trong prompt (ví dụ: `/feature <tên>`, `/task <tên>`, `/hotfix <tên>`, `/update`) mà không cần sao chép file thủ công!
92
+
76
93
  ---
77
94
 
78
95
  ## 📄 Giấy phép
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAK9E;AAED,wBAAgB,SAAS,CACvB,IAAI,GAAE,SAAS,MAAM,EAA0B,GAC9C,UAAU,CA8BZ;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BzC;AAED,wBAAgB,YAAY,CAC1B,KAAK,GAAE,MAAM,GAAG,SAA2B,EAC3C,aAAa,GAAE,MAAwB,GACtC,OAAO,CAST"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAK9E;AAED,wBAAgB,SAAS,CACvB,IAAI,GAAE,SAAS,MAAM,EAA0B,GAC9C,UAAU,CAsCZ;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA2CzC;AAED,wBAAgB,YAAY,CAC1B,KAAK,GAAE,MAAM,GAAG,SAA2B,EAC3C,aAAa,GAAE,MAAwB,GACtC,OAAO,CAST"}
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@ import path from 'node:path';
3
3
  import process from 'node:process';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { getPackageInfo } from './config.js';
6
- import { scaffold } from './scaffolder.js';
6
+ import { scaffold, updateFramework } from './scaffolder.js';
7
7
  import { colors } from './theme.js';
8
8
  import { promptLanguage, renderBanner, showHelp } from './ui.js';
9
9
  export function normalizeLanguage(value) {
@@ -19,10 +19,19 @@ export function parseArgs(argv = process.argv.slice(2)) {
19
19
  let force = false;
20
20
  let help = false;
21
21
  let version = false;
22
+ let update = false;
22
23
  let lang = undefined;
23
24
  for (let i = 0; i < argv.length; i++) {
24
25
  const item = argv[i];
25
- if (item === '--force' || item === '-f') {
26
+ if (item === 'update' || item === '--update' || item === '-u') {
27
+ update = true;
28
+ const nextItem = argv[i + 1];
29
+ if (nextItem && !nextItem.startsWith('-')) {
30
+ targetDir = nextItem;
31
+ i++;
32
+ }
33
+ }
34
+ else if (item === '--force' || item === '-f') {
26
35
  force = true;
27
36
  }
28
37
  else if (item === '--help' || item === '-h') {
@@ -46,7 +55,7 @@ export function parseArgs(argv = process.argv.slice(2)) {
46
55
  targetDir = item;
47
56
  }
48
57
  }
49
- return { targetDir, force, help, version, lang };
58
+ return { targetDir, force, help, version, update, lang };
50
59
  }
51
60
  export async function run() {
52
61
  const options = parseArgs();
@@ -59,6 +68,17 @@ export async function run() {
59
68
  console.log(`${pkgInfo.name} v${pkgInfo.version}`);
60
69
  process.exit(0);
61
70
  }
71
+ if (options.update) {
72
+ const res = updateFramework({
73
+ targetDir: options.targetDir,
74
+ lang: options.lang,
75
+ force: options.force,
76
+ });
77
+ if (!res.success) {
78
+ process.exit(1);
79
+ }
80
+ process.exit(0);
81
+ }
62
82
  renderBanner(pkgInfo, colors);
63
83
  let chosenLang = options.lang;
64
84
  if (!chosenLang) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EA8D9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EA8D9C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAmB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,IAAI,GAAE,iBAAwB,GAAG,SAAS,SAAS,EAAE,CAElF;AAGD,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAED,wBAAgB,cAAc,CAAC,cAAc,GAAE,MAAyB,GAAG,WAAW,CAgBrF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EA+D9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EA+D9C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAmB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,IAAI,GAAE,iBAAwB,GAAG,SAAS,SAAS,EAAE,CAElF;AAGD,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAED,wBAAgB,cAAc,CAAC,cAAc,GAAE,MAAyB,GAAG,WAAW,CAgBrF"}
package/dist/config.js CHANGED
@@ -7,6 +7,7 @@ export const FILE_GROUPS_EN = [
7
7
  title: 'Core Agent Manual & Entry Point',
8
8
  files: [
9
9
  { path: 'AGENTS.md', desc: 'Master Agent Manual (4 Pillars & RIPER-5 Loop)' },
10
+ { path: 'instruction-version.json', desc: 'Instruction framework version manifest for updates & compatibility' },
10
11
  ],
11
12
  },
12
13
  {
@@ -70,6 +71,7 @@ export const FILE_GROUPS_VI = [
70
71
  title: 'Điểm khởi đầu & Cẩm nang Agent (Core Agent Manual)',
71
72
  files: [
72
73
  { path: 'AGENTS.md', desc: 'Cẩm nang điều phối Agent (4 Trụ cột & Chu trình RIPER-5)' },
74
+ { path: 'instruction-version.json', desc: 'Tệp định danh phiên bản quy chuẩn chỉ dẫn phục vụ cập nhật' },
73
75
  ],
74
76
  },
75
77
  {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD;QACE,KAAK,EAAE,iCAAiC;QACxC,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gDAAgD,EAAE;YAC7E,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,oEAAoE,EAAE;SACjH;KACF;IACD;QACE,KAAK,EAAE,gCAAgC;QACvC,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,kDAAkD,EAAE;YACvF,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,uDAAuD,EAAE;YAC9F,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,oDAAoD,EAAE;YAC7F,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,6CAA6C,EAAE;SAC/F;KACF;IACD;QACE,KAAK,EAAE,iDAAiD;QACxD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,sCAAsC,EAAE;YAC3E,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,0DAA0D,EAAE;YACnG,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,yCAAyC,EAAE;YACrF,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,+CAA+C,EAAE;YACvG,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,mCAAmC,EAAE;YAC3F,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,yCAAyC,EAAE;YACrG,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,mDAAmD,EAAE;YAC3G,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,gCAAgC,EAAE;YACzF,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,gCAAgC,EAAE;YAC1F,EAAE,IAAI,EAAE,yCAAyC,EAAE,IAAI,EAAE,wCAAwC,EAAE;YACnG,EAAE,IAAI,EAAE,8CAA8C,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC/G,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,qDAAqD,EAAE;YAC9G,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,sDAAsD,EAAE;YAClH,EAAE,IAAI,EAAE,yCAAyC,EAAE,IAAI,EAAE,qCAAqC,EAAE;SACjG;KACF;IACD;QACE,KAAK,EAAE,iDAAiD;QACxD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,2CAA2C,EAAE;YAC7F,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,8CAA8C,EAAE;YAC1G,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,wDAAwD,EAAE;SAC/G;KACF;IACD;QACE,KAAK,EAAE,0DAA0D;QACjE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,4DAA4D,EAAE,IAAI,EAAE,oCAAoC,EAAE;YAClH,EAAE,IAAI,EAAE,gDAAgD,EAAE,IAAI,EAAE,uCAAuC,EAAE;YACzG,EAAE,IAAI,EAAE,2DAA2D,EAAE,IAAI,EAAE,yCAAyC,EAAE;SACvH;KACF;IACD;QACE,KAAK,EAAE,mDAAmD;QAC1D,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,8BAA8B,EAAE;YAClF,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACtF,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,oCAAoC,EAAE;YAC3F,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,+BAA+B,EAAE;YACxF,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,gCAAgC,EAAE;YAC1F,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,iCAAiC,EAAE;SAC9F;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD;QACE,KAAK,EAAE,oDAAoD;QAC3D,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0DAA0D,EAAE;YACvF,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,4DAA4D,EAAE;SACzG;KACF;IACD;QACE,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,8CAA8C,EAAE;YACnF,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,gDAAgD,EAAE;YACvF,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,mDAAmD,EAAE;YAC5F,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,sCAAsC,EAAE;SACxF;KACF;IACD;QACE,KAAK,EAAE,0CAA0C;QACjD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,0CAA0C,EAAE;YAC/E,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,4CAA4C,EAAE;YACrF,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC3F,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,6CAA6C,EAAE;YACrG,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,qDAAqD,EAAE;YAC7G,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,wDAAwD,EAAE;YACpH,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,sDAAsD,EAAE;YAC9G,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,mDAAmD,EAAE;YAC5G,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,iDAAiD,EAAE;YAC3G,EAAE,IAAI,EAAE,yCAAyC,EAAE,IAAI,EAAE,uCAAuC,EAAE;YAClG,EAAE,IAAI,EAAE,8CAA8C,EAAE,IAAI,EAAE,sCAAsC,EAAE;YACtG,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,4CAA4C,EAAE;YACrG,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,8CAA8C,EAAE;YAC1G,EAAE,IAAI,EAAE,yCAAyC,EAAE,IAAI,EAAE,+CAA+C,EAAE;SAC3G;KACF;IACD;QACE,KAAK,EAAE,qDAAqD;QAC5D,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,2CAA2C,EAAE;YAC7F,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,yCAAyC,EAAE;YACrG,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,2DAA2D,EAAE;SAClH;KACF;IACD;QACE,KAAK,EAAE,8DAA8D;QACrE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,4DAA4D,EAAE,IAAI,EAAE,8BAA8B,EAAE;YAC5G,EAAE,IAAI,EAAE,gDAAgD,EAAE,IAAI,EAAE,sCAAsC,EAAE;YACxG,EAAE,IAAI,EAAE,2DAA2D,EAAE,IAAI,EAAE,qDAAqD,EAAE;SACnI;KACF;IACD;QACE,KAAK,EAAE,8CAA8C;QACrD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,kCAAkC,EAAE;YACtF,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,uCAAuC,EAAE;YAC5F,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,qCAAqC,EAAE;YAC5F,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,kCAAkC,EAAE;YAC3F,EAAE,IAAI,EAAE,wCAAwC,EAAE,IAAI,EAAE,kCAAkC,EAAE;YAC5F,EAAE,IAAI,EAAE,0CAA0C,EAAE,IAAI,EAAE,0CAA0C,EAAE;SACvG;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAyB,cAAc,CAAC;AAEhE,MAAM,UAAU,aAAa,CAAC,IAAI,GAAsB,IAAI;IAC1D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;AACzD,CAAC;AAGD,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjD,8CAA8C;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,cAAc,GAAW,cAAc,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAyB,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,uBAAuB;gBAC5C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;gBAClC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7D,CAAC"}
@@ -1,4 +1,8 @@
1
- import { ScaffoldOptions, ScaffoldResult, SupportedLanguage } from './types.js';
1
+ import { ScaffoldOptions, ScaffoldResult, SupportedLanguage, UpdateOptions, UpdateResult } from './types.js';
2
2
  export declare function resolveTemplatesDir(baseDir?: string, lang?: SupportedLanguage): string;
3
3
  export declare function scaffold(options: ScaffoldOptions): ScaffoldResult;
4
+ export declare function parseSemver(v: string): [number, number, number];
5
+ export declare function compareSemver(v1: string, v2: string): number;
6
+ export declare function fetchLatestNpmVersion(pkgName: string): string | null;
7
+ export declare function updateFramework(options?: UpdateOptions): UpdateResult;
4
8
  //# sourceMappingURL=scaffolder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,eAAe,EAAE,cAAc,EAAiB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpH,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAoD,EAC7D,IAAI,GAAE,iBAAwB,GAC7B,MAAM,CAMR;AAmJD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAoDjE"}
1
+ {"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,eAAe,EACf,cAAc,EAEd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAoD,EAC7D,IAAI,GAAE,iBAAwB,GAC7B,MAAM,CAMR;AAgMD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAoDjE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAI/D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAepE;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAiFzE"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import process from 'node:process';
4
+ import { execSync } from 'node:child_process';
4
5
  import { getFileGroups, getPackageInfo, getPackageRoot } from './config.js';
5
6
  import { colors } from './theme.js';
6
7
  import { renderBanner, renderBox } from './ui.js';
@@ -36,7 +37,7 @@ function ensureDirectory(dirPath, dirs) {
36
37
  }
37
38
  dirs.add(dirPath);
38
39
  }
39
- function processFileItem(item, templatesDir, resolvedTarget, force, stats) {
40
+ function processFileItem(item, templatesDir, resolvedTarget, force, stats, lang) {
40
41
  const srcPath = path.join(templatesDir, item.path);
41
42
  const destPath = path.join(resolvedTarget, item.path);
42
43
  const destDir = path.dirname(destPath);
@@ -51,15 +52,47 @@ function processFileItem(item, templatesDir, resolvedTarget, force, stats) {
51
52
  stats.skipped++;
52
53
  return;
53
54
  }
55
+ if (item.path === 'instruction-version.json') {
56
+ try {
57
+ const raw = fs.readFileSync(srcPath, 'utf8');
58
+ const parsed = JSON.parse(raw);
59
+ const pkgInfo = getPackageInfo();
60
+ parsed.version = pkgInfo.version;
61
+ parsed.language = lang;
62
+ const now = new Date().toISOString();
63
+ if (fs.existsSync(destPath)) {
64
+ try {
65
+ const oldDest = JSON.parse(fs.readFileSync(destPath, 'utf8'));
66
+ if (oldDest.installedAt) {
67
+ parsed.installedAt = oldDest.installedAt;
68
+ }
69
+ }
70
+ catch {
71
+ // ignore error reading old file
72
+ }
73
+ }
74
+ else {
75
+ parsed.installedAt = now;
76
+ }
77
+ parsed.updatedAt = now;
78
+ fs.writeFileSync(destPath, JSON.stringify(parsed, null, 2) + '\n', 'utf8');
79
+ console.log(` ${colors.badgeCreated()} ${colors.fg(colors.bold(displayRelPath))}${desc}`);
80
+ stats.created++;
81
+ return;
82
+ }
83
+ catch {
84
+ // fallback to regular copy if anything fails
85
+ }
86
+ }
54
87
  fs.copyFileSync(srcPath, destPath);
55
88
  console.log(` ${colors.badgeCreated()} ${colors.fg(colors.bold(displayRelPath))}${desc}`);
56
89
  stats.created++;
57
90
  }
58
- function processFileGroups(groups, templatesDir, resolvedTarget, force, stats) {
91
+ function processFileGroups(groups, templatesDir, resolvedTarget, force, stats, lang) {
59
92
  for (const group of groups) {
60
93
  console.log(` ${colors.teal(colors.bold(group.title))}`);
61
94
  for (const item of group.files) {
62
- processFileItem(item, templatesDir, resolvedTarget, force, stats);
95
+ processFileItem(item, templatesDir, resolvedTarget, force, stats, lang);
63
96
  }
64
97
  console.log();
65
98
  }
@@ -88,17 +121,21 @@ function printNextSteps(targetDir, lang) {
88
121
  const agentsPath = path.join(relPathPrefix, 'AGENTS.md');
89
122
  const seedTaskPath = path.join(relPathPrefix, 'process/_seeds/task-template.md.seed');
90
123
  const activePlanPath = path.join(relPathPrefix, 'process/general-plans/active/01-init_PLAN.md');
124
+ const versionPath = path.join(relPathPrefix, 'instruction-version.json');
91
125
  if (lang === 'vi') {
92
126
  const nextStepLines = [
93
127
  `${colors.cyan(colors.bold('1. Cấu hình Lệnh Kiểm Tra:'))}`,
94
128
  ` Mở ${colors.green(agentsPath)} và điền các lệnh test/lint/typecheck của dự án bạn.`,
95
129
  '',
96
130
  `${colors.cyan(colors.bold('2. Khởi Tạo Task Đầu Tiên:'))}`,
97
- ` ${colors.yellow(`cp ${seedTaskPath} \\`)}`,
98
- ` ${colors.yellow(activePlanPath)}`,
131
+ ` Prompt AI trực tiếp: ${colors.yellow('"small task: <mô tả>..."')} hoặc ${colors.yellow('"big task: <mô tả>..."')}`,
132
+ ` (hoặc sao chép thủ công: ${colors.dim(`cp ${seedTaskPath} ${activePlanPath}`)})`,
99
133
  '',
100
134
  `${colors.cyan(colors.bold('3. Kích Hoạt AI Coding Agent:'))}`,
101
135
  ` Chỉ định Agent đọc ${colors.green(agentsPath)} và bắt đầu thực thi.`,
136
+ '',
137
+ `${colors.cyan(colors.bold('4. Quản Lý & Cập Nhật Phiên Bản:'))}`,
138
+ ` Theo dõi và kiểm tra nâng cấp quy chuẩn chỉ dẫn qua tệp ${colors.green(versionPath)}.`,
102
139
  ];
103
140
  console.log(renderBox(nextStepLines, colors, { title: colors.purple(colors.bold('CÁC BƯỚC TIẾP THEO')) }));
104
141
  console.log();
@@ -109,11 +146,14 @@ function printNextSteps(targetDir, lang) {
109
146
  ` Edit ${colors.green(agentsPath)} and specify your project test/lint/typecheck commands.`,
110
147
  '',
111
148
  `${colors.cyan(colors.bold('2. Instantiate Your First Active Task:'))}`,
112
- ` ${colors.yellow(`cp ${seedTaskPath} \\`)}`,
113
- ` ${colors.yellow(activePlanPath)}`,
149
+ ` Prompt AI directly: ${colors.yellow('"small task: <desc>..."')} or ${colors.yellow('"big task: <desc>..."')}`,
150
+ ` (or copy manually: ${colors.dim(`cp ${seedTaskPath} ${activePlanPath}`)})`,
114
151
  '',
115
152
  `${colors.cyan(colors.bold('3. Activate AI Coding Agent:'))}`,
116
153
  ` Direct your agent to read ${colors.green(agentsPath)} and begin execution.`,
154
+ '',
155
+ `${colors.cyan(colors.bold('4. Manage Version & Updates:'))}`,
156
+ ` Track and upgrade instruction framework via ${colors.green(versionPath)}.`,
117
157
  ];
118
158
  console.log(renderBox(nextStepLines, colors, { title: colors.purple(colors.bold('NEXT STEPS')) }));
119
159
  console.log();
@@ -143,7 +183,7 @@ export function scaffold(options) {
143
183
  console.log();
144
184
  const fileGroups = getFileGroups(lang);
145
185
  const stats = { created: 0, skipped: 0, dirs: new Set() };
146
- processFileGroups(fileGroups, templatesDir, resolvedTarget, force, stats);
186
+ processFileGroups(fileGroups, templatesDir, resolvedTarget, force, stats, lang);
147
187
  printSummary(stats, lang);
148
188
  printNextSteps(targetDir, lang);
149
189
  return {
@@ -157,4 +197,108 @@ export function scaffold(options) {
157
197
  lang,
158
198
  };
159
199
  }
200
+ export function parseSemver(v) {
201
+ const cleaned = v.replace(/^v/, '').trim();
202
+ const parts = cleaned.split('.').map((p) => parseInt(p, 10) || 0);
203
+ return [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0];
204
+ }
205
+ export function compareSemver(v1, v2) {
206
+ const [maj1, min1, pat1] = parseSemver(v1);
207
+ const [maj2, min2, pat2] = parseSemver(v2);
208
+ if (maj1 !== maj2)
209
+ return maj1 > maj2 ? 1 : -1;
210
+ if (min1 !== min2)
211
+ return min1 > min2 ? 1 : -1;
212
+ if (pat1 !== pat2)
213
+ return pat1 > pat2 ? 1 : -1;
214
+ return 0;
215
+ }
216
+ export function fetchLatestNpmVersion(pkgName) {
217
+ try {
218
+ const stdout = execSync(`npm view ${pkgName} version`, {
219
+ encoding: 'utf8',
220
+ stdio: ['pipe', 'pipe', 'ignore'],
221
+ timeout: 5000,
222
+ });
223
+ const ver = stdout.trim();
224
+ if (ver && /^\d+\.\d+\.\d+/.test(ver)) {
225
+ return ver;
226
+ }
227
+ }
228
+ catch {
229
+ // Network failure or package not found
230
+ }
231
+ return null;
232
+ }
233
+ export function updateFramework(options = {}) {
234
+ const { targetDir = '.', cwd = process.cwd(), force = false, mockLatestVersion, } = options;
235
+ const resolvedTarget = path.resolve(cwd, targetDir);
236
+ const versionPath = path.join(resolvedTarget, 'instruction-version.json');
237
+ if (!fs.existsSync(versionPath)) {
238
+ const msg = `No instruction-version.json found at ${resolvedTarget}. Please initialize first with "npx @damphuquy/agent-init .".`;
239
+ console.error(`\n ${colors.badgeError()} ${colors.red(msg)}\n`);
240
+ return {
241
+ success: false,
242
+ updated: false,
243
+ currentVersion: 'unknown',
244
+ latestVersion: 'unknown',
245
+ message: msg,
246
+ };
247
+ }
248
+ let currentVersion = '0.0.0';
249
+ let targetLang = options.lang ?? 'en';
250
+ try {
251
+ const raw = fs.readFileSync(versionPath, 'utf8');
252
+ const parsed = JSON.parse(raw);
253
+ if (parsed.version)
254
+ currentVersion = parsed.version;
255
+ if (!options.lang && (parsed.language === 'vi' || parsed.language === 'en')) {
256
+ targetLang = parsed.language;
257
+ }
258
+ }
259
+ catch {
260
+ // ignore parse error
261
+ }
262
+ const pkgInfo = getPackageInfo();
263
+ const latestVersion = mockLatestVersion ?? fetchLatestNpmVersion(pkgInfo.name) ?? pkgInfo.version;
264
+ const cmp = compareSemver(latestVersion, currentVersion);
265
+ if (cmp > 0 || force) {
266
+ const scaffoldRes = scaffold({
267
+ targetDir: resolvedTarget,
268
+ force: true,
269
+ lang: targetLang,
270
+ cwd,
271
+ skipBanner: true,
272
+ });
273
+ if (scaffoldRes.success) {
274
+ const successMsg = targetLang === 'vi'
275
+ ? `Đã cập nhật thành công quy chuẩn chỉ dẫn từ v${currentVersion} lên v${latestVersion}.`
276
+ : `Successfully updated instruction framework from v${currentVersion} to v${latestVersion}.`;
277
+ console.log(`\n ${colors.green(colors.bold(successMsg))}\n`);
278
+ return {
279
+ success: true,
280
+ updated: true,
281
+ currentVersion,
282
+ latestVersion,
283
+ message: successMsg,
284
+ };
285
+ }
286
+ return {
287
+ success: false,
288
+ updated: false,
289
+ currentVersion,
290
+ latestVersion,
291
+ message: 'Scaffold update failed',
292
+ };
293
+ }
294
+ const noChangeMsg = 'nothing changed';
295
+ console.log(noChangeMsg);
296
+ return {
297
+ success: true,
298
+ updated: false,
299
+ currentVersion,
300
+ latestVersion,
301
+ message: noChangeMsg,
302
+ };
303
+ }
160
304
  //# sourceMappingURL=scaffolder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -64,6 +64,7 @@ export interface CliOptions {
64
64
  readonly force: boolean;
65
65
  readonly help: boolean;
66
66
  readonly version: boolean;
67
+ readonly update: boolean;
67
68
  readonly lang?: SupportedLanguage;
68
69
  }
69
70
  export interface ScaffoldStats {
@@ -89,4 +90,18 @@ export interface ScaffoldResult {
89
90
  readonly targetPath: string;
90
91
  readonly lang: SupportedLanguage;
91
92
  }
93
+ export interface UpdateOptions {
94
+ readonly targetDir?: string;
95
+ readonly cwd?: string;
96
+ readonly lang?: SupportedLanguage;
97
+ readonly force?: boolean;
98
+ readonly mockLatestVersion?: string;
99
+ }
100
+ export interface UpdateResult {
101
+ readonly success: boolean;
102
+ readonly updated: boolean;
103
+ readonly currentVersion: string;
104
+ readonly latestVersion: string;
105
+ readonly message: string;
106
+ }
92
107
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAItE;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,UAAe,GACvB,MAAM,CAwCR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAS5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC1D;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoCpF;AAGD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+BxE"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAItE;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,UAAe,GACvB,MAAM,CAwCR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAS5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC1D;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoCpF;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAoCxE"}
package/dist/ui.js CHANGED
@@ -120,19 +120,21 @@ export function showHelp(pkgInfo, colors) {
120
120
  renderBanner(pkgInfo, colors);
121
121
  console.log(colors.purple(colors.bold(' USAGE')));
122
122
  console.log(` ${colors.cyan('$')} ${colors.green('npx @damphuquy/agent-init')} ${colors.dim('[target_directory]')} ${colors.yellow('[options]')}`);
123
+ console.log(` ${colors.cyan('$')} ${colors.green('npx @damphuquy/agent-init update')} ${colors.dim('[target_directory]')} ${colors.yellow('[options]')}`);
123
124
  console.log(` ${colors.cyan('$')} ${colors.green('node dist/cli.js')} ${colors.dim('[target_directory]')} ${colors.yellow('[options]')}`);
124
125
  console.log();
125
126
  console.log(colors.purple(colors.bold(' ARGUMENTS')));
126
127
  console.log(` ${colors.cyan('target_directory')} Destination path for workspace ${colors.comment('(default: .)')}`);
127
128
  console.log();
128
129
  console.log(colors.purple(colors.bold(' OPTIONS')));
129
- console.log(` ${colors.yellow('-l, --lang <en|vi>')} Template language: 'en' / 'eng' (English) or 'vi' (Tiếng Việt)`);
130
- console.log(` ${colors.yellow('-f, --force')} Overwrite existing files if already present`);
131
- console.log(` ${colors.yellow('-h, --help')} Display this help documentation`);
132
- console.log(` ${colors.yellow('-v, --version')} Display version number`);
130
+ console.log(` ${colors.yellow('-u, --update')} Check for newer framework version and update, or output 'nothing changed'`);
131
+ console.log(` ${colors.yellow('-l, --lang <en|vi>')} Template language: 'en' / 'eng' (English) or 'vi' (Tiếng Việt)`);
132
+ console.log(` ${colors.yellow('-f, --force')} Overwrite existing files if already present`);
133
+ console.log(` ${colors.yellow('-h, --help')} Display this help documentation`);
134
+ console.log(` ${colors.yellow('-v, --version')} Display version number`);
133
135
  console.log();
134
136
  console.log(colors.purple(colors.bold(' EXAMPLES')));
135
- console.log(` ${colors.comment('# Interactive mode (prompts for English / Vietnamese):')}`);
137
+ console.log(` ${colors.comment('# Interactive mode (prompts for Language):')}`);
136
138
  console.log(` ${colors.cyan('$')} npx @damphuquy/agent-init .`);
137
139
  console.log();
138
140
  console.log(` ${colors.comment('# Bootstrap directly with Vietnamese templates:')}`);
@@ -141,6 +143,9 @@ export function showHelp(pkgInfo, colors) {
141
143
  console.log(` ${colors.comment('# Bootstrap directly with English templates:')}`);
142
144
  console.log(` ${colors.cyan('$')} npx @damphuquy/agent-init . --lang en`);
143
145
  console.log();
146
+ console.log(` ${colors.comment('# Check for newer framework version and update existing project:')}`);
147
+ console.log(` ${colors.cyan('$')} npx @damphuquy/agent-init update .`);
148
+ console.log();
144
149
  console.log(` ${colors.comment('# Scaffold into a specific project:')}`);
145
150
  console.log(` ${colors.cyan('$')} npx @damphuquy/agent-init ./services/ai-agent --lang vi`);
146
151
  console.log();
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damphuquy/agent-init",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "Scaffolding CLI to bootstrap RIPER-5 Coding Agents & Operational Workspace",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -59,7 +59,48 @@ In continuous autonomous execution (DELEGATED / Fast-Track), the agent opens wit
59
59
 
60
60
  ---
61
61
 
62
- ## 3. Session Startup Protocol
62
+ ## 3. Prompt-Driven Task Initialization Protocol
63
+
64
+ <prompt_task_initialization>
65
+ When the user requests a new task via prompt (without an existing task folder or `task.md` in `active/`), the Agent **MUST NOT** ask the user to run terminal commands or manually copy seed files. Instead, the Agent automatically recognizes prompt keywords, routes the directory, and initializes `task.md`:
66
+
67
+ ### Keyword & Pseudo-Slash Command Routing Table:
68
+
69
+ Users may specify tasks using natural language keywords OR handy prefix commands (**Pseudo-Slash Commands**) at the start of the prompt:
70
+
71
+ | Target Directory | Slash Command (Recommended) | Natural Keywords | Scope & Working Mode |
72
+ |---|---|---|---|
73
+ | **`process/features/active/{task-slug}/`** | `/feature`<br>`/big-task`<br>`/epic` | `big task`, `feature`, `big changes`, `epic` | Major features, domain subsystems, architectural refactors (≥ 5 files, multiple phases). Default mode: **PAIR**. |
74
+ | **`process/general-plans/active/{task-slug}/`** | `/task`<br>`/small-task`<br>`/bug`<br>`/quick-fix` | `small task`, `general changes`, `small changes`, `bug fix`, `quick fix` | Standalone tasks, quick bug fixes, general adjustments (< 5 files). Default mode: **PAIR**. |
75
+ | **`process/general-plans/active/{task-slug}/`** | `/hotfix` | `hotfix`, `emergency fix`, `production bug` | Emergency production fix. Auto-activates **DELEGATED / Fast-Track** mode (auto-certifies G0–G2, pauses only at G3). |
76
+ | *(Scope-derived)* | `/fast-track`<br>`/delegated`<br>`/auto` | `fast-track`, `autonomous`, `auto-advance`, `skip permissions` | Full autonomous execution. Sets `<working_mode>DELEGATED</working_mode>` and runs continuously through all phases. |
77
+ | *(Framework Maintenance)* | `/update`<br>`/upgrade` | `update instructions`, `upgrade framework`, `check updates` | Maintenance protocol: queries remote registry for a newer framework version. If a newer version exists, updates the instructions framework while preserving user configs (`preserveUserFiles`) and updates `instruction-version.json`. If already on the latest version, outputs `"nothing changed"`. |
78
+
79
+ *Fallback Rule:* If no explicit keyword or slash command is found in the prompt, infer from scope (< 5 files or localized fix $\rightarrow$ `general-plans/`; new capability or multi-module impact $\rightarrow$ `features/`).
80
+
81
+ ### Framework Update Protocol (`/update`):
82
+ When the prompt begins with `/update` or `/upgrade` (or user asks to update instructions/framework):
83
+ 1. **Inspect Local Version:** Read `instruction-version.json` at workspace root to inspect current `version`, `language`, and `updateStrategy`.
84
+ 2. **Query Latest Version:** Query the registry (e.g. `npm view @damphuquy/agent-init version` or execute `npx @damphuquy/agent-init update`).
85
+ 3. **Conditional Update:**
86
+ - **If newer version found:** Execute framework update (e.g. `npx @damphuquy/agent-init update` or `npx @damphuquy/agent-init@latest . --force`), preserving project-specific files defined in `preserveUserFiles` (`AGENTS.md#validation_commands`, active tasks). Update `instruction-version.json` timestamp and version. Report upgrade details.
87
+ - **If no newer version (already up to date):** Respond directly with `"nothing changed"` (e.g. `nothing changed: instruction framework is already at the latest version vX.Y.Z`) and make no file changes.
88
+
89
+ ### Automated Scaffolding & Activation Steps:
90
+ 1. **Derive Slug:** Generate a concise, kebab-case `{task-slug}` from the prompt (e.g., `CHG-001-change-password`, `AUTH-002-rate-limiting`, or `{TICKET-ID}-{slug}`).
91
+ 2. **Create Directory:** Create `process/features/active/{task-slug}` or `process/general-plans/active/{task-slug}`.
92
+ 3. **Instantiate Seed:** Copy `process/_seeds/task-template.md.seed` to `{task-dir}/task.md`.
93
+ 4. **Hydrate Specification:**
94
+ - Extract task goal into `<goal>`.
95
+ - Convert user criteria and requirements into actionable markdown checkboxes `- [ ]` under `<acceptance_criteria>`.
96
+ - Set `<working_mode>` (`PAIR` by default, or `DELEGATED` if prompt indicates fast-track / autonomous execution).
97
+ - Set `<status>ACTIVE</status>` and `<current_phase>RESEARCH</current_phase>`.
98
+ 5. **Declare Mode & Execute Immediately:** Output `[MODE: RESEARCH]`, announce the initialized `task.md` path, and immediately proceed with the RESEARCH phase without requiring manual user setup.
99
+ </prompt_task_initialization>
100
+
101
+ ---
102
+
103
+ ## 4. Session Startup Protocol
63
104
 
64
105
  Before continuing any in-progress task, reload persistent state in this order:
65
106
 
@@ -77,7 +118,7 @@ file-based artifacts listed above.
77
118
 
78
119
  ---
79
120
 
80
- ## 4. Context Navigation Rules
121
+ ## 5. Context Navigation Rules
81
122
 
82
123
  <context_rules>
83
124
  <rule id="minimum_context">
@@ -10,6 +10,7 @@
10
10
 
11
11
  This file ONLY contains what is unique to this project: toolchain commands,
12
12
  architecture guardrail calibration, and path references.
13
+ Framework versioning and update procedures are managed via [`instruction-version.json`](instruction-version.json).
13
14
  </overview>
14
15
 
15
16
  ---
@@ -21,6 +22,7 @@
21
22
 
22
23
  | File | What it governs |
23
24
  |------|----------------|
25
+ | [`instruction-version.json`](instruction-version.json) | Framework version manifest, compatibility, and update strategy |
24
26
  | [`.agents/behavior.md`](.agents/behavior.md) | Mode declaration, session startup, context priority |
25
27
  | [`.agents/guardrails.md`](.agents/guardrails.md) | Retry budget, escalation triggers, completion gate |
26
28
  | [`.agents/conventions/naming.md`](.agents/conventions/naming.md) | Naming and structural hygiene |
@@ -36,6 +38,13 @@
36
38
  <!-- Pillar 1: Task & Specification -->
37
39
  <pillar id="task_spec" title="Task & Specification">
38
40
  <rule>Single Source of Truth: Active task file in [`process/features/active/{feature}/task.md`](process/features/) or [`process/general-plans/active/{task}/task.md`](process/general-plans/) (instantiated from [`process/_seeds/task-template.md.seed`](process/_seeds/task-template.md.seed)).</rule>
41
+ <rule>Prompt & Slash Command Initialization: Users can request and run tasks directly via prompt or pseudo-slash command prefixes. The Agent automatically routes the folder and instantiates `task.md` from [`process/_seeds/task-template.md.seed`](process/_seeds/task-template.md.seed):
42
+ - Commands `/feature`, `/big-task`, `/epic` or keywords `big task`, `feature`, `big changes`: routes to `process/features/active/{task-slug}/task.md` (PAIR mode).
43
+ - Commands `/task`, `/small-task`, `/bug` or keywords `small task`, `general changes`, `small changes`: routes to `process/general-plans/active/{task-slug}/task.md` (PAIR mode).
44
+ - Command `/hotfix`: routes to `process/general-plans/active/{task-slug}/task.md` and runs in DELEGATED mode.
45
+ - Commands `/fast-track`, `/delegated`: executes autonomously through all phases.
46
+ - Command `/update`: checks for a new framework version (via `instruction-version.json` and registry); updates instructions if a newer version exists, or outputs "nothing changed" if already on the latest version.
47
+ The Agent creates the directory, hydrates `<goal>` and `<acceptance_criteria>` from the prompt, and initiates the RESEARCH phase immediately.</rule>
39
48
  <rule>Define changes via Goal, Current Behavior, Expected Behavior, Invariants, and `<out_of_scope>`.</rule>
40
49
  <rule>Acceptance Criteria (AC) must be unambiguous, verifiable markdown checkboxes (`- [ ]`).</rule>
41
50
  <rule>Every task has a master contract (`task.md`) and a full artifact chain: `research.md → decision.md → plan.md → state.md → review.md → handoff.md`.</rule>
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "name": "@damphuquy/agent-init",
4
+ "version": "2.2.0",
5
+ "framework": "RIPER-5",
6
+ "frameworkVersion": "2.0.0",
7
+ "language": "en",
8
+ "description": "Instruction and governance template manifest for AI coding agents and operational workspace.",
9
+ "installedAt": "2026-09-08T00:00:00.000Z",
10
+ "updatedAt": "2026-09-08T00:00:00.000Z",
11
+ "manifest": {
12
+ "core": [
13
+ "AGENTS.md",
14
+ "instruction-version.json"
15
+ ],
16
+ "controlLayer": [
17
+ ".agents/README.md",
18
+ ".agents/behavior.md",
19
+ ".agents/guardrails.md",
20
+ ".agents/conventions/naming.md"
21
+ ],
22
+ "seeds": [
23
+ "process/_seeds/_GUIDE.md",
24
+ "process/_seeds/task-template.md.seed",
25
+ "process/_seeds/context-group.md.seed",
26
+ "process/_seeds/decision-template.md.seed",
27
+ "process/_seeds/plan-template.md.seed",
28
+ "process/_seeds/state-template.md.seed",
29
+ "process/_seeds/review-template.md.seed",
30
+ "process/_seeds/handoff-template.md.seed",
31
+ "process/_seeds/cancellation-template.md.seed",
32
+ "process/_seeds/pause-template.md.seed",
33
+ "process/_seeds/results-template.tsv.seed",
34
+ "process/_seeds/program-template.md.seed"
35
+ ],
36
+ "context": [
37
+ "process/context/all-context.md",
38
+ "process/context/planning/all-planning.md",
39
+ "process/context/tests/all-tests.md"
40
+ ],
41
+ "protocols": [
42
+ "process/development-protocols/all-development-protocols.md",
43
+ "process/development-protocols/orchestration.md",
44
+ "process/development-protocols/implementation-standards.md"
45
+ ]
46
+ },
47
+ "updateStrategy": {
48
+ "slashCommand": "/update",
49
+ "checkCommand": "npm view @damphuquy/agent-init version",
50
+ "updateCommand": "npx @damphuquy/agent-init update",
51
+ "forceUpdateCommand": "npx @damphuquy/agent-init@latest . --force",
52
+ "preserveUserFiles": [
53
+ "AGENTS.md#validation_commands",
54
+ "process/features/**",
55
+ "process/general-plans/**"
56
+ ],
57
+ "safeToOverwrite": [
58
+ ".agents/**",
59
+ "process/_seeds/**",
60
+ "process/context/**",
61
+ "process/development-protocols/**",
62
+ "instruction-version.json"
63
+ ]
64
+ },
65
+ "repository": {
66
+ "type": "git",
67
+ "url": "https://github.com/DamPhuQuy/agent-instructions"
68
+ }
69
+ }
@@ -36,6 +36,7 @@ process/
36
36
  │ ├── orchestration.md # Subagent delegation rules
37
37
  │ └── implementation-standards.md # Typing, linting, and testing standards
38
38
  ├── features/ # Domain features (≥5 files / ≥3 phases)
39
+ │ # Prompt keywords: "big task", "feature", "big changes", "epic"...
39
40
  │ ├── active/ # Active task workspaces: {CHG-ID}-{task-slug}/
40
41
  │ │ └── CHG-XXX-example/ # One folder per task
41
42
  │ │ ├── task.md # Master contract & state record
@@ -50,7 +51,8 @@ process/
50
51
  │ │ └── cancelled.md # (If aborted) Cancellation findings & rollback status
51
52
  │ ├── completed/ # Archived task workspaces
52
53
  │ └── backlog/ # Backlog notes: {note_slug}_NOTE_{dd-mm-yy}.md
53
- └── general-plans/ # Cross-cutting & standalone tasks
54
+ └── general-plans/ # Cross-cutting & standalone tasks (<5 files)
55
+ # Prompt keywords: "small task", "general changes", "small changes", "bug fix"...
54
56
  ├── active/
55
57
  ├── completed/
56
58
  └── backlog/
@@ -97,6 +99,15 @@ review.md ← (Review) Findings, verification matrix, Gate 3 (PASS)
97
99
  handoff.md ← (Complete) Short final projection
98
100
  ```
99
101
 
102
+ ### Task Initialization: Prompt-Driven vs Manual
103
+
104
+ Users can initiate tasks through two methods:
105
+ 1. **Prompt & Slash Command Initialization (Recommended):** Provide your task requirements directly in the prompt using pseudo-slash commands or natural keywords. The Agent automatically scaffolds the workspace under `active/`, instantiates `task-template.md.seed` $\rightarrow$ `task.md`, hydrates specification tags, and immediately kicks off `RESEARCH`:
106
+ - **`process/features/active/{task-slug}/`**: Triggered by commands `/feature`, `/big-task`, `/epic` or keywords `big task`, `feature`, `big changes`. For large, domain-specific features (≥5 files, multiple phases).
107
+ - **`process/general-plans/active/{task-slug}/`**: Triggered by commands `/task`, `/small-task`, `/bug`, `/quick-fix` or keywords `small task`, `general changes`, `small changes`. For standalone tasks and quick fixes (<5 files).
108
+ - **Special Commands**: `/hotfix` (emergency bugfix, runs in DELEGATED mode), `/fast-track` (runs autonomously across all phases).
109
+ 2. **Manual Terminal Setup:** Manually run `mkdir -p process/.../active/{slug}` and `cp process/_seeds/task-template.md.seed process/.../active/{slug}/task.md` before prompting the Agent.
110
+
100
111
  ### Concept → Artifact mapping
101
112
 
102
113
  | Concept | Artifact |
@@ -170,6 +181,7 @@ To prevent mechanical, cargo-cult usage of the framework, the template architect
170
181
  * Machine-Readable Contract: Enforces unambiguous semantic boundaries that LLMs parse reliably, strictly constraining AI write access.
171
182
 
172
183
  ### 2. The Operational "HOW" — Execution Principles
184
+ * **Prompt-Driven Task Initialization:** Eliminates the friction of running terminal commands or manual file copies. Users simply specify task prompts with keywords (`big task`, `feature`, `big changes` for `features/active/`; `small task`, `general changes`, `small changes` for `general-plans/active/`). The Agent detects the scope, scaffolds the folder, instantiates `task-template.md.seed`, populates `task.md`, and initiates execution immediately.
173
185
  * **Copy-On-Demand:** Never bulk-copy all seeds into a task folder upfront. Start with `task.md`, then instantiate `research.md` $\rightarrow$ `decision.md` $\rightarrow$ `plan.md` $\rightarrow$ `state.md` $\rightarrow$ `review.md` $\rightarrow$ `handoff.md` sequentially as phases advance.
174
186
  * **Stateless Chat, Stateful Workspace:** Sessions can reset and chats can close. All operational progress and error memory (`<failure_memory>`) are recorded on disk (`state.md`), allowing any new session to resume with 100% fidelity.
175
187
  * **Selective Knowledge Crystallization:** Upon completion, summarize the task in `handoff.md`. Only promote reusable architectural standards or schema contracts into `process/context/` and `all-context.md`.
@@ -13,6 +13,7 @@
13
13
  * **Why the `.seed` extension? (Why):** The `.seed` suffix acts as an immutable boundary. It prevents automated AI discovery tools (`find`, `grep`) from confusing archetype templates with active `*.md` task files. This guarantees agents will never accidentally overwrite master blueprints during execution.
14
14
  * **Why separate seeds per phase? (Why):** Each phase of RIPER-5 requires a distinct cognitive posture and permission boundary (Research vs Innovate vs Plan vs Execute vs Review). Splitting archetypes prevents context window bloat (Anti-Context Saturation), avoids hallucinations, and anchors each Quality Gate (G1–G3) to an auditable physical artifact.
15
15
  * **Copy-On-Demand Protocol (How):** Never bulk-copy all seeds into a task directory. Start exclusively with `task.md`. Sequentially instantiate subsequent artifacts (`research.md` $\rightarrow$ `decision.md` $\rightarrow$ `plan.md` $\rightarrow$ `state.md` $\rightarrow$ `review.md` $\rightarrow$ `handoff.md`) only as the task progresses into each phase. In PAIR mode, the agent pauses for human gate approvals; in DELEGATED / Fast-Track mode, the agent auto-instantiates subsequent seeds, auto-certifies gates, and executes continuously without interruptions.
16
+ * **Prompt-Driven Task Initialization (How):** Eliminates the friction of manual terminal commands. Users simply issue a prompt containing routing keywords: `big task`, `feature`, `big changes` (for `features/active/`) or `small task`, `general changes`, `small changes` (for `general-plans/active/`). The Agent automatically creates the directory, copies the seed blueprint, hydrates `<goal>` and criteria, and kicks off execution.
16
17
  </architectural_rationale>
17
18
 
18
19
  ---
@@ -162,7 +163,17 @@ Not all artifacts are required at start. Create them progressively as the task a
162
163
 
163
164
  ---
164
165
 
165
- ## 4. Instantiation Commands
166
+ ## 4. Instantiation Methods: Prompt-Driven vs Manual Commands
167
+
168
+ ### Method 1: Prompt & Slash Command Initialization (Recommended)
169
+ Instead of manually executing terminal commands, you can initiate a task directly through your prompt using convenient slash prefixes (**Pseudo-Slash Commands**) or natural keywords:
170
+ - **`process/features/active/{task-slug}/`**: Use commands `/feature`, `/big-task`, `/epic` or keywords `big task`, `feature`, `big changes`, `epic`.
171
+ - **`process/general-plans/active/{task-slug}/`**: Use commands `/task`, `/small-task`, `/bug`, `/quick-fix` or keywords `small task`, `general changes`, `small changes`.
172
+ - **Special Command**: `/hotfix` (emergency production bugfix, automatically triggers DELEGATED mode).
173
+
174
+ The Agent will automatically create the required directory, copy `task-template.md.seed` $\rightarrow$ `task.md`, hydrate `<goal>` and `<acceptance_criteria>` from your prompt, and begin the Research phase immediately.
175
+
176
+ ### Method 2: Manual Terminal Commands (Copy Commands)
166
177
 
167
178
  ```bash
168
179
  # Create a new task workspace
@@ -59,7 +59,48 @@ Trong chế độ chạy liên tục (DELEGATED / Fast-Track), Agent mở đầu
59
59
 
60
60
  ---
61
61
 
62
- ## 3. Giao Thức Khởi Động Session (Session Startup Protocol)
62
+ ## 3. Giao Thức Khởi Tạo Task Qua Prompt (Prompt-Driven Task Initialization)
63
+
64
+ <prompt_task_initialization>
65
+ Khi người dùng yêu cầu thực hiện một task mới thông qua prompt (chưa có sẵn thư mục task hay `task.md` trong `active/`), Agent **KHÔNG** yêu cầu người dùng phải gõ lệnh terminal hay sao chép tệp seed thủ công. Thay vào đó, Agent tự động nhận diện từ khóa trong prompt, định tuyến thư mục và khởi tạo `task.md`:
66
+
67
+ ### Bảng Điều Hướng Thư Mục Qua Từ Khóa & Cú Pháp Pseudo-Slash Commands:
68
+
69
+ Người dùng có thể gõ bằng ngôn ngữ tự nhiên HOẶC dùng cú pháp lệnh gạch chéo tiện lợi (**Pseudo-Slash Commands**) ở ngay đầu prompt:
70
+
71
+ | Thư mục đích | Lệnh Slash (Khuyến nghị) | Từ khóa tự nhiên (Keywords) | Tiêu chí phạm vi & Chế độ |
72
+ |---|---|---|---|
73
+ | **`process/features/active/{task-slug}/`** | `/feature`<br>`/big-task`<br>`/epic` | `big task`, `feature`, `big changes`, `epic` (hoặc: `task lớn`, `tính năng`, `thay đổi lớn`, `chức năng mới`) | Tính năng lớn, theo domain, thay đổi kiến trúc (≥ 5 files, nhiều phase). Chế độ mặc định: **PAIR**. |
74
+ | **`process/general-plans/active/{task-slug}/`** | `/task`<br>`/small-task`<br>`/bug`<br>`/quick-fix` | `small task`, `general changes`, `small changes`, `bug fix`, `quick fix` (hoặc: `task nhỏ`, `thay đổi chung`, `thay đổi nhỏ`, `sửa lỗi`) | Tác vụ độc lập, sửa bug nhanh, thay đổi nhỏ (< 5 files). Chế độ mặc định: **PAIR**. |
75
+ | **`process/general-plans/active/{task-slug}/`** | `/hotfix` | `hotfix`, `khẩn cấp`, `emergency fix` | Sửa lỗi khẩn cấp production. Tự động kích hoạt chế độ **DELEGATED / Fast-Track** (vượt tự động G0–G2, dừng ở G3). |
76
+ | *(Theo phạm vi)* | `/fast-track`<br>`/delegated`<br>`/auto` | `fast-track`, `autonomous`, `tự động chạy`, `skip permissions` | Chạy tự trị hoàn toàn. Tự động đặt `<working_mode>DELEGATED</working_mode>` và thực thi liên tục qua toàn bộ chu trình. |
77
+ | *(Bảo trì Framework)* | `/update`<br>`/upgrade` | `update instructions`, `cập nhật instruction`, `nâng cấp framework`, `kiểm tra bản mới` | Giao thức bảo trì: kiểm tra phiên bản framework mới nhất từ registry. Nếu phát hiện version mới hơn, cập nhật bộ quy chuẩn chỉ dẫn (bảo toàn tệp cấu hình dự án `preserveUserFiles`) và cập nhật `instruction-version.json`. Nếu đang ở bản mới nhất, thông báo `"nothing changed"`. |
78
+
79
+ *Quy tắc suy luận dự phòng (Fallback):* Nếu prompt không chứa từ khóa hay slash command rõ ràng, Agent tự động ước lượng quy mô công việc (< 5 files hoặc sửa lỗi cục bộ $\rightarrow$ `general-plans/`; tính năng mới hoặc ảnh hưởng diện rộng $\rightarrow$ `features/`).
80
+
81
+ ### Giao Thức Cập Nhật Framework (`/update`):
82
+ Khi prompt bắt đầu bằng lệnh `/update` hoặc `/upgrade` (hoặc người dùng yêu cầu cập nhật instruction/framework):
83
+ 1. **Đọc phiên bản hiện hành:** Đọc tệp `instruction-version.json` tại thư mục gốc của dự án để lấy `version`, `language`, và `updateStrategy`.
84
+ 2. **Tra cứu phiên bản mới:** Kiểm tra phiên bản mới nhất trên registry (`npm view @damphuquy/agent-init version` hoặc chạy lệnh `npx @damphuquy/agent-init update`).
85
+ 3. **Xử lý có điều kiện:**
86
+ - **Nếu có phiên bản mới hơn:** Chạy lệnh cập nhật (ví dụ: `npx @damphuquy/agent-init update` hoặc `npx @damphuquy/agent-init@latest . --force`), bảo toàn các tệp dự án theo danh mục `preserveUserFiles` trong `instruction-version.json` (như lệnh test trong `AGENTS.md`, các task đang làm). Cập nhật `version` và `updatedAt` trong `instruction-version.json`. Báo cáo tóm tắt nâng cấp từ bản cũ lên bản mới.
87
+ - **Nếu không có bản mới hơn (đang là mới nhất):** Phản hồi trực tiếp `"nothing changed"` (ví dụ: `nothing changed: quy chuẩn chỉ dẫn đang ở phiên bản mới nhất vX.Y.Z`) và tuyệt đối không sửa đổi file nào.
88
+
89
+ ### Quy Trình Khởi Tạo & Kích Hoạt Tự Động:
90
+ 1. **Đặt tên slug:** Đặt `{task-slug}` ngắn gọn, chuẩn kebab-case dựa theo yêu cầu (ví dụ: `CHG-001-change-password`, `AUTH-002-rate-limiting`, hoặc `{TICKET-ID}-{slug}`).
91
+ 2. **Tạo thư mục:** Tạo thư mục `process/features/active/{task-slug}` hoặc `process/general-plans/active/{task-slug}`.
92
+ 3. **Sao chép phôi mẫu seed:** Sao chép `process/_seeds/task-template.md.seed` vào `{thư-mục-task}/task.md`.
93
+ 4. **Điền thông tin đặc tả (Hydration):**
94
+ - Trích xuất mục tiêu yêu cầu vào `<goal>`.
95
+ - Phân rã các yêu cầu người dùng thành danh sách kiểm tra checkbox `- [ ]` trong `<acceptance_criteria>`.
96
+ - Thiết lập `<working_mode>` (`PAIR` mặc định, hoặc `DELEGATED` nếu prompt chỉ thị fast-track / autonomous).
97
+ - Thiết lập `<status>ACTIVE</status>` và `<current_phase>RESEARCH</current_phase>`.
98
+ 5. **Khai báo mode & Bắt đầu ngay:** Mở đầu phản hồi bằng `[MODE: RESEARCH]`, thông báo ngắn gọn vị trí `task.md` đã khởi tạo và bắt đầu ngay pha Khảo sát (Research) mà không dừng lại hỏi xin phép thao tác sao chép.
99
+ </prompt_task_initialization>
100
+
101
+ ---
102
+
103
+ ## 4. Giao Thức Khởi Động Session (Session Startup Protocol)
63
104
 
64
105
  Trước khi tiếp tục bất kỳ task đang dang dở nào, nạp lại trạng thái bền vững theo đúng thứ tự sau:
65
106
 
@@ -77,7 +118,7 @@ dựa trên các tệp artifact được liệt kê ở trên.
77
118
 
78
119
  ---
79
120
 
80
- ## 4. Quy Tắc Điều Hướng Ngữ Cảnh (Context Navigation Rules)
121
+ ## 5. Quy Tắc Điều Hướng Ngữ Cảnh (Context Navigation Rules)
81
122
 
82
123
  <context_rules>
83
124
  <rule id="minimum_context">
@@ -10,6 +10,7 @@
10
10
 
11
11
  Tệp này CHỈ chứa những gì đặc thù của dự án: lệnh kiểm thử/build,
12
12
  hiệu chỉnh ranh giới kiến trúc và tham chiếu đường dẫn.
13
+ Phiên bản framework và quy trình cập nhật chỉ dẫn được quản lý qua [`instruction-version.json`](instruction-version.json).
13
14
  </overview>
14
15
 
15
16
  ---
@@ -21,6 +22,7 @@
21
22
 
22
23
  | Tệp | Phạm vi quản lý |
23
24
  |-----|----------------|
25
+ | [`instruction-version.json`](instruction-version.json) | Định danh phiên bản framework, tính tương thích và chiến lược cập nhật |
24
26
  | [`.agents/behavior.md`](.agents/behavior.md) | Khai báo chế độ (Mode), khởi động session, thứ tự ưu tiên ngữ cảnh |
25
27
  | [`.agents/guardrails.md`](.agents/guardrails.md) | Ngân sách thử lại (Retry budget), điều kiện kích hoạt dừng khẩn cấp, cổng hoàn thành |
26
28
  | [`.agents/conventions/naming.md`](.agents/conventions/naming.md) | Quy chuẩn đặt tên và vệ sinh cấu trúc mã nguồn |
@@ -36,6 +38,13 @@
36
38
  <!-- Trụ cột 1: Task & Specification -->
37
39
  <pillar id="task_spec" title="Task & Đặc tả (Specification)">
38
40
  <rule>Nguồn sự thật duy nhất (Single Source of Truth): Tệp task đang thực thi trong [`process/features/active/{feature}/task.md`](process/features/) hoặc [`process/general-plans/active/{task}/task.md`](process/general-plans/) (khởi tạo từ [`process/_seeds/task-template.md.seed`](process/_seeds/task-template.md.seed)).</rule>
41
+ <rule>Khởi tạo qua Prompt & Lệnh Gạch Chéo (Prompt & Slash Command Initialization): Người dùng có thể yêu cầu tạo và chạy task trực tiếp bằng prompt hoặc tiền tố lệnh gạch chéo (Pseudo-Slash Commands). Agent tự động định tuyến thư mục và khởi tạo `task.md` từ [`process/_seeds/task-template.md.seed`](process/_seeds/task-template.md.seed):
42
+ - Cú pháp `/feature`, `/big-task`, `/epic` hoặc các từ khóa `big task`, `feature`, `big changes`: định tuyến vào `process/features/active/{task-slug}/task.md` (chế độ PAIR).
43
+ - Cú pháp `/task`, `/small-task`, `/bug` hoặc các từ khóa `small task`, `general changes`, `small changes`: định tuyến vào `process/general-plans/active/{task-slug}/task.md` (chế độ PAIR).
44
+ - Cú pháp `/hotfix`: định tuyến vào `process/general-plans/active/{task-slug}/task.md` và chạy chế độ DELEGATED.
45
+ - Cú pháp `/fast-track`, `/delegated`: chạy tự trị liên tục qua toàn bộ chu trình.
46
+ - Cú pháp `/update`: kiểm tra phiên bản mới của quy chuẩn chỉ dẫn (qua `instruction-version.json` và registry); nếu có phiên bản mới thì thực hiện cập nhật và bảo toàn cấu hình dự án, nếu không có phiên bản mới hơn thì thông báo "nothing changed".
47
+ Agent tự tạo thư mục, điền mục tiêu & tiêu chí AC từ prompt vào `task.md` và bắt đầu ngay pha RESEARCH.</rule>
39
48
  <rule>Định nghĩa thay đổi thông qua Mục tiêu (Goal), Hành vi hiện tại (Current Behavior), Hành vi kỳ vọng (Expected Behavior), Bất biến (Invariants) và Ngoài phạm vi (`<out_of_scope>`).</rule>
40
49
  <rule>Tiêu chí nghiệm thu (Acceptance Criteria - AC) phải rõ ràng, kiểm chứng được dưới dạng checkbox markdown (`- [ ]`).</rule>
41
50
  <rule>Mỗi task đều có bản hợp đồng master (`task.md`) và chuỗi artifact hoàn chỉnh: `research.md → decision.md → plan.md → state.md → review.md → handoff.md`.</rule>
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "name": "@damphuquy/agent-init",
4
+ "version": "2.2.0",
5
+ "framework": "RIPER-5",
6
+ "frameworkVersion": "2.0.0",
7
+ "language": "vi",
8
+ "description": "Tệp định danh và kiểm soát phiên bản quy chuẩn chỉ dẫn (instructions) cho AI Coding Agents và Workspace.",
9
+ "installedAt": "2026-09-08T00:00:00.000Z",
10
+ "updatedAt": "2026-09-08T00:00:00.000Z",
11
+ "manifest": {
12
+ "core": [
13
+ "AGENTS.md",
14
+ "instruction-version.json"
15
+ ],
16
+ "controlLayer": [
17
+ ".agents/README.md",
18
+ ".agents/behavior.md",
19
+ ".agents/guardrails.md",
20
+ ".agents/conventions/naming.md"
21
+ ],
22
+ "seeds": [
23
+ "process/_seeds/_GUIDE.md",
24
+ "process/_seeds/task-template.md.seed",
25
+ "process/_seeds/context-group.md.seed",
26
+ "process/_seeds/decision-template.md.seed",
27
+ "process/_seeds/plan-template.md.seed",
28
+ "process/_seeds/state-template.md.seed",
29
+ "process/_seeds/review-template.md.seed",
30
+ "process/_seeds/handoff-template.md.seed",
31
+ "process/_seeds/cancellation-template.md.seed",
32
+ "process/_seeds/pause-template.md.seed",
33
+ "process/_seeds/results-template.tsv.seed",
34
+ "process/_seeds/program-template.md.seed"
35
+ ],
36
+ "context": [
37
+ "process/context/all-context.md",
38
+ "process/context/planning/all-planning.md",
39
+ "process/context/tests/all-tests.md"
40
+ ],
41
+ "protocols": [
42
+ "process/development-protocols/all-development-protocols.md",
43
+ "process/development-protocols/orchestration.md",
44
+ "process/development-protocols/implementation-standards.md"
45
+ ]
46
+ },
47
+ "updateStrategy": {
48
+ "slashCommand": "/update",
49
+ "checkCommand": "npm view @damphuquy/agent-init version",
50
+ "updateCommand": "npx @damphuquy/agent-init update --lang vi",
51
+ "forceUpdateCommand": "npx @damphuquy/agent-init@latest . --lang vi --force",
52
+ "preserveUserFiles": [
53
+ "AGENTS.md#validation_commands",
54
+ "process/features/**",
55
+ "process/general-plans/**"
56
+ ],
57
+ "safeToOverwrite": [
58
+ ".agents/**",
59
+ "process/_seeds/**",
60
+ "process/context/**",
61
+ "process/development-protocols/**",
62
+ "instruction-version.json"
63
+ ]
64
+ },
65
+ "repository": {
66
+ "type": "git",
67
+ "url": "https://github.com/DamPhuQuy/agent-instructions"
68
+ }
69
+ }
@@ -36,6 +36,7 @@ process/
36
36
  │ ├── orchestration.md # Quy tắc phân công subagent
37
37
  │ └── implementation-standards.md # Tiêu chuẩn kiểu dữ liệu, linting và kiểm thử
38
38
  ├── features/ # Tính năng theo domain (≥5 files / ≥3 phases)
39
+ │ # Kích hoạt qua prompt: "big task", "feature", "big changes", "task lớn", "tính năng"...
39
40
  │ ├── active/ # Thư mục task đang làm: {CHG-ID}-{task-slug}/
40
41
  │ │ └── CHG-XXX-example/ # Mỗi task một thư mục riêng biệt
41
42
  │ │ ├── task.md # Hợp đồng master & lưu vết trạng thái
@@ -51,6 +52,7 @@ process/
51
52
  │ ├── completed/ # Lưu trữ các task đã hoàn thành
52
53
  │ └── backlog/ # Ghi chú task tồn đọng: {note_slug}_NOTE_{dd-mm-yy}.md
53
54
  └── general-plans/ # Task độc lập, xuyên suốt, sửa bug nhanh (<5 files)
55
+ # Kích hoạt qua prompt: "small task", "general changes", "small changes", "task nhỏ", "sửa lỗi"...
54
56
  ├── active/
55
57
  ├── completed/
56
58
  └── backlog/
@@ -97,6 +99,15 @@ review.md ← (Review) Phát hiện kiểm toán, ma trận kiểm chứn
97
99
  handoff.md ← (Complete) Tóm tắt bàn giao ngắn gọn
98
100
  ```
99
101
 
102
+ ### Khởi Tạo Task: Prompt-Driven vs Thủ Công
103
+
104
+ Người dùng có thể khởi tạo task theo 2 cách:
105
+ 1. **Khởi tạo tự động qua Prompt & Lệnh Gạch Chéo (Khuyến nghị):** Đưa yêu cầu công việc kèm tiền tố lệnh slash hoặc từ khóa trực tiếp cho Agent. Agent sẽ tự động tạo thư mục trong `active/`, sao chép `task-template.md.seed` $\rightarrow$ `task.md`, điền các thẻ đặc tả và bắt đầu ngay pha `RESEARCH`:
106
+ - **`process/features/active/{task-slug}/`**: Kích hoạt bởi lệnh `/feature`, `/big-task`, `/epic` hoặc từ khóa `big task`, `feature`, `big changes`. Dành cho tính năng lớn, theo domain (≥5 files, nhiều phase).
107
+ - **`process/general-plans/active/{task-slug}/`**: Kích hoạt bởi lệnh `/task`, `/small-task`, `/bug`, `/quick-fix` hoặc từ khóa `small task`, `general changes`, `small changes`. Dành cho tác vụ độc lập, sửa bug nhanh (<5 files).
108
+ - **Lệnh đặc biệt**: `/hotfix` (sửa lỗi khẩn cấp, tự chạy DELEGATED), `/fast-track` (ủy quyền tự trị toàn bộ chu trình).
109
+ 2. **Khởi tạo thủ công qua Terminal:** Tự tạo thư mục `mkdir -p process/.../active/{slug}` và `cp process/_seeds/task-template.md.seed process/.../active/{slug}/task.md` trước khi gọi Agent.
110
+
100
111
  ### Bảng Ánh Xạ Khái Niệm → Tệp Artifact
101
112
 
102
113
  | Khái niệm | Artifact |
@@ -170,6 +181,7 @@ handoff.md ← (Complete) Tóm tắt bàn giao ngắn gọn
170
181
  * Ranh giới cú pháp máy đọc được (Machine-Readable Contract), khóa chặt phạm vi sửa đổi của AI.
171
182
 
172
183
  ### 2. Bản chất "HOW" — Nguyên Tắc Vận Hành
184
+ * **Prompt-Driven Task Initialization:** Loại bỏ hoàn toàn sự bất tiện khi phải tự chạy lệnh tạo folder hay copy seed. Người dùng chỉ cần gửi prompt chứa từ khóa (`big task`, `feature`, `big changes` cho `features/active/`; `small task`, `general changes`, `small changes` cho `general-plans/active/`). Agent tự động nhận diện từ khóa, dựng cấu trúc thư mục, sao chép `task-template.md.seed`, trích xuất yêu cầu vào `task.md` và thực thi ngay lập tức.
173
185
  * **Copy-On-Demand:** Tuyệt đối không copy hàng loạt tất cả seed vào task cùng lúc. Bắt đầu với `task.md`, sau đó sinh ra `research.md` $\rightarrow$ `decision.md` $\rightarrow$ `plan.md` $\rightarrow$ `state.md` $\rightarrow$ `review.md` $\rightarrow$ `handoff.md` theo tiến độ phase.
174
186
  * **Stateless Chat, Stateful Workspace:** Cửa sổ chat có thể tắt hoặc reset session. Toàn bộ tiến độ và bộ nhớ lỗi (`<failure_memory>`) được lưu bền vững trên ổ đĩa (`state.md`), session mới chỉ cần nạp lại file là tiếp tục công việc chính xác 100%.
175
187
  * **Selective Knowledge Crystallization:** Sau khi task hoàn thành và tạo `handoff.md`, chỉ những thay đổi kiến trúc/contract dùng chung mới được cập nhật vào `process/context/` và đăng ký trong `all-context.md`.
@@ -13,6 +13,7 @@
13
13
  * **Tại sao là đuôi `.seed`? (Why):** Đuôi `.seed` đóng vai trò ranh giới bất biến (Blueprint Immutability). Nó giúp phân biệt rõ ràng giữa "khuôn mẫu phôi" và "tài liệu markdown đang làm việc" (`*.md`). Khi AI quét repo bằng các công cụ tìm kiếm, hậu tố `.seed` bảo vệ các file này không bao giờ bị AI sửa đè vào làm hỏng template gốc của cả dự án.
14
14
  * **Tại sao tách riêng từng seed theo phase? (Why):** Mỗi giai đoạn trong chu trình RIPER-5 đòi hỏi một kiểu tư duy và ranh giới quyền hạn khác biệt (Khảo sát vs Đề xuất vs Lập kế hoạch vs Thực thi vs Nghiệm thu). Việc tách rời giúp AI chỉ nạp đúng artifact cần thiết, chống phình to context window (Anti-Context Saturation) và gắn chặt với từng Cổng kiểm soát (Gates G1–G3).
15
15
  * **Quy tắc Copy-On-Demand (How):** Tuyệt đối không copy hàng loạt tất cả seed vào thư mục task. Bắt đầu duy nhất với `task.md`. Khi task tiến vào phase nào, mới lần lượt khởi tạo artifact của phase đó (`research.md` $\rightarrow$ `decision.md` $\rightarrow$ `plan.md` $\rightarrow$ `state.md` $\rightarrow$ `review.md` $\rightarrow$ `handoff.md`). Ở chế độ PAIR, Agent dừng lại chờ người dùng duyệt cổng. Ở chế độ DELEGATED / Fast-Track, Agent tự động khởi tạo seed kế tiếp, tự động duyệt cổng và chạy liên tục không gián đoạn.
16
+ * **Khởi Tạo Task Qua Prompt (How):** Loại bỏ việc sao chép thủ công tốn thời gian. Người dùng có thể khởi tạo task ngay trong prompt bằng các từ khóa định hướng: `big task`, `feature`, `big changes` (vào `features/active/`) hoặc `small task`, `general changes`, `small changes` (vào `general-plans/active/`). Agent sẽ tự động tạo thư mục, sao chép seed và điền thông tin ban đầu.
16
17
  </architectural_rationale>
17
18
 
18
19
  ---
@@ -162,7 +163,17 @@ Không nhất thiết phải tạo tất cả các artifact ngay từ đầu. H
162
163
 
163
164
  ---
164
165
 
165
- ## 4. Các Lệnh Khởi Tạo Mẫu (Copy Commands)
166
+ ## 4. Khởi Tạo Seed: Qua Prompt & Lệnh Sao Chép (Instantiation Methods)
167
+
168
+ ### Phương thức 1: Khởi Tạo Tự Động Qua Prompt & Lệnh Slash (Khuyến nghị)
169
+ Thay vì gõ lệnh terminal thủ công, bạn chỉ cần mở đầu prompt bằng cú pháp gạch chéo (**Pseudo-Slash**) hoặc từ khóa:
170
+ - **`process/features/active/{task-slug}/`**: Dùng lệnh `/feature`, `/big-task`, `/epic` hoặc các từ khóa: `big task`, `feature`, `big changes`, `epic` (hoặc: `task lớn`, `tính năng`, `thay đổi lớn`).
171
+ - **`process/general-plans/active/{task-slug}/`**: Dùng lệnh `/task`, `/small-task`, `/bug`, `/quick-fix` hoặc các từ khóa: `small task`, `general changes`, `small changes`, `bug fix`, `quick fix` (hoặc: `task nhỏ`, `thay đổi chung`, `thay đổi nhỏ`, `sửa lỗi`).
172
+ - **Lệnh đặc biệt**: `/hotfix` (sửa lỗi production khẩn cấp, tự động chạy DELEGATED mode).
173
+
174
+ Agent sẽ tự động tạo thư mục tương ứng, copy `task-template.md.seed` $\rightarrow$ `task.md`, trích xuất `<goal>` và `<acceptance_criteria>` từ prompt, rồi bắt đầu ngay pha Khảo sát (Research).
175
+
176
+ ### Phương thức 2: Lệnh Sao Chép Thủ Công Qua Terminal (Copy Commands)
166
177
 
167
178
  ```bash
168
179
  # Tạo thư mục task mới