@antomanc/aginit 0.5.1 → 0.6.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 (74) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +13 -10
  3. package/THIRD_PARTY_NOTICES.md +3 -3
  4. package/dist/adapters/agent-docs.d.ts.map +1 -1
  5. package/dist/adapters/agent-docs.js +4 -2
  6. package/dist/adapters/agent-docs.js.map +1 -1
  7. package/dist/adapters/agents-md.d.ts +4 -1
  8. package/dist/adapters/agents-md.d.ts.map +1 -1
  9. package/dist/adapters/agents-md.js +20 -16
  10. package/dist/adapters/agents-md.js.map +1 -1
  11. package/dist/adapters/git.d.ts.map +1 -1
  12. package/dist/adapters/git.js +0 -6
  13. package/dist/adapters/git.js.map +1 -1
  14. package/dist/adapters/tool-ignores.d.ts.map +1 -1
  15. package/dist/adapters/tool-ignores.js +25 -1
  16. package/dist/adapters/tool-ignores.js.map +1 -1
  17. package/dist/adapters/trail.d.ts +15 -0
  18. package/dist/adapters/{graft.d.ts.map → trail.d.ts.map} +1 -1
  19. package/dist/adapters/trail.js +68 -0
  20. package/dist/adapters/trail.js.map +1 -0
  21. package/dist/cli/capabilities.js +8 -8
  22. package/dist/cli/doctor.js +8 -8
  23. package/dist/cli/doctor.js.map +1 -1
  24. package/dist/cli/main.js +13 -13
  25. package/dist/cli/new.d.ts +1 -1
  26. package/dist/cli/new.js +5 -5
  27. package/dist/cli/wizard.d.ts +1 -0
  28. package/dist/cli/wizard.d.ts.map +1 -1
  29. package/dist/cli/wizard.js +5 -3
  30. package/dist/cli/wizard.js.map +1 -1
  31. package/dist/config/defaults.js +1 -1
  32. package/dist/config/schema.d.ts +2 -2
  33. package/dist/config/validation.d.ts +1 -1
  34. package/dist/config/validation.d.ts.map +1 -1
  35. package/dist/config/validation.js +15 -3
  36. package/dist/config/validation.js.map +1 -1
  37. package/dist/detect/index.d.ts +2 -0
  38. package/dist/detect/index.d.ts.map +1 -1
  39. package/dist/detect/index.js +15 -2
  40. package/dist/detect/index.js.map +1 -1
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/registry/catalog.d.ts.map +1 -1
  44. package/dist/registry/catalog.js +14 -10
  45. package/dist/registry/catalog.js.map +1 -1
  46. package/dist/registry/index.d.ts +1 -1
  47. package/dist/registry/index.js +5 -5
  48. package/dist/registry/setup.js +3 -3
  49. package/dist/registry/types.d.ts +3 -1
  50. package/dist/registry/types.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/adapters/agent-docs.ts +4 -2
  53. package/src/adapters/agents-md.ts +23 -16
  54. package/src/adapters/git.ts +0 -6
  55. package/src/adapters/tool-ignores.ts +27 -1
  56. package/src/adapters/trail.ts +94 -0
  57. package/src/cli/capabilities.ts +6 -6
  58. package/src/cli/doctor.ts +8 -8
  59. package/src/cli/main.ts +14 -14
  60. package/src/cli/new.ts +5 -5
  61. package/src/cli/wizard.ts +7 -3
  62. package/src/config/defaults.ts +1 -1
  63. package/src/config/schema.ts +2 -2
  64. package/src/config/validation.ts +17 -3
  65. package/src/detect/index.ts +15 -2
  66. package/src/index.ts +1 -1
  67. package/src/registry/catalog.ts +15 -10
  68. package/src/registry/index.ts +4 -4
  69. package/src/registry/setup.ts +4 -4
  70. package/src/registry/types.ts +4 -2
  71. package/dist/adapters/graft.d.ts +0 -15
  72. package/dist/adapters/graft.js +0 -58
  73. package/dist/adapters/graft.js.map +0 -1
  74. package/src/adapters/graft.ts +0 -82
@@ -61,29 +61,30 @@ const uiDriverName = (ctx) => ctx.has('agent-device') ? 'agent-device' : ctx.has
61
61
  export const CATALOG = [
62
62
  // ── Codebase graph ────────────────────────────────────────────────────────
63
63
  {
64
- id: 'graft',
65
- name: 'Graft',
66
- description: 'Codebase context graph: graft map / ask --source / skeleton / callers',
64
+ id: 'trail',
65
+ name: 'Trail',
66
+ description: 'Codebase graph and team learnings (trail ask / skeleton / callers). ' +
67
+ 'Sends anonymous usage stats: opt out with `trail telemetry disable` or DO_NOT_TRACK=1',
67
68
  category: 'codebase-graph',
68
- author: 'NanoNets / Trail (graft contributors)',
69
+ author: 'Trail (formerly Graft, by NanoNets)',
69
70
  repoUrl: 'https://github.com/trailhq/Trail-Code',
70
71
  license: 'MIT',
71
72
  supportedPlatforms: ['all'],
72
73
  requiresNodeInProjectRoot: false,
73
74
  default: true,
74
75
  install: [
75
- { kind: 'binary', bin: 'graft', install: 'npm install -g @nanonets/graft' },
76
- { kind: 'setup', setup: 'graft' }
76
+ { kind: 'binary', bin: 'trail', install: 'npm install -g @trailhq/trail-code' },
77
+ { kind: 'setup', setup: 'trail' }
77
78
  ],
78
- doctor: [{ kind: 'file', path: 'graft/INDEX.md', fix: 'graft build' }],
79
+ doctor: [{ kind: 'file', path: '.trail/cache/INDEX.md', fix: 'trail build' }],
79
80
  routing: {
80
81
  task: 'Codebase exploration & impact analysis',
81
- read: '`graft ask "<query>" --source` / `graft skeleton <file>` (see the Graft section)'
82
+ read: '`trail ask "<query>" --source` / `trail skeleton <file>` (see the Trail section)'
82
83
  },
83
84
  rebuttals: [
84
85
  {
85
86
  excuse: "I'll grep/read the whole folder to understand the module.",
86
- rule: 'Forbidden. Query `graft ask "<query>" --source` or `graft callers <symbol>` first to save context tokens.'
87
+ rule: 'Forbidden. Query `trail ask "<query>" --source` or `trail callers <symbol>` first to save context tokens.'
87
88
  }
88
89
  ]
89
90
  },
@@ -420,7 +421,10 @@ export const CATALOG = [
420
421
  `## Unit & integration tests: ${ctx.stack} toolchain`,
421
422
  `- Run: ${code(ctx.commands.test, 'the project test command')}`,
422
423
  ctx.commands.lint ? `- Static checks: \`${ctx.commands.lint}\`` : undefined,
423
- '- Write the failing test first, then the code. Keep tests next to the module they cover, following the toolchain convention.'
424
+ '- Write the failing test first, then the code. ' +
425
+ (ctx.testDir
426
+ ? `Put tests in \`${ctx.testDir}/\`, mirroring the module they cover.`
427
+ : 'Place tests where the toolchain convention puts them.')
424
428
  ]
425
429
  .filter((line) => line !== undefined)
426
430
  .join('\n')
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/registry/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/registry/catalog.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ export declare function resolveCapabilities(input: ResolveInput, disabled?: stri
59
59
  export declare function sourcesFor(capabilities: CapabilityDescriptor[]): SkillSourceConfig[];
60
60
  /**
61
61
  * Capabilities a config written before v2 (no `capabilities` field) uses:
62
- * the ones whose skills it installs, plus Graft and its test harness.
62
+ * the ones whose skills it installs, plus Trail and its test harness.
63
63
  */
64
64
  export declare function inferCapabilities(config: AginitConfig): string[];
65
65
  /** The capabilities a project config turns on. */
@@ -193,12 +193,12 @@ function mergeSources(sources, capabilities) {
193
193
  }
194
194
  /**
195
195
  * Capabilities a config written before v2 (no `capabilities` field) uses:
196
- * the ones whose skills it installs, plus Graft and its test harness.
196
+ * the ones whose skills it installs, plus Trail and its test harness.
197
197
  */
198
198
  export function inferCapabilities(config) {
199
199
  const ids = [];
200
- if (config.codebase.graft)
201
- ids.push('graft');
200
+ if (config.codebase.trail)
201
+ ids.push('trail');
202
202
  for (const capability of CATALOG) {
203
203
  const steps = skillSteps(capability);
204
204
  if (steps.length > 0 &&
@@ -225,7 +225,7 @@ export function activeCapabilities(config) {
225
225
  .filter((c) => c !== undefined)
226
226
  .filter((capability) => {
227
227
  // The legacy switches still turn their capability off.
228
- if (capability.id === 'graft' && config.codebase.graft === false)
228
+ if (capability.id === 'trail' && config.codebase.trail === false)
229
229
  return false;
230
230
  if (capability.id === 'playwright' && !config.browser.playwright)
231
231
  return false;
@@ -240,7 +240,7 @@ export function activeIds(config) {
240
240
  }
241
241
  /** Keep the pre-v2 switches in step with the capability list. */
242
242
  function mirrorLegacySwitches(config, ids) {
243
- config.codebase = { ...config.codebase, graft: ids.includes('graft') };
243
+ config.codebase = { ...config.codebase, trail: ids.includes('trail') };
244
244
  config.browser = {
245
245
  ...config.browser,
246
246
  visualAgent: ids.includes('agent-browser'),
@@ -1,10 +1,10 @@
1
- import { initGraft } from '../adapters/graft.js';
1
+ import { initTrail } from '../adapters/trail.js';
2
2
  import { setupAgentBrowser } from '../adapters/agent-browser.js';
3
3
  import { setupE2e } from '../adapters/e2e.js';
4
4
  import { claudeCodeEnabled } from '../adapters/skills.js';
5
5
  /** Upstream setup commands, keyed by the `setup` install step that names them. */
6
6
  export const SETUPS = {
7
- graft: (ctx) => initGraft(ctx.targetDir, {
7
+ trail: (ctx) => initTrail(ctx.targetDir, {
8
8
  dryRun: ctx.dryRun,
9
9
  silent: ctx.silent,
10
10
  claude: claudeCodeEnabled(ctx.config)
@@ -18,7 +18,7 @@ export const SETUPS = {
18
18
  })
19
19
  };
20
20
  export const SETUP_LABELS = {
21
- graft: 'Configuring codebase intelligence (Graft)',
21
+ trail: 'Configuring codebase intelligence (Trail)',
22
22
  'agent-browser': 'Provisioning agent-browser runtime',
23
23
  e2e: 'Scaffolding e2e tests'
24
24
  };
@@ -30,7 +30,7 @@ export type InstallStep =
30
30
  * Setups that run an upstream init command. vitest and playwright have none:
31
31
  * the presets add them to package.json when they are active.
32
32
  */
33
- export type SetupId = 'graft' | 'agent-browser' | 'e2e';
33
+ export type SetupId = 'trail' | 'agent-browser' | 'e2e';
34
34
  export type DoctorCheck = {
35
35
  kind: 'file';
36
36
  path: string;
@@ -51,6 +51,8 @@ export interface GuideContext {
51
51
  commands: ProjectCommands;
52
52
  /** Directory that holds the e2e workspace ('' for the project root). */
53
53
  e2eDir: string;
54
+ /** The project's top-level test directory (tests/ or test/), when it has one. */
55
+ testDir?: string;
54
56
  }
55
57
  export interface ProjectCommands {
56
58
  build?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antomanc/aginit",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Set up a new or existing project for AI coding agents in one command: AGENTS.md, Matt Pocock skills, Graft codebase graph, Vitest/Playwright. Orchestrates upstream tools, idempotent.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -39,6 +39,7 @@ export function projectProfile(
39
39
  options: { targetDir?: string; scripts?: Record<string, string> } = {}
40
40
  ): ProjectProfile {
41
41
  const { platform, stack } = resolvePlatformStack(config, options.targetDir);
42
+ const targetDir = options.targetDir ?? '.';
42
43
  const active = activeCapabilities(config);
43
44
  const ids = new Set(active.map((c) => c.id));
44
45
  return {
@@ -46,11 +47,12 @@ export function projectProfile(
46
47
  stack,
47
48
  active,
48
49
  has: (id) => ids.has(id),
49
- commands: projectCommands(options.targetDir ?? '.', stack, {
50
+ commands: projectCommands(targetDir, stack, {
50
51
  packageManager: config.packageManager,
51
52
  scripts: options.scripts
52
53
  }),
53
- e2eDir: e2eDirFor(stack)
54
+ e2eDir: e2eDirFor(stack),
55
+ testDir: ['tests', 'test'].find((dir) => fs.statSync(path.join(targetDir, dir), { throwIfNoEntry: false })?.isDirectory())
54
56
  };
55
57
  }
56
58
 
@@ -32,8 +32,14 @@ const BOOTSTRAP_SECTION = [
32
32
  'When the user asks to "bootstrap this project" or kicks off a new initiative:',
33
33
  '1. Understand product intent and ask 2-3 essential questions to resolve ambiguity.',
34
34
  '2. Draft or refine canonical context in `PRODUCT.md` and `DESIGN.md` (or `docs/adr/`).',
35
- '3. Plan in small verifiable increments and implement test-first using installed skills.'
35
+ '3. Plan in small verifiable increments and implement test-first using installed skills.',
36
+ ''
36
37
  ];
38
+ /** Older releases appended the section after the managed block; it now lives inside. */
39
+ const LEGACY_BOOTSTRAP = new RegExp(
40
+ '\\n*' + BOOTSTRAP_SECTION.join('\n').trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\n*',
41
+ 'g'
42
+ );
37
43
 
38
44
  /** Placeholder scripts used when AGENTS.md is rendered without a package.json to read. */
39
45
  function presetScripts(config: AginitConfig): Record<string, string> {
@@ -55,12 +61,14 @@ const table = (head: [string, string], rows: Array<[string, string]>) => [
55
61
  export function renderAgentsBlock(
56
62
  config: AginitConfig,
57
63
  profile: ProjectProfile,
58
- docs: MicroDoc[] = plannedMicroDocs(profile)
64
+ options: { docs?: MicroDoc[]; targetDir?: string } = {}
59
65
  ): string {
66
+ const { docs = plannedMicroDocs(profile), targetDir } = options;
60
67
  const hasSkills = config.skills.sources.length > 0;
61
- const routing: Array<[string, string]> = [
62
- ['Product intent, scope, target users', '`PRODUCT.md`']
63
- ];
68
+ const routing: Array<[string, string]> = [];
69
+ // Only route to PRODUCT.md when it exists or a design capability will write it.
70
+ if ((targetDir && fileExists(path.join(targetDir, 'PRODUCT.md'))) || profile.active.some((c) => c.category === 'design'))
71
+ routing.push(['Product intent, scope, target users', '`PRODUCT.md`']);
64
72
  const order = ['design', 'codebase-graph'];
65
73
  const rank = (c: CapabilityDescriptor) => (order.indexOf(c.category) + order.length + 1) % (order.length + 1);
66
74
  const direct = profile.active.filter((c) => c.routing).sort((a, b) => rank(a) - rank(b));
@@ -89,6 +97,7 @@ export function renderAgentsBlock(
89
97
 
90
98
  const lines = [
91
99
  AGINIT_BLOCK_START,
100
+ ...BOOTSTRAP_SECTION,
92
101
  ...(profile.has('karpathy-guidelines')
93
102
  ? [
94
103
  '## Guardrails (karpathy-guidelines)',
@@ -157,9 +166,7 @@ export function generateAgentsMarkdown(
157
166
  '## Essential Commands',
158
167
  ...(commandLines.length ? commandLines : ['- Add the build and test commands here once they exist.']),
159
168
  '',
160
- renderAgentsBlock(config, profile),
161
- '',
162
- ...BOOTSTRAP_SECTION,
169
+ renderAgentsBlock(config, profile, { targetDir }),
163
170
  ''
164
171
  ];
165
172
  return sections.join('\n').replace(/\n{3,}/g, '\n\n').trim() + '\n';
@@ -176,11 +183,11 @@ export function mergeAgentsBlock(existing: string, block: string): string {
176
183
  return existing.slice(0, startMatch.index) + block + existing.slice(endOffset);
177
184
  }
178
185
  }
179
- // Above Graft's block when there is one, so Graft keeps owning the end of the file.
180
- const graftMatch = existing.match(/<!--\s*graft:start(?:\b[^>]*)?-->/);
181
- if (graftMatch && graftMatch.index !== undefined) {
182
- const graft = graftMatch.index;
183
- return existing.slice(0, graft).trimEnd() + '\n\n' + block + '\n\n' + existing.slice(graft);
186
+ // Above Trail's block (graft's before it) when there is one, so Trail keeps owning the end of the file.
187
+ const trailMatch = existing.match(/<!--\s*(?:trail|graft):start(?:\b[^>]*)?-->/);
188
+ if (trailMatch && trailMatch.index !== undefined) {
189
+ const trail = trailMatch.index;
190
+ return existing.slice(0, trail).trimEnd() + '\n\n' + block + '\n\n' + existing.slice(trail);
184
191
  }
185
192
  return existing.trimEnd() + '\n\n' + block + '\n';
186
193
  }
@@ -197,9 +204,9 @@ export function setupAgentsMarkdown(
197
204
  const existing = readTextFile(filePath) || '';
198
205
  const scripts = readPackageManifest(targetDir)?.scripts;
199
206
  const profile = projectProfile(config, { targetDir, scripts });
200
- let updated = mergeAgentsBlock(existing, renderAgentsBlock(config, profile, options.docs));
201
- if (!updated.includes('## Bootstrap & First Session'))
202
- updated = updated.trimEnd() + '\n\n' + BOOTSTRAP_SECTION.join('\n') + '\n';
207
+ const legacyFree = existing.replace(LEGACY_BOOTSTRAP, '\n\n').replace(/\n+$/, '\n');
208
+ const block = renderAgentsBlock(config, profile, { docs: options.docs, targetDir });
209
+ const updated = mergeAgentsBlock(legacyFree, block);
203
210
  if (updated === existing) {
204
211
  if (!silent) logger.dim('AGENTS.md is up to date, preserving content.');
205
212
  return true;
@@ -30,11 +30,6 @@ coverage/
30
30
  test-results/
31
31
  playwright-report/
32
32
  blob-report/
33
-
34
- # Codebase intelligence cache (graft builds locally, git-ignored)
35
- /graft/
36
- # ripgrep hint graft writes next to that cache; regenerated by \`graft build\`
37
- .ignore
38
33
  `;
39
34
 
40
35
  export async function setupGit(
@@ -77,7 +72,6 @@ export async function setupGit(
77
72
 
78
73
  const essentialRules = [
79
74
  'node_modules/',
80
- '/graft/',
81
75
  '.DS_Store',
82
76
  'dist/',
83
77
  '.env',
@@ -1,6 +1,7 @@
1
1
  import path from 'node:path';
2
2
  import { fileExists, readTextFile, safeWriteFile } from '../utils/fs.js';
3
3
  import { readPackageManifest } from '../config/validation.js';
4
+ import { ruffConfigFile } from '../detect/index.js';
4
5
 
5
6
  // Vendored skill sources ship third-party JS and Markdown that the project's own
6
7
  // linters and formatters must not check. No ignore convention is shared across tools,
@@ -8,6 +9,7 @@ import { readPackageManifest } from '../config/validation.js';
8
9
  const VENDORED_DIRS = ['.agents', '.claude'];
9
10
 
10
11
  interface Project {
12
+ dir: string;
11
13
  manifest: Record<string, any> | null;
12
14
  has(dependency: string): boolean;
13
15
  exists(file: string): boolean;
@@ -117,11 +119,35 @@ const biome: ToolIgnore = {
117
119
  `add ${dirs.map((dir) => `"!!**/${dir}"`).join(', ')} to files.includes in ${file}`
118
120
  };
119
121
 
120
- const TOOLS = [prettier, eslintIgnore, eslintFlat, biome];
122
+ /** Ruff: extend-exclude at the top of ruff.toml, or under an existing [tool.ruff] table. */
123
+ const ruff: ToolIgnore = {
124
+ file: (project) => ruffConfigFile(project.dir),
125
+ missing: (text) =>
126
+ VENDORED_DIRS.filter((dir) => !text.includes(`"${dir}"`) && !text.includes(`'${dir}'`)),
127
+ patch: (text, dirs) => {
128
+ let start = 0;
129
+ if (/^\[tool\.ruff[.\]]/m.test(text)) {
130
+ const header = /^\[tool\.ruff\][ \t]*(#.*)?\r?\n/m.exec(text);
131
+ if (!header) return null;
132
+ start = header.index + header[0].length;
133
+ }
134
+ const next = text.slice(start).search(/^\[/m);
135
+ const table = text.slice(start, next === -1 ? undefined : start + next);
136
+ if (/^\s*extend-exclude\s*=/m.test(table)) return null;
137
+ const line = `extend-exclude = [${dirs.map((dir) => `"${dir}"`).join(', ')}] # vendored agent skills (aginit)\n`;
138
+ return text.slice(0, start) + line + text.slice(start);
139
+ },
140
+ advice: (file, dirs) =>
141
+ `add extend-exclude = [${dirs.map((dir) => `"${dir}"`).join(', ')}] to ` +
142
+ (file === 'pyproject.toml' ? '[tool.ruff] in pyproject.toml' : file)
143
+ };
144
+
145
+ const TOOLS = [prettier, eslintIgnore, eslintFlat, biome, ruff];
121
146
 
122
147
  function pendingIgnores(targetDir: string) {
123
148
  const manifest = readPackageManifest(targetDir);
124
149
  const project: Project = {
150
+ dir: targetDir,
125
151
  manifest,
126
152
  has: (name) => Boolean(manifest?.dependencies?.[name] || manifest?.devDependencies?.[name]),
127
153
  exists: (file) => fileExists(path.join(targetDir, file))
@@ -0,0 +1,94 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileExists, readTextFile, safeWriteFile } from '../utils/fs.js';
4
+ import { commandExists, runExecutable } from '../utils/shell.js';
5
+ import { logger } from '../utils/logger.js';
6
+
7
+ // The ripgrep hint graft wrote at the repo root; trail keeps its graph in .trail/cache.
8
+ const GRAFT_RIPGREP_HINT =
9
+ "# graft's cards are gitignored but should stay greppable: ripgrep reads\n" +
10
+ '# .ignore before .gitignore, so this re-admits the tree to search only.\n' +
11
+ '!graft/\ngraft/.cache/\ngraft/.graph/\n';
12
+
13
+ export async function isTrailInstalled(): Promise<boolean> {
14
+ return await commandExists('trail');
15
+ }
16
+
17
+ export async function initTrail(
18
+ targetDir: string,
19
+ options: { dryRun?: boolean; silent?: boolean; claude?: boolean } = {}
20
+ ): Promise<boolean> {
21
+ const { dryRun = false, silent = false, claude = true } = options;
22
+
23
+ const installed = dryRun || (await isTrailInstalled());
24
+ if (!installed) {
25
+ if (!silent) {
26
+ logger.warn(
27
+ 'Trail CLI is not installed. Install it with `npm install -g @trailhq/trail-code`, then rerun aginit init.'
28
+ );
29
+ }
30
+ return false;
31
+ }
32
+
33
+ if (!silent) logger.dim('Initializing Trail context graph...');
34
+
35
+ // Wire Antigravity, AGENTS.md readers and (optionally) Claude Code's in-repo
36
+ // .claude/ + .trail/, without touching global system files (--no-global).
37
+ // trail init also migrates a repo graft wired before.
38
+ const agents = ['antigravity', 'agents', ...(claude ? ['claude'] : [])];
39
+ const res = await runExecutable(
40
+ 'trail',
41
+ ['init', '--no-global', '--agents', ...agents, '-y'],
42
+ {
43
+ cwd: targetDir,
44
+ dryRun,
45
+ silent: true
46
+ }
47
+ );
48
+
49
+ if (!res.ok) {
50
+ logger.warn(`Trail initialization warning: ${res.stderr || res.stdout}`);
51
+ return false;
52
+ }
53
+
54
+ // trail init leaves graft's ripgrep hint behind; drop it when unedited.
55
+ const hint = path.join(targetDir, '.ignore');
56
+ if (!dryRun && readTextFile(hint) === GRAFT_RIPGREP_HINT) fs.rmSync(hint);
57
+
58
+ return true;
59
+ }
60
+
61
+ export async function buildTrail(
62
+ targetDir: string,
63
+ options: { dryRun?: boolean; silent?: boolean } = {}
64
+ ): Promise<boolean> {
65
+ const { dryRun = false } = options;
66
+ const installed = dryRun || (await isTrailInstalled());
67
+ if (!installed) return false;
68
+
69
+ const res = await runExecutable('trail', ['build'], { cwd: targetDir, dryRun, silent: true });
70
+ return res.ok;
71
+ }
72
+
73
+ export async function uninstallTrail(
74
+ targetDir: string,
75
+ options: { dryRun?: boolean; silent?: boolean } = {}
76
+ ): Promise<boolean> {
77
+ const { dryRun = false } = options;
78
+ const installed = dryRun || (await isTrailInstalled());
79
+ if (installed) {
80
+ await runExecutable('trail', ['uninstall'], { cwd: targetDir, dryRun, silent: true });
81
+ }
82
+
83
+ // Also clean up AGENTS.md fenced section if any remain (graft's included)
84
+ const agentsPath = path.join(targetDir, 'AGENTS.md');
85
+ if (fileExists(agentsPath)) {
86
+ const content = readTextFile(agentsPath) || '';
87
+ const cleaned = content
88
+ .replace(/<!-- (trail|graft):start -->[\s\S]*?<!-- \1:end -->\n?/g, '')
89
+ .trim();
90
+ safeWriteFile(agentsPath, cleaned + '\n', { overwrite: true, dryRun });
91
+ }
92
+
93
+ return true;
94
+ }
@@ -4,7 +4,7 @@ import { AGINIT_CONFIG_FILENAME, AginitConfig } from '../config/schema.js';
4
4
  import { readProjectConfig, validateConfig } from '../config/validation.js';
5
5
  import { resolvePlatformStack } from '../adapters/agent-docs.js';
6
6
  import { installAllSkills, removeSkills, skillAgents } from '../adapters/skills.js';
7
- import { uninstallGraft } from '../adapters/graft.js';
7
+ import { uninstallTrail } from '../adapters/trail.js';
8
8
  import { ignoreVendoredSkills } from '../adapters/tool-ignores.js';
9
9
  import {
10
10
  activeIds,
@@ -121,8 +121,8 @@ export async function changeCapabilities(
121
121
  const next = validateConfig(
122
122
  applyResolvedProfile({ ...config, platform, stack }, resolved, { skills: true, previous })
123
123
  );
124
- // Adding graft or playwright turns their legacy switch back on.
125
- if (next.capabilities?.includes('graft')) next.codebase.graft = true;
124
+ // Adding trail or playwright turns their legacy switch back on.
125
+ if (next.capabilities?.includes('trail')) next.codebase.trail = true;
126
126
 
127
127
  const after = activeIds(next);
128
128
  const nextCatalog = catalogFor(next);
@@ -141,9 +141,9 @@ export async function changeCapabilities(
141
141
  let ok = true;
142
142
 
143
143
  ok = (await removeSkills(targetDir, skillsOf(removed), { dryRun, silent })) && ok;
144
- if (removed.some((c) => c.id === 'graft')) await uninstallGraft(targetDir, { dryRun, silent });
144
+ if (removed.some((c) => c.id === 'trail')) await uninstallTrail(targetDir, { dryRun, silent });
145
145
  const leftovers = removed.filter((c) =>
146
- c.install.some((s) => s.kind === 'setup' && s.setup !== 'graft')
146
+ c.install.some((s) => s.kind === 'setup' && s.setup !== 'trail')
147
147
  );
148
148
  if (!silent)
149
149
  for (const c of leftovers)
@@ -166,7 +166,7 @@ export async function changeCapabilities(
166
166
 
167
167
  syncAgentDocs(targetDir, next, { dryRun, silent });
168
168
  if (!silent)
169
- for (const { name, bin, install } of await missingBinaries(added, ['graft', 'agent-browser', 'e2e']))
169
+ for (const { name, bin, install } of await missingBinaries(added, ['trail', 'agent-browser', 'e2e']))
170
170
  logger.warn(`${name} needs the \`${bin}\` CLI: ${install}`);
171
171
  if (!silent) {
172
172
  if (ok) logger.success('Capabilities updated. AGENTS.md and docs/agents/ are in sync.');
package/src/cli/doctor.ts CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  getInstalledSkills,
16
16
  getSkillsMissingForClaude
17
17
  } from '../adapters/skills.js';
18
- import { claudeMarkdownImportsAgents } from '../adapters/agents-md.js';
18
+ import { AGINIT_START_PATTERN, claudeMarkdownImportsAgents } from '../adapters/agents-md.js';
19
19
  import {
20
20
  agentBrowserStubInstalled,
21
21
  findUsernsRestriction,
@@ -229,21 +229,21 @@ export async function runDoctor(targetDir: string = process.cwd()): Promise<void
229
229
  const agentsPath = path.join(targetDir, 'AGENTS.md');
230
230
  const agentsExists = fileExists(agentsPath);
231
231
  const agentsContent = agentsExists ? readTextFile(agentsPath) || '' : '';
232
- const hasIntakeSection = agentsContent.includes('Bootstrap & First Session');
232
+ const hasBlock = AGINIT_START_PATTERN.test(agentsContent);
233
233
 
234
234
  checks.push({
235
235
  name: 'AGENTS.md Context',
236
236
  category: 'Project Config',
237
- ok: agentsExists && hasIntakeSection,
237
+ ok: agentsExists && hasBlock,
238
238
  detail: agentsExists
239
- ? hasIntakeSection
240
- ? 'AGENTS.md present with intake/bootstrap guidance'
241
- : 'AGENTS.md present but missing intake guidance'
239
+ ? hasBlock
240
+ ? 'AGENTS.md present with the aginit block'
241
+ : 'AGENTS.md present but missing the aginit block'
242
242
  : 'AGENTS.md not found in directory',
243
243
  suggestion: !agentsExists
244
244
  ? 'Run `aginit init` to generate standard AGENTS.md'
245
- : !hasIntakeSection
246
- ? 'Run `aginit init` to add intake section to AGENTS.md'
245
+ : !hasBlock
246
+ ? 'Run `aginit init` to add the aginit block to AGENTS.md'
247
247
  : undefined
248
248
  });
249
249