mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-05 16:34:00 +01:00
Codex, Factory, Kiro, OpenCode, Cursor and Copilot runtime roots linked bin/, lib/ and the compiled tools but not the files the generated skills read on demand: the preamble's jargon list and question registry, the AskUserQuestion split and CJK docs, the DX Hall of Fame, the test-value bar, the review checklists and specialists, design-html's vendored pretext.js, VERSION and plan-design-review/SKILL.md. The reads failed silently on every non-Claude host. _link_runtime_dists now links the shared list for every root, and _copy_runtime_skill_refs copies the host-rendered office-hours and plan-design-review SKILL.md (the #2449 pattern) into each root. The per-root review loops it replaces had drifted (Cursor shipped two of four checklists, only OpenCode had specialists). hosts/define-host.ts mirrors the list in sharedRuntimeRoot(). test/runtime-root-assets.test.ts renders every host, builds each root with setup's own functions and checks every $GSTACK_ROOT literal on disk; it fails on the previous setup for all five roots. scripts/ship-measure.ts stays deferred (it needs the eval harness). Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
50 lines
2.1 KiB
TypeScript
50 lines
2.1 KiB
TypeScript
import { defineHost, GBRAIN_RESOLVERS } from './define-host';
|
|
|
|
const codex = defineHost({
|
|
name: 'codex',
|
|
displayName: 'OpenAI Codex CLI',
|
|
tier: 'experimental',
|
|
capabilities: { toolExecution: true, questions: 'prose', planMode: false, delegation: false, browser: true, safetyHooks: 'advisory' },
|
|
cliAliases: ['agents'],
|
|
defaultModel: 'gpt',
|
|
|
|
localSkillRoot: '.agents/skills/gstack',
|
|
hostSubdir: '.agents',
|
|
|
|
frontmatter: {
|
|
mode: 'allowlist',
|
|
keepFields: ['name', 'description'],
|
|
descriptionLimit: 1024,
|
|
descriptionLimitBehavior: 'error',
|
|
},
|
|
|
|
// generateMetadata emits agents/openai.yaml (the format is hardcoded in
|
|
// gen-skill-docs.ts). Codex also gets a repo-local sidecar at
|
|
// .agents/skills/gstack (symlinked runtime assets: bin, lib, browse, review,
|
|
// qa, design/dist, make-pdf/dist, ETHOS.md) — that behavior lives in setup's
|
|
// create_agents_sidecar, not here.
|
|
generation: {
|
|
generateMetadata: true,
|
|
skipSkills: ['codex'],
|
|
},
|
|
|
|
// Non-mechanical rewrites: the global path becomes $GSTACK_ROOT (resolved by
|
|
// the preamble env vars), plus an extra review-path rewrite the derived trio
|
|
// doesn't cover.
|
|
pathRewrites: [
|
|
{ from: '~/.claude/skills/gstack', to: '$GSTACK_ROOT' },
|
|
{ from: '.claude/skills/gstack', to: '.agents/skills/gstack' },
|
|
{ from: '.claude/skills/review', to: '.agents/skills/gstack/review' },
|
|
{ from: '.claude/skills', to: '.agents/skills' },
|
|
{ from: 'CLAUDE.md', to: 'AGENTS.md' },
|
|
],
|
|
|
|
// Outside-review resolvers route to Claude Code; Review Army has its own restriction.
|
|
suppressedResolvers: ['REVIEW_ARMY', ...GBRAIN_RESOLVERS],
|
|
|
|
coAuthorTrailer: 'Co-Authored-By: OpenAI Codex <noreply@openai.com>',
|
|
boundaryInstruction: 'IMPORTANT: Do NOT read or execute any files under ~/.claude/, ~/.agents/, .claude/skills/, or agents/. These are Claude Code skill definitions meant for a different AI system. Do not invoke any installed skill (Codex home skills/, .agents/); answer directly. Ignore them completely. Do NOT modify agents/openai.yaml. Stay focused on the repository code only.',
|
|
});
|
|
|
|
export default codex;
|