Sign In

@imix-js/taproot

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@imix-js/taproot - npm Package Compare versions

Comparing version
1.0.0
to
1.1.0
+14
dist/commands/new.d.ts
import type { Command } from 'commander';
export type ArtifactType = 'intent' | 'behaviour' | 'impl';
export interface RunNewOptions {
type: ArtifactType;
parent?: string;
slug: string;
cwd?: string;
}
export interface NewResult {
path: string;
message: string;
}
export declare function runNew(options: RunNewOptions): NewResult;
export declare function registerNew(program: Command): void;
import { existsSync, mkdirSync, writeFileSync } from 'fs';
import { resolve, join } from 'path';
import { loadConfig } from '../core/config.js';
import { intentTemplate, behaviourTemplate, implTemplate } from '../templates/index.js';
const VALID_TYPES = ['intent', 'behaviour', 'impl'];
function slugToTitle(slug) {
return slug.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
}
function today() {
return new Date().toISOString().slice(0, 10);
}
function templateForType(type, slug, parentRelPath) {
const title = slugToTitle(slug);
const date = today();
switch (type) {
case 'intent':
return { filename: 'intent.md', content: intentTemplate(date).replace('# Intent: <Title>', `# Intent: ${title}`) };
case 'behaviour':
return { filename: 'usecase.md', content: behaviourTemplate(date).replace('# Behaviour: <Title>', `# Behaviour: ${title}`) };
case 'impl': {
const ref = parentRelPath ?? '../usecase.md';
return { filename: 'impl.md', content: implTemplate(date, ref).replace('# Implementation: <Title>', `# Implementation: ${title}`) };
}
}
}
export function runNew(options) {
const { type, slug, cwd = process.cwd() } = options;
const { config, configDir } = loadConfig(cwd);
const hierarchyRoot = config.root.startsWith('/')
? config.root
: resolve(configDir, config.root);
// Validate parent for behaviour and impl
if (type === 'behaviour' || type === 'impl') {
if (!options.parent) {
throw new Error(`Parent path is required for type '${type}'. Run: taproot new ${type} <parent-path> <slug>`);
}
const parentPath = resolve(options.parent);
if (!existsSync(parentPath)) {
throw new Error(`Parent not found: \`${options.parent}\` — create the parent intent or behaviour first`);
}
if (type === 'impl') {
const hasUsecase = existsSync(join(parentPath, 'usecase.md'));
const hasIntent = existsSync(join(parentPath, 'intent.md'));
if (!hasUsecase) {
if (hasIntent) {
throw new Error(`Type mismatch: \`impl\` must be placed under a behaviour — \`${options.parent}\` contains an intent, not a behaviour`);
}
throw new Error(`Parent not found: \`${options.parent}\` does not contain a usecase.md — create the behaviour first`);
}
}
if (type === 'behaviour') {
const hasIntent = existsSync(join(parentPath, 'intent.md'));
const hasUsecase = existsSync(join(parentPath, 'usecase.md'));
if (!hasIntent && !hasUsecase) {
throw new Error(`Parent not found: \`${options.parent}\` does not contain intent.md or usecase.md`);
}
}
}
// Resolve target directory
let targetDir;
if (type === 'intent') {
targetDir = join(hierarchyRoot, slug);
}
else {
targetDir = join(resolve(options.parent), slug);
}
const { filename, content } = templateForType(type, slug);
const targetFile = join(targetDir, filename);
if (existsSync(targetFile)) {
throw new Error(`Already exists: \`${targetFile}\` — open the file to edit it, or use /tr-behaviour or /tr-intent to refine it`);
}
mkdirSync(targetDir, { recursive: true });
writeFileSync(targetFile, content, 'utf-8');
return { path: targetFile, message: `created ${targetFile}` };
}
export function registerNew(program) {
program
.command('new <type> [args...]')
.description('Scaffold a new hierarchy artifact from a template (intent, behaviour, or impl)')
.action(async (type, args) => {
// Validate type early for a helpful error before any prompting
if (!VALID_TYPES.includes(type)) {
process.stderr.write(`error: unknown type '${type}'. Valid types: ${VALID_TYPES.join(', ')}\n`);
process.exit(1);
}
const artifactType = type;
let parent;
let slug;
if (artifactType === 'intent') {
slug = args[0];
if (!slug) {
const { default: input } = await import('@inquirer/input');
slug = await input({ message: 'Slug for the new intent?' });
}
}
else {
// behaviour or impl: expect [parent, slug] or [slug] missing parent
if (args.length >= 2) {
parent = args[0];
slug = args[1];
}
else if (args.length === 1) {
parent = args[0];
const { default: input } = await import('@inquirer/input');
slug = await input({ message: `Slug for the new ${artifactType}?` });
}
else {
const { default: input } = await import('@inquirer/input');
parent = await input({ message: `Parent path for the new ${artifactType}?` });
slug = await input({ message: `Slug for the new ${artifactType}?` });
}
}
try {
const result = runNew({ type: artifactType, parent, slug: slug });
process.stdout.write(`${result.message}\n`);
}
catch (err) {
const message = err instanceof Error ? err.message : String(err);
process.stderr.write(`error: ${message}\n`);
process.exit(1);
}
});
}
//# sourceMappingURL=new.js.map
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
+2
-0

@@ -21,2 +21,3 @@ #!/usr/bin/env node

import { registerCommit } from './commands/commit.js';
import { registerNew } from './commands/new.js';
import { checkProjectVersion } from './core/version-check.js';

@@ -50,2 +51,3 @@ // Version compatibility check — warn if installed version diverges from project's pinned version.

registerCommit(program);
registerNew(program);
program.parseAsync().catch((err) => {

@@ -52,0 +54,0 @@ const message = err instanceof Error ? err.message : String(err);

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}

@@ -9,3 +9,3 @@ import { readFileSync, existsSync } from 'fs';

import { renderViolations, exitCode } from '../core/reporter.js';
import { findLinkFiles, loadReposYaml, parseLinkFile, resolveLinkTarget } from '../core/link-parser.js';
import { findLinkFiles, loadReposYaml, parseLinkFile, resolveLinkTarget, isOfflineRepo } from '../core/link-parser.js';
export function registerCheckOrphans(program) {

@@ -93,2 +93,11 @@ program

}
if (isOfflineRepo(parsed.repo, reposMap)) {
violations.push({
type: 'warning',
filePath: linkFilePath,
code: 'LINK_VALIDATION_SKIPPED',
message: `Link skipped — repo "${parsed.repo}" marked offline in repository mapping`,
});
continue;
}
const resolvedPath = resolveLinkTarget(parsed.repo, parsed.path, reposMap);

@@ -137,3 +146,3 @@ if (resolvedPath === null) {

const sourceRepoRoot = reposMap.get(parsed.repo.trim());
if (sourceRepoRoot && existsSync(sourceRepoRoot)) {
if (sourceRepoRoot && sourceRepoRoot !== 'offline' && existsSync(sourceRepoRoot)) {
const transitive = checkLinkTargets(sourceRepoRoot, sourceRepoRoot, newVisited);

@@ -140,0 +149,0 @@ // Only propagate circular violations (not other orphan errors from the source repo)

@@ -1,1 +0,1 @@

{"version":3,"file":"check-orphans.js","sourceRoot":"","sources":["../../src/commands/check-orphans.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"check-orphans.js","sourceRoot":"","sources":["../../src/commands/check-orphans.ts"],"names":[],"mappings":"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"}

@@ -36,1 +36,3 @@ export interface LinkFile {

export declare function resolveLinkTarget(repo: string, targetPath: string, reposMap: Map<string, string>): string | null;
/** Returns true if the given repo URL is explicitly marked offline in the repos map. */
export declare function isOfflineRepo(repo: string, reposMap: Map<string, string>): boolean;

@@ -71,3 +71,4 @@ import { readFileSync, existsSync, readdirSync, statSync } from 'fs';

if (typeof localPath === 'string') {
map.set(url.trim(), resolve(projectRoot, localPath));
// 'offline' is a sentinel — do not resolve as a filesystem path
map.set(url.trim(), localPath.trim() === 'offline' ? 'offline' : resolve(projectRoot, localPath));
}

@@ -87,6 +88,10 @@ }

const repoRoot = reposMap.get(repo.trim());
if (!repoRoot)
if (!repoRoot || repoRoot === 'offline')
return null;
return join(repoRoot, targetPath);
}
/** Returns true if the given repo URL is explicitly marked offline in the repos map. */
export function isOfflineRepo(repo, reposMap) {
return reposMap.get(repo.trim()) === 'offline';
}
//# sourceMappingURL=link-parser.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"link-parser.js","sourceRoot":"","sources":["../../src/core/link-parser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"link-parser.js","sourceRoot":"","sources":["../../src/core/link-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,oIAAoI;AACpI,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAmBnG;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAiB,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;YAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,gEAAgE;gBAChE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,UAAkB,EAClB,QAA6B;IAE7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAA6B;IACvE,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;AACjD,CAAC"}
import { createHash } from 'crypto';
import { existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync } from 'fs';
import { join, dirname, basename, relative } from 'path';
import { parseLinkFile, loadReposYaml, resolveLinkTarget } from './link-parser.js';
import { parseLinkFile, loadReposYaml, resolveLinkTarget, isOfflineRepo } from './link-parser.js';
const SCOPES = ['intent', 'behaviour', 'impl'];

@@ -175,2 +175,15 @@ /**

}
// Per-repo offline: treat this linked truth as offline (skip resolution)
if (isOfflineRepo(parsed.repo, map)) {
results.push({
relPath: linkRelPath,
scope: 'intent',
ambiguous: true,
unreadable: true,
content: '',
linked: true,
linkPath: linkRelPath,
});
return;
}
const targetPath = resolveLinkTarget(parsed.repo, parsed.path, map);

@@ -177,0 +190,0 @@ if (!targetPath || !existsSync(targetPath)) {

@@ -1,1 +0,1 @@

{"version":3,"file":"truth-checker.js","sourceRoot":"","sources":["../../src/core/truth-checker.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"truth-checker.js","sourceRoot":"","sources":["../../src/core/truth-checker.ts"],"names":[],"mappings":"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"}

@@ -57,2 +57,3 @@ # Agent Internals

1. **Orient** — reads README, package manifests, and any existing taproot documents
1.5. **Cross-cutting truths** — identifies facts, rules, conventions, and decisions that apply across intents; routes them to `taproot/global-truths/` rather than forcing them into the intent hierarchy
2. **Intents** — proposes top-level business intents one at a time, asking a probing question about each

@@ -59,0 +60,0 @@ 3. **Behaviours** — for each confirmed intent, reads source code and proposes use cases

@@ -38,3 +38,5 @@ # Agent Setup

| `/tr-behaviour` | Define a UseCase under an intent or another behaviour; walks alternate flows and error conditions proactively |
| `/tr-decompose` | Break an intent down into the set of behaviours needed to fulfill it; produces a proposed behaviour list tied to each success criterion |
| `/tr-implement` | Implement a behaviour: write code, write tests, create `impl.md`, commit with conventional tag |
| `/tr-commit` | Execute the full commit procedure: classify commit type, resolve all DoD conditions, and commit; handles implementation, declaration, requirement, and plain commits |
| `/tr-trace` | Navigate the hierarchy in any direction — file to intent (bottom-up), intent to code (top-down), or across siblings |

@@ -44,4 +46,7 @@ | `/tr-status` | Coverage dashboard: shows what's implemented, what's planned, what's stale, and what to do next |

| `/tr-audit-all` | Comprehensive review of an entire subtree — structural checks, cross-cutting analysis, per-artifact findings |
| `/tr-analyse-change` | Analyse the impact of a proposed change before any edits are made — identifies affected downstream and upstream artefacts; read-only |
| `/tr-refine` | Update a behaviour spec based on post-implementation learnings |
| `/tr-promote` | Escalate a finding from implementation or behaviour level up to the intent |
| `/tr-bug` | Diagnose a defect through structured root cause analysis (5-Why) and delegate to the right fix skill |
| `/tr-browse` | Read a hierarchy document section by section — presents each section one at a time with inline editing; developer-driven, distinct from `/tr-audit` |
| `/tr-next` | Surface the next independently-implementable work item from the hierarchy |

@@ -51,3 +56,6 @@ | `/tr-plan` | Build a persistent implementation plan (`taproot/plan.md`) from backlog items, hierarchy gaps, or explicit items |

| `/tr-plan-analyse` | Analyse `taproot/plan.md` before execution — check readiness, flag ambiguous specs, unresolved dependencies, and missing prerequisites |
| `/tr-backlog` | Capture ideas and deferred work mid-session without interrupting flow; or triage existing backlog items (keep, promote, discard) |
| `/tr-discover` | Reverse-engineer an existing codebase into a taproot hierarchy through structured, interactive discovery |
| `/tr-discover-truths` | Scan the hierarchy for implicit facts — recurring terms, rules, and conventions — not yet captured as global truths; present candidates for promotion |
| `/tr-define-truth` | Create or update a truth entry in `taproot/global-truths/` — a fact, rule, term, convention, or decision that applies across the project |
| `/tr-grill-me` | Interview you relentlessly about a plan or design — one decision branch at a time, recommended answer first |

@@ -57,2 +65,3 @@ | `/tr-research` | Research a domain or technical subject before speccing — scans local resources, searches the web, optionally grills domain experts |

| `/tr-link` | Create a cross-repo link file referencing a spec in another repository; guides both linking-repo and source-repo sides of the two-sided workflow |
| `/tr-release` | Run the taproot maintainer's local release phase: pre-flight checks, changelog generation, version bump, tag, and publish via CI |

@@ -89,5 +98,22 @@ ### How skills work

## Cursor native plugin
A richer Cursor integration is available as a native plugin in `channels/cursor/`. It provides:
- **26 skill launchers** — each taproot workflow as a `/tr-<name>` slash command, using the thin-launcher pattern (loads canonical skills from `taproot/agent/skills/`)
- **Rules file** — taproot conventions injected as Cursor agent context when taproot files are open
- **5 commands** — Initialize, Status, Route Requirement, Report Bug, Build Plan
The plugin files live in `channels/cursor/` and are distributed via the Cursor Marketplace. If the plugin is installed, `taproot init --agent cursor` is not required — the plugin provides equivalent and richer coverage. The thin adapter remains a fallback if the plugin is uninstalled.
To regenerate the plugin files after upgrading taproot:
```bash
npx tsx scripts/build-cursor-plugin.ts
```
---
## Non-Claude agents
For Cursor, Copilot, and Windsurf, the adapter installs a rules or instructions file. These give the agent context on the taproot hierarchy, the document formats, and the commit convention — enough to read and navigate the hierarchy, write conformant documents, and use the CLI commands correctly.
For Cursor (without the native plugin), Copilot, and Windsurf, the adapter installs a rules or instructions file. These give the agent context on the taproot hierarchy, the document formats, and the commit convention — enough to read and navigate the hierarchy, write conformant documents, and use the CLI commands correctly.

@@ -94,0 +120,0 @@ These adapters do not provide slash commands. Instead, refer to the relevant document or hierarchy path in your prompt:

@@ -31,2 +31,28 @@ # CLI Reference

### `taproot new`
```bash
taproot new <type> [parent-path] <slug>
```
Scaffolds a new hierarchy artifact from a template, creating the directory and a pre-populated stub file. Eliminates the need to manually `mkdir` and write boilerplate.
| Type | Parent required | Creates |
|------|----------------|---------|
| `intent` | No (uses hierarchy root) | `taproot/specs/<slug>/intent.md` |
| `behaviour` | Yes (intent or behaviour dir) | `<parent>/<slug>/usecase.md` |
| `impl` | Yes (behaviour dir only) | `<parent>/<slug>/impl.md` |
The slug is converted to a title (`password-login` → `Password Login`) in the file heading. Each stub includes placeholder sections and the correct initial state (`draft`, `proposed`, or `planned`).
If arguments are omitted, the command prompts for each missing value interactively.
```bash
taproot new intent user-authentication
taproot new behaviour taproot/specs/user-authentication password-login
taproot new impl taproot/specs/user-authentication/password-login cli-command
```
**When to use:** Start here before calling `/tr-intent` or `/tr-behaviour` — agents can scaffold the file then fill it in, rather than using `mkdir` followed by template writes.
### `taproot update`

@@ -33,0 +59,0 @@

@@ -300,2 +300,3 @@ # Document Types

| `needs-rework` | — | — | Implementation failed DoD |
| `delegated` | — | — | ACs implemented in a linking repo, not locally |
| `achieved` | All behaviours complete | — | — |

@@ -309,2 +310,32 @@ | `deprecated` | No longer relevant | No longer relevant | — |

## Delegated Implementations (Cross-Repo)
When a behaviour spec lives in one repository but some or all of its acceptance criteria are implemented in a separate linking repository, use `state: delegated` to record this in the source repo without creating a false coverage gap.
A delegated `impl.md` looks like any other implementation record, except:
- `## Status` sets `**State:** delegated`
- `## Design Decisions` names the linking repo and which ACs it handles
- `## Source Files` lists `(none)` — the source files live in the linking repo
```markdown
## Design Decisions
- ACs 1–3 implemented in the `mobile-app` repo via the taproot link at `taproot/specs/auth/`.
Source files: `src/auth/login.swift`, `src/auth/session.swift`.
## Source Files
- (none)
## Status
- **State:** delegated
- **Created:** 2024-03-01
```
`taproot coverage` counts both `complete` and `delegated` impls as accounted for — a behaviour is not shown as a gap if it has a delegated impl. If only some ACs are delegated, create one `impl.md` per linked repo contribution plus a standard `impl.md` for local ACs.
**Enabling delegated state:** add `delegated` to `allowed_impl_states` in `taproot/settings.yaml` (see [Configuration](./configuration.md#taproot-settings-yaml)).
The linking repo independently creates a `link.md` file and its own local `impl.md` to claim traceability from its side. See [Cross-Repo Specification](./cross-repo.md) for the full workflow.
---
## Global Truths

@@ -311,0 +342,0 @@

@@ -46,3 +46,4 @@ # Configuration

allowed_behaviour_states: [proposed, specified, implemented, tested, deprecated, deferred]
allowed_impl_states: [planned, in-progress, complete, needs-rework, deferred]
allowed_impl_states: [planned, in-progress, complete, needs-rework, deferred, delegated]
# Add 'delegated' when using cross-repo delegation — see docs/concepts.md#delegated-implementations-cross-repo

@@ -49,0 +50,0 @@ # Definition of Done — conditions checked before taproot dod marks an impl complete.

{
"name": "@imix-js/taproot",
"version": "1.0.0",
"version": "1.1.0",
"description": "AI-driven specs, enforced at commit time. Code without traceability doesn't merge.",

@@ -45,2 +45,3 @@ "type": "module",

"@inquirer/confirm": "^6.0.10",
"@inquirer/input": "^5.0.10",
"@inquirer/select": "^5.1.2",

@@ -47,0 +48,0 @@ "chalk": "^5.6.2",

# Taproot
<p align="center">
<img src="assets/logo-512.png" alt="Taproot" width="200"/>
</p>
<p align="center">
<img src="docs/demo.svg" alt="Taproot demo — npx taproot init, /tr-ineed, taproot dod" width="700"/>

@@ -13,2 +17,8 @@ </p>

- **Single source of truth** — Why → What → How, three layers, committed alongside code
- **Every change traces back to a spec** — no orphan code, no mystery modules
- **Plan and backlog** — prioritise, batch, and execute requirements autonomously or step-by-step
- **Enforced at commit time** — git hooks block code without traceability, failing tests, or incomplete specs
- **Global truths** — architecture rules, security constraints, and domain terms enforced at every commit
## Quick Start

@@ -15,0 +25,0 @@

@@ -5,3 +5,3 @@ # Skill: audit

Stress-test a single Taproot artifact — an `intent.md`, `usecase.md`, or `impl.md` — by challenging it from multiple angles. Produces a structured critique with prioritized findings. Does **not** auto-modify the artifact; the user decides what to act on.
Stress-test a single Taproot artifact — an `intent.md`, `usecase.md`, or `impl.md` — by challenging it from multiple angles. Presents findings one at a time with a proposed fix and recommended action per finding. The user triages each finding interactively; only accepted findings carry to `/tr-refine`.

@@ -14,7 +14,7 @@ ## Inputs

1. Read the artifact at `path`. Identify its type by filename.
1. Read the artifact at `path`. Identify its type by filename. If the artifact is a placeholder or stub (lots of `<placeholder>` text), report: "This artifact is a placeholder — audit findings would not be meaningful. Write the spec first, then audit." Stop.
2. If the artifact has a parent (e.g., a `usecase.md` has a parent `intent.md`), read the parent to understand context. If siblings exist (other behaviours under the same intent), read those too — cross-checking is part of a thorough review.
2. If the artifact has a parent (e.g., a `usecase.md` has a parent `intent.md`), read the parent to understand context. Intents have no parent — skip for intents. If siblings exist (other behaviours under the same intent), read those too — cross-checking is part of a thorough review.
3. Apply the challenge set appropriate to the artifact type:
3. Apply the challenge set appropriate to the artifact type and generate findings internally. Do **not** present findings yet.

@@ -56,19 +56,54 @@ **For `intent.md`:**

5. Present findings in priority order (blockers first), using concrete examples from the artifact text. For each finding, quote the specific line or section being challenged.
For each finding, also prepare:
- The quoted artifact excerpt being challenged
- The challenge — why this is a problem
- A **proposed fix** — the specific wording change, addition, or removal that would resolve the finding
- A **recommended action** (accept, dismiss, or defer) with a one-line reason
6. Present next steps:
Sort findings: Blockers first, then Concerns, then Suggestions.
5. **Interactive walkthrough** — present findings one at a time. For each finding, show:
```
**<Category>** (<N of M>) — Recommendation: **<Accept/Dismiss/Defer>**
> "<quoted artifact excerpt>"
<Challenge — why this is a problem>
**Proposed fix:** <specific change to make>
[A] Accept — apply the proposed fix [X] Dismiss — not relevant [E] Edit — change the fix before accepting [L] Later — capture to backlog
```
Process the developer's response:
- **[A] Accept** or **Enter** (accepts the recommendation): record the finding and its proposed fix as accepted
- **[X] Dismiss**: record as dismissed, move to next finding
- **[E] Edit**: ask the developer to reword the fix, record the edited version as accepted
- **[L] Later**: capture to `taproot/backlog.md` via `/tr-backlog` with the finding text, move to next
- **"go"** or **"apply remaining"**: apply the agent's recommended action for each remaining finding (accept, dismiss, or defer as recommended), then show the triage summary
6. **Triage summary** — after all findings are triaged, show:
```
Triage complete: N accepted, N dismissed, N deferred
```
7. Present next steps:
> 💡 If this session is getting long, consider running `/compact` or starting a fresh context before the next task.
**What's next?**
[1] `/tr-refine <path>` — apply the findings to the spec
[1] `/tr-refine <path>` — apply the N accepted findings to the spec
[2] `/tr-implement <path>/` — spec is clean; proceed to implementation
[3] `/tr-backlog <finding>` — capture an out-of-scope issue for later without routing it now
[P] Plan these — build a `taproot/plan.md` from these findings
[3] `/tr-backlog` — review deferred items
[P] Plan these — build a `taproot/plan.md` from the accepted findings
When the developer selects [1], pass **only the accepted findings with their proposed fixes** as context to `/tr-refine`. Dismissed findings are not passed.
## Output
A structured critique report with findings grouped as **Blockers**, **Concerns**, and **Suggestions**. Each finding quotes the relevant artifact text and explains the risk.
An interactive triage session where each finding is presented individually with a proposed fix and recommendation. The developer triages each finding. Accepted findings carry as structured input to `/tr-refine`.
The artifact is NOT modified.
The artifact is NOT modified by the audit itself.

@@ -78,5 +113,4 @@ ## CLI Dependencies

None during review. The user then decides whether to run:
- `taproot validate-format` (to check current state)
- `/taproot:refine` (to apply suggested changes)
- `/taproot:intent` (to revise the intent)
- `/taproot:refine` (to apply accepted findings)
- `/taproot:implement` (to proceed to implementation)

@@ -86,2 +120,5 @@ ## Notes

- Do not soften the critique. The purpose is to find real problems before implementation, not to validate the work. A review that finds nothing is not a success — it means you weren't looking hard enough.
- If the artifact is clearly a placeholder or stub (lots of `<placeholder>` text), flag this explicitly rather than reviewing the placeholders themselves.
- The proposed fix per finding is **not optional**. Every finding must include a concrete change — "this is vague" is not actionable; "change X to Y" is. Without a proposed fix, [A] Accept has no clear meaning for downstream `/tr-refine`.
- Finding order matters: Blockers first forces the developer to confront the most important issues before fatigue sets in on Suggestions.
- The "go" / "apply remaining" batch escape applies the agent's recommendations for remaining findings — the agent has already done the analysis, so the developer only needs to override where they disagree.
- The agent's recommendation per finding reduces cognitive load: instead of evaluating each finding from scratch, the developer reviews a proposal and confirms or overrides.

@@ -182,2 +182,6 @@ # Skill: commit

**Path format:** Use abbreviated hierarchy paths in all What's next displays — strip the hierarchy root prefix (`taproot/specs/`) and `.md` extension. Full paths are for CLI invocations only (see `ux-principles_intent.md` global truth).
- Display: `discovery-strategy/execute-strategy/`
- CLI invocation: `taproot/specs/discovery-strategy/execute-strategy/`
## Output

@@ -184,0 +188,0 @@

@@ -88,2 +88,31 @@ # Skill: discover

### Phase 1.5 — Identify Cross-Cutting Truths
Before proposing intents, scan what was found for content that is **not** a business goal — facts, rules, conventions, or decisions that apply across the whole project regardless of which intent is being served.
Signals that something is a cross-cutting truth rather than a business intent:
- It describes *how the system must work* rather than *what value it provides to a stakeholder*
- It applies to every intent equally (e.g. "all API responses use camelCase", "all user-facing errors include a support code")
- It would appear in a style guide, architecture decision record, or glossary — not in a user story
- A non-technical stakeholder would not describe it as a separate business goal
For each candidate cross-cutting truth:
a. Surface it to the developer:
> "I found something that looks like a cross-cutting rule/fact/convention rather than a business intent: **[description]**. I'd route this to `taproot/global-truths/` rather than the intent hierarchy."
b. Ask the developer to confirm the scope:
> "[intent] — applies to the whole project (why/business level)
> [behaviour] — applies to observable interactions (what/actor level)
> [impl] — applies to technical implementation details (how/code level)
> [S] Skip — don't capture this as a truth"
c. On confirmation: write the truth file as `taproot/global-truths/<name>_<scope>.md` following the truth file format (rule statements only, grouped by `##` category headings). Present the proposed content with [Y]/[E]/[S] menu before writing.
d. Update the status file: record confirmed truths under a "Phase 1.5 — Truths" section.
If no cross-cutting truths are identified: note "No cross-cutting truths identified — proceeding to intent surfacing." and continue.
*Skip this phase if `taproot/global-truths/` already exists and is non-empty — truths are already captured; don't duplicate them. Still check for new truths not already present.*
### Phase 2 — Surface Intents (interactive, one at a time)

@@ -90,0 +119,0 @@

@@ -121,3 +121,3 @@ # Skill: plan-build

Status values: `pending` · `done` · `skipped` · `blocked` · `stale`
Status values: `pending` · `done` · `deferred` · `dropped` · `blocked` · `stale`

@@ -124,0 +124,0 @@ 9. **Remove consumed backlog items.** If any plan items were sourced from `taproot/backlog.md`, remove those lines from the file and report: *"Removed N item(s) from `taproot/backlog.md`."* Skip this step if no backlog items were used or if `taproot/backlog.md` is absent.

@@ -27,3 +27,3 @@ # Skill: sweep

Also check if the task requires **cross-item context** (e.g. "renumber all AC IDs globally" — needs awareness of IDs across files). If yes, warn:
> "This task needs cross-item context — consider `/tr-review-all` instead."
> "This task needs cross-item context — consider `/tr-audit-all` instead."
> And stop.

@@ -30,0 +30,0 @@