@kiwidata/grimoire 0.1.6 → 0.2.1

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 (88) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +5 -1
  3. package/dist/cli/program.d.ts.map +1 -1
  4. package/dist/cli/program.js +2 -0
  5. package/dist/cli/program.js.map +1 -1
  6. package/dist/commands/comment-lint.d.ts +3 -0
  7. package/dist/commands/comment-lint.d.ts.map +1 -0
  8. package/dist/commands/comment-lint.js +14 -0
  9. package/dist/commands/comment-lint.js.map +1 -0
  10. package/dist/core/branch-check.d.ts.map +1 -1
  11. package/dist/core/branch-check.js +2 -16
  12. package/dist/core/branch-check.js.map +1 -1
  13. package/dist/core/check-complexity.d.ts +4 -0
  14. package/dist/core/check-complexity.d.ts.map +1 -0
  15. package/dist/core/check-complexity.js +79 -0
  16. package/dist/core/check-complexity.js.map +1 -0
  17. package/dist/core/check-llm.d.ts +5 -0
  18. package/dist/core/check-llm.d.ts.map +1 -0
  19. package/dist/core/check-llm.js +108 -0
  20. package/dist/core/check-llm.js.map +1 -0
  21. package/dist/core/check.d.ts +1 -2
  22. package/dist/core/check.d.ts.map +1 -1
  23. package/dist/core/check.js +2 -179
  24. package/dist/core/check.js.map +1 -1
  25. package/dist/core/comment-lint.d.ts +18 -0
  26. package/dist/core/comment-lint.d.ts.map +1 -0
  27. package/dist/core/comment-lint.js +215 -0
  28. package/dist/core/comment-lint.js.map +1 -0
  29. package/dist/core/doc-style.d.ts +1 -0
  30. package/dist/core/doc-style.d.ts.map +1 -1
  31. package/dist/core/doc-style.js +1 -1
  32. package/dist/core/doc-style.js.map +1 -1
  33. package/dist/core/docs.js +1 -1
  34. package/dist/core/docs.js.map +1 -1
  35. package/dist/core/health.js +1 -1
  36. package/dist/core/health.js.map +1 -1
  37. package/dist/core/hooks.js +39 -28
  38. package/dist/core/hooks.js.map +1 -1
  39. package/dist/core/init-config.d.ts +22 -0
  40. package/dist/core/init-config.d.ts.map +1 -0
  41. package/dist/core/init-config.js +118 -0
  42. package/dist/core/init-config.js.map +1 -0
  43. package/dist/core/init-prompts.d.ts +8 -0
  44. package/dist/core/init-prompts.d.ts.map +1 -0
  45. package/dist/core/init-prompts.js +166 -0
  46. package/dist/core/init-prompts.js.map +1 -0
  47. package/dist/core/init.d.ts +0 -1
  48. package/dist/core/init.d.ts.map +1 -1
  49. package/dist/core/init.js +3 -278
  50. package/dist/core/init.js.map +1 -1
  51. package/dist/core/list.js +2 -2
  52. package/dist/core/list.js.map +1 -1
  53. package/dist/core/status.js +2 -2
  54. package/dist/core/status.js.map +1 -1
  55. package/dist/core/update.d.ts.map +1 -1
  56. package/dist/core/update.js +22 -0
  57. package/dist/core/update.js.map +1 -1
  58. package/dist/core/validate.js +1 -1
  59. package/dist/core/validate.js.map +1 -1
  60. package/dist/utils/config.d.ts +2 -0
  61. package/dist/utils/config.d.ts.map +1 -1
  62. package/dist/utils/config.js +4 -0
  63. package/dist/utils/config.js.map +1 -1
  64. package/dist/utils/frontmatter.d.ts +6 -0
  65. package/dist/utils/frontmatter.d.ts.map +1 -0
  66. package/dist/utils/frontmatter.js +13 -0
  67. package/dist/utils/frontmatter.js.map +1 -0
  68. package/dist/utils/paths.d.ts +1 -1
  69. package/dist/utils/paths.d.ts.map +1 -1
  70. package/dist/utils/paths.js +5 -4
  71. package/dist/utils/paths.js.map +1 -1
  72. package/dist/utils/stdin.d.ts +3 -0
  73. package/dist/utils/stdin.d.ts.map +1 -0
  74. package/dist/utils/stdin.js +13 -0
  75. package/dist/utils/stdin.js.map +1 -0
  76. package/package.json +6 -2
  77. package/skills/grimoire-apply/SKILL.md +4 -3
  78. package/skills/grimoire-draft/SKILL.md +147 -215
  79. package/skills/grimoire-plan/SKILL.md +4 -1
  80. package/skills/grimoire-pr/SKILL.md +14 -15
  81. package/skills/grimoire-refactor/SKILL.md +3 -1
  82. package/skills/references/artifact-map.md +2 -1
  83. package/skills/references/code-quality.md +1 -1
  84. package/skills/references/principles.md +4 -3
  85. package/skills/references/refactor-scan-categories.md +15 -0
  86. package/skills/references/review-personas.md +30 -13
  87. package/skills/references/testing-contracts.md +19 -0
  88. package/templates/draft.md +108 -0
@@ -93,44 +93,55 @@ fi
93
93
  }
94
94
  const BRANCH_GUARD_COMMAND = "grimoire branch-check --hook";
95
95
  const BRANCH_GUARD_MARKER = "grimoire branch-check";
96
+ const COMMENT_LINT_COMMAND = "grimoire lint-comments --hook";
97
+ const COMMENT_LINT_MARKER = "grimoire lint-comments";
98
+ /** True if any entry already wires a command containing `marker`. */
99
+ function hasHook(entries, marker) {
100
+ return entries.some((entry) => entry.hooks?.some((h) => h.command?.includes(marker)));
101
+ }
102
+ async function readClaudeSettings(settingsPath) {
103
+ if (!(await fileExists(settingsPath))) {
104
+ return { settings: {}, existed: false, wasMalformed: false };
105
+ }
106
+ const raw = await readFile(settingsPath, "utf-8");
107
+ try {
108
+ return { settings: JSON.parse(raw), existed: true, wasMalformed: false };
109
+ }
110
+ catch {
111
+ await writeFile(settingsPath + ".bak", raw);
112
+ return { settings: {}, existed: true, wasMalformed: true };
113
+ }
114
+ }
115
+ function logSettings(existed, wasMalformed) {
116
+ const verb = !existed ? "created" : wasMalformed ? "replaced" : "updated";
117
+ const color = verb === "created" ? "green" : verb === "replaced" ? "yellow" : "blue";
118
+ console.log(` ${chalk[color](verb)} .claude/settings.json (branch-check + comment-lint hooks)`);
119
+ }
96
120
  async function setupClaudeSettings(root) {
97
121
  const settingsPath = join(root, ".claude", "settings.json");
98
- const existed = await fileExists(settingsPath);
99
- let settings = {};
100
- let wasMalformed = false;
101
- if (existed) {
102
- const raw = await readFile(settingsPath, "utf-8");
103
- try {
104
- settings = JSON.parse(raw);
105
- }
106
- catch {
107
- await writeFile(settingsPath + ".bak", raw);
108
- wasMalformed = true;
109
- settings = {};
110
- }
111
- }
122
+ const { settings, existed, wasMalformed } = await readClaudeSettings(settingsPath);
112
123
  const hooks = settings.hooks ?? {};
113
124
  const userPromptSubmit = hooks.UserPromptSubmit ?? [];
114
- const alreadyWired = userPromptSubmit.some((entry) => entry.hooks?.some((h) => h.command?.includes(BRANCH_GUARD_MARKER)));
115
- if (alreadyWired) {
116
- console.log(` ${chalk.yellow("exists")} .claude/settings.json (UserPromptSubmit branch-check)`);
125
+ const preToolUse = hooks.PreToolUse ?? [];
126
+ let changed = false;
127
+ if (!hasHook(userPromptSubmit, BRANCH_GUARD_MARKER)) {
128
+ userPromptSubmit.push({ hooks: [{ type: "command", command: BRANCH_GUARD_COMMAND }] });
129
+ changed = true;
130
+ }
131
+ if (!hasHook(preToolUse, COMMENT_LINT_MARKER)) {
132
+ preToolUse.push({ matcher: "Write|Edit", hooks: [{ type: "command", command: COMMENT_LINT_COMMAND }] });
133
+ changed = true;
134
+ }
135
+ if (!changed) {
136
+ console.log(` ${chalk.yellow("exists")} .claude/settings.json (branch-check + comment-lint hooks)`);
117
137
  return;
118
138
  }
119
- userPromptSubmit.push({
120
- hooks: [{ type: "command", command: BRANCH_GUARD_COMMAND }],
121
- });
122
139
  hooks.UserPromptSubmit = userPromptSubmit;
140
+ hooks.PreToolUse = preToolUse;
123
141
  settings.hooks = hooks;
124
142
  await mkdir(join(root, ".claude"), { recursive: true });
125
143
  await writeFile(settingsPath, JSON.stringify(settings, null, 2) + "\n");
126
- let verb;
127
- if (!existed)
128
- verb = "created";
129
- else if (wasMalformed)
130
- verb = "replaced";
131
- else
132
- verb = "updated";
133
- console.log(` ${chalk[verb === "created" ? "green" : verb === "replaced" ? "yellow" : "blue"](verb)} .claude/settings.json (UserPromptSubmit branch-check)`);
144
+ logSettings(existed, wasMalformed);
134
145
  }
135
146
  function trailerCheckScript() {
136
147
  // Inline shell command that checks for Change: trailer
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { GrimoireConfig, ProjectSurface } from "../utils/config.js";
2
+ import type { Detection } from "./detect.js";
3
+ export declare const PROMPT_SURFACES: readonly ProjectSurface[];
4
+ export interface EssentialPrefill {
5
+ codebaseMemoryMcp?: boolean;
6
+ cavemanPlugin?: boolean;
7
+ detectedSurface?: ProjectSurface;
8
+ }
9
+ export declare function buildMinimalConfig(): GrimoireConfig;
10
+ export declare function bestByCategory(detections: Detection[]): Map<string, Detection>;
11
+ export declare function applyProjectDetections(config: GrimoireConfig, byCategory: Map<string, Detection>): void;
12
+ export declare function applyLlmFallbacks(config: GrimoireConfig, byCategory: Map<string, Detection>): void;
13
+ export declare function surfaceFromDetection(d: Detection | undefined): ProjectSurface | undefined;
14
+ export declare function buildIntegrationFlags(initialFlags: {
15
+ codebaseMemoryMcp: boolean | undefined;
16
+ cavemanPlugin: boolean | undefined;
17
+ }, config: GrimoireConfig): {
18
+ codebaseMemoryMcp: boolean | undefined;
19
+ cavemanPlugin: boolean | undefined;
20
+ };
21
+ export declare function scanForSecrets(serialized: string): void;
22
+ //# sourceMappingURL=init-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-config.d.ts","sourceRoot":"","sources":["../../src/core/init-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAMpD,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,wBAAgB,kBAAkB,IAAI,cAAc,CA4BnD;AAMD,wBAAgB,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAS9E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAmBvG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAiBlG;AAED,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,SAAS,GAAG,SAAS,GACvB,cAAc,GAAG,SAAS,CAK5B;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE;IAAE,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,EAC5F,MAAM,EAAE,cAAc,GACrB;IAAE,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAKhF;AAKD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAWvD"}
@@ -0,0 +1,118 @@
1
+ export const PROMPT_SURFACES = [
2
+ "tui",
3
+ "web",
4
+ "mobile",
5
+ "api",
6
+ "mixed",
7
+ ];
8
+ export function buildMinimalConfig() {
9
+ return {
10
+ version: 1,
11
+ project: {
12
+ commit_style: "conventional",
13
+ comment_lint: "block",
14
+ },
15
+ features_dir: "features",
16
+ decisions_dir: ".grimoire/decisions",
17
+ tools: {},
18
+ checks: [
19
+ "lint",
20
+ "format",
21
+ "duplicates",
22
+ "complexity",
23
+ "dead_code",
24
+ "unit_test",
25
+ "bdd_test",
26
+ "security",
27
+ "dep_audit",
28
+ "secrets",
29
+ "best_practices",
30
+ ],
31
+ llm: {
32
+ thinking: { command: "claude" },
33
+ coding: { command: "claude" },
34
+ },
35
+ };
36
+ }
37
+ function confidenceRank(c) {
38
+ return c === "high" ? 3 : c === "medium" ? 2 : 1;
39
+ }
40
+ export function bestByCategory(detections) {
41
+ const byCategory = new Map();
42
+ for (const d of detections) {
43
+ const existing = byCategory.get(d.category);
44
+ if (!existing || confidenceRank(d.confidence) > confidenceRank(existing.confidence)) {
45
+ byCategory.set(d.category, d);
46
+ }
47
+ }
48
+ return byCategory;
49
+ }
50
+ export function applyProjectDetections(config, byCategory) {
51
+ const projectFields = [
52
+ ["language", "language"],
53
+ ["package_manager", "package_manager"],
54
+ ["doc_tool", "doc_tool"],
55
+ ["comment_style", "comment_style"],
56
+ ];
57
+ for (const [cat, field] of projectFields) {
58
+ const d = byCategory.get(cat);
59
+ if (d)
60
+ config.project[field] = d.name;
61
+ }
62
+ const projectCategories = new Set(["language", "package_manager", "doc_tool", "comment_style"]);
63
+ for (const [category, detection] of byCategory) {
64
+ if (projectCategories.has(category))
65
+ continue;
66
+ const tool = { name: detection.name };
67
+ if (detection.command)
68
+ tool.command = detection.command;
69
+ if (detection.check_command)
70
+ tool.check_command = detection.check_command;
71
+ config.tools[category] = tool;
72
+ }
73
+ }
74
+ export function applyLlmFallbacks(config, byCategory) {
75
+ if (!byCategory.has("security")) {
76
+ config.tools.security = { name: "llm", prompt: "Review these changed files for security vulnerabilities. Tag each finding with OWASP Top 10 category and CWE ID. Check for: SQL injection (CWE-89), XSS (CWE-79), broken auth (CWE-287), insecure crypto (CWE-327), SSRF (CWE-918), path traversal (CWE-22), insecure deserialization (CWE-502), missing access control (CWE-862), CSRF (CWE-352), hardcoded secrets (CWE-798)." };
77
+ }
78
+ if (!byCategory.has("dep_audit")) {
79
+ config.tools.dep_audit = { name: "llm", prompt: "Review these changed files for newly added dependencies or imports. Flag potential typosquatting (CWE-1357), packages you cannot verify as real, and packages with known security advisories. Check for misspellings (e.g., 'reqeusts' instead of 'requests')." };
80
+ }
81
+ if (!byCategory.has("secrets")) {
82
+ config.tools.secrets = { name: "llm", prompt: "Review these changed files for hardcoded secrets (CWE-798), API keys, passwords, tokens, private keys, or credentials (CWE-312). Flag any string that looks like a secret value rather than a placeholder or environment variable reference." };
83
+ }
84
+ if (!byCategory.has("dead_code")) {
85
+ config.tools.dead_code = { name: "llm", prompt: "Review these changed files for dead code: unused functions, unreachable branches, unused imports, unused variables, and exports that are never imported elsewhere. Only flag code that is clearly dead, not code that might be used dynamically." };
86
+ }
87
+ config.tools.best_practices = { name: "llm", prompt: "Review these changed files for best practices violations" };
88
+ if (!config.tools.duplicates) {
89
+ config.tools.duplicates = { name: "jscpd", command: "npx jscpd --reporters console" };
90
+ }
91
+ }
92
+ export function surfaceFromDetection(d) {
93
+ if (!d)
94
+ return undefined;
95
+ return PROMPT_SURFACES.includes(d.name)
96
+ ? d.name
97
+ : undefined;
98
+ }
99
+ export function buildIntegrationFlags(initialFlags, config) {
100
+ return {
101
+ codebaseMemoryMcp: initialFlags.codebaseMemoryMcp ?? config.project.integrations?.codebase_memory_mcp,
102
+ cavemanPlugin: initialFlags.cavemanPlugin ?? config.project.integrations?.caveman_plugin,
103
+ };
104
+ }
105
+ const SECRET_PATTERN = /(.*_TOKEN|.*_KEY|.*_SECRET|.*_PASSWORD)\s*[:=]\s*[^$\s].*/i;
106
+ export function scanForSecrets(serialized) {
107
+ for (const line of serialized.split("\n")) {
108
+ const m = line.match(SECRET_PATTERN);
109
+ if (!m)
110
+ continue;
111
+ const value = line.slice(line.search(/[:=]/) + 1).trim();
112
+ if (value.startsWith("${"))
113
+ continue;
114
+ throw new Error(`Refusing to write a secret to .grimoire/config.yaml: ${line.trim()}\n` +
115
+ `Use \${ENV_VAR} references instead, then export the value in your shell.`);
116
+ }
117
+ }
118
+ //# sourceMappingURL=init-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-config.js","sourceRoot":"","sources":["../../src/core/init-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Detection } from "./detect.js";
2
+ import type { GrimoireConfig } from "../utils/config.js";
3
+ import { type EssentialPrefill } from "./init-config.js";
4
+ export declare function buildDetectedConfig(root: string, prefill?: EssentialPrefill): Promise<{
5
+ config: GrimoireConfig;
6
+ detection: Detection | null;
7
+ }>;
8
+ //# sourceMappingURL=init-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-prompts.d.ts","sourceRoot":"","sources":["../../src/core/init-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAgC,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAkC1B,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC,CAyClE"}
@@ -0,0 +1,166 @@
1
+ import chalk from "chalk";
2
+ import { detectTools } from "./detect.js";
3
+ import { detectAgentFiles } from "./shared-setup.js";
4
+ import { runSections } from "./configure.js";
5
+ import { buildMinimalConfig, bestByCategory, applyProjectDetections, applyLlmFallbacks, surfaceFromDetection, PROMPT_SURFACES, } from "./init-config.js";
6
+ const CATEGORY_LABELS = {
7
+ language: "Language",
8
+ package_manager: "Pkg manager",
9
+ lint: "Linter",
10
+ format: "Formatter",
11
+ unit_test: "Unit tests",
12
+ bdd_test: "BDD tests",
13
+ complexity: "Complexity",
14
+ security: "Security",
15
+ dep_audit: "Dep audit",
16
+ secrets: "Secrets",
17
+ dead_code: "Dead code",
18
+ doc_tool: "Doc tool",
19
+ comment_style: "Comment style",
20
+ };
21
+ const CATEGORY_ORDER = [
22
+ "language",
23
+ "package_manager",
24
+ "lint",
25
+ "format",
26
+ "unit_test",
27
+ "bdd_test",
28
+ "complexity",
29
+ "security",
30
+ "dep_audit",
31
+ "secrets",
32
+ "dead_code",
33
+ "doc_tool",
34
+ "comment_style",
35
+ ];
36
+ export async function buildDetectedConfig(root, prefill = {}) {
37
+ console.log(chalk.bold("\nDetecting project tools...\n"));
38
+ const detections = await detectTools(root);
39
+ const config = buildMinimalConfig();
40
+ if (detections.length === 0) {
41
+ console.log(chalk.dim(" No tools detected. Using minimal config.\n"));
42
+ return { config: await askEssentialPreferences(config, root, prefill), detection: null };
43
+ }
44
+ const byCategory = bestByCategory(detections);
45
+ console.log(chalk.bold(" Detected tools:\n"));
46
+ for (const cat of CATEGORY_ORDER) {
47
+ const label = (CATEGORY_LABELS[cat] ?? cat).padEnd(14);
48
+ const d = byCategory.get(cat);
49
+ if (d)
50
+ console.log(` ${label} ${chalk.cyan(d.name.padEnd(16))} ${chalk.dim(`(${d.signal})`)}`);
51
+ else
52
+ console.log(` ${label} ${chalk.dim("(none detected)")}`);
53
+ }
54
+ const readline = await import("node:readline/promises");
55
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
56
+ console.log();
57
+ const answer = await rl.question(" Accept detected tools? (Y/n/edit) ");
58
+ const prefillWithSurface = { ...prefill, detectedSurface: surfaceFromDetection(byCategory.get("surface")) };
59
+ if (answer.toLowerCase() === "n") {
60
+ rl.close();
61
+ console.log(chalk.dim(" Skipping tool detection.\n"));
62
+ return { config: await askEssentialPreferences(config, root, prefillWithSurface), detection: null };
63
+ }
64
+ if (answer.toLowerCase() === "edit")
65
+ await editDetections(rl, byCategory);
66
+ rl.close();
67
+ applyProjectDetections(config, byCategory);
68
+ applyLlmFallbacks(config, byCategory);
69
+ return { config: await askEssentialPreferences(config, root, prefillWithSurface), detection: byCategory.get("language") ?? null };
70
+ }
71
+ async function editDetections(rl, byCategory) {
72
+ console.log(chalk.dim("\n For each tool, press Enter to accept, 'n' to skip, or type a custom name.\n"));
73
+ for (const cat of CATEGORY_ORDER) {
74
+ const label = CATEGORY_LABELS[cat] ?? cat;
75
+ const d = byCategory.get(cat);
76
+ const current = d ? d.name : "none";
77
+ const answer = await rl.question(` ${label} [${current}]: `);
78
+ const trimmed = answer.trim();
79
+ if (trimmed.toLowerCase() === "n") {
80
+ byCategory.delete(cat);
81
+ }
82
+ else if (trimmed && trimmed !== current) {
83
+ byCategory.set(cat, {
84
+ category: cat,
85
+ name: trimmed,
86
+ confidence: "low",
87
+ signal: "user input",
88
+ });
89
+ }
90
+ }
91
+ }
92
+ async function askEssentialPreferences(config, root, prefill = {}) {
93
+ const readline = await import("node:readline/promises");
94
+ const rl = readline.createInterface({
95
+ input: process.stdin,
96
+ output: process.stdout,
97
+ });
98
+ // 1. AI agents
99
+ console.log(chalk.bold("\n AI agents:\n"));
100
+ console.log(chalk.dim(" Which AI coding tools will use these skills?"));
101
+ console.log(chalk.dim(" Skills install per tool: claude→.claude/skills, opencode→.opencode/skills, codex→.agents/skills."));
102
+ console.log(chalk.dim(" cursor/copilot use AGENTS.md-derived files (no skills).\n"));
103
+ const detectedAgents = await detectAgentFiles(root).catch(() => []);
104
+ const defaultAgents = detectedAgents.length > 0 ? detectedAgents.join(",") : "claude";
105
+ const agentsAnswer = await rl.question(` AI agents (comma-separated: claude/opencode/codex/cursor/copilot) [${defaultAgents}]: `);
106
+ const rawAgents = agentsAnswer.trim() || defaultAgents;
107
+ config.project.agents = rawAgents
108
+ .split(",")
109
+ .map((s) => s.trim().toLowerCase())
110
+ .filter(Boolean);
111
+ // 2. Recommended integrations
112
+ console.log(chalk.bold("\n Recommended integrations:\n"));
113
+ console.log(chalk.dim(" These are optional but recommended. Saying yes records the intent"));
114
+ console.log(chalk.dim(" in config and prints install commands at the end.\n"));
115
+ const integrations = {};
116
+ if (prefill.codebaseMemoryMcp === undefined) {
117
+ const cbmAnswer = await rl.question(" Install codebase-memory-mcp (call graphs, code intelligence)? (Y/n) ");
118
+ integrations.codebase_memory_mcp =
119
+ cbmAnswer.trim().toLowerCase() !== "n";
120
+ }
121
+ else {
122
+ integrations.codebase_memory_mcp = prefill.codebaseMemoryMcp;
123
+ }
124
+ if (prefill.cavemanPlugin === undefined) {
125
+ const cavemanPluginAnswer = await rl.question(" Install caveman skill plugin (Claude Code marketplace)? (y/N) ");
126
+ integrations.caveman_plugin =
127
+ cavemanPluginAnswer.trim().toLowerCase() === "y";
128
+ }
129
+ else {
130
+ integrations.caveman_plugin = prefill.cavemanPlugin;
131
+ }
132
+ config.project.integrations = integrations;
133
+ // 3. Surface
134
+ await askSurface(rl, config, prefill.detectedSurface);
135
+ // 4. Caveman level
136
+ const currentCaveman = config.project.caveman ?? "lite";
137
+ const cavemanAnswer = await rl.question(` Token optimization (caveman)? (none/lite/full/ultra) [${currentCaveman}]: `);
138
+ config.project.caveman = (cavemanAnswer.trim() ? cavemanAnswer.trim().toLowerCase() : currentCaveman);
139
+ // 5. Commit style
140
+ const commitAnswer = await rl.question(` Commit style? (conventional/angular/custom) [${config.project.commit_style}]: `);
141
+ if (commitAnswer.trim()) {
142
+ config.project.commit_style = commitAnswer.trim();
143
+ }
144
+ // 6. Design tool + brand capture
145
+ await runSections(rl, config, root, ["design"]);
146
+ rl.close();
147
+ console.log();
148
+ return config;
149
+ }
150
+ async function askSurface(rl, config, detected) {
151
+ const prompt = detected
152
+ ? ` Project surface: ${detected} — confirm or override (tui/web/mobile/api/mixed/Enter to accept): `
153
+ : ` Project surface? (tui/web/mobile/api/mixed/skip) `;
154
+ const answer = (await rl.question(prompt)).trim().toLowerCase();
155
+ if (!answer) {
156
+ if (detected)
157
+ config.project.surface = detected;
158
+ return;
159
+ }
160
+ if (answer === "skip")
161
+ return;
162
+ if (PROMPT_SURFACES.includes(answer)) {
163
+ config.project.surface = answer;
164
+ }
165
+ }
166
+ //# sourceMappingURL=init-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-prompts.js","sourceRoot":"","sources":["../../src/core/init-prompts.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,5 @@ interface InitOptions {
8
8
  installCavemanPlugin?: boolean;
9
9
  }
10
10
  export declare function initProject(projectPath: string, options: InitOptions): Promise<void>;
11
- export declare function scanForSecrets(serialized: string): void;
12
11
  export {};
13
12
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AA4BA,UAAU,WAAW;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AA8KD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AA0DD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAWvD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AA4BA,UAAU,WAAW;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAoID,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf"}