@antomanc/aginit 0.5.0 → 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 (75) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +21 -16
  3. package/THIRD_PARTY_NOTICES.md +3 -3
  4. package/dist/adapters/agent-docs.d.ts +4 -1
  5. package/dist/adapters/agent-docs.d.ts.map +1 -1
  6. package/dist/adapters/agent-docs.js +17 -5
  7. package/dist/adapters/agent-docs.js.map +1 -1
  8. package/dist/adapters/agents-md.d.ts +7 -2
  9. package/dist/adapters/agents-md.d.ts.map +1 -1
  10. package/dist/adapters/agents-md.js +33 -20
  11. package/dist/adapters/agents-md.js.map +1 -1
  12. package/dist/adapters/git.d.ts.map +1 -1
  13. package/dist/adapters/git.js +0 -6
  14. package/dist/adapters/git.js.map +1 -1
  15. package/dist/adapters/tool-ignores.d.ts.map +1 -1
  16. package/dist/adapters/tool-ignores.js +25 -1
  17. package/dist/adapters/tool-ignores.js.map +1 -1
  18. package/dist/adapters/trail.d.ts +15 -0
  19. package/dist/adapters/{graft.d.ts.map → trail.d.ts.map} +1 -1
  20. package/dist/adapters/trail.js +68 -0
  21. package/dist/adapters/trail.js.map +1 -0
  22. package/dist/cli/capabilities.js +8 -8
  23. package/dist/cli/doctor.js +8 -8
  24. package/dist/cli/doctor.js.map +1 -1
  25. package/dist/cli/main.js +13 -13
  26. package/dist/cli/new.d.ts +1 -1
  27. package/dist/cli/new.js +5 -5
  28. package/dist/cli/wizard.d.ts +1 -0
  29. package/dist/cli/wizard.d.ts.map +1 -1
  30. package/dist/cli/wizard.js +5 -3
  31. package/dist/cli/wizard.js.map +1 -1
  32. package/dist/config/defaults.js +1 -1
  33. package/dist/config/schema.d.ts +2 -2
  34. package/dist/config/validation.d.ts +1 -1
  35. package/dist/config/validation.d.ts.map +1 -1
  36. package/dist/config/validation.js +15 -3
  37. package/dist/config/validation.js.map +1 -1
  38. package/dist/detect/index.d.ts +2 -0
  39. package/dist/detect/index.d.ts.map +1 -1
  40. package/dist/detect/index.js +15 -2
  41. package/dist/detect/index.js.map +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/registry/catalog.d.ts.map +1 -1
  45. package/dist/registry/catalog.js +14 -10
  46. package/dist/registry/catalog.js.map +1 -1
  47. package/dist/registry/index.d.ts +1 -1
  48. package/dist/registry/index.js +5 -5
  49. package/dist/registry/setup.js +3 -3
  50. package/dist/registry/types.d.ts +3 -1
  51. package/dist/registry/types.d.ts.map +1 -1
  52. package/package.json +1 -1
  53. package/src/adapters/agent-docs.ts +19 -4
  54. package/src/adapters/agents-md.ts +38 -20
  55. package/src/adapters/git.ts +0 -6
  56. package/src/adapters/tool-ignores.ts +27 -1
  57. package/src/adapters/trail.ts +94 -0
  58. package/src/cli/capabilities.ts +6 -6
  59. package/src/cli/doctor.ts +8 -8
  60. package/src/cli/main.ts +14 -14
  61. package/src/cli/new.ts +5 -5
  62. package/src/cli/wizard.ts +7 -3
  63. package/src/config/defaults.ts +1 -1
  64. package/src/config/schema.ts +2 -2
  65. package/src/config/validation.ts +17 -3
  66. package/src/detect/index.ts +15 -2
  67. package/src/index.ts +1 -1
  68. package/src/registry/catalog.ts +15 -10
  69. package/src/registry/index.ts +4 -4
  70. package/src/registry/setup.ts +4 -4
  71. package/src/registry/types.ts +4 -2
  72. package/dist/adapters/graft.d.ts +0 -15
  73. package/dist/adapters/graft.js +0 -58
  74. package/dist/adapters/graft.js.map +0 -1
  75. package/src/adapters/graft.ts +0 -82
@@ -64,6 +64,14 @@ export function detectProject(dir) {
64
64
  return { platform: 'backend', stack: 'python' };
65
65
  return { platform: null, stack: 'unknown' };
66
66
  }
67
+ /** The file configuring ruff, in ruff's own lookup order, when the project uses it. */
68
+ export function ruffConfigFile(dir) {
69
+ const local = ['.ruff.toml', 'ruff.toml'].find((file) => fs.existsSync(path.join(dir, file)));
70
+ if (local)
71
+ return local;
72
+ const pyproject = readTextFile(path.join(dir, 'pyproject.toml')) ?? '';
73
+ return /^\[tool\.ruff[.\]]/m.test(pyproject) ? 'pyproject.toml' : undefined;
74
+ }
67
75
  /**
68
76
  * The project's own commands: package scripts for Node projects, the host
69
77
  * toolchain otherwise. Commands that would be guesses are left out.
@@ -111,8 +119,13 @@ export function projectCommands(dir, stack, options = {}) {
111
119
  return { build: 'cargo build', typecheck: 'cargo check', lint: 'cargo clippy', test: 'cargo test' };
112
120
  case 'go':
113
121
  return { build: 'go build ./...', lint: 'go vet ./...', test: 'go test ./...' };
114
- case 'python':
115
- return { test: exists('uv.lock') ? 'uv run pytest' : 'pytest' };
122
+ case 'python': {
123
+ const run = exists('uv.lock') ? 'uv run ' : '';
124
+ return {
125
+ ...(ruffConfigFile(dir) ? { lint: `${run}ruff check . && ${run}ruff format --check .` } : {}),
126
+ test: `${run}pytest`
127
+ };
128
+ }
116
129
  case 'unknown':
117
130
  return {};
118
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export * from './presets/types.js';
6
6
  export * from './adapters/package-manager.js';
7
7
  export * from './adapters/git.js';
8
8
  export * from './adapters/skills.js';
9
- export * from './adapters/graft.js';
9
+ export * from './adapters/trail.js';
10
10
  export * from './adapters/agents-md.js';
11
11
  export * from './adapters/browser.js';
12
12
  export * from './adapters/agent-browser.js';
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ export * from './presets/types.js';
6
6
  export * from './adapters/package-manager.js';
7
7
  export * from './adapters/git.js';
8
8
  export * from './adapters/skills.js';
9
- export * from './adapters/graft.js';
9
+ export * from './adapters/trail.js';
10
10
  export * from './adapters/agents-md.js';
11
11
  export * from './adapters/browser.js';
12
12
  export * from './adapters/agent-browser.js';
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/registry/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAE7B,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,+BAA+B,EAC/B,IAAI,EACJ,WAAW,EACX,UAAU,EACV,OAAO,EACP,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EAER,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,eAAe,EACf,gBAAgB,CACR,CAAC;AAUX,eAAO,MAAM,OAAO,EAAE,oBAAoB,EAqfzC,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/registry/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAE7B,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,+BAA+B,EAC/B,IAAI,EACJ,WAAW,EACX,UAAU,EACV,OAAO,EACP,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EAER,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,eAAe,EACf,gBAAgB,CACR,CAAC;AAUX,eAAO,MAAM,OAAO,EAAE,oBAAoB,EA0fzC,CAAC"}
@@ -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.0",
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,16 +47,19 @@ 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
 
57
59
  export const DOCS_DIR = path.join('docs', 'agents');
58
60
  export const GENERATED_MARKER =
61
+ '<!-- aginit:managed — generated by npx @antomanc/aginit. Delete this line to take ownership of this file. -->';
62
+ export const LEGACY_GENERATED_MARKER =
59
63
  '<!-- Generated by aginit from aginit.config.json. Rerun `aginit` to refresh; delete this line to edit by hand. -->';
60
64
 
61
65
  const DOC_TITLES: Record<MicroDoc, string> = {
@@ -138,10 +142,21 @@ export function microDocPath(doc: MicroDoc): string {
138
142
  return path.join(DOCS_DIR, `${doc}.md`).split(path.sep).join('/');
139
143
  }
140
144
 
145
+ /** Checks if a micro-doc's content still carries an aginit managed marker. */
146
+ export function isManagedMicroDoc(text: string | null): boolean {
147
+ if (text === null) return true;
148
+ const firstLine = text.split(/\r?\n/, 1)[0].trim();
149
+ return (
150
+ firstLine.startsWith(GENERATED_MARKER) ||
151
+ firstLine.startsWith(LEGACY_GENERATED_MARKER) ||
152
+ /^<!--\s*aginit:managed(?:\b[^>]*)?-->/.test(firstLine) ||
153
+ /^<!--\s*Generated by aginit\b/.test(firstLine)
154
+ );
155
+ }
156
+
141
157
  /** Docs aginit owns: files it wrote that still carry the generated marker. */
142
158
  function ownedByAginit(file: string): boolean {
143
- const text = readTextFile(file);
144
- return text === null || text.startsWith(GENERATED_MARKER);
159
+ return isManagedMicroDoc(readTextFile(file));
145
160
  }
146
161
 
147
162
  /**
@@ -20,16 +20,26 @@ const PLATFORM_LABELS: Record<string, string> = {
20
20
  cli: 'CLI'
21
21
  };
22
22
 
23
- export const AGINIT_BLOCK_START = '<!-- aginit:start -->';
23
+ export const AGINIT_BLOCK_START =
24
+ '<!-- aginit:start — managed by npx @antomanc/aginit (re-run to refresh) -->';
24
25
  export const AGINIT_BLOCK_END = '<!-- aginit:end -->';
25
26
 
27
+ export const AGINIT_START_PATTERN = /<!--\s*aginit:start(?:\b[^>]*)?-->/;
28
+ export const AGINIT_END_PATTERN = /<!--\s*aginit:end(?:\b[^>]*)?-->/;
29
+
26
30
  const BOOTSTRAP_SECTION = [
27
31
  '## Bootstrap & First Session',
28
32
  'When the user asks to "bootstrap this project" or kicks off a new initiative:',
29
33
  '1. Understand product intent and ask 2-3 essential questions to resolve ambiguity.',
30
34
  '2. Draft or refine canonical context in `PRODUCT.md` and `DESIGN.md` (or `docs/adr/`).',
31
- '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
+ ''
32
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
+ );
33
43
 
34
44
  /** Placeholder scripts used when AGENTS.md is rendered without a package.json to read. */
35
45
  function presetScripts(config: AginitConfig): Record<string, string> {
@@ -51,12 +61,14 @@ const table = (head: [string, string], rows: Array<[string, string]>) => [
51
61
  export function renderAgentsBlock(
52
62
  config: AginitConfig,
53
63
  profile: ProjectProfile,
54
- docs: MicroDoc[] = plannedMicroDocs(profile)
64
+ options: { docs?: MicroDoc[]; targetDir?: string } = {}
55
65
  ): string {
66
+ const { docs = plannedMicroDocs(profile), targetDir } = options;
56
67
  const hasSkills = config.skills.sources.length > 0;
57
- const routing: Array<[string, string]> = [
58
- ['Product intent, scope, target users', '`PRODUCT.md`']
59
- ];
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`']);
60
72
  const order = ['design', 'codebase-graph'];
61
73
  const rank = (c: CapabilityDescriptor) => (order.indexOf(c.category) + order.length + 1) % (order.length + 1);
62
74
  const direct = profile.active.filter((c) => c.routing).sort((a, b) => rank(a) - rank(b));
@@ -85,6 +97,7 @@ export function renderAgentsBlock(
85
97
 
86
98
  const lines = [
87
99
  AGINIT_BLOCK_START,
100
+ ...BOOTSTRAP_SECTION,
88
101
  ...(profile.has('karpathy-guidelines')
89
102
  ? [
90
103
  '## Guardrails (karpathy-guidelines)',
@@ -153,9 +166,7 @@ export function generateAgentsMarkdown(
153
166
  '## Essential Commands',
154
167
  ...(commandLines.length ? commandLines : ['- Add the build and test commands here once they exist.']),
155
168
  '',
156
- renderAgentsBlock(config, profile),
157
- '',
158
- ...BOOTSTRAP_SECTION,
169
+ renderAgentsBlock(config, profile, { targetDir }),
159
170
  ''
160
171
  ];
161
172
  return sections.join('\n').replace(/\n{3,}/g, '\n\n').trim() + '\n';
@@ -163,14 +174,21 @@ export function generateAgentsMarkdown(
163
174
 
164
175
  /** Insert or refresh the aginit block in an existing AGENTS.md, leaving everything else as written. */
165
176
  export function mergeAgentsBlock(existing: string, block: string): string {
166
- const start = existing.indexOf(AGINIT_BLOCK_START);
167
- const end = existing.indexOf(AGINIT_BLOCK_END);
168
- if (start !== -1 && end > start)
169
- return existing.slice(0, start) + block + existing.slice(end + AGINIT_BLOCK_END.length);
170
- // Above Graft's block when there is one, so Graft keeps owning the end of the file.
171
- const graft = existing.indexOf('<!-- graft:start -->');
172
- if (graft !== -1)
173
- return existing.slice(0, graft).trimEnd() + '\n\n' + block + '\n\n' + existing.slice(graft);
177
+ const startMatch = existing.match(AGINIT_START_PATTERN);
178
+ if (startMatch && startMatch.index !== undefined) {
179
+ const afterStart = existing.slice(startMatch.index + startMatch[0].length);
180
+ const endMatch = afterStart.match(AGINIT_END_PATTERN);
181
+ if (endMatch && endMatch.index !== undefined) {
182
+ const endOffset = startMatch.index + startMatch[0].length + endMatch.index + endMatch[0].length;
183
+ return existing.slice(0, startMatch.index) + block + existing.slice(endOffset);
184
+ }
185
+ }
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);
191
+ }
174
192
  return existing.trimEnd() + '\n\n' + block + '\n';
175
193
  }
176
194
 
@@ -186,9 +204,9 @@ export function setupAgentsMarkdown(
186
204
  const existing = readTextFile(filePath) || '';
187
205
  const scripts = readPackageManifest(targetDir)?.scripts;
188
206
  const profile = projectProfile(config, { targetDir, scripts });
189
- let updated = mergeAgentsBlock(existing, renderAgentsBlock(config, profile, options.docs));
190
- if (!updated.includes('## Bootstrap & First Session'))
191
- 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);
192
210
  if (updated === existing) {
193
211
  if (!silent) logger.dim('AGENTS.md is up to date, preserving content.');
194
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))