@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.
- package/README.md +39 -29
- package/dist/adapters/index.js +62 -35
- package/dist/adapters/index.js.map +1 -1
- package/dist/cli.js +8 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/commithook.js +69 -34
- package/dist/commands/commithook.js.map +1 -1
- package/dist/commands/init.d.ts +12 -2
- package/dist/commands/init.js +248 -46
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/truth-sign.js +32 -5
- package/dist/commands/truth-sign.js.map +1 -1
- package/dist/commands/update.js +156 -27
- package/dist/commands/update.js.map +1 -1
- package/dist/core/config.js +9 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/configuration.d.ts +4 -3
- package/dist/core/configuration.js +7 -5
- package/dist/core/configuration.js.map +1 -1
- package/dist/core/dor-runner.js +116 -2
- package/dist/core/dor-runner.js.map +1 -1
- package/dist/core/fs-walker.js +1 -1
- package/dist/core/fs-walker.js.map +1 -1
- package/dist/core/impl-reader.d.ts +1 -0
- package/dist/core/impl-reader.js +8 -0
- package/dist/core/impl-reader.js.map +1 -1
- package/dist/core/paths.d.ts +6 -0
- package/dist/core/paths.js +12 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/test-cache.js +1 -1
- package/dist/core/test-cache.js.map +1 -1
- package/dist/core/version-check.d.ts +9 -0
- package/dist/core/version-check.js +43 -0
- package/dist/core/version-check.js.map +1 -0
- package/dist/validators/structure-rules.d.ts +1 -0
- package/dist/validators/structure-rules.js +15 -0
- package/dist/validators/structure-rules.js.map +1 -1
- package/docs/agents.md +2 -2
- package/docs/architecture.md +3 -3
- package/docs/cli.md +7 -7
- package/docs/configuration.md +6 -6
- package/docs/patterns.md +7 -7
- package/docs/security.md +4 -4
- package/docs/workflows.md +1 -1
- package/package.json +1 -1
- package/skills/backlog.md +7 -7
- package/skills/behaviour.md +2 -2
- package/skills/bug.md +2 -2
- package/skills/commit.md +16 -4
- package/skills/define-truth.md +24 -8
- package/skills/discover-truths.md +7 -7
- package/skills/guide.md +1 -1
- package/skills/implement.md +5 -5
- package/skills/ineed.md +21 -4
- package/skills/refine.md +3 -3
- package/skills/review-all.md +2 -2
- package/skills/status.md +2 -2
package/README.md
CHANGED
|
@@ -10,9 +10,46 @@ AI coding agents generate code fast — but six months later, nobody knows *why*
|
|
|
10
10
|
|
|
11
11
|
Taproot keeps requirements as first-class files in your repo. The agent writes the spec, writes the code, and git refuses to accept one without the other.
|
|
12
12
|
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @imix-js/taproot init # installs agent adapter + pre-commit hook
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then in your agent:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/tr-ineed user authentication # describe a requirement → spec written + placed
|
|
23
|
+
/tr-implement taproot/auth/ # implement it: code + tests + traceability, committed
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
That's the loop. Spec first, code second, git enforces both.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/tr-guide ← onboarding walkthrough
|
|
32
|
+
/tr-status ← health dashboard: coverage, orphans, stale specs
|
|
33
|
+
/tr-discover ← reverse-engineer an existing codebase into taproot
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Full workflow guide: [docs/workflows.md](docs/workflows.md)
|
|
37
|
+
|
|
38
|
+
## How enforcement works
|
|
39
|
+
|
|
40
|
+
`taproot init` installs a pre-commit hook. It runs automatically on every `git commit` — no commands to invoke:
|
|
41
|
+
|
|
42
|
+
| Commit type | Gate | What it checks |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| Declaring a new impl (`impl.md` only) | **DoR** — Definition of Ready | Behaviour spec is `specified`; required sections present; custom conditions in `settings.yaml` |
|
|
45
|
+
| Committing source code | **DoD** — Definition of Done | Tests pass; all configured conditions resolved and recorded |
|
|
46
|
+
| Committing specs (`intent.md`, `usecase.md`) | **Truth check** | Staged specs are consistent with `taproot/global-truths/` |
|
|
47
|
+
|
|
48
|
+
Code that fails these checks doesn't reach the repo.
|
|
49
|
+
|
|
13
50
|
## Concepts
|
|
14
51
|
|
|
15
|
-
>
|
|
52
|
+
> Already know what Intent, Behaviour, and Implementation mean? [Jump to Why it matters ↓](#why-it-matters)
|
|
16
53
|
|
|
17
54
|
**Intent** — the business goal behind a feature, written from a user perspective.
|
|
18
55
|
Example: `password-reset` — *Allow users to recover access to their account*
|
|
@@ -26,11 +63,9 @@ Example: `email-trigger/impl.md` lists the source files and the commit that buil
|
|
|
26
63
|
**Global truth** — a project-wide fact enforced at every commit (business rule, entity definition, project convention), stored in `taproot/global-truths/`.
|
|
27
64
|
Example: *prices are always exclusive of VAT* — a spec that contradicts this is blocked before it merges
|
|
28
65
|
|
|
29
|
-
**Backlog** — a lightweight scratchpad for ideas and deferred work captured mid-session, stored in
|
|
66
|
+
**Backlog** — a lightweight scratchpad for ideas and deferred work captured mid-session, stored in `taproot/agent/backlog.md` — separate from the requirement hierarchy.
|
|
30
67
|
Example: `/tr-backlog "consider a caching layer"` captures the thought without interrupting flow
|
|
31
68
|
|
|
32
|
-
**Enforcement** — taproot installs a pre-commit hook when you run `taproot init`. On every `git commit`, it automatically checks that your code has a traceable spec, the spec meets completion gates, and any project-wide truths are respected. Code that fails these checks doesn't reach the repo. Nothing to invoke — it runs in the background.
|
|
33
|
-
|
|
34
69
|
<details>
|
|
35
70
|
<summary>Further reading</summary>
|
|
36
71
|
|
|
@@ -40,31 +75,6 @@ Example: `/tr-backlog "consider a caching layer"` captures the thought without i
|
|
|
40
75
|
|
|
41
76
|
</details>
|
|
42
77
|
|
|
43
|
-
## Quick Start
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
npx @imix-js/taproot init # installs agent adapter + pre-commit hook
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Then in your agent:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
/tr-ineed user authentication # describe a requirement → spec written + placed
|
|
53
|
-
/tr-implement taproot/auth/ # implement it: code + tests + traceability, committed
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
That's the loop. Spec first, code second, git enforces both.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
/tr-guide ← onboarding walkthrough
|
|
62
|
-
/tr-status ← health dashboard: coverage, orphans, stale specs
|
|
63
|
-
/tr-discover ← reverse-engineer an existing codebase into taproot
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Full workflow guide: [docs/workflows.md](docs/workflows.md)
|
|
67
|
-
|
|
68
78
|
## Why it matters
|
|
69
79
|
|
|
70
80
|
- **Ask "why does this code exist?"** and get a structured answer — intent, actor, acceptance criteria — not a two-year-old git blame
|
package/dist/adapters/index.js
CHANGED
|
@@ -11,7 +11,14 @@ import { fileURLToPath } from 'url';
|
|
|
11
11
|
import yaml from 'js-yaml';
|
|
12
12
|
import { SKILL_FILES } from '../commands/init.js';
|
|
13
13
|
import { loadConfig } from '../core/config.js';
|
|
14
|
+
import { resolveAgentDir } from '../core/paths.js';
|
|
14
15
|
import { loadLanguagePack, substituteTokens, applyVocabulary, getStructuralKeys } from '../core/language.js';
|
|
16
|
+
/** Returns the relative skills path for use in generated adapter content. */
|
|
17
|
+
function resolveSkillsRelPath(projectRoot, filename) {
|
|
18
|
+
const agentDir = resolveAgentDir(projectRoot);
|
|
19
|
+
const isNewLayout = agentDir === join(projectRoot, 'taproot', 'agent');
|
|
20
|
+
return isNewLayout ? `taproot/agent/skills/${filename}` : `.taproot/skills/${filename}`;
|
|
21
|
+
}
|
|
15
22
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
23
|
const BUNDLED_SKILLS_DIR = resolve(__dirname, '..', '..', 'skills');
|
|
17
24
|
// Markers for idempotent section injection into existing files
|
|
@@ -95,18 +102,18 @@ function generateClaudeAdapter(skills, projectRoot, cli) {
|
|
|
95
102
|
for (const skill of skills) {
|
|
96
103
|
const destPath = join(targetDir, `tr-${skill.filename}`);
|
|
97
104
|
const existed = existsSync(destPath);
|
|
98
|
-
const content = buildClaudeSkillFile(skill);
|
|
105
|
+
const content = buildClaudeSkillFile(skill, projectRoot, cli);
|
|
99
106
|
writeFileSync(destPath, content, 'utf-8');
|
|
100
107
|
files.push({ path: destPath, status: existed ? 'updated' : 'created' });
|
|
101
108
|
}
|
|
102
109
|
// Configuration Quick Reference — a standalone reference file (not a skill launcher)
|
|
103
110
|
const refPath = join(targetDir, 'tr-taproot.md');
|
|
104
111
|
const refExisted = existsSync(refPath);
|
|
105
|
-
writeFileSync(refPath, buildClaudeConfigRefFile(cli), 'utf-8');
|
|
112
|
+
writeFileSync(refPath, buildClaudeConfigRefFile(cli, projectRoot), 'utf-8');
|
|
106
113
|
files.push({ path: refPath, status: refExisted ? 'updated' : 'created' });
|
|
107
114
|
return { agent: 'claude', files };
|
|
108
115
|
}
|
|
109
|
-
function buildClaudeConfigRefFile(cli) {
|
|
116
|
+
function buildClaudeConfigRefFile(cli, projectRoot) {
|
|
110
117
|
return `---
|
|
111
118
|
name: 'tr-taproot'
|
|
112
119
|
description: 'Taproot configuration quick reference — settings.yaml options and how to apply them'
|
|
@@ -116,26 +123,32 @@ description: 'Taproot configuration quick reference — settings.yaml options an
|
|
|
116
123
|
|
|
117
124
|
This file is a quick reference for configuring taproot. Read it when asked to change taproot settings (language, vocabulary, definition of done, etc.).
|
|
118
125
|
|
|
119
|
-
${buildConfigQuickRef(cli)}
|
|
126
|
+
${buildConfigQuickRef(cli, projectRoot)}
|
|
120
127
|
`;
|
|
121
128
|
}
|
|
122
|
-
function buildClaudeSkillFile(skill) {
|
|
129
|
+
function buildClaudeSkillFile(skill, projectRoot, cli) {
|
|
130
|
+
const taprootBin = cli ?? 'taproot';
|
|
123
131
|
const overviewStep = TREE_MODIFYING_SKILLS.has(skill.name)
|
|
124
|
-
?
|
|
132
|
+
? `\n7. Run \`${taprootBin} overview\` to update @{project-root}/taproot/OVERVIEW.md with the current project state`
|
|
133
|
+
: '';
|
|
134
|
+
const skillPath = resolveSkillsRelPath(projectRoot, skill.filename);
|
|
135
|
+
const invocationNote = cli
|
|
136
|
+
? `\n<!-- taproot:cli-invocation: ${cli} -->\n**CLI:** All taproot commands in this skill must use \`${cli}\` instead of bare \`taproot\`.\n`
|
|
125
137
|
: '';
|
|
126
138
|
return `---
|
|
127
139
|
name: 'tr-${skill.name}'
|
|
128
140
|
description: '${skill.description.replace(/'/g, "\\'")}'
|
|
129
141
|
---
|
|
130
|
-
|
|
142
|
+
${invocationNote}
|
|
131
143
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS EXACTLY:
|
|
132
144
|
|
|
133
145
|
<steps CRITICAL="TRUE">
|
|
134
|
-
1. LOAD the FULL skill file at @{project-root}
|
|
146
|
+
1. LOAD the FULL skill file at @{project-root}/${skillPath}
|
|
135
147
|
2. READ its entire contents — this contains the complete skill definition with steps, inputs, and output format
|
|
136
148
|
3. FOLLOW every step in the ## Steps section precisely and in order
|
|
137
149
|
4. When the skill references other taproot commands (e.g. \`/taproot:intent\`), use the corresponding \`/tr-intent\` command instead
|
|
138
|
-
5. Save all outputs to the paths specified in the skill's ## Output section
|
|
150
|
+
5. Save all outputs to the paths specified in the skill's ## Output section
|
|
151
|
+
6. When the skill says to run \`taproot <cmd>\`, run \`${taprootBin} <cmd>\` instead${overviewStep}
|
|
139
152
|
</steps>
|
|
140
153
|
`;
|
|
141
154
|
}
|
|
@@ -146,14 +159,14 @@ function generateCursorAdapter(skills, projectRoot, cli) {
|
|
|
146
159
|
mkdirSync(targetDir, { recursive: true });
|
|
147
160
|
const destPath = join(targetDir, 'taproot.md');
|
|
148
161
|
const existed = existsSync(destPath);
|
|
149
|
-
const content = buildCursorRulesFile(skills, cli);
|
|
162
|
+
const content = buildCursorRulesFile(skills, cli, projectRoot);
|
|
150
163
|
writeFileSync(destPath, content, 'utf-8');
|
|
151
164
|
return {
|
|
152
165
|
agent: 'cursor',
|
|
153
166
|
files: [{ path: destPath, status: existed ? 'updated' : 'created' }],
|
|
154
167
|
};
|
|
155
168
|
}
|
|
156
|
-
function buildCursorRulesFile(skills, cli) {
|
|
169
|
+
function buildCursorRulesFile(skills, cli, projectRoot) {
|
|
157
170
|
const skillIndex = skills.map(s => `- \`@taproot ${s.name}\` — ${s.description}`).join('\n');
|
|
158
171
|
const skillSections = skills.map(s => `
|
|
159
172
|
---
|
|
@@ -162,9 +175,11 @@ function buildCursorRulesFile(skills, cli) {
|
|
|
162
175
|
|
|
163
176
|
${s.content}
|
|
164
177
|
`.trimStart()).join('\n');
|
|
178
|
+
const newLayout = projectRoot != null && resolveAgentDir(projectRoot) === join(projectRoot, 'taproot', 'agent');
|
|
179
|
+
const globs = newLayout ? '["taproot/**"]' : '["taproot/**", ".taproot/settings.yaml"]';
|
|
165
180
|
return `---
|
|
166
181
|
description: Taproot requirement hierarchy — skill definitions and document conventions
|
|
167
|
-
globs:
|
|
182
|
+
globs: ${globs}
|
|
168
183
|
alwaysApply: false
|
|
169
184
|
---
|
|
170
185
|
|
|
@@ -184,7 +199,7 @@ ${skillIndex}
|
|
|
184
199
|
- Validate with: \`taproot validate-structure\` and \`taproot validate-format\`
|
|
185
200
|
- See coverage: \`taproot coverage\`
|
|
186
201
|
|
|
187
|
-
${buildConfigQuickRef(cli)}
|
|
202
|
+
${buildConfigQuickRef(cli, projectRoot)}
|
|
188
203
|
|
|
189
204
|
${skillSections}
|
|
190
205
|
`.trimStart();
|
|
@@ -196,7 +211,7 @@ function generateCopilotAdapter(skills, projectRoot, cli) {
|
|
|
196
211
|
mkdirSync(targetDir, { recursive: true });
|
|
197
212
|
const destPath = join(targetDir, 'copilot-instructions.md');
|
|
198
213
|
const existed = existsSync(destPath);
|
|
199
|
-
const taprootSection = buildCopilotSection(skills, cli);
|
|
214
|
+
const taprootSection = buildCopilotSection(skills, cli, projectRoot);
|
|
200
215
|
let finalContent;
|
|
201
216
|
if (existed) {
|
|
202
217
|
const existing = readFileSync(destPath, 'utf-8');
|
|
@@ -211,8 +226,8 @@ function generateCopilotAdapter(skills, projectRoot, cli) {
|
|
|
211
226
|
files: [{ path: destPath, status: existed ? 'updated' : 'created' }],
|
|
212
227
|
};
|
|
213
228
|
}
|
|
214
|
-
function buildCopilotSection(skills, cli) {
|
|
215
|
-
const skillSummary = skills.map(s => `- **\`/taproot:${s.name}\`** — ${s.description}. Full definition:
|
|
229
|
+
function buildCopilotSection(skills, cli, projectRoot) {
|
|
230
|
+
const skillSummary = skills.map(s => `- **\`/taproot:${s.name}\`** — ${s.description}. Full definition: \`${resolveSkillsRelPath(projectRoot ?? '', s.filename)}\``).join('\n');
|
|
216
231
|
return `${TAPROOT_START}
|
|
217
232
|
## Taproot Requirement Hierarchy
|
|
218
233
|
|
|
@@ -298,19 +313,22 @@ function generateGeminiAdapter(skills, projectRoot, cli) {
|
|
|
298
313
|
for (const skill of skills) {
|
|
299
314
|
const destPath = join(targetDir, `tr-${skill.name}.toml`);
|
|
300
315
|
const existed = existsSync(destPath);
|
|
301
|
-
const content = buildGeminiSkillFile(skill);
|
|
316
|
+
const content = buildGeminiSkillFile(skill, projectRoot, cli);
|
|
302
317
|
writeFileSync(destPath, content, 'utf-8');
|
|
303
318
|
files.push({ path: destPath, status: existed ? 'updated' : 'created' });
|
|
304
319
|
}
|
|
305
320
|
// Configuration Quick Reference reference file
|
|
306
321
|
const refPath = join(targetDir, 'tr-taproot.toml');
|
|
307
322
|
const refExisted = existsSync(refPath);
|
|
308
|
-
writeFileSync(refPath, buildGeminiConfigRefFile(cli), 'utf-8');
|
|
323
|
+
writeFileSync(refPath, buildGeminiConfigRefFile(cli, projectRoot), 'utf-8');
|
|
309
324
|
files.push({ path: refPath, status: refExisted ? 'updated' : 'created' });
|
|
310
325
|
return { agent: 'gemini', files };
|
|
311
326
|
}
|
|
312
|
-
function buildGeminiConfigRefFile(cli) {
|
|
327
|
+
function buildGeminiConfigRefFile(cli, projectRoot) {
|
|
313
328
|
const prefix = cli ?? DEFAULT_CLI_PREFIX;
|
|
329
|
+
const newLayout = projectRoot != null && resolveAgentDir(projectRoot) === join(projectRoot, 'taproot', 'agent');
|
|
330
|
+
const settingsPath = newLayout ? 'taproot/settings.yaml' : '.taproot/settings.yaml';
|
|
331
|
+
const configDoc = newLayout ? 'taproot/agent/CONFIGURATION.md' : '.taproot/CONFIGURATION.md';
|
|
314
332
|
return `description = "Taproot configuration quick reference — settings.yaml options and how to apply them"
|
|
315
333
|
|
|
316
334
|
prompt = """
|
|
@@ -320,7 +338,7 @@ Read this when asked to change taproot settings (language, vocabulary, definitio
|
|
|
320
338
|
|
|
321
339
|
## Configuration Quick Reference
|
|
322
340
|
|
|
323
|
-
Edit
|
|
341
|
+
Edit ${settingsPath} to configure taproot. Run taproot update after changes.
|
|
324
342
|
|
|
325
343
|
Options:
|
|
326
344
|
- language: Language pack for section headers and keywords (e.g. de, fr, es). Default: English.
|
|
@@ -332,23 +350,29 @@ Options:
|
|
|
332
350
|
When running taproot commands in this project, replace bare \`taproot\` with: ${prefix}
|
|
333
351
|
Example: ${prefix} dod taproot/some-intent/some-behaviour/impl-name/impl.md
|
|
334
352
|
|
|
335
|
-
See
|
|
353
|
+
See ${configDoc} for the full reference and examples.
|
|
336
354
|
"""
|
|
337
355
|
`;
|
|
338
356
|
}
|
|
339
|
-
function buildGeminiSkillFile(skill) {
|
|
357
|
+
function buildGeminiSkillFile(skill, projectRoot, cli) {
|
|
358
|
+
const taprootBin = cli ?? 'taproot';
|
|
340
359
|
const overviewStep = TREE_MODIFYING_SKILLS.has(skill.name)
|
|
341
|
-
?
|
|
360
|
+
? `\n6. Run \`${taprootBin} overview\` to update taproot/OVERVIEW.md with the current project state`
|
|
361
|
+
: '';
|
|
362
|
+
const skillPath = resolveSkillsRelPath(projectRoot, skill.filename);
|
|
363
|
+
const invocationNote = cli
|
|
364
|
+
? `\n# CLI: all taproot commands in this skill must use \`${cli}\` instead of bare \`taproot\`\n`
|
|
342
365
|
: '';
|
|
343
366
|
return `description = "${skill.description.replace(/"/g, '\\"')}"
|
|
344
367
|
|
|
345
|
-
prompt = """
|
|
368
|
+
prompt = """${invocationNote}
|
|
346
369
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS EXACTLY:
|
|
347
370
|
|
|
348
|
-
1. LOAD the FULL skill file at
|
|
371
|
+
1. LOAD the FULL skill file at ${skillPath}
|
|
349
372
|
2. READ its entire contents — this contains the complete skill definition with steps, inputs, and output format
|
|
350
373
|
3. FOLLOW every step in the ## Steps section precisely and in order
|
|
351
|
-
4. Save all outputs to the paths specified in the skill's ## Output section
|
|
374
|
+
4. Save all outputs to the paths specified in the skill's ## Output section
|
|
375
|
+
5. When the skill says to run \`taproot <cmd>\`, run \`${taprootBin} <cmd>\` instead${overviewStep}
|
|
352
376
|
"""
|
|
353
377
|
`;
|
|
354
378
|
}
|
|
@@ -433,9 +457,9 @@ ${TAPROOT_END}
|
|
|
433
457
|
// .aider.conf.yml — Aider config with read: entries for skill context
|
|
434
458
|
// CONVENTIONS.md — taproot workflow instructions for Aider sessions
|
|
435
459
|
// Taproot read paths injected into .aider.conf.yml
|
|
436
|
-
function aiderReadPaths(skills) {
|
|
460
|
+
function aiderReadPaths(skills, projectRoot) {
|
|
437
461
|
return [
|
|
438
|
-
...skills.map(s =>
|
|
462
|
+
...skills.map(s => resolveSkillsRelPath(projectRoot, s.filename)),
|
|
439
463
|
'CONVENTIONS.md',
|
|
440
464
|
];
|
|
441
465
|
}
|
|
@@ -444,7 +468,7 @@ export function generateAiderAdapter(skills, projectRoot) {
|
|
|
444
468
|
// Handle .aider.conf.yml
|
|
445
469
|
const confPath = join(projectRoot, '.aider.conf.yml');
|
|
446
470
|
const confExisted = existsSync(confPath);
|
|
447
|
-
const readPaths = aiderReadPaths(skills);
|
|
471
|
+
const readPaths = aiderReadPaths(skills, projectRoot);
|
|
448
472
|
if (confExisted) {
|
|
449
473
|
const raw = readFileSync(confPath, 'utf-8');
|
|
450
474
|
let parsed;
|
|
@@ -477,7 +501,7 @@ export function generateAiderAdapter(skills, projectRoot) {
|
|
|
477
501
|
// Write CONVENTIONS.md
|
|
478
502
|
const conventionsPath = join(projectRoot, 'CONVENTIONS.md');
|
|
479
503
|
const conventionsExisted = existsSync(conventionsPath);
|
|
480
|
-
writeFileSync(conventionsPath, buildAiderConventionsMd(skills), 'utf-8');
|
|
504
|
+
writeFileSync(conventionsPath, buildAiderConventionsMd(skills, projectRoot), 'utf-8');
|
|
481
505
|
files.push({ path: conventionsPath, status: conventionsExisted ? 'updated' : 'created' });
|
|
482
506
|
return { agent: 'aider', files };
|
|
483
507
|
}
|
|
@@ -489,8 +513,8 @@ read:
|
|
|
489
513
|
${readList}
|
|
490
514
|
`;
|
|
491
515
|
}
|
|
492
|
-
function buildAiderConventionsMd(skills) {
|
|
493
|
-
const skillList = skills.map(s => `- **${s.name}** — ${s.description}. Full definition:
|
|
516
|
+
function buildAiderConventionsMd(skills, projectRoot) {
|
|
517
|
+
const skillList = skills.map(s => `- **${s.name}** — ${s.description}. Full definition: \`${resolveSkillsRelPath(projectRoot, s.filename)}\``).join('\n');
|
|
494
518
|
return `# Taproot Conventions for Aider
|
|
495
519
|
|
|
496
520
|
<!-- Auto-generated by taproot init --agent aider. Re-run taproot update to refresh. -->
|
|
@@ -548,11 +572,14 @@ When running taproot commands in this project, replace bare \`taproot\` with: \`
|
|
|
548
572
|
Example: \`${prefix} dod taproot/some-intent/some-behaviour/impl-name/impl.md\``;
|
|
549
573
|
}
|
|
550
574
|
// ─── Configuration Quick Reference ───────────────────────────────────────────
|
|
551
|
-
function buildConfigQuickRef(cli) {
|
|
575
|
+
function buildConfigQuickRef(cli, projectRoot) {
|
|
552
576
|
const prefix = cli ?? DEFAULT_CLI_PREFIX;
|
|
577
|
+
const newLayout = projectRoot != null && resolveAgentDir(projectRoot) === join(projectRoot, 'taproot', 'agent');
|
|
578
|
+
const settingsPath = newLayout ? 'taproot/settings.yaml' : '.taproot/settings.yaml';
|
|
579
|
+
const configDoc = newLayout ? 'taproot/agent/CONFIGURATION.md' : '.taproot/CONFIGURATION.md';
|
|
553
580
|
return `## Configuration Quick Reference
|
|
554
581
|
|
|
555
|
-
Edit
|
|
582
|
+
Edit \`${settingsPath}\` to configure taproot. Run \`taproot update\` after changes.
|
|
556
583
|
|
|
557
584
|
| Option | Type | Description |
|
|
558
585
|
|--------|------|-------------|
|
|
@@ -561,7 +588,7 @@ Edit \`.taproot/settings.yaml\` to configure taproot. Run \`taproot update\` aft
|
|
|
561
588
|
| \`definitionOfDone\` | list | Shell commands run as gates before implementation commits. |
|
|
562
589
|
| \`cli\` | string | CLI invocation prefix. Default: \`${DEFAULT_CLI_PREFIX}\`. Override: \`cli: taproot\` (global install). |
|
|
563
590
|
|
|
564
|
-
See
|
|
591
|
+
See \`${configDoc}\` for the full reference and examples.
|
|
565
592
|
|
|
566
593
|
${buildInvocationBlock(prefix)}`;
|
|
567
594
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -17,12 +17,19 @@ import { registerDod } from './commands/dod.js';
|
|
|
17
17
|
import { registerCommithook } from './commands/commithook.js';
|
|
18
18
|
import { registerAcceptanceCheck } from './commands/acceptance-check.js';
|
|
19
19
|
import { registerTruthSign } from './commands/truth-sign.js';
|
|
20
|
+
import { checkProjectVersion } from './core/version-check.js';
|
|
21
|
+
// Version compatibility check — warn if installed version diverges from project's pinned version.
|
|
22
|
+
// Skipped for commithook (runs inside git pre-commit; noise-free is critical there).
|
|
23
|
+
const invokedCommand = process.argv[2];
|
|
24
|
+
if (invokedCommand !== 'commithook') {
|
|
25
|
+
checkProjectVersion(process.cwd());
|
|
26
|
+
}
|
|
20
27
|
const program = new Command();
|
|
21
28
|
program
|
|
22
29
|
.name('taproot')
|
|
23
30
|
.description('Folder-based requirement hierarchy CLI')
|
|
24
31
|
.version(version)
|
|
25
|
-
.addHelpText('after', '\nConfiguration: edit
|
|
32
|
+
.addHelpText('after', '\nConfiguration: edit taproot/settings.yaml — see taproot/agent/CONFIGURATION.md for all options');
|
|
26
33
|
registerInit(program);
|
|
27
34
|
registerValidateStructure(program);
|
|
28
35
|
registerValidateFormat(program);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,kGAAkG;AAClG,qFAAqF;AACrF,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;IACpC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,OAAO,EAAE,kGAAkG,CAAC,CAAC;AAE5H,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE3B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -18,6 +18,8 @@ function isGlobalTruth(f) {
|
|
|
18
18
|
return f.startsWith('taproot/global-truths/') || f.startsWith('taproot\\global-truths\\');
|
|
19
19
|
}
|
|
20
20
|
function isHierarchyFile(f) {
|
|
21
|
+
if (f.startsWith('taproot/agent/') || f.startsWith('taproot\\agent\\'))
|
|
22
|
+
return false;
|
|
21
23
|
return f.startsWith('taproot/') || f.startsWith('taproot\\');
|
|
22
24
|
}
|
|
23
25
|
function getStagedFiles(cwd) {
|
|
@@ -217,9 +219,13 @@ function getImplState(implFullPath) {
|
|
|
217
219
|
}
|
|
218
220
|
// ─── Status-only change check ─────────────────────────────────────────────────
|
|
219
221
|
function checkStatusOnly(implRelPath, cwd) {
|
|
220
|
-
// New file in HEAD?
|
|
222
|
+
// New file in HEAD? (skip check if it's a rename — R status in diff)
|
|
221
223
|
const head = spawnSync('git', ['show', `HEAD:${implRelPath}`], { cwd, encoding: 'utf-8' });
|
|
222
224
|
if (head.status !== 0) {
|
|
225
|
+
const diffStatus = spawnSync('git', ['diff', '--cached', '--name-status'], { cwd, encoding: 'utf-8' });
|
|
226
|
+
const isRename = diffStatus.stdout.split('\n').some(line => /^R\d*\t.*\t/.test(line) && line.endsWith(`\t${implRelPath}`));
|
|
227
|
+
if (isRename)
|
|
228
|
+
return { passed: true, message: '' };
|
|
223
229
|
return {
|
|
224
230
|
passed: false,
|
|
225
231
|
message: `${implRelPath} is new — commit impl.md alone first (declaration commit) before committing source code`,
|
|
@@ -315,39 +321,6 @@ export async function runCommithook(options) {
|
|
|
315
321
|
}
|
|
316
322
|
failed = true;
|
|
317
323
|
}
|
|
318
|
-
// Truth consistency check
|
|
319
|
-
if (globalTruthsDir(cwd)) {
|
|
320
|
-
const allTruths = new Map();
|
|
321
|
-
const stagedDocContents = [];
|
|
322
|
-
const unreadableWarnings = [];
|
|
323
|
-
for (const f of staged) {
|
|
324
|
-
if (!isHierarchyFile(f) || isImplMd(f) || isGlobalTruth(f))
|
|
325
|
-
continue;
|
|
326
|
-
const level = docLevelFromFilename(basename(f));
|
|
327
|
-
if (!level)
|
|
328
|
-
continue;
|
|
329
|
-
const content = getStagedContent(f, cwd) ?? '';
|
|
330
|
-
stagedDocContents.push({ path: f, content });
|
|
331
|
-
for (const t of collectApplicableTruths(cwd, level)) {
|
|
332
|
-
if (t.unreadable) {
|
|
333
|
-
unreadableWarnings.push(t.relPath);
|
|
334
|
-
}
|
|
335
|
-
else {
|
|
336
|
-
allTruths.set(t.relPath, t);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
for (const relPath of unreadableWarnings) {
|
|
341
|
-
process.stdout.write(` ⚠ ${relPath} could not be read — truth check skipped for this file.\n`);
|
|
342
|
-
}
|
|
343
|
-
if (stagedDocContents.length > 0 && allTruths.size > 0) {
|
|
344
|
-
const validation = validateTruthSession(cwd, stagedDocContents, [...allTruths.values()]);
|
|
345
|
-
if (!validation.valid) {
|
|
346
|
-
process.stdout.write(`taproot commithook — Truth check: ${validation.reason}\n`);
|
|
347
|
-
failed = true;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
324
|
}
|
|
352
325
|
// Declaration tier: DoR check on the behaviour spec
|
|
353
326
|
if (tiers.includes('declaration')) {
|
|
@@ -414,6 +387,68 @@ export async function runCommithook(options) {
|
|
|
414
387
|
}
|
|
415
388
|
}
|
|
416
389
|
}
|
|
390
|
+
// ─── Unified truth session check (all commit levels) ───────────────────────
|
|
391
|
+
// Runs once after all tier checks, covering hierarchy docs AND impl-level files.
|
|
392
|
+
// truth-sign produces one session hash for the same set — this validation matches it.
|
|
393
|
+
if (globalTruthsDir(cwd)) {
|
|
394
|
+
const allTruths = new Map();
|
|
395
|
+
const allDocContents = [];
|
|
396
|
+
const unreadableWarnings = [];
|
|
397
|
+
// Hierarchy docs: intent.md, usecase.md — collect truths by their level
|
|
398
|
+
for (const f of staged) {
|
|
399
|
+
if (!isHierarchyFile(f) || isImplMd(f) || isGlobalTruth(f))
|
|
400
|
+
continue;
|
|
401
|
+
const level = docLevelFromFilename(basename(f));
|
|
402
|
+
if (!level)
|
|
403
|
+
continue;
|
|
404
|
+
const content = getStagedContent(f, cwd) ?? '';
|
|
405
|
+
allDocContents.push({ path: f, content });
|
|
406
|
+
for (const t of collectApplicableTruths(cwd, level)) {
|
|
407
|
+
if (t.unreadable) {
|
|
408
|
+
if (!unreadableWarnings.includes(t.relPath))
|
|
409
|
+
unreadableWarnings.push(t.relPath);
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
allTruths.set(t.relPath, t);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
// Impl-level: staged impl.md files + staged source files (non-taproot)
|
|
417
|
+
const stagedImplMds = staged.filter(f => isHierarchyFile(f) && isImplMd(f) && !isGlobalTruth(f));
|
|
418
|
+
const stagedSourceFiles = staged.filter(f => !f.startsWith('taproot/') && !f.startsWith('.taproot/'));
|
|
419
|
+
if (stagedImplMds.length > 0 || stagedSourceFiles.length > 0) {
|
|
420
|
+
for (const f of stagedImplMds) {
|
|
421
|
+
const content = getStagedContent(f, cwd) ?? '';
|
|
422
|
+
allDocContents.push({ path: f, content });
|
|
423
|
+
}
|
|
424
|
+
if (stagedSourceFiles.length > 0) {
|
|
425
|
+
// Use sorted path list as identity anchor — content changes don't retrigger signing
|
|
426
|
+
allDocContents.push({
|
|
427
|
+
path: '__impl_sources__',
|
|
428
|
+
content: [...stagedSourceFiles].sort().join('\n'),
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
for (const t of collectApplicableTruths(cwd, 'impl')) {
|
|
432
|
+
if (t.unreadable) {
|
|
433
|
+
if (!unreadableWarnings.includes(t.relPath))
|
|
434
|
+
unreadableWarnings.push(t.relPath);
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
allTruths.set(t.relPath, t);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
for (const relPath of unreadableWarnings) {
|
|
442
|
+
process.stdout.write(` ⚠ ${relPath} could not be read — truth check skipped for this file.\n`);
|
|
443
|
+
}
|
|
444
|
+
if (allDocContents.length > 0 && allTruths.size > 0) {
|
|
445
|
+
const validation = validateTruthSession(cwd, allDocContents, [...allTruths.values()]);
|
|
446
|
+
if (!validation.valid) {
|
|
447
|
+
process.stdout.write(`taproot commithook — Truth check: ${validation.reason}\n`);
|
|
448
|
+
failed = true;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
417
452
|
return failed ? 1 : 0;
|
|
418
453
|
}
|
|
419
454
|
export function registerCommithook(program) {
|