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.
- package/bin/specrails-core.mjs +7 -0
- package/bin/tui-installer.mjs +96 -33
- package/dist/installer/commands/init.js +3 -7
- package/dist/installer/commands/init.js.map +1 -1
- package/dist/installer/phases/install-config.js +2 -5
- package/dist/installer/phases/install-config.js.map +1 -1
- package/dist/installer/phases/provider-detect.js +10 -11
- package/dist/installer/phases/provider-detect.js.map +1 -1
- package/dist/installer/phases/scaffold.js +419 -21
- package/dist/installer/phases/scaffold.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/sr-architect.md +25 -2
- package/templates/agents/sr-developer.md +30 -1
- package/templates/agents/sr-reviewer.md +20 -0
- package/templates/codex-skills/batch-implement/SKILL.md +268 -0
- package/templates/codex-skills/enrich/SKILL.md +191 -0
- package/templates/codex-skills/implement/SKILL.md +349 -0
- package/templates/codex-skills/merge-resolve/SKILL.md +88 -0
- package/templates/codex-skills/rails/sr-architect/SKILL.md +254 -0
- package/templates/codex-skills/rails/sr-backend-developer/SKILL.md +90 -0
- package/templates/codex-skills/rails/sr-backend-reviewer/SKILL.md +120 -0
- package/templates/codex-skills/rails/sr-developer/SKILL.md +163 -0
- package/templates/codex-skills/rails/sr-doc-sync/SKILL.md +123 -0
- package/templates/codex-skills/rails/sr-frontend-developer/SKILL.md +103 -0
- package/templates/codex-skills/rails/sr-frontend-reviewer/SKILL.md +111 -0
- package/templates/codex-skills/rails/sr-merge-resolver/SKILL.md +156 -0
- package/templates/codex-skills/rails/sr-performance-reviewer/SKILL.md +109 -0
- package/templates/codex-skills/rails/sr-product-analyst/SKILL.md +85 -0
- package/templates/codex-skills/rails/sr-product-manager/SKILL.md +129 -0
- package/templates/codex-skills/rails/sr-reviewer/SKILL.md +188 -0
- package/templates/codex-skills/rails/sr-security-reviewer/SKILL.md +121 -0
- package/templates/codex-skills/rails/sr-test-writer/SKILL.md +115 -0
- package/templates/codex-skills/retry/SKILL.md +117 -0
- package/templates/commands/specrails/implement.md +3 -3
- package/templates/settings/codex-config.toml +15 -10
- package/templates/skills/rails/sr-architect/SKILL.md +234 -0
- package/templates/skills/rails/sr-developer/SKILL.md +210 -0
- package/templates/skills/rails/sr-merge-resolver/SKILL.md +197 -0
- package/templates/skills/rails/sr-reviewer/SKILL.md +320 -0
- 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
|
-
|
|
75
|
-
|
|
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,
|
|
122
|
-
|
|
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
|
-
|
|
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:
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
|
|
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, ...
|
|
225
|
-
:
|
|
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
|
-
//
|
|
308
|
-
//
|
|
309
|
-
//
|
|
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.
|
|
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": {
|