feat: fw-4.19.0 + cli-3.16.0 — Codex CLI (OpenAI) skill support#203
Merged
Conversation
Adds a fourth parallel skill distribution under `dist/.codex/skills/` so the OpenAI Codex CLI can discover StrayMark skills. Codex rejects Claude-only frontmatter keys (`allowed-tools`) and only loads skills from `~/.codex/skills/` (user-level), not from the project tree like Claude and Gemini do — so the release also ships a new CLI subcommand that installs the project's `.codex/skills/` into the user's Codex home. Framework (fw-4.19.0): - New `dist/.codex/skills/` tree (11 skills) generated from `.claude/skills/` with minimal frontmatter (only `name` + `description`); body byte-identical. - `.codex/skills/` added to `dist/dist-manifest.yml`. - `codex-cli-v1.0` added to the AGENT-RULES `agent:` examples (EN/es/zh-CN). CLI (cli-3.16.0): - `straymark install-skills --agent <codex|claude|gemini> [--path .] [--dry-run] [--symlink]`: copies (or symlinks) every `straymark-*` skill from `<path>/.codex/skills/` into `$CODEX_HOME/skills/` (or `~/.codex/skills/`). `--agent claude|gemini` exits with guidance since those agents read from the project tree directly. - `straymark validate --agent codex`: verifies presence of `SKILL.md`, parseable YAML frontmatter, required `name`/`description`, and absence of Claude-only keys (`allowed-tools`, `argument-hint`, `model`) — a smell of someone copying skills from `.claude/`. - `cli/src/bin/gen_codex_skills`: generator binary; `--check` mode for CI to detect drift between `.claude/skills/` and `.codex/skills/`. Docs: - CHANGELOG entry for fw-4.19.0 / cli-3.16.0. - README + CLI-REFERENCE (EN + es + zh-CN): Codex column in skills table, `.codex/skills/` in multi-agent diagram, new sections for `install-skills` and `validate --agent`, Codex CLI in supported-platforms table. - Version footers bumped fw-4.18.0 → fw-4.19.0 across governance docs. Motivated by an adopter using Codex CLI for external Charter audits in Sentinel. Out of scope for this PR (tracked as follow-ups): umbrella skill, `agents/openai.yaml` per skill, tool-agnostic body rewrite, integration with Codex's `~/.codex/skills/.system/skill-installer`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dist/.codex/skills/(11 skills) so the OpenAI Codex CLI can discover StrayMark skills. Generated from.claude/skills/with minimal frontmatter (onlyname+description); body byte-identical.straymark install-skills --agent codexthat copies the project's.codex/skills/into~/.codex/skills/(where Codex actually looks);straymark validate --agent codexverifies the install..claude/skills/and rejects the Claude-onlyallowed-toolsfrontmatter. Codex also reads skills at user level (~/.codex/skills/), not from the project tree like Claude/Gemini.What's in the box
Framework (
fw-4.19.0)dist/.codex/skills/— 11 generated skills with Codex-compatible frontmatter.dist/dist-manifest.yml— adds.codex/skills/to thefiles:list sostraymark init/updatematerializes it in adopter projects.AGENT-RULES.md(EN/es/zh-CN) —codex-cli-v1.0added to theagent:examples.CLI (
cli-3.16.0)cli/src/commands/install_skills.rs— new subcommand. Supports--agent codex(copy/symlink to$CODEX_HOME/skills/or~/.codex/skills/),--dry-run,--symlink.--agent claude|geminiexits with guidance.cli/src/commands/validate.rs— new--agent codexmode: checks~/.codex/skills/straymark-*for presence, parseable YAML frontmatter, requiredname/description, and absence of Claude-only keys (allowed-tools,argument-hint,model).cli/src/bin/gen_codex_skills.rs— generator binary.cargo run --bin gen_codex_skillsregeneratesdist/.codex/skills/fromdist/.claude/skills/.--checkmode for CI drift detection.Docs
CHANGELOG.md— fw-4.19.0 / cli-3.16.0 entry..codex/skills/in multi-agent diagram, Codex CLI in supported-platforms table.CLI-REFERENCE.md(EN/es/zh-CN) — new sections forinstall-skillsandvalidate --agent; Skills section mentions the.codex/skills/variant.Out of scope (follow-ups)
straymark/SKILL.md) routing to specific flows.agents/openai.yamlper skill.~/.codex/skills/.system/skill-installer.Test plan
cargo build --release— clean.cargo testincli/— 217 tests pass (3 new from generator).cargo run --bin gen_codex_skills -- --check— reports in-sync (0 drift).install-skills --dry-run→install-skills→validate --agent codex(clean) → corrupt one skill by re-introducingallowed-tools→validate --agent codexwarns;install-skills --agent claudeerrors with guidance.fw-4.19.0+cli-3.16.0and verify therelease-framework+release-cliworkflows produce the expected artifacts.straymark init,straymark install-skills --agent codex, open Codex CLI in the project, ask for an AILOG, confirm Codex discovers and runsstraymark-ailog.🤖 Generated with Claude Code