specrails-core 4.5.0 → 4.6.3

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 (40) hide show
  1. package/bin/specrails-core.mjs +7 -0
  2. package/bin/tui-installer.mjs +96 -33
  3. package/dist/installer/commands/init.js +3 -7
  4. package/dist/installer/commands/init.js.map +1 -1
  5. package/dist/installer/phases/install-config.js +2 -5
  6. package/dist/installer/phases/install-config.js.map +1 -1
  7. package/dist/installer/phases/provider-detect.js +10 -11
  8. package/dist/installer/phases/provider-detect.js.map +1 -1
  9. package/dist/installer/phases/scaffold.js +419 -21
  10. package/dist/installer/phases/scaffold.js.map +1 -1
  11. package/package.json +1 -1
  12. package/templates/agents/sr-architect.md +25 -2
  13. package/templates/agents/sr-developer.md +30 -1
  14. package/templates/agents/sr-reviewer.md +20 -0
  15. package/templates/codex-skills/batch-implement/SKILL.md +268 -0
  16. package/templates/codex-skills/enrich/SKILL.md +191 -0
  17. package/templates/codex-skills/implement/SKILL.md +349 -0
  18. package/templates/codex-skills/merge-resolve/SKILL.md +88 -0
  19. package/templates/codex-skills/rails/sr-architect/SKILL.md +254 -0
  20. package/templates/codex-skills/rails/sr-backend-developer/SKILL.md +90 -0
  21. package/templates/codex-skills/rails/sr-backend-reviewer/SKILL.md +120 -0
  22. package/templates/codex-skills/rails/sr-developer/SKILL.md +163 -0
  23. package/templates/codex-skills/rails/sr-doc-sync/SKILL.md +123 -0
  24. package/templates/codex-skills/rails/sr-frontend-developer/SKILL.md +103 -0
  25. package/templates/codex-skills/rails/sr-frontend-reviewer/SKILL.md +111 -0
  26. package/templates/codex-skills/rails/sr-merge-resolver/SKILL.md +156 -0
  27. package/templates/codex-skills/rails/sr-performance-reviewer/SKILL.md +109 -0
  28. package/templates/codex-skills/rails/sr-product-analyst/SKILL.md +85 -0
  29. package/templates/codex-skills/rails/sr-product-manager/SKILL.md +129 -0
  30. package/templates/codex-skills/rails/sr-reviewer/SKILL.md +188 -0
  31. package/templates/codex-skills/rails/sr-security-reviewer/SKILL.md +121 -0
  32. package/templates/codex-skills/rails/sr-test-writer/SKILL.md +115 -0
  33. package/templates/codex-skills/retry/SKILL.md +117 -0
  34. package/templates/commands/specrails/implement.md +3 -3
  35. package/templates/settings/codex-config.toml +15 -10
  36. package/templates/skills/rails/sr-architect/SKILL.md +234 -0
  37. package/templates/skills/rails/sr-developer/SKILL.md +210 -0
  38. package/templates/skills/rails/sr-merge-resolver/SKILL.md +197 -0
  39. package/templates/skills/rails/sr-reviewer/SKILL.md +320 -0
  40. package/templates/settings/codex-rules.star +0 -12
@@ -2,6 +2,20 @@ import { rmSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { copyDir, copyFile, isDir, listDir, mkdirp, pathExists, readTextFile, writeFileLf } from '../util/fs.js';
4
4
  import { info, ok, warn } from '../util/logger.js';
5
+ /**
6
+ * The three baseline agents that every specrails install requires.
7
+ * These are the only agents guaranteed to be present — the implement
8
+ * pipeline depends on all three. sr-merge-resolver and every other
9
+ * agent are optional add-ons selected at install time.
10
+ *
11
+ * Mirrors the `allOf` baseline in schemas/profile.v1.json — update
12
+ * both files together if this set ever changes.
13
+ */
14
+ export const CORE_AGENTS = new Set([
15
+ 'sr-architect',
16
+ 'sr-developer',
17
+ 'sr-reviewer',
18
+ ]);
5
19
  /**
6
20
  * Agents excluded from the quick tier because they require a full
7
21
  * /specrails:enrich persona pass to function correctly.
@@ -15,12 +29,6 @@ const QUICK_EXCLUDED_SKILLS = new Set([
15
29
  'sr-auto-propose-backlog-specs',
16
30
  'sr-get-backlog-specs',
17
31
  ]);
18
- const QUICK_REQUIRED_AGENTS = new Set([
19
- 'sr-architect',
20
- 'sr-developer',
21
- 'sr-reviewer',
22
- 'sr-merge-resolver',
23
- ]);
24
32
  /**
25
33
  * Command → required agent dependency map. A command is excluded
26
34
  * from the quick tier when its required agent was excluded (i.e.
@@ -71,8 +79,12 @@ export function scaffoldInstallation(input) {
71
79
  // --- Directory skeleton ---
72
80
  mk(path.join(input.repoRoot, input.providerDir));
73
81
  if (input.provider === 'codex') {
74
- mk(path.join(input.repoRoot, '.agents', 'skills', 'enrich'));
75
- mk(path.join(input.repoRoot, '.agents', 'skills', 'doctor'));
82
+ // Codex skills live under <providerDir>/skills/ (e.g. .codex/skills/).
83
+ // The pre-§18 code wrote to `.agents/skills/` which codex doesn't read;
84
+ // that was a placeholder name from the gated state.
85
+ mk(path.join(input.repoRoot, input.providerDir, 'skills', 'enrich'));
86
+ mk(path.join(input.repoRoot, input.providerDir, 'skills', 'doctor'));
87
+ mk(path.join(input.repoRoot, input.providerDir, 'skills', 'rails'));
76
88
  }
77
89
  else {
78
90
  mk(path.join(input.repoRoot, input.providerDir, 'commands', 'specrails'));
@@ -118,16 +130,28 @@ export function scaffoldInstallation(input) {
118
130
  info(`Quick tier: placed ${placed.agents} agent(s) + ${placed.commands} command(s) + ` +
119
131
  `${placed.rules} rule file(s) directly into ${input.providerDir}/${skippedNote}`);
120
132
  }
121
- // --- Skills direct-placement (both tiers, claude provider) ---
122
- if (input.provider === 'claude') {
133
+ // --- Skills direct-placement (both tiers, both providers) ---
134
+ // Skills are provider-neutral (Anthropic Skills format == OpenAI Codex
135
+ // Skills format). The same templates/skills/ directory feeds both
136
+ // .claude/skills/ and .codex/skills/.
137
+ {
123
138
  const skills = placeSkills(input);
124
139
  copiedFiles += skills.filesCopied;
125
140
  const skillSkipNote = skills.skipped > 0 ? ` (skipped ${skills.skipped} VPC-dependent)` : '';
126
141
  info(`Placed ${skills.placed} skill(s) into ${input.providerDir}/skills/${skillSkipNote}`);
127
142
  }
143
+ // --- Codex provider settings + AGENTS.md initial content ---
144
+ if (input.provider === 'codex') {
145
+ const written = applyCodexSettings(input);
146
+ copiedFiles += written;
147
+ if (written > 0) {
148
+ info(`Codex provider: wrote ${written} setting file(s) (config.toml, AGENTS.md)`);
149
+ }
150
+ }
128
151
  // --- Full-tier hint: enrich is required to generate VPC artefacts ---
129
152
  if (input.tier === 'full') {
130
- info('Full tier staged. Run `/specrails:enrich` in Claude Code to generate ' +
153
+ const cliName = input.provider === 'codex' ? 'Codex CLI' : 'Claude Code';
154
+ info(`Full tier staged. Run \`/specrails:enrich\` in ${cliName} to generate ` +
131
155
  'VPC personas and adapt agents (including sr-product-manager and ' +
132
156
  'sr-product-analyst) to this codebase.');
133
157
  }
@@ -146,10 +170,31 @@ function copyBundledCommands(input) {
146
170
  if (!isDir(commandsSrc))
147
171
  return;
148
172
  if (input.provider === 'codex') {
149
- // Codex: write enrich + doctor as Agent Skills.
150
- copyFile(path.join(commandsSrc, 'enrich.md'), path.join(input.repoRoot, '.agents', 'skills', 'enrich', 'SKILL.md'));
151
- copyFile(path.join(commandsSrc, 'doctor.md'), path.join(input.repoRoot, '.agents', 'skills', 'doctor', 'SKILL.md'));
152
- input.copiedIncrement(2);
173
+ // Codex: every claude slash-command (`templates/commands/specrails/*.md`)
174
+ // ships as a SKILL under `.codex/skills/<name>/SKILL.md`. The codex skill
175
+ // loader requires `---`-delimited frontmatter with at least `name` and
176
+ // `description`; the source bodies usually have a claude-style
177
+ // frontmatter with just `description`, which we extract and re-emit in
178
+ // the canonical codex shape. Team-* commands are gated identically to
179
+ // the claude path.
180
+ let count = 0;
181
+ for (const entry of listDir(commandsSrc)) {
182
+ const name = path.basename(entry);
183
+ if (!name.endsWith('.md'))
184
+ continue;
185
+ if (name === 'setup.md')
186
+ continue;
187
+ if (!input.agentTeams && /^team-/.test(name))
188
+ continue;
189
+ const skillName = name.replace(/\.md$/, '');
190
+ writeCodexSkillFromCommand({
191
+ src: entry,
192
+ dest: path.join(input.repoRoot, input.providerDir, 'skills', skillName, 'SKILL.md'),
193
+ name: skillName,
194
+ });
195
+ count++;
196
+ }
197
+ input.copiedIncrement(count);
153
198
  return;
154
199
  }
155
200
  // Claude: all commands land under <providerDir>/commands/specrails/.
@@ -169,6 +214,89 @@ function copyBundledCommands(input) {
169
214
  }
170
215
  input.copiedIncrement(count);
171
216
  }
217
+ /**
218
+ * Convert a claude slash-command markdown file into a codex SKILL.md.
219
+ *
220
+ * Claude commands ship with either no frontmatter or a minimal
221
+ * `--- description: ... ---` block. Codex skill loader needs explicit
222
+ * `name`, `description`, `license`, and `compatibility` keys. We strip
223
+ * the source frontmatter (if any), keep its description, and re-emit
224
+ * the canonical codex shape. The remaining body is preserved.
225
+ *
226
+ * If `args.description` is provided it overrides any value extracted
227
+ * from the source frontmatter — used for the lifecycle skills where we
228
+ * want a more polished one-liner than what the slash-command file ships
229
+ * with.
230
+ */
231
+ function writeCodexSkillFromCommand(args) {
232
+ if (!pathExists(args.src))
233
+ return;
234
+ const raw = readTextFile(args.src);
235
+ const { body, description: srcDescription } = stripFrontmatter(raw);
236
+ // The carried-over claude description may mention `/specrails:foo`; rewrite
237
+ // those occurrences (description field only, not the body — body
238
+ // translation runs further down) so the codex skill picker shows a
239
+ // codex-shape name to the model.
240
+ const translatedSrcDescription = srcDescription
241
+ ?.replace(/\/specrails:([\w-]+)/g, '$$$1')
242
+ ?.replace(/\/sr:([\w-]+)/g, '$$$1');
243
+ const description = args.description ?? translatedSrcDescription ?? `specrails ${args.name} command (ported to codex skill).`;
244
+ const frontmatter = [
245
+ '---',
246
+ `name: ${args.name}`,
247
+ `description: ${JSON.stringify(description)}`,
248
+ 'license: MIT',
249
+ 'compatibility: "Requires the specrails-core installation in this repository."',
250
+ '---',
251
+ '',
252
+ ].join('\n');
253
+ // Translate claude-specific paths and slash-command references to their
254
+ // codex equivalents so the skill body reads natively on a codex project:
255
+ // .claude/ → .codex/ (config + memory paths)
256
+ // /specrails:<name> → $<name> (codex skill mention syntax;
257
+ // our scaffold writes a matching
258
+ // .codex/skills/<name>/SKILL.md
259
+ // for every claude slash command)
260
+ // /sr:<name> → $<name> (alias used in some docs)
261
+ // `/opsx:<name>` is intentionally left untouched: the claude→codex
262
+ // mapping is non-trivial (most opsx commands map to
263
+ // `$openspec-<name>-change` but a few drop the suffix, and a couple
264
+ // don't map at all). The references appear inside docstrings only,
265
+ // not at execution paths, so leaving them as-is keeps the skill
266
+ // working without inventing a wrong mapping.
267
+ const translated = body
268
+ .replace(/\.claude\//g, '.codex/')
269
+ .replace(/`\/specrails:([\w-]+)`/g, '`$$$1`')
270
+ .replace(/`\/sr:([\w-]+)`/g, '`$$$1`')
271
+ .replace(/\/specrails:([\w-]+)/g, '$$$1')
272
+ .replace(/\/sr:([\w-]+)/g, '$$$1');
273
+ writeFileLf(args.dest, frontmatter + translated);
274
+ }
275
+ /**
276
+ * Strip a leading `---`-delimited YAML frontmatter block and return the
277
+ * remaining body plus the `description:` value if present. Defensive
278
+ * parser: only handles `key: value` lines (no nested maps), which is
279
+ * the shape every slash-command file ships with today.
280
+ */
281
+ function stripFrontmatter(raw) {
282
+ if (!raw.startsWith('---\n'))
283
+ return { body: raw };
284
+ const endIdx = raw.indexOf('\n---\n', 4);
285
+ if (endIdx < 0)
286
+ return { body: raw };
287
+ const yaml = raw.slice(4, endIdx);
288
+ const body = raw.slice(endIdx + 5);
289
+ let description;
290
+ for (const line of yaml.split('\n')) {
291
+ const m = line.match(/^description\s*:\s*(.*)$/);
292
+ if (m) {
293
+ const v = m[1].trim();
294
+ description = v.replace(/^['"](.*)['"]$/, '$1');
295
+ break;
296
+ }
297
+ }
298
+ return { body, description };
299
+ }
172
300
  function pruneLegacyArtifacts(input) {
173
301
  const legacyPaths = [
174
302
  path.join(input.repoRoot, '.specrails', 'bin', 'doctor.sh'),
@@ -177,7 +305,10 @@ function pruneLegacyArtifacts(input) {
177
305
  path.join(input.repoRoot, '.specrails-version'),
178
306
  ];
179
307
  if (input.provider === 'codex') {
180
- legacyPaths.push(path.join(input.repoRoot, '.agents', 'skills', 'setup'));
308
+ // Pre-§18 layout used `.agents/skills/` — prune any leftovers from a
309
+ // legacy install before settling on the canonical `.codex/skills/`.
310
+ legacyPaths.push(path.join(input.repoRoot, '.agents'));
311
+ legacyPaths.push(path.join(input.repoRoot, input.providerDir, 'skills', 'setup'));
181
312
  }
182
313
  else {
183
314
  legacyPaths.push(path.join(input.repoRoot, input.providerDir, 'commands', 'setup.md'));
@@ -206,6 +337,55 @@ function pruneLegacyArtifacts(input) {
206
337
  * canonical staging dir.
207
338
  */
208
339
  function placeQuickTierArtefacts(input) {
340
+ // Codex projects: the quick-tier `agents/` + `rules/` placement is
341
+ // skipped (handled by `placeSkills` rail-skills + `applyCodexSettings`).
342
+ // The slash-command catalogue under `setup-templates/commands/specrails/`
343
+ // IS ported, but to `.codex/skills/<name>/SKILL.md` instead of
344
+ // `.claude/commands/specrails/<name>.md`, so codex users get the same
345
+ // command surface (`propose-spec`, `explore-spec`, `retry`, …) as
346
+ // claude.
347
+ if (input.provider === 'codex') {
348
+ const setupTemplates = path.join(input.repoRoot, '.specrails', 'setup-templates');
349
+ const commandsSrc = path.join(setupTemplates, 'commands', 'specrails');
350
+ // Codex-native skill overrides live at `templates/codex-skills/<name>/`.
351
+ // When one exists for a given slash-command name (e.g. `implement`), the
352
+ // scaffold writes that file verbatim instead of porting the claude
353
+ // command body. Use these to ship skills written for codex's
354
+ // single-agent model (no `subagent_type`, no `.claude/agent-memory/`,
355
+ // codex-shape spawn semantics).
356
+ const codexOverridesSrc = path.join(input.scriptDir, 'templates', 'codex-skills');
357
+ let commandsPlaced = 0;
358
+ if (isDir(commandsSrc)) {
359
+ for (const src of listDir(commandsSrc)) {
360
+ const name = path.basename(src);
361
+ if (!name.endsWith('.md'))
362
+ continue;
363
+ if (name === 'setup.md')
364
+ continue;
365
+ if (!input.agentTeams && /^team-/.test(name))
366
+ continue;
367
+ const skillName = name.slice(0, -3);
368
+ const dest = path.join(input.repoRoot, input.providerDir, 'skills', skillName, 'SKILL.md');
369
+ // If a codex-native override exists, ship it verbatim and skip the
370
+ // ported claude body entirely. Mirrors a directory copy in case the
371
+ // override ships sibling assets.
372
+ const overrideDir = path.join(codexOverridesSrc, skillName);
373
+ const overrideSkill = path.join(overrideDir, 'SKILL.md');
374
+ if (pathExists(overrideSkill)) {
375
+ copyDir(overrideDir, path.dirname(dest));
376
+ commandsPlaced++;
377
+ continue;
378
+ }
379
+ writeCodexSkillFromCommand({
380
+ src,
381
+ dest,
382
+ name: skillName,
383
+ });
384
+ commandsPlaced++;
385
+ }
386
+ }
387
+ return { agents: 0, commands: commandsPlaced, rules: 0, skippedAgents: 0 };
388
+ }
209
389
  const setupTemplates = path.join(input.repoRoot, '.specrails', 'setup-templates');
210
390
  const projectName = path.basename(input.repoRoot);
211
391
  const providerDirAbs = path.join(input.repoRoot, input.providerDir);
@@ -220,9 +400,13 @@ function placeQuickTierArtefacts(input) {
220
400
  let agentsPlaced = 0;
221
401
  let agentsSkipped = 0;
222
402
  const installedAgentNames = new Set();
403
+ // When no agent selection is provided (fresh init with no install-config),
404
+ // default to placing only the three core agents. This keeps the default
405
+ // install lean — optional agents (sr-merge-resolver, layer specialists,
406
+ // product agents) are explicitly opt-in via the TUI or install-config.
223
407
  const selectedAgents = input.selectedAgents
224
- ? new Set([...input.selectedAgents, ...QUICK_REQUIRED_AGENTS])
225
- : null;
408
+ ? new Set([...input.selectedAgents, ...CORE_AGENTS])
409
+ : new Set([...CORE_AGENTS]);
226
410
  if (isDir(agentsSrc)) {
227
411
  mkdirp(agentsDest);
228
412
  for (const src of listDir(agentsSrc)) {
@@ -303,10 +487,107 @@ function placeQuickTierArtefacts(input) {
303
487
  }
304
488
  return { agents: agentsPlaced, commands: commandsPlaced, rules: rulesPlaced, skippedAgents: agentsSkipped };
305
489
  }
490
+ /**
491
+ * Codex-specific provider settings. Writes `.codex/config.toml` (model +
492
+ * reasoning effort + sandbox baseline; conforms to the codex 0.128.0+
493
+ * top-level TOML schema) and `AGENTS.md` (top-level instructions file
494
+ * consumed by `codex` on startup, sentinel-protected so user edits
495
+ * outside the managed block survive).
496
+ *
497
+ * Idempotent: existing files outside the sentinel block are preserved.
498
+ * Returns the count of files written/refreshed.
499
+ */
500
+ function applyCodexSettings(input) {
501
+ const settingsSrc = path.join(input.scriptDir, 'templates', 'settings');
502
+ let written = 0;
503
+ // config.toml — model name interpolated from install-config (preset
504
+ // default `gpt-5.4-mini`). Static for v1; future revisions may surface
505
+ // reasoning_effort etc.
506
+ const configTomlSrc = path.join(settingsSrc, 'codex-config.toml');
507
+ if (pathExists(configTomlSrc)) {
508
+ const dest = path.join(input.repoRoot, input.providerDir, 'config.toml');
509
+ const rendered = readTextFile(configTomlSrc).replace(/\{\{MODEL_NAME\}\}/g, 'gpt-5.4-mini');
510
+ writeFileLf(dest, rendered);
511
+ written++;
512
+ }
513
+ // AGENTS.md — top-level instructions file the codex CLI loads on startup.
514
+ // Written with a sentinel block so update + enrich passes can refresh the
515
+ // managed content while preserving anything the user added outside it.
516
+ const agentsMdPath = path.join(input.repoRoot, 'AGENTS.md');
517
+ const agentsMdContent = renderInitialAgentsMd(input.repoRoot);
518
+ if (!pathExists(agentsMdPath)) {
519
+ writeFileLf(agentsMdPath, agentsMdContent);
520
+ written++;
521
+ }
522
+ else {
523
+ // Upsert sentinel block into an existing AGENTS.md.
524
+ const existing = readTextFile(agentsMdPath);
525
+ const next = upsertAgentsMdManagedBlock(existing, extractManagedBlock(agentsMdContent));
526
+ if (next !== existing) {
527
+ writeFileLf(agentsMdPath, next);
528
+ written++;
529
+ }
530
+ }
531
+ return written;
532
+ }
533
+ const AGENTS_MD_START = '<!-- specrails-managed:start -->';
534
+ const AGENTS_MD_END = '<!-- specrails-managed:end -->';
535
+ function renderInitialAgentsMd(repoRoot) {
536
+ const projectName = path.basename(repoRoot);
537
+ return [
538
+ AGENTS_MD_START,
539
+ '',
540
+ `# ${projectName} — agent instructions`,
541
+ '',
542
+ 'This project uses the **specrails** agent workflow under `.codex/`.',
543
+ 'See `.codex/skills/` for the catalog of agent skills available to codex',
544
+ 'sessions in this repository.',
545
+ '',
546
+ '## Conventions',
547
+ '',
548
+ '- Read specs from `.specrails/local-tickets.json` when implementing',
549
+ ' numbered tickets (`#42`, `#71` etc.).',
550
+ '- Prefer the skills in `.codex/skills/sr-*` over ad-hoc edits when a',
551
+ ' skill covers the task (implement, batch-implement, refactor-recommender,',
552
+ ' compat-check, why, ...).',
553
+ '- Honour the sandbox policy declared in `.codex/config.toml`',
554
+ ' (`sandbox_mode` + `approval_policy` top-level keys).',
555
+ '',
556
+ AGENTS_MD_END,
557
+ '',
558
+ ].join('\n');
559
+ }
560
+ function extractManagedBlock(rendered) {
561
+ const s = rendered.indexOf(AGENTS_MD_START);
562
+ const e = rendered.indexOf(AGENTS_MD_END);
563
+ if (s < 0 || e < 0)
564
+ return rendered;
565
+ return rendered.slice(s, e + AGENTS_MD_END.length);
566
+ }
567
+ function upsertAgentsMdManagedBlock(existing, managedBlock) {
568
+ const s = existing.indexOf(AGENTS_MD_START);
569
+ const e = existing.indexOf(AGENTS_MD_END);
570
+ if (s >= 0 && e >= 0 && e > s) {
571
+ return existing.slice(0, s) + managedBlock + existing.slice(e + AGENTS_MD_END.length);
572
+ }
573
+ // Append the managed block + a leading blank line if the file doesn't end with one.
574
+ const sep = existing.endsWith('\n\n') ? '' : existing.endsWith('\n') ? '\n' : '\n\n';
575
+ return existing + sep + managedBlock + '\n';
576
+ }
306
577
  // Copy each `sr-*` subfolder from `.specrails/setup-templates/skills/`
307
- // into `<providerDir>/skills/`. Skills are full directories
308
- // (SKILL.md + optional assets), so the whole folder is copied.
309
- // Quick tier excludes VPC-dependent skills; full tier copies all.
578
+ // (and the `rails/sr-*` subtree, which holds the canonical pipeline rail
579
+ // agents in SKILL.md format) into `<providerDir>/skills/`. Skills are
580
+ // full directories (SKILL.md + optional assets), so the whole folder is
581
+ // copied. Quick tier excludes VPC-dependent skills; full tier copies all.
582
+ //
583
+ // For codex projects, every copied `.md` file gets a post-copy textual
584
+ // translation so the body reads natively on codex:
585
+ // .claude/ → .codex/
586
+ // /specrails:<name> → $<name>
587
+ // /sr:<name> → $<name>
588
+ // /opsx:<name> → $openspec-<name>
589
+ // The source templates stay canonical (claude-flavoured); the rewrite is
590
+ // applied only to the codex-side copies.
310
591
  function placeSkills(input) {
311
592
  const setupSkills = path.join(input.repoRoot, '.specrails', 'setup-templates', 'skills');
312
593
  const destBase = path.join(input.repoRoot, input.providerDir, 'skills');
@@ -314,21 +595,138 @@ function placeSkills(input) {
314
595
  if (!isDir(setupSkills))
315
596
  return result;
316
597
  mkdirp(destBase);
598
+ // Top-level sr-* skills (sr-implement, sr-batch-implement, sr-why, etc.).
317
599
  for (const entry of listDir(setupSkills)) {
318
600
  if (!isDir(entry))
319
601
  continue;
320
602
  const skillId = path.basename(entry);
603
+ // The `rails/` subtree is descended below — skip it at the top level.
604
+ if (skillId === 'rails')
605
+ continue;
321
606
  if (input.tier === 'quick' && QUICK_EXCLUDED_SKILLS.has(skillId)) {
322
607
  result.skipped++;
323
608
  continue;
324
609
  }
325
610
  const dest = path.join(destBase, skillId);
326
611
  copyDir(entry, dest);
612
+ if (input.provider === 'codex')
613
+ translateCodexMarkdownInTree(dest);
327
614
  result.placed++;
328
615
  result.filesCopied += countFiles(dest);
329
616
  }
617
+ // Rail skills (sr-architect, sr-developer, sr-reviewer, sr-merge-resolver, etc.).
618
+ // These ship as SKILL.md siblings of the claude `.claude/agents/sr-*.md`
619
+ // counterparts so codex projects can invoke the pipeline via skills
620
+ // (codex doesn't honour Claude's `.claude/agents/` convention).
621
+ // Only the three CORE_AGENTS are placed by default; sr-merge-resolver and
622
+ // other optional rails are placed only when selectedAgents includes them.
623
+ //
624
+ // Codex-native overrides at `templates/codex-skills/rails/<name>/` win
625
+ // over the upstream ported copy when present — used to ship skill
626
+ // bodies written for codex's spawn_agent semantics (no
627
+ // `subagent_type:`, role conveyed via $-mention from the orchestrator).
628
+ const railsDir = path.join(setupSkills, 'rails');
629
+ const codexRailsOverridesDir = input.provider === 'codex'
630
+ ? path.join(input.scriptDir, 'templates', 'codex-skills', 'rails')
631
+ : null;
632
+ if (isDir(railsDir) || (codexRailsOverridesDir && isDir(codexRailsOverridesDir))) {
633
+ const destRails = path.join(destBase, 'rails');
634
+ mkdirp(destRails);
635
+ const placedIds = new Set();
636
+ // Honour the wizard's agent selection on codex projects, same as
637
+ // claude. If the wizard wrote `agents.selected: [a, b, ...]` to the
638
+ // install-config, install only the rails whose id is in that list
639
+ // OR is a core dependency. Without a selection (fresh install with no
640
+ // install-config), default to the three core agents only — consistent
641
+ // with the claude placeQuickTierArtefacts behavior.
642
+ const selectedAgents = input.selectedAgents
643
+ ? new Set([...input.selectedAgents, ...CORE_AGENTS])
644
+ : new Set([...CORE_AGENTS]);
645
+ const shouldPlace = (skillId) => {
646
+ if (selectedAgents === null)
647
+ return true;
648
+ return selectedAgents.has(skillId);
649
+ };
650
+ if (isDir(railsDir)) {
651
+ for (const entry of listDir(railsDir)) {
652
+ if (!isDir(entry))
653
+ continue;
654
+ const skillId = path.basename(entry);
655
+ if (!shouldPlace(skillId)) {
656
+ result.skipped++;
657
+ continue;
658
+ }
659
+ const dest = path.join(destRails, skillId);
660
+ const overrideSrc = codexRailsOverridesDir
661
+ ? path.join(codexRailsOverridesDir, skillId)
662
+ : null;
663
+ if (overrideSrc && isDir(overrideSrc) && pathExists(path.join(overrideSrc, 'SKILL.md'))) {
664
+ copyDir(overrideSrc, dest);
665
+ }
666
+ else {
667
+ copyDir(entry, dest);
668
+ if (input.provider === 'codex')
669
+ translateCodexMarkdownInTree(dest);
670
+ }
671
+ placedIds.add(skillId);
672
+ result.placed++;
673
+ result.filesCopied += countFiles(dest);
674
+ }
675
+ }
676
+ // Codex-only rails that have no upstream counterpart (frontend/
677
+ // backend developers, layer reviewers, product, test writer, doc
678
+ // sync). Same selectedAgents gate applies.
679
+ if (input.provider === 'codex' && codexRailsOverridesDir && isDir(codexRailsOverridesDir)) {
680
+ for (const entry of listDir(codexRailsOverridesDir)) {
681
+ if (!isDir(entry))
682
+ continue;
683
+ const skillId = path.basename(entry);
684
+ if (placedIds.has(skillId))
685
+ continue;
686
+ if (!shouldPlace(skillId)) {
687
+ result.skipped++;
688
+ continue;
689
+ }
690
+ if (!pathExists(path.join(entry, 'SKILL.md')))
691
+ continue;
692
+ const dest = path.join(destRails, skillId);
693
+ copyDir(entry, dest);
694
+ placedIds.add(skillId);
695
+ result.placed++;
696
+ result.filesCopied += countFiles(dest);
697
+ }
698
+ }
699
+ }
330
700
  return result;
331
701
  }
702
+ /**
703
+ * Walk a directory and rewrite every `.md` file in place with the
704
+ * claude→codex translation map. Used after copying an upstream skill
705
+ * directory onto a codex project so the body refers to `.codex/` and
706
+ * codex's `$skill` mention syntax instead of `.claude/` and
707
+ * `/specrails:` slash commands.
708
+ */
709
+ function translateCodexMarkdownInTree(dir) {
710
+ if (!isDir(dir))
711
+ return;
712
+ for (const entry of listDir(dir)) {
713
+ if (isDir(entry)) {
714
+ translateCodexMarkdownInTree(entry);
715
+ continue;
716
+ }
717
+ if (!entry.endsWith('.md'))
718
+ continue;
719
+ const raw = readTextFile(entry);
720
+ const translated = raw
721
+ .replace(/\.claude\//g, '.codex/')
722
+ .replace(/`\/specrails:([\w-]+)`/g, '`$$$1`')
723
+ .replace(/`\/sr:([\w-]+)`/g, '`$$$1`')
724
+ .replace(/\/specrails:([\w-]+)/g, '$$$1')
725
+ .replace(/\/sr:([\w-]+)/g, '$$$1');
726
+ if (translated !== raw)
727
+ writeFileLf(entry, translated);
728
+ }
729
+ }
332
730
  /**
333
731
  * Substitutes `{{KEY}}` tokens in the input text with the provided
334
732
  * values, then strips any remaining `{{UNKNOWN}}` tokens (replacing
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/installer/phases/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/installer/phases/scaffold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specrails-core",
3
- "version": "4.5.0",
3
+ "version": "4.6.3",
4
4
  "description": "AI agent workflow system for Claude Code — installs 12 specialized agents, orchestration commands, and persona-driven product discovery into any repository",
5
5
  "type": "module",
6
6
  "bin": {