[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CP1KXD4CY5EQ117Q2CQKY4":3,"skill-same:01M6CP1KXD4CY5EQ117Q2CQKY4":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":13,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":6,"updatedAt":68,"install":69,"resources":82},"01M6CP1KXD4CY5EQ117Q2CQKY4","codex",null,"Use Codex CLI as a bounded coding agent for repo exploration, implementation, review, and session resume.","ncmlabs\u002Fforge","ncmlabs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F126867372?v=4","01M6CP1F8M06XXPC3FR9KDQTX5","01M6CP1FCVBY4DQZ1N5A2GCM9K",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Fcodex\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[5,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"review","cli","coding agent","implement","codex cli","Bash","explore","text","coding","repo","session","use","resume","implementation","exploration","2026-11-10 10:12:30",false,"---\nname: codex\ndescription: Use Codex CLI as a bounded coding agent for repo exploration, implementation, review, and session resume.\ntimeout: 1800\nallowed-tools:\n  - Bash(codex:*)\ncapabilities:\n  - name: explore\n    inputs: [Text, Text]\n    output: Text\n  - name: implement\n    inputs: [Text, Text, Text]\n    output: Text\n  - name: review\n    inputs: [Text, Text]\n    output: Text\n  - name: resume_session\n    inputs: [Text, Text]\n    output: Text\n---\n\n# Codex CLI Skill\n\nUse this skill when FORGE needs to delegate coding work to Codex CLI.\n\nDefault operating pattern:\n\n1. Explore in read-only sandbox mode.\n2. Implement with bounded automatic execution.\n3. Verify with deterministic checks.\n4. Resume by session id when follow-up is needed.\n\nCodex currently exposes its machine-readable interface as JSONL events. Treat the event stream as canonical and derive the final result from the last assistant message plus terminal usage events.\n\n## Capabilities\n\n### `explore(prompt, repo_path)`\n\nUse for read-only planning and repo analysis.\n\nPreferred command:\n\n```bash\ncodex exec --json --sandbox read-only \"$PROMPT\"\n```\n\nExpected behavior:\n\n- no file edits\n- command execution restricted by sandbox mode\n- progress available via `item.started` and `item.completed`\n\n### `implement(prompt, repo_path, verify_cmd)`\n\nUse for bounded code changes.\n\nPreferred command:\n\n```bash\ncodex exec --json --full-auto \"$PROMPT\"\n```\n\nPrompt requirements:\n\n- specify the target repo and allowed scope\n- require minimal edits\n- name the verification command\n- require a final summary of what changed and what passed\n\nExpected behavior:\n\n- Codex may edit files and run shell commands\n- progress is visible through JSONL events\n- final answer is delivered as the last assistant message\n\n### `review(prompt, repo_path)`\n\nUse for read-heavy verification.\n\nPreferred command:\n\n```bash\ncodex exec --json --sandbox read-only \"$PROMPT\"\n```\n\nReview prompts should ask for:\n\n- findings first\n- concrete file references\n- missing verification\n- residual risk\n\n### `resume_session(session_id, prompt)`\n\nUse to continue a prior noninteractive session.\n\nPreferred command:\n\n```bash\ncodex exec resume \"$SESSION_ID\" \"$PROMPT\" --json\n```\n\nThe CLI also supports:\n\n```bash\ncodex exec resume --last \"$PROMPT\" --json\n```\n\n## Session Adapter Mapping\n\n| FORGE session field | Codex CLI |\n|---|---|\n| `prompt` | positional prompt |\n| `agent = \"codex\"` | `codex exec` |\n| `tools` | no direct allowlist flag |\n| `workdir` | process working directory or `--cd` |\n| `timeout` | managed by FORGE wrapper |\n| `budget` | no direct cost-cap flag observed |\n| `resume` | `codex exec resume \u003Csession-id> [prompt] --json` |\n| `output_mode` | `--json` |\n| analysis mode | `--sandbox read-only` |\n| bounded edit mode | `--full-auto` |\n\n## AgentResult Mapping\n\nMap the JSONL stream into `AgentResult` as follows:\n\n| Codex event or field | AgentResult field |\n|---|---|\n| `thread.started.thread_id` | `session_id` |\n| final assistant `item.completed` | `output` |\n| `turn.completed.usage.input_tokens` | `tokens_in` |\n| `turn.completed.usage.output_tokens` | `tokens_out` |\n| command execution items | `progress_events` |\n| failed command items | progress metadata or `error` if terminal |\n\nImportant limitation:\n\n- Current `codex exec --json` does not emit a single terminal object equivalent to Claude's `result` schema.\n- Cost is not directly exposed in the observed JSONL event stream.\n\n## Safety Rules\n\n- Use `--sandbox read-only` for exploration and review.\n- Use `--full-auto` only for bounded implementation tasks.\n- Do not rely on prompt-only tool restrictions; Codex does not currently expose a Claude-style `--allowedTools` surface.\n- Prefer one implementer session plus a separate reviewer session over parallel editing sessions.\n","# Codex CLI Skill\n\nUse this skill when FORGE needs to delegate coding work to Codex CLI.\n\nDefault operating pattern:\n\n1. Explore in read-only sandbox mode.\n2. Implement with bounded automatic execution.\n3. Verify with deterministic checks.\n4. Resume by session id when follow-up is needed.\n\nCodex currently exposes its machine-readable interface as JSONL events. Treat the event stream as canonical and derive the final result from the last assistant message plus terminal usage events.\n\n## Capabilities\n\n### `explore(prompt, repo_path)`\n\nUse for read-only planning and repo analysis.\n\nPreferred command:\n\n```bash\ncodex exec --json --sandbox read-only \"$PROMPT\"\n```\n\nExpected behavior:\n\n- no file edits\n- command execution restricted by sandbox mode\n- progress available via `item.started` and `item.completed`\n\n### `implement(prompt, repo_path, verify_cmd)`\n\nUse for bounded code changes.\n\nPreferred command:\n\n```bash\ncodex exec --json --full-auto \"$PROMPT\"\n```\n\nPrompt requirements:\n\n- specify the target repo and allowed scope\n- require minimal edits\n- name the verification command\n- require a final summary of what changed and what passed\n\nExpected behavior:\n\n- Codex may edit files and run shell commands\n- progress is visible through JSONL events\n- final answer is delivered as the last assistant message\n\n### `review(prompt, repo_path)`\n\nUse for read-heavy verification.\n\nPreferred command:\n\n```bash\ncodex exec --json --sandbox read-only \"$PROMPT\"\n```\n\nReview prompts should ask for:\n\n- findings first\n- concrete file references\n- missing verification\n- residual risk\n\n### `resume_session(session_id, prompt)`\n\nUse to continue a prior noninteractive session.\n\nPreferred command:\n\n```bash\ncodex exec resume \"$SESSION_ID\" \"$PROMPT\" --json\n```\n\nThe CLI also supports:\n\n```bash\ncodex exec resume --last \"$PROMPT\" --json\n```\n\n## Session Adapter Mapping\n\n| FORGE session field | Codex CLI |\n|---|---|\n| `prompt` | positional prompt |\n| `agent = \"codex\"` | `codex exec` |\n| `tools` | no direct allowlist flag |\n| `workdir` | process working directory or `--cd` |\n| `timeout` | managed by FORGE wrapper |\n| `budget` | no direct cost-cap flag observed |\n| `resume` | `codex exec resume \u003Csession-id> [prompt] --json` |\n| `output_mode` | `--json` |\n| analysis mode | `--sandbox read-only` |\n| bounded edit mode | `--full-auto` |\n\n## AgentResult Mapping\n\nMap the JSONL stream into `AgentResult` as follows:\n\n| Codex event or field | AgentResult field |\n|---|---|\n| `thread.started.thread_id` | `session_id` |\n| final assistant `item.completed` | `output` |\n| `turn.completed.usage.input_tokens` | `tokens_in` |\n| `turn.completed.usage.output_tokens` | `tokens_out` |\n| command execution items | `progress_events` |\n| failed command items | progress metadata or `error` if terminal |\n\nImportant limitation:\n\n- Current `codex exec --json` does not emit a single terminal object equivalent to Claude's `result` schema.\n- Cost is not directly exposed in the observed JSONL event stream.\n\n## Safety Rules\n\n- Use `--sandbox read-only` for exploration and review.\n- Use `--full-auto` only for bounded implementation tasks.\n- Do not rely on prompt-only tool restrictions; Codex does not currently expose a Claude-style `--allowedTools` surface.\n- Prefer one implementer session plus a separate reviewer session over parallel editing sessions.\n",{"name":5,"timeout":48,"description":7,"capabilities":49,"allowed-tools":60},1800,[50,53,55,57],{"name":34,"inputs":51,"output":52},[52,52],"Text",{"name":31,"inputs":54,"output":52},[52,52,52],{"name":28,"inputs":56,"output":52},[52,52],{"name":58,"inputs":59,"output":52},"resume_session",[52,52],[61],"Bash(codex:*)","development","357dd4b767160fd37a6f66eed6488d9fae43be60","skills\u002Fcodex","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge","https:\u002F\u002Fgithub.com\u002Fncmlabs","ncmlabs.com","2026-10-16 01:25:57",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add ncmlabs\u002Fforge --skill codex",{"tool":75,"command":76},"bunx","bunx skills add ncmlabs\u002Fforge --skill codex",{"tool":78,"command":79},"pnpm","pnpm dlx skills add ncmlabs\u002Fforge --skill codex","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Fcodex\u002FSKILL.md",true,[],[84,93,106,130,160,173],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":43},"01M6CP25SKSYXW6F6VW5QHCHR1","greeter","Greet a person by name.","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Ftests\u002Ffixtures\u002Fskill-project\u002Fskills\u002Fgreeter\u002FSKILL.md",[],[86,91,35,92],"hello","greet",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":43},"01M6CP23Y84FG8XFP7Q6SM0JM3","git_analysis","Deep agentic analysis of git repository health and trends","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Ftests\u002Ffixtures\u002Fsentinel\u002Fskills\u002Fgit-analysis\u002FSKILL.md",[],[100,101,102,103,104,105,33],"git analysis","analysis","git","agentic","repository","health",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":118,"publishedAt":43},"01M6CP2116VHMB054AAZ88CXPY","write-forge","Writing, checking or running FORGE `.forge` programs — the authoring loop, the CLI's JSON envelope and exit codes, and the syntax and checker mistakes that break agents. Use when a task asks for a FORGE program or `.forge` file, names FORGE tasks\u002Fflows\u002Fagents\u002Fpools\u002Fwardens, or when the project has a forge.project.toml.","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Fwrite-forge\u002FSKILL.md",[112,115],{"categoryNo":113,"categoryName":114,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":116,"categoryName":117,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者",[119,120,121,122,123,124,125,126,29,127,39,128,129],"write forge","write","forge","syntax","json","loop","file","tasks","writing","exit","task",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":142,"publishedAt":43},"01M6CP1WS0J5FF0D45Q76FGJJ7","slack","Slack operations via the Web API — messages, channels, threads, reactions, and approvals.","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Fslack\u002FSKILL.md",[136,139],{"categoryNo":137,"categoryName":138,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":140,"categoryName":141,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",[132,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,33,159,35],"message","info","ok","operations","read","command","timestamp","curl","history","bot","web","delete","update","https","messages","api","pin",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":43},"01M6CP1T778FD17PC9Z3GQMFX2","ollama","Use Ollama local inference for text generation, classification, and analysis via local GPU models.","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Follama\u002FSKILL.md",[],[162,167,168,169,170,101,171,33,35,39,172],"analyze","inference","generate","gpu","classification","models",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":43},"01M6CP1PZ9TSC71W7CD89NJVT7","github","GitHub operations via the gh CLI — issues, PRs, branches, and CI checks.","https:\u002F\u002Fgithub.com\u002Fncmlabs\u002Fforge\u002Fblob\u002Fdevelopment\u002Fskills\u002Fgithub\u002FSKILL.md",[],[175,180,181,182,154,183,184,29,185,35,186,187,37,188,189,190,191,33,158,192],"csv","issues","state","create","pr","squash","gh","branch","check","view","diff","branches","ci"]