@rasensio/aidlc 0.6.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +113 -0
  2. package/dist/cli.js +13 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/discover.d.ts +6 -2
  5. package/dist/commands/discover.d.ts.map +1 -1
  6. package/dist/commands/discover.js +30 -4
  7. package/dist/commands/discover.js.map +1 -1
  8. package/dist/commands/gate.d.ts.map +1 -1
  9. package/dist/commands/gate.js +8 -0
  10. package/dist/commands/gate.js.map +1 -1
  11. package/dist/commands/init.d.ts +17 -11
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +280 -45
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/knowledge.d.ts +16 -0
  16. package/dist/commands/knowledge.d.ts.map +1 -0
  17. package/dist/commands/knowledge.js +454 -0
  18. package/dist/commands/knowledge.js.map +1 -0
  19. package/dist/commands/start.d.ts +2 -1
  20. package/dist/commands/start.d.ts.map +1 -1
  21. package/dist/commands/start.js +31 -1
  22. package/dist/commands/start.js.map +1 -1
  23. package/dist/commands/transition.d.ts.map +1 -1
  24. package/dist/commands/transition.js +14 -1
  25. package/dist/commands/transition.js.map +1 -1
  26. package/dist/commands/update.d.ts.map +1 -1
  27. package/dist/commands/update.js +9 -2
  28. package/dist/commands/update.js.map +1 -1
  29. package/dist/compile/adapters/claude-code.d.ts.map +1 -1
  30. package/dist/compile/adapters/claude-code.js +7 -2
  31. package/dist/compile/adapters/claude-code.js.map +1 -1
  32. package/dist/compile/adapters/codex.d.ts.map +1 -1
  33. package/dist/compile/adapters/codex.js +5 -0
  34. package/dist/compile/adapters/codex.js.map +1 -1
  35. package/dist/compile/adapters/cursor.d.ts.map +1 -1
  36. package/dist/compile/adapters/cursor.js +5 -0
  37. package/dist/compile/adapters/cursor.js.map +1 -1
  38. package/dist/compile/adapters/kiro.d.ts.map +1 -1
  39. package/dist/compile/adapters/kiro.js +7 -1
  40. package/dist/compile/adapters/kiro.js.map +1 -1
  41. package/dist/compile/adapters/windsurf.d.ts.map +1 -1
  42. package/dist/compile/adapters/windsurf.js +5 -0
  43. package/dist/compile/adapters/windsurf.js.map +1 -1
  44. package/dist/compile/knowledge-section.d.ts +19 -0
  45. package/dist/compile/knowledge-section.d.ts.map +1 -0
  46. package/dist/compile/knowledge-section.js +46 -0
  47. package/dist/compile/knowledge-section.js.map +1 -0
  48. package/dist/core/types.d.ts +3 -1
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/discover/scanner.d.ts.map +1 -1
  51. package/dist/discover/scanner.js +18 -12
  52. package/dist/discover/scanner.js.map +1 -1
  53. package/dist/discover/workspaces.d.ts +24 -0
  54. package/dist/discover/workspaces.d.ts.map +1 -0
  55. package/dist/discover/workspaces.js +116 -0
  56. package/dist/discover/workspaces.js.map +1 -0
  57. package/dist/knowledge/compact.d.ts +24 -0
  58. package/dist/knowledge/compact.d.ts.map +1 -0
  59. package/dist/knowledge/compact.js +70 -0
  60. package/dist/knowledge/compact.js.map +1 -0
  61. package/dist/knowledge/context-generator.d.ts +36 -0
  62. package/dist/knowledge/context-generator.d.ts.map +1 -0
  63. package/dist/knowledge/context-generator.js +150 -0
  64. package/dist/knowledge/context-generator.js.map +1 -0
  65. package/dist/knowledge/engine.d.ts +40 -0
  66. package/dist/knowledge/engine.d.ts.map +1 -0
  67. package/dist/knowledge/engine.js +79 -0
  68. package/dist/knowledge/engine.js.map +1 -0
  69. package/dist/knowledge/gate-criterion.d.ts +36 -0
  70. package/dist/knowledge/gate-criterion.d.ts.map +1 -0
  71. package/dist/knowledge/gate-criterion.js +60 -0
  72. package/dist/knowledge/gate-criterion.js.map +1 -0
  73. package/dist/knowledge/index/knowledge-index.d.ts +45 -0
  74. package/dist/knowledge/index/knowledge-index.d.ts.map +1 -0
  75. package/dist/knowledge/index/knowledge-index.js +20 -0
  76. package/dist/knowledge/index/knowledge-index.js.map +1 -0
  77. package/dist/knowledge/index/sqlite-index.d.ts +53 -0
  78. package/dist/knowledge/index/sqlite-index.d.ts.map +1 -0
  79. package/dist/knowledge/index/sqlite-index.js +354 -0
  80. package/dist/knowledge/index/sqlite-index.js.map +1 -0
  81. package/dist/knowledge/merge-driver.d.ts +36 -0
  82. package/dist/knowledge/merge-driver.d.ts.map +1 -0
  83. package/dist/knowledge/merge-driver.js +130 -0
  84. package/dist/knowledge/merge-driver.js.map +1 -0
  85. package/dist/knowledge/reader.d.ts +32 -0
  86. package/dist/knowledge/reader.d.ts.map +1 -0
  87. package/dist/knowledge/reader.js +74 -0
  88. package/dist/knowledge/reader.js.map +1 -0
  89. package/dist/knowledge/seed.d.ts +38 -0
  90. package/dist/knowledge/seed.d.ts.map +1 -0
  91. package/dist/knowledge/seed.js +254 -0
  92. package/dist/knowledge/seed.js.map +1 -0
  93. package/dist/knowledge/staleness.d.ts +41 -0
  94. package/dist/knowledge/staleness.d.ts.map +1 -0
  95. package/dist/knowledge/staleness.js +102 -0
  96. package/dist/knowledge/staleness.js.map +1 -0
  97. package/dist/knowledge/sync.d.ts +31 -0
  98. package/dist/knowledge/sync.d.ts.map +1 -0
  99. package/dist/knowledge/sync.js +103 -0
  100. package/dist/knowledge/sync.js.map +1 -0
  101. package/dist/knowledge/types.d.ts +87 -0
  102. package/dist/knowledge/types.d.ts.map +1 -0
  103. package/dist/knowledge/types.js +82 -0
  104. package/dist/knowledge/types.js.map +1 -0
  105. package/dist/knowledge/writer.d.ts +67 -0
  106. package/dist/knowledge/writer.d.ts.map +1 -0
  107. package/dist/knowledge/writer.js +189 -0
  108. package/dist/knowledge/writer.js.map +1 -0
  109. package/dist/knowledge/yaml-source.d.ts +48 -0
  110. package/dist/knowledge/yaml-source.d.ts.map +1 -0
  111. package/dist/knowledge/yaml-source.js +195 -0
  112. package/dist/knowledge/yaml-source.js.map +1 -0
  113. package/package.json +3 -3
package/README.md ADDED
@@ -0,0 +1,113 @@
1
+ # @rasensio/aidlc
2
+
3
+ Structured lifecycle guidance for AI coding agents across platforms. One set of skills, every major AI coding tool.
4
+
5
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/rasensio/aidlc/blob/main/LICENSE)
6
+
7
+ ## What is AIDLC?
8
+
9
+ AIDLC brings phase-driven workflows, review gates, and quality checkpoints to AI-assisted software development. Instead of letting your AI assistant jump straight into code, AIDLC guides it through structured phases — ideation, requirements, design, implementation, testing, deployment, and maintenance.
10
+
11
+ Works with **Claude Code**, **Cursor**, **Windsurf**, **Kiro**, and **Codex**.
12
+
13
+ ## Requirements
14
+
15
+ **Node.js >= 22.13.** The knowledge graph uses the built-in `node:sqlite` module — zero native dependencies, but it needs a modern runtime.
16
+
17
+ > **Upgrading from an earlier version?** The CLI previously supported Node >= 18. Upgrade your Node runtime (e.g. `nvm install 22`); no other migration steps are required — existing `.aidlc/` state and skills work unchanged.
18
+
19
+ ## Quick Start
20
+
21
+ ```bash
22
+ # Set up AIDLC once — interactive wizard, or pass --platform to skip prompts
23
+ npx @rasensio/aidlc init --platform claude-code
24
+ ```
25
+
26
+ Then work from your AI coding tool. In Claude Code, invoke the entry point:
27
+
28
+ ```
29
+ /aidlc
30
+ ```
31
+
32
+ It reads your lifecycle state and offers the next actions — continue an in-progress instance, start something new, check status, or review an artifact. You can also just describe what you want ("help me fix a bug") and the matching skill activates on its own.
33
+
34
+ ## CLI Commands
35
+
36
+ The CLI has two core jobs: **bootstrap** (installing and refreshing skills) and **CI enforcement** (`aidlc gate`). Lifecycle work happens inside your AI tool via skills; the runtime commands below remain available as terminal shortcuts for the same state protocol.
37
+
38
+ | Command | Purpose |
39
+ |---------|---------|
40
+ | `aidlc init [--platform <id>]` | Set up AIDLC: interactive wizard, or non-interactive with `--platform` |
41
+ | `aidlc update` | Update CLI and refresh project skills |
42
+ | `aidlc gate <phase>` | CI gate check (exit 0 = pass, 1 = fail) |
43
+ | `aidlc start [template]` | Begin a new lifecycle instance |
44
+ | `aidlc continue [instance]` | Resume the active instance |
45
+ | `aidlc status [--json]` | Show progress across active instances |
46
+ | `aidlc transition <instance>` | Evaluate gates and advance phase |
47
+ | `aidlc review <artifact>` | Adversarial review of an artifact |
48
+ | `aidlc discover [--no-knowledge]` | Scan codebase, generate context docs, seed the knowledge graph |
49
+ | `aidlc docs` | Generate onboarding documentation |
50
+ | `aidlc knowledge <subcommand>` | Query and update the local knowledge graph (see below) |
51
+ | `aidlc add action <description>` | Create lifecycle automation from a natural language description |
52
+
53
+ ## Knowledge Graph
54
+
55
+ AIDLC keeps a persistent, git-versioned memory of your codebase in `.aidlc/knowledge/` — human-readable YAML as the source of truth, backed by a SQLite FTS5 index for fast queries. Agents consult it before re-exploring code and record what they learn after changing it.
56
+
57
+ ```bash
58
+ aidlc discover # seed from static analysis (modules, deps, endpoints, conventions)
59
+ aidlc knowledge query "payment" # full-text search
60
+ aidlc knowledge get payment-service # one entity + its relationships
61
+ aidlc knowledge graph payment-service --depth 2 # subgraph traversal
62
+ aidlc knowledge context --max-tokens 2000 # markdown summary for agent prompts
63
+ aidlc knowledge add --id my-decision --type decision --name "Use X" --description "…"
64
+ aidlc knowledge sync # after git pull: rebuild index, flag suspicious merges
65
+ ```
66
+
67
+ Multi-user teams can install a git merge driver that auto-resolves concurrent edits to knowledge files (`aidlc knowledge install-merge-driver` — asks for confirmation before touching git config). The SQLite index (`index.db`) is a disposable cache and stays out of git; only the YAML is versioned.
68
+
69
+ ## Supported Platforms
70
+
71
+ | Platform | Config Location | Strategy |
72
+ |----------|----------------|----------|
73
+ | Claude Code | `.claude/skills/aidlc-*/SKILL.md` | Thin activation shims |
74
+ | Kiro | `.kiro/skills/aidlc-*/SKILL.md` + steering | Shims + steering file |
75
+ | Cursor | `.cursor/rules/aidlc-*.mdc` | Description-based rules |
76
+ | Windsurf | `.windsurf/rules/aidlc-*.md` | Size-constrained pointer shims |
77
+ | Codex | `AGENTS.md` | Managed delimiter block |
78
+
79
+ ## How It Works
80
+
81
+ 1. **Install** — `aidlc init` creates a `.aidlc/` directory with skills and configuration, compiled for your platform
82
+ 2. **Pick a template** — full features, quick tasks, bug fixes, or spikes
83
+ 3. **Your AI follows the lifecycle** — skills activate in each phase, and the agent manages state directly in `.aidlc/state/` (plain YAML)
84
+ 4. **Gates enforce quality** — phase transitions require artifacts to be complete; `aidlc gate` gives CI the same check
85
+
86
+ ## Non-Interactive Setup
87
+
88
+ For CI or AI-agent-driven setup:
89
+
90
+ ```bash
91
+ # Apply defaults (or keep the existing config) without prompts
92
+ npx @rasensio/aidlc init --non-interactive
93
+
94
+ # Add a platform and install its skills without prompts
95
+ npx @rasensio/aidlc init --platform claude-code
96
+ ```
97
+
98
+ ## Configuration
99
+
100
+ Project configuration lives in `.aidlc/config.yaml`:
101
+
102
+ ```yaml
103
+ version: 1
104
+ defaults: { scope: micro, template: micro-task }
105
+ stalled_threshold_days: 7
106
+ claim_timeout_minutes: 60
107
+ ```
108
+
109
+ Without this file, AIDLC defaults to Micro scope (Implementation + Testing only).
110
+
111
+ ## License
112
+
113
+ [MIT](https://github.com/rasensio/aidlc/blob/main/LICENSE)
package/dist/cli.js CHANGED
@@ -7,6 +7,17 @@
7
7
  *
8
8
  * Requirements: 17.1
9
9
  */
10
+ // node:sqlite is stable enough for our use (see design DD1) but still tagged
11
+ // experimental on some Node 22/24 lines — silence only that warning so every
12
+ // knowledge command doesn't print boilerplate to stderr.
13
+ const defaultWarningListeners = process.listeners('warning');
14
+ process.removeAllListeners('warning');
15
+ process.on('warning', (warning) => {
16
+ if (warning.name === 'ExperimentalWarning' && warning.message.includes('SQLite'))
17
+ return;
18
+ for (const listener of defaultWarningListeners)
19
+ listener(warning);
20
+ });
10
21
  import { Command } from 'commander';
11
22
  import { registerInit } from './commands/init.js';
12
23
  import { registerStart } from './commands/start.js';
@@ -15,11 +26,11 @@ import { registerStatus } from './commands/status.js';
15
26
  import { registerGate } from './commands/gate.js';
16
27
  import { registerTransition } from './commands/transition.js';
17
28
  import { registerDiscover } from './commands/discover.js';
18
- import { registerSetup } from './commands/setup.js';
19
29
  import { registerAddAction } from './commands/add-action.js';
20
30
  import { registerDocs } from './commands/docs.js';
21
31
  import { registerReview } from './commands/review.js';
22
32
  import { registerUpdate } from './commands/update.js';
33
+ import { registerKnowledge } from './commands/knowledge.js';
23
34
  const program = new Command();
24
35
  program
25
36
  .name('aidlc')
@@ -32,10 +43,10 @@ registerStatus(program);
32
43
  registerGate(program);
33
44
  registerTransition(program);
34
45
  registerDiscover(program);
35
- registerSetup(program);
36
46
  registerAddAction(program);
37
47
  registerDocs(program);
38
48
  registerReview(program);
39
49
  registerUpdate(program);
50
+ registerKnowledge(program);
40
51
  program.parse();
41
52
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,6EAA6E;AAC7E,6EAA6E;AAC7E,yDAAyD;AACzD,MAAM,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC7D,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACtC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;IAChC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO;IACzF,KAAK,MAAM,QAAQ,IAAI,uBAAuB;QAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE3B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,13 +1,17 @@
1
1
  /**
2
- * `aidlc discover` command — scan codebase and generate Context_Docs.
2
+ * `aidlc discover` command — scan codebase, generate Context_Docs, and seed
3
+ * the knowledge graph.
3
4
  *
4
5
  * Behavior:
5
6
  * - Call `scanCodebase(process.cwd())` to analyze the project.
6
7
  * - Call `writeContextDocs(cwd, result)` to produce Context_Docs in `.aidlc/context/`.
8
+ * - Seed the knowledge graph from the scan (modules, dependencies, endpoints,
9
+ * conventions) unless `--no-knowledge` is passed. Re-runs are idempotent:
10
+ * same-id facts merge instead of duplicating (KG Req 4.4, 8.1).
7
11
  * - Print a human-readable summary to stdout: primary language, frameworks, conventions.
8
12
  * - With `--json`: output the full ScanResult as JSON.
9
13
  *
10
- * Requirements: 15.1, 15.3, 15.10
14
+ * Requirements: 15.1, 15.3, 15.10; KG 8.1–8.3
11
15
  *
12
16
  * @module
13
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuDpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBvD"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0CvD"}
@@ -1,18 +1,24 @@
1
1
  /**
2
- * `aidlc discover` command — scan codebase and generate Context_Docs.
2
+ * `aidlc discover` command — scan codebase, generate Context_Docs, and seed
3
+ * the knowledge graph.
3
4
  *
4
5
  * Behavior:
5
6
  * - Call `scanCodebase(process.cwd())` to analyze the project.
6
7
  * - Call `writeContextDocs(cwd, result)` to produce Context_Docs in `.aidlc/context/`.
8
+ * - Seed the knowledge graph from the scan (modules, dependencies, endpoints,
9
+ * conventions) unless `--no-knowledge` is passed. Re-runs are idempotent:
10
+ * same-id facts merge instead of duplicating (KG Req 4.4, 8.1).
7
11
  * - Print a human-readable summary to stdout: primary language, frameworks, conventions.
8
12
  * - With `--json`: output the full ScanResult as JSON.
9
13
  *
10
- * Requirements: 15.1, 15.3, 15.10
14
+ * Requirements: 15.1, 15.3, 15.10; KG 8.1–8.3
11
15
  *
12
16
  * @module
13
17
  */
14
18
  import { Command } from 'commander';
15
19
  import { scanCodebase, writeContextDocs } from '../discover/scanner.js';
20
+ import { seedFromScan } from '../knowledge/seed.js';
21
+ import { openKnowledge } from '../knowledge/engine.js';
16
22
  // ---------------------------------------------------------------------------
17
23
  // Summary renderer
18
24
  // ---------------------------------------------------------------------------
@@ -64,21 +70,41 @@ function formatSummary(result, docPaths) {
64
70
  export function registerDiscover(program) {
65
71
  program
66
72
  .command('discover')
67
- .description('Scan codebase and generate context documents')
73
+ .description('Scan codebase, generate context documents, and seed the knowledge graph')
68
74
  .option('--json', 'Output full scan result as JSON')
75
+ .option('--no-knowledge', 'Skip seeding the knowledge graph')
69
76
  .action((opts) => {
70
77
  const cwd = process.cwd();
71
78
  // Run the scanner
72
79
  const result = scanCodebase(cwd);
73
80
  // Write Context_Docs
74
81
  const docPaths = writeContextDocs(cwd, result);
82
+ // Seed the knowledge graph (KG Req 8.1)
83
+ let knowledgeSummary = '';
84
+ if (opts.knowledge !== false) {
85
+ const seed = seedFromScan(cwd, result);
86
+ const engine = openKnowledge(cwd);
87
+ try {
88
+ const imported = engine.writer.importBatch(seed.entities, seed.relationships);
89
+ knowledgeSummary =
90
+ `Knowledge graph: ${imported.added} entities added, ${imported.updated} merged` +
91
+ (imported.errors.length > 0 ? `, ${imported.errors.length} errors` : '') +
92
+ '\n';
93
+ for (const error of imported.errors) {
94
+ process.stderr.write(`Warning: ${error}\n`);
95
+ }
96
+ }
97
+ finally {
98
+ engine.close();
99
+ }
100
+ }
75
101
  // Output
76
102
  if (opts.json) {
77
103
  process.stdout.write(JSON.stringify(result, null, 2) + '\n');
78
104
  }
79
105
  else {
80
106
  const summary = formatSummary(result, docPaths);
81
- process.stdout.write(summary);
107
+ process.stdout.write(summary + knowledgeSummary);
82
108
  }
83
109
  });
84
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkFpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUnD"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmFpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUnD"}
@@ -24,6 +24,7 @@ import { loadTemplates as loadBuiltInTemplates } from '@rasensio/aidlc-content';
24
24
  import { evaluateGate } from '../core/gate.js';
25
25
  import { loadSnapshot } from '../state/snapshot-store.js';
26
26
  import { loadTemplates, resolveTemplate } from '../core/template-resolver.js';
27
+ import { evaluateKnowledgeCriterion } from '../knowledge/gate-criterion.js';
27
28
  // ---------------------------------------------------------------------------
28
29
  // Helpers
29
30
  // ---------------------------------------------------------------------------
@@ -136,6 +137,13 @@ function runGate(instanceArg, phaseArg, opts) {
136
137
  }
137
138
  // Evaluate the gate
138
139
  const result = evaluateGate(phaseName, phaseStates, resolvedTemplate);
140
+ // Knowledge seeding criterion — ideation only, computed live against the
141
+ // index; applies only when the project has adopted the knowledge graph (KG Req 8.5)
142
+ const knowledgeCriteria = evaluateKnowledgeCriterion(projectRoot, phaseName);
143
+ if (knowledgeCriteria.length > 0) {
144
+ result.pass = false;
145
+ result.unsatisfiedCriteria.push(...knowledgeCriteria);
146
+ }
139
147
  // Output
140
148
  if (opts.json) {
141
149
  process.stdout.write(JSON.stringify(result, null, 2) + '\n');
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/commands/gate.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,30 @@
1
1
  /**
2
- * `aidlc init` command — install AIDLC skills for a target AI platform.
2
+ * `aidlc init` command — set up AIDLC in a project.
3
3
  *
4
- * Behavior:
5
- * - Load skills from the package's `skills/` directory.
6
- * - Load capability map for the specified platform from `capabilities/`.
7
- * - Load project context (check for `.aidlc/context/` and `.aidlc/guidance/`).
8
- * - Select the appropriate adapter based on `--platform`.
9
- * - Call `adapter.plan(skills, caps, ctx)` to produce an InstallPlan.
10
- * - If `--dry-run`: call `dryRunPlan` and print the report to stdout.
11
- * - Otherwise: call `executePlan` and print summary.
4
+ * Single entry point that merges the former `setup` (interactive configuration
5
+ * wizard) and `init` (per-platform skill install) commands:
6
+ *
7
+ * - `aidlc init` interactive wizard: collect SetupAnswers via @clack/prompts,
8
+ * write `.aidlc/config.yaml`, install skills for each configured platform,
9
+ * run discovery to generate context docs.
10
+ * - `aidlc init --platform <name>` non-interactive: add the platform to the
11
+ * config and install skills without prompts.
12
+ * - `aidlc init --non-interactive` — no prompts; preserve existing config or
13
+ * apply defaults.
14
+ * - `--dry-run` — print what would be written without making any changes.
12
15
  * - Unsupported platform → exit code 2, stderr lists supported platforms (Req 1.3).
13
16
  * - Success → exit code 0, summary of files written (Req 1.7).
14
17
  *
15
- * Requirements: 1.1, 1.3, 1.5, 17.1, 17.9
18
+ * `aidlc setup` remains registered as a hidden, deprecated alias.
19
+ *
20
+ * Requirements: 1.1, 1.3, 1.5, 17.1, 17.9, 21.1, 21.9, 7.8
16
21
  *
17
22
  * @module
18
23
  */
19
24
  import { Command } from 'commander';
20
25
  /**
21
- * Register the `aidlc init` command on the given commander program.
26
+ * Register the `aidlc init` command (and its deprecated `setup` alias)
27
+ * on the given commander program.
22
28
  */
23
29
  export declare function registerInit(program: Command): void;
24
30
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuFpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDnD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuQpC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BnD"}