@imix-js/taproot 0.5.1 → 0.7.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 (57) hide show
  1. package/README.md +39 -29
  2. package/dist/adapters/index.js +62 -35
  3. package/dist/adapters/index.js.map +1 -1
  4. package/dist/cli.js +8 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/commithook.js +69 -34
  7. package/dist/commands/commithook.js.map +1 -1
  8. package/dist/commands/init.d.ts +12 -2
  9. package/dist/commands/init.js +248 -46
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/truth-sign.js +32 -5
  12. package/dist/commands/truth-sign.js.map +1 -1
  13. package/dist/commands/update.js +156 -27
  14. package/dist/commands/update.js.map +1 -1
  15. package/dist/core/config.js +9 -4
  16. package/dist/core/config.js.map +1 -1
  17. package/dist/core/configuration.d.ts +4 -3
  18. package/dist/core/configuration.js +7 -5
  19. package/dist/core/configuration.js.map +1 -1
  20. package/dist/core/dor-runner.js +116 -2
  21. package/dist/core/dor-runner.js.map +1 -1
  22. package/dist/core/fs-walker.js +1 -1
  23. package/dist/core/fs-walker.js.map +1 -1
  24. package/dist/core/impl-reader.d.ts +1 -0
  25. package/dist/core/impl-reader.js +8 -0
  26. package/dist/core/impl-reader.js.map +1 -1
  27. package/dist/core/paths.d.ts +6 -0
  28. package/dist/core/paths.js +12 -0
  29. package/dist/core/paths.js.map +1 -0
  30. package/dist/core/test-cache.js +1 -1
  31. package/dist/core/test-cache.js.map +1 -1
  32. package/dist/core/version-check.d.ts +9 -0
  33. package/dist/core/version-check.js +43 -0
  34. package/dist/core/version-check.js.map +1 -0
  35. package/dist/validators/structure-rules.d.ts +1 -0
  36. package/dist/validators/structure-rules.js +15 -0
  37. package/dist/validators/structure-rules.js.map +1 -1
  38. package/docs/agents.md +2 -2
  39. package/docs/architecture.md +3 -3
  40. package/docs/cli.md +7 -7
  41. package/docs/configuration.md +6 -6
  42. package/docs/patterns.md +7 -7
  43. package/docs/security.md +4 -4
  44. package/docs/workflows.md +1 -1
  45. package/package.json +1 -1
  46. package/skills/backlog.md +7 -7
  47. package/skills/behaviour.md +2 -2
  48. package/skills/bug.md +2 -2
  49. package/skills/commit.md +16 -4
  50. package/skills/define-truth.md +24 -8
  51. package/skills/discover-truths.md +7 -7
  52. package/skills/guide.md +1 -1
  53. package/skills/implement.md +5 -5
  54. package/skills/ineed.md +21 -4
  55. package/skills/refine.md +3 -3
  56. package/skills/review-all.md +2 -2
  57. package/skills/status.md +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"commithook.js","sourceRoot":"","sources":["../../src/commands/commithook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commithook.js","sourceRoot":"","sources":["../../src/commands/commithook.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  import type { Command } from 'commander';
2
2
  import { type LanguagePack } from '../core/language.js';
3
3
  import { type AgentName } from '../adapters/index.js';
4
+ export declare function wrapperScript(): string;
5
+ export declare function hookScriptContent(): string;
4
6
  export declare const AVAILABLE_TEMPLATES: readonly ["webapp", "book-authoring", "cli-tool"];
5
7
  export type TemplateName = typeof AVAILABLE_TEMPLATES[number];
8
+ export declare const DOMAIN_PRESETS: Record<string, {
9
+ label: string;
10
+ vocabulary: Record<string, string>;
11
+ }>;
12
+ export declare const AVAILABLE_PRESETS: string[];
6
13
  export declare const SKILL_FILES: string[];
7
14
  export declare function applyTemplate(templateName: string, cwd: string, force?: boolean): string[];
8
15
  export declare function registerInit(program: Command): void;
@@ -12,6 +19,9 @@ export declare function runInit(options: {
12
19
  withCi?: string;
13
20
  withSkills?: boolean;
14
21
  agent?: AgentName | AgentName[] | 'all';
22
+ vocabulary?: Record<string, string>;
23
+ language?: string;
24
+ preset?: string;
15
25
  }): string[];
16
- export declare function installSkills(targetSkillsDir: string, force?: boolean, pack?: LanguagePack | null, vocab?: Record<string, string> | null): string[];
17
- export declare function installDocs(targetDocsDir: string, force?: boolean): string[];
26
+ export declare function installSkills(targetSkillsDir: string, force?: boolean, pack?: LanguagePack | null, vocab?: Record<string, string> | null, displayDir?: string): string[];
27
+ export declare function installDocs(targetDocsDir: string, force?: boolean, displayDir?: string): string[];
@@ -10,6 +10,26 @@ import checkbox from '@inquirer/checkbox';
10
10
  import confirm from '@inquirer/confirm';
11
11
  import select from '@inquirer/select';
12
12
  const __dirname = dirname(fileURLToPath(import.meta.url));
13
+ export function wrapperScript() {
14
+ return [
15
+ '#!/bin/sh',
16
+ '# taproot binary resolver — maintained by taproot init/update, do not edit manually',
17
+ '# Prefers globally installed/linked taproot binary; falls back to project-pinned version via npx.',
18
+ 'TAPROOT_SETTINGS="$(dirname "$0")/../../settings.yaml"',
19
+ "TAPROOT_VERSION=$(grep '^taproot_version:' \"$TAPROOT_SETTINGS\" 2>/dev/null | awk '{print $2}' | tr -d \"'\\\"\")",
20
+ 'if command -v taproot >/dev/null 2>&1; then',
21
+ ' exec taproot "$@"',
22
+ 'elif [ -n "$TAPROOT_VERSION" ]; then',
23
+ ' exec npx --yes "@imix-js/taproot@$TAPROOT_VERSION" "$@"',
24
+ 'else',
25
+ ' exec npx --yes "@imix-js/taproot" "$@"',
26
+ 'fi',
27
+ '',
28
+ ].join('\n');
29
+ }
30
+ export function hookScriptContent() {
31
+ return `#!/bin/sh\nexec ./taproot/agent/bin/taproot commithook\n`;
32
+ }
13
33
  // Bundled skills directory — two levels up from src/commands/ → package root → skills/
14
34
  const BUNDLED_SKILLS_DIR = resolve(__dirname, '..', '..', 'skills');
15
35
  // Bundled docs directory — two levels up from src/commands/ → package root → docs/
@@ -17,6 +37,30 @@ const BUNDLED_DOCS_DIR = resolve(__dirname, '..', '..', 'docs');
17
37
  // Bundled examples directory — two levels up from src/commands/ → package root → examples/
18
38
  const BUNDLED_EXAMPLES_DIR = resolve(__dirname, '..', '..', 'examples');
19
39
  export const AVAILABLE_TEMPLATES = ['webapp', 'book-authoring', 'cli-tool'];
40
+ export const DOMAIN_PRESETS = {
41
+ coding: { label: 'Coding / software', vocabulary: {} },
42
+ blogging: {
43
+ label: 'Blogging',
44
+ vocabulary: { 'source files': 'posts', tests: 'editorial reviews', implementation: 'writing', build: 'publish' },
45
+ },
46
+ 'book-authoring': {
47
+ label: 'Book authoring',
48
+ vocabulary: { 'source files': 'chapters', tests: 'manuscript reviews', implementation: 'writing', build: 'compile draft' },
49
+ },
50
+ 'technical-writing': {
51
+ label: 'Technical writing',
52
+ vocabulary: { 'source files': 'documents', tests: 'reviews', implementation: 'writing', build: 'publish' },
53
+ },
54
+ };
55
+ export const AVAILABLE_PRESETS = Object.keys(DOMAIN_PRESETS);
56
+ const AVAILABLE_LANGUAGES = [
57
+ { name: 'No — English only', value: '' },
58
+ { name: 'German', value: 'de' },
59
+ { name: 'French', value: 'fr' },
60
+ { name: 'Spanish', value: 'es' },
61
+ { name: 'Japanese', value: 'ja' },
62
+ { name: 'Portuguese', value: 'pt' },
63
+ ];
20
64
  export const SKILL_FILES = [
21
65
  'analyse-change.md',
22
66
  'review.md',
@@ -58,16 +102,19 @@ export function applyTemplate(templateName, cwd, force = false) {
58
102
  cpSync(srcTaprootDir, destTaprootDir, { recursive: true });
59
103
  messages.push(`created taproot/ (from ${templateName} template)`);
60
104
  }
61
- const srcSettings = join(templateDir, '.taproot', 'settings.yaml');
62
- const destSettings = join(cwd, '.taproot', 'settings.yaml');
105
+ // Check new layout (taproot/settings.yaml) first, then fall back to old layout (.taproot/settings.yaml)
106
+ const srcSettingsNew = join(templateDir, 'taproot', 'settings.yaml');
107
+ const srcSettingsOld = join(templateDir, '.taproot', 'settings.yaml');
108
+ const srcSettings = existsSync(srcSettingsNew) ? srcSettingsNew : srcSettingsOld;
109
+ const destSettings = join(cwd, 'taproot', 'settings.yaml');
63
110
  if (existsSync(srcSettings)) {
64
111
  if (!existsSync(destSettings) || force) {
65
- mkdirSync(join(cwd, '.taproot'), { recursive: true });
112
+ mkdirSync(join(cwd, 'taproot'), { recursive: true });
66
113
  cpSync(srcSettings, destSettings);
67
- messages.push(`created .taproot/settings.yaml (from ${templateName} template)`);
114
+ messages.push(`created taproot/settings.yaml (from ${templateName} template)`);
68
115
  }
69
116
  else {
70
- messages.push(`exists .taproot/settings.yaml (kept — template settings not applied)`);
117
+ messages.push(`exists taproot/settings.yaml (kept — template settings not applied)`);
71
118
  }
72
119
  }
73
120
  return messages;
@@ -81,27 +128,30 @@ export function registerInit(program) {
81
128
  .option('--with-skills', 'Install canonical skill definitions into taproot/skills/')
82
129
  .option('--agent <name>', `Generate agent adapter (${[...ALL_AGENTS, 'all'].join('|')})`)
83
130
  .option('--template <type>', `Start from a template (${AVAILABLE_TEMPLATES.join('|')})`)
131
+ .option('--preset <name>', `Apply a domain preset (${AVAILABLE_PRESETS.join('|')})`)
84
132
  .option('--force', 'Overwrite existing files when applying a template')
85
133
  .option('--path <path>', 'Directory to initialize in', process.cwd())
86
134
  .action(async (options) => {
135
+ // Fail early: check git repository before any user interaction (AC-13)
136
+ if (!existsSync(join(options.path, '.git'))) {
137
+ throw new Error('No git repository found. Run `git init` first, then re-run `taproot init`.');
138
+ }
87
139
  // Template prompt — only when taproot/ doesn't exist yet (fresh init)
88
140
  let template = options.template;
89
141
  if (!template) {
90
142
  const taprootDir = resolve(options.path, DEFAULT_CONFIG.root);
91
143
  if (!existsSync(taprootDir)) {
92
- const wantsTemplate = await confirm({
144
+ const chosen = await select({
93
145
  message: 'Start from a template?',
94
- default: false,
146
+ choices: [
147
+ { name: 'No template — start with an empty hierarchy', value: '' },
148
+ { name: 'webapp — SaaS web application (user auth, profiles)', value: 'webapp' },
149
+ { name: 'book-authoring — Book or content project (manuscript, research, publishing)', value: 'book-authoring' },
150
+ { name: 'cli-tool — Command-line tool or developer utility', value: 'cli-tool' },
151
+ ],
95
152
  });
96
- if (wantsTemplate) {
97
- template = await select({
98
- message: 'Choose a template:',
99
- choices: [
100
- { name: 'webapp — User auth, profiles, common web app patterns', value: 'webapp' },
101
- { name: 'book-authoring — Manuscript, chapters, editorial review', value: 'book-authoring' },
102
- { name: 'cli-tool — Command dispatch, help output, configuration', value: 'cli-tool' },
103
- ],
104
- });
153
+ if (chosen) {
154
+ template = chosen;
105
155
  }
106
156
  }
107
157
  }
@@ -136,6 +186,76 @@ export function registerInit(program) {
136
186
  agent = selected;
137
187
  }
138
188
  }
189
+ // Domain preset prompt — skip if --preset flag given or vocabulary already exists
190
+ let resolvedVocabulary;
191
+ let resolvedLanguage;
192
+ if (options.preset !== undefined) {
193
+ // Non-interactive: validate and apply
194
+ if (!AVAILABLE_PRESETS.includes(options.preset)) {
195
+ throw new Error(`Unknown preset: '${options.preset}'. Available: ${AVAILABLE_PRESETS.join(', ')}`);
196
+ }
197
+ const presetDef = DOMAIN_PRESETS[options.preset];
198
+ resolvedVocabulary = presetDef != null ? presetDef.vocabulary : {};
199
+ }
200
+ else {
201
+ // Check if vocabulary already exists in settings.yaml (idempotent re-run)
202
+ // Support both new layout (taproot/settings.yaml) and old layout (.taproot/settings.yaml)
203
+ const newSettingsPath = join(options.path, 'taproot', 'settings.yaml');
204
+ const configPath = existsSync(newSettingsPath)
205
+ ? newSettingsPath
206
+ : join(options.path, '.taproot', 'settings.yaml');
207
+ const alreadyHasVocab = existsSync(configPath) && (() => {
208
+ try {
209
+ const existing = yaml.load(readFileSync(configPath, 'utf-8'));
210
+ return existing && typeof existing === 'object' && 'vocabulary' in existing;
211
+ }
212
+ catch {
213
+ return false;
214
+ }
215
+ })();
216
+ if (alreadyHasVocab) {
217
+ process.stdout.write('exists vocabulary settings (kept — not overwritten)\n');
218
+ }
219
+ else {
220
+ // Interactive preset selection
221
+ const presetChoice = await select({
222
+ message: 'What kind of project is this? (Determines how taproot labels things like \'tests\' and \'source files\')',
223
+ choices: [
224
+ { name: 'Coding / software (default — no changes)', value: 'coding' },
225
+ { name: 'Blogging — source files → posts, tests → editorial reviews', value: 'blogging' },
226
+ { name: 'Book authoring — source files → chapters, tests → manuscript reviews', value: 'book-authoring' },
227
+ { name: 'Technical writing — source files → documents, tests → reviews', value: 'technical-writing' },
228
+ { name: 'Skip — I\'ll configure manually later', value: 'skip' },
229
+ ],
230
+ });
231
+ if (presetChoice !== 'coding' && presetChoice !== 'skip') {
232
+ const preset = DOMAIN_PRESETS[presetChoice];
233
+ const pairs = Object.entries(preset.vocabulary).map(([k, v]) => `${k}: ${v}`).join(' · ');
234
+ process.stdout.write(`\nThis will add to taproot/settings.yaml:\n ${pairs}\n\n`);
235
+ const confirmed = await confirm({ message: 'Apply this vocabulary preset?', default: true });
236
+ if (confirmed) {
237
+ resolvedVocabulary = preset.vocabulary;
238
+ }
239
+ else {
240
+ // Return to selection — simplest UX: just note it was skipped
241
+ process.stdout.write('Vocabulary preset not applied. You can configure it manually in taproot/settings.yaml\n');
242
+ }
243
+ }
244
+ else if (presetChoice === 'skip') {
245
+ process.stdout.write('Vocabulary and language can be configured in taproot/settings.yaml — see taproot/agent/docs/configuration.md\n');
246
+ }
247
+ }
248
+ // Language prompt (always shown unless vocabulary already existed)
249
+ if (!alreadyHasVocab) {
250
+ const langChoice = await select({
251
+ message: 'Non-English project?',
252
+ choices: AVAILABLE_LANGUAGES,
253
+ });
254
+ if (langChoice) {
255
+ resolvedLanguage = langChoice;
256
+ }
257
+ }
258
+ }
139
259
  let withHooks = options.withHooks;
140
260
  if (!withHooks) {
141
261
  withHooks = await confirm({
@@ -149,6 +269,8 @@ export function registerInit(program) {
149
269
  withCi: options.withCi,
150
270
  withSkills: options.withSkills,
151
271
  agent,
272
+ vocabulary: resolvedVocabulary,
273
+ language: resolvedLanguage,
152
274
  });
153
275
  for (const msg of created) {
154
276
  process.stdout.write(msg + '\n');
@@ -161,24 +283,52 @@ export function runInit(options) {
161
283
  if (!existsSync(join(cwd, '.git'))) {
162
284
  throw new Error('No git repository found. Run `git init` first, then re-run `taproot init`.');
163
285
  }
164
- const configPath = join(cwd, '.taproot', 'settings.yaml');
165
- const taprootDir = resolve(cwd, DEFAULT_CONFIG.root);
166
- const skillsDir = join(cwd, '.taproot', 'skills');
286
+ // Resolve preset → vocabulary (programmatic/non-interactive path)
287
+ let resolvedVocabulary = options.vocabulary;
288
+ const resolvedLanguage = options.language;
289
+ if (options.preset !== undefined) {
290
+ if (!AVAILABLE_PRESETS.includes(options.preset)) {
291
+ throw new Error(`Unknown preset: '${options.preset}'. Available: ${AVAILABLE_PRESETS.join(', ')}`);
292
+ }
293
+ const presetDef = DOMAIN_PRESETS[options.preset];
294
+ resolvedVocabulary = presetDef != null ? presetDef.vocabulary : {};
295
+ }
296
+ const taprootDir = resolve(cwd, 'taproot');
297
+ const specsDir = join(taprootDir, 'specs');
298
+ const agentDir = join(taprootDir, 'agent');
299
+ const configPath = join(taprootDir, 'settings.yaml');
300
+ const skillsDir = join(agentDir, 'skills');
167
301
  // Create taproot/ directory
168
302
  if (!existsSync(taprootDir)) {
169
303
  mkdirSync(taprootDir, { recursive: true });
170
- messages.push(`created ${DEFAULT_CONFIG.root}`);
304
+ messages.push('created taproot/');
305
+ }
306
+ else {
307
+ messages.push('exists taproot/');
308
+ }
309
+ // Create taproot/specs/ for the requirements hierarchy
310
+ if (!existsSync(specsDir)) {
311
+ mkdirSync(specsDir, { recursive: true });
312
+ messages.push('created taproot/specs/');
313
+ }
314
+ else {
315
+ messages.push('exists taproot/specs/');
316
+ }
317
+ // Create taproot/agent/ for skills and configuration
318
+ if (!existsSync(agentDir)) {
319
+ mkdirSync(agentDir, { recursive: true });
320
+ messages.push('created taproot/agent/');
171
321
  }
172
322
  else {
173
- messages.push(`exists ${DEFAULT_CONFIG.root}`);
323
+ messages.push('exists taproot/agent/');
174
324
  }
175
- // Ensure .taproot/ directory exists
176
- mkdirSync(join(cwd, '.taproot'), { recursive: true });
177
- // Write .taproot/settings.yaml
325
+ // Write taproot/settings.yaml
326
+ const pkgVersion = JSON.parse(readFileSync(resolve(__dirname, '..', '..', 'package.json'), 'utf-8')).version;
178
327
  if (!existsSync(configPath)) {
179
328
  const configForYaml = {
180
329
  version: DEFAULT_CONFIG.version,
181
- root: DEFAULT_CONFIG.root,
330
+ root: 'taproot/specs/',
331
+ cli: './taproot/agent/bin/taproot',
182
332
  commit_pattern: DEFAULT_CONFIG.commitPattern,
183
333
  commit_trailer: DEFAULT_CONFIG.commitTrailer,
184
334
  agents: DEFAULT_CONFIG.agents,
@@ -189,18 +339,49 @@ export function runInit(options) {
189
339
  allowed_behaviour_states: DEFAULT_CONFIG.validation.allowedBehaviourStates,
190
340
  allowed_impl_states: DEFAULT_CONFIG.validation.allowedImplStates,
191
341
  },
342
+ taproot_version: pkgVersion,
192
343
  };
344
+ if (resolvedVocabulary && Object.keys(resolvedVocabulary).length > 0) {
345
+ configForYaml.vocabulary = resolvedVocabulary;
346
+ }
347
+ if (resolvedLanguage) {
348
+ configForYaml.language = resolvedLanguage;
349
+ }
193
350
  writeFileSync(configPath, yaml.dump(configForYaml));
194
- messages.push('created .taproot/settings.yaml');
351
+ messages.push('created taproot/settings.yaml');
195
352
  }
196
353
  else {
197
- messages.push('exists .taproot/settings.yaml');
354
+ // Append vocabulary/language to existing settings.yaml if not already present
355
+ let existingConfig = {};
356
+ try {
357
+ existingConfig = yaml.load(readFileSync(configPath, 'utf-8')) ?? {};
358
+ }
359
+ catch { /* use empty object */ }
360
+ let updated = false;
361
+ if (resolvedVocabulary && Object.keys(resolvedVocabulary).length > 0 && !('vocabulary' in existingConfig)) {
362
+ existingConfig.vocabulary = resolvedVocabulary;
363
+ updated = true;
364
+ }
365
+ if (resolvedLanguage && !('language' in existingConfig)) {
366
+ existingConfig.language = resolvedLanguage;
367
+ updated = true;
368
+ }
369
+ if (updated) {
370
+ writeFileSync(configPath, yaml.dump(existingConfig));
371
+ messages.push('updated taproot/settings.yaml (vocabulary/language added)');
372
+ }
373
+ else {
374
+ messages.push('exists taproot/settings.yaml');
375
+ }
198
376
  }
377
+ // Remind to run taproot update if vocabulary or language was applied
378
+ const appliedPreset = resolvedVocabulary && Object.keys(resolvedVocabulary).length > 0;
379
+ const appliedLanguage = !!resolvedLanguage;
199
380
  // Write CONVENTIONS.md
200
381
  const conventionsPath = join(taprootDir, 'CONVENTIONS.md');
201
382
  if (!existsSync(conventionsPath)) {
202
383
  writeFileSync(conventionsPath, buildConventionsDoc());
203
- messages.push(`created ${DEFAULT_CONFIG.root}CONVENTIONS.md`);
384
+ messages.push('created taproot/CONVENTIONS.md');
204
385
  }
205
386
  // Create global-truths/ with a hint README
206
387
  const globalTruthsDir = join(taprootDir, 'global-truths');
@@ -208,11 +389,11 @@ export function runInit(options) {
208
389
  if (!existsSync(globalTruthsDir)) {
209
390
  mkdirSync(globalTruthsDir, { recursive: true });
210
391
  writeFileSync(globalTruthsReadme, buildGlobalTruthsReadme());
211
- messages.push(`created ${DEFAULT_CONFIG.root}global-truths/`);
212
- messages.push(` Add shared truths here — domain terms, business rules, project conventions.`);
213
- messages.push(` Scope by filename: glossary_intent.md · rules_behaviour.md · choices_impl.md`);
392
+ messages.push('created taproot/global-truths/');
393
+ messages.push(' Add shared truths here — domain terms, business rules, project conventions.');
394
+ messages.push(' Scope by filename: glossary_intent.md · rules_behaviour.md · choices_impl.md');
214
395
  }
215
- // Install skill definitions — always enabled when an adapter that references .taproot/skills/ is requested
396
+ // Install skill definitions — always enabled when an adapter that references taproot/agent/skills/ is requested
216
397
  const agentList = options.agent === 'all'
217
398
  ? ALL_AGENTS
218
399
  : Array.isArray(options.agent)
@@ -222,8 +403,17 @@ export function runInit(options) {
222
403
  : [];
223
404
  const needsSkills = options.withSkills || agentList.includes('claude') || agentList.includes('gemini');
224
405
  if (needsSkills) {
225
- messages.push(...installSkills(skillsDir));
226
- messages.push(...installDocs(join(cwd, '.taproot', 'docs')));
406
+ messages.push(...installSkills(skillsDir, false, null, null, 'taproot/agent/skills'));
407
+ messages.push(...installDocs(join(agentDir, 'docs'), false, 'taproot/agent/docs'));
408
+ }
409
+ // taproot/agent/bin/taproot wrapper script (always installed — hook and local dev depend on it)
410
+ const binDir = join(agentDir, 'bin');
411
+ const wrapperPath = join(binDir, 'taproot');
412
+ if (!existsSync(binDir))
413
+ mkdirSync(binDir, { recursive: true });
414
+ if (!existsSync(wrapperPath)) {
415
+ writeFileSync(wrapperPath, wrapperScript(), { mode: 0o755 });
416
+ messages.push('created taproot/agent/bin/taproot');
227
417
  }
228
418
  // Git pre-commit hook
229
419
  if (options.withHooks) {
@@ -231,8 +421,7 @@ export function runInit(options) {
231
421
  const hookPath = join(hookDir, 'pre-commit');
232
422
  if (existsSync(join(cwd, '.git')) && !existsSync(hookPath)) {
233
423
  mkdirSync(hookDir, { recursive: true });
234
- const pkgVersion = JSON.parse(readFileSync(resolve(__dirname, '..', '..', 'package.json'), 'utf-8')).version;
235
- writeFileSync(hookPath, `#!/bin/sh\nnpx @imix-js/taproot@${pkgVersion} commithook\n`, { mode: 0o755 });
424
+ writeFileSync(hookPath, hookScriptContent(), { mode: 0o755 });
236
425
  messages.push('created .git/hooks/pre-commit');
237
426
  }
238
427
  }
@@ -292,10 +481,14 @@ export function runInit(options) {
292
481
  }
293
482
  messages.push('');
294
483
  messages.push('Taproot initialized. Run `taproot validate-structure` to verify.');
484
+ if (appliedPreset || appliedLanguage) {
485
+ messages.push(' Run `taproot update` to apply vocabulary/language substitutions to skill files.');
486
+ }
295
487
  return messages;
296
488
  }
297
- export function installSkills(targetSkillsDir, force = false, pack, vocab) {
489
+ export function installSkills(targetSkillsDir, force = false, pack, vocab, displayDir) {
298
490
  const messages = [];
491
+ const prefix = displayDir ?? '.taproot/skills';
299
492
  if (!existsSync(BUNDLED_SKILLS_DIR)) {
300
493
  messages.push(`warning Skills directory not found at ${BUNDLED_SKILLS_DIR} — skipping`);
301
494
  return messages;
@@ -322,20 +515,21 @@ export function installSkills(targetSkillsDir, force = false, pack, vocab) {
322
515
  }
323
516
  if (!existsSync(dest)) {
324
517
  writeFileSync(dest, content);
325
- messages.push(`created .taproot/skills/${filename}`);
518
+ messages.push(`created ${prefix}/${filename}`);
326
519
  }
327
520
  else if (force) {
328
521
  writeFileSync(dest, content);
329
- messages.push(`updated .taproot/skills/${filename}`);
522
+ messages.push(`updated ${prefix}/${filename}`);
330
523
  }
331
524
  else {
332
- messages.push(`exists .taproot/skills/${filename}`);
525
+ messages.push(`exists ${prefix}/${filename}`);
333
526
  }
334
527
  }
335
528
  return messages;
336
529
  }
337
- export function installDocs(targetDocsDir, force = false) {
530
+ export function installDocs(targetDocsDir, force = false, displayDir) {
338
531
  const messages = [];
532
+ const prefix = displayDir ?? '.taproot/docs';
339
533
  if (!existsSync(BUNDLED_DOCS_DIR)) {
340
534
  messages.push(`warning Docs directory not found at ${BUNDLED_DOCS_DIR} — skipping`);
341
535
  return messages;
@@ -347,14 +541,14 @@ export function installDocs(targetDocsDir, force = false) {
347
541
  const content = readFileSync(src, 'utf-8');
348
542
  if (!existsSync(dest)) {
349
543
  writeFileSync(dest, content);
350
- messages.push(`created .taproot/docs/${filename}`);
544
+ messages.push(`created ${prefix}/${filename}`);
351
545
  }
352
546
  else if (force) {
353
547
  writeFileSync(dest, content);
354
- messages.push(`updated .taproot/docs/${filename}`);
548
+ messages.push(`updated ${prefix}/${filename}`);
355
549
  }
356
550
  else {
357
- messages.push(`exists .taproot/docs/${filename}`);
551
+ messages.push(`exists ${prefix}/${filename}`);
358
552
  }
359
553
  }
360
554
  return messages;
@@ -362,8 +556,13 @@ export function installDocs(targetDocsDir, force = false) {
362
556
  function buildGlobalTruthsReadme() {
363
557
  return `# Global Truths
364
558
 
559
+ > **Taproot-managed directory.** Do not add \`intent.md\`, \`usecase.md\`, or \`impl.md\` files here.
560
+ > This directory is provided by taproot as a truth store — it is not a hierarchy node.
561
+ > Truths are automatically checked at commit time for every commit level — no configuration needed.
562
+
365
563
  Shared facts that apply across the \`taproot/\` hierarchy — domain concepts, business rules,
366
- entity definitions, and project conventions.
564
+ entity definitions, and project conventions. Add truth files here directly; no intent or behaviour
565
+ spec is needed.
367
566
 
368
567
  ## How to add a truth
369
568
 
@@ -380,10 +579,13 @@ Files without a scope suffix default to intent scope (broadest).
380
579
  ## Examples
381
580
 
382
581
  - \`glossary_intent.md\` — term definitions used across all specs
582
+ - \`ux-principles_intent.md\` — design principles that every feature must respect
383
583
  - \`business-rules_behaviour.md\` — rules that acceptance criteria must respect
384
- - \`tech-choices_impl.md\` — conventions that apply only to implementation code
584
+ - \`architecture_impl.md\` — conventions that apply only to implementation code
385
585
 
386
586
  Truth content is free-form markdown — prose, tables, bullet lists, and headings are all valid.
587
+
588
+ Run \`/tr-define-truth\` to capture a new truth interactively.
387
589
  `;
388
590
  }
389
591
  function buildConventionsDoc() {