* docs: distinguish security skill selection from runtime support Record the project-copy resource gap and blocked read evidence without mapping hotpatch. wake-20260904T1905-776be2 * Fix security preflight evidence guards
40 KiB
Codex compatibility matrix
- Status: phase-two runtime pilots; journalism-core, visual-explainer, document-design, and portable okf-wiki scaffolding have scoped passes
- Last evidence update: September 4, 2026
- Architecture: Codex compatibility architecture decision
Historical runtime results stay tied to their tested snapshots. The v2.8.0 refresh updates current installation guidance without adding a native Codex marketplace or plugin manifests. Every older version recorded below is the version that was actually exercised. Those values are deliberately not bumped, because this file records evidence and the rule under Tool baseline is to never rewrite an older result as if it ran on a newer version.
The release catalog validation confirms the repository still follows the tested legacy package and Agent Skills routes. It does not convert the older runtime pilots into v2.8.0 runtime evidence.
September 2026 structure refresh
- Marketplace 2.8.0 contains 13 Claude packages and 64 shared skills.
- Codex can install the 15 nested journalism-core skills through the verified legacy-compatible package route.
- The Agent Skills route supports root and nested skill layouts without converting Claude commands, agents, or hooks.
- No native
.agents/plugins/marketplace.jsonor.codex-plugin/plugin.jsonmanifests are published.
How to read this matrix
This file records what has been proved for each package. Installation alone is not a support claim. A package becomes tested for Codex only after its install, discovery, activation, non-activation, resource, runtime, and no-Claude-environment gates pass.
Status labels:
- Baseline installed: a clean client installed the package or skill, but runtime behavior is not yet proved.
- Runtime pilot passed: paired client behavior passed for the named install paths. Other install paths and package-wide support gates remain unclaimed unless their evidence says otherwise.
- Candidate: the shared skills appear portable from static review, but the runtime gates are pending.
- Adapter required: static review found a platform-bound path, instruction, layout, or generated artifact.
- Standards blocked: shared frontmatter fails the Agent Skills validator.
- Claude-only surface: the component has no approved Codex mapping.
- Not assessed: no runtime claim has been tested.
Tool baseline
| Tool | Version or revision | Role |
|---|---|---|
| Codex structure refresh | 0.147.0 | Legacy package and Agent Skills route verification on August 15, 2026 |
| Claude marketplace, current structure | 2.8.0 | Current catalog and version alignment; historical runtime results below remain snapshot-specific |
| Repository | b0617649515d24ebfcd51f15bceb1d76b03db668 |
Architecture commit used as the phase-one worktree base |
| Repository release verification | 9eef57629edbaa19bf47ec35296acebdd7b4ab1f |
July 23 post-merge master head used for the phase-one release evidence |
| Repository visual-explainer pilot | f6a4b84dd2e9feafc6c2bf067f873e9301a083c2 |
July 23 master head installed for the V-ex-1 runtime evidence |
| Repository okf-wiki pilot | cabb43bc2515c6c30a3d0839909f786e7afbcba8 |
July 23 master head installed for the Okf-1 no-Claude runtime evidence |
| Repository Document design lock pilot | d49ed1022a012269a237f7749b0e47c099e7add6 |
July 23 master head used for the D-lock-1 update target |
| Repository video-toolkit preflight | bc681b79a3eaba846a494582368501e0b4d75b1b |
August 28 source revision used for the scoped video-toolkit preflight |
| Repository document-design pilot baseline | 902cc881b5f9c8a18053d1f60dcc456851db3ee4 |
September 3 public baseline used to prove the missing-resource failure before testing the candidate adapter |
| Repository security-toolkit preflight | 9e8e419a916f1f26c57ebe71acc9152c95b5117d |
September 4 source revision used for the scoped security-toolkit preflight |
| Claude Code | 2.1.215; 2.1.218 | Phase-one marketplace validation, then the post-merge clean journalism-core install |
| Codex CLI | 0.145.0 | Legacy-compatible marketplace and clean journalism-core install |
| Codex video-toolkit preflight | 0.149.1 | Scoped video-toolkit activation and dependency preflight on August 28, 2026 |
| Codex document-design pilot | 0.153.0 | Scoped project-standards activation, non-trigger, installed-resource, output, and rendering checks on September 3, 2026 |
| Codex security-toolkit preflight | 0.153.2 | Scoped project-copy selection and resource-read observations on September 4, 2026 |
| Claude document-design regression | 2.1.239 | Candidate --plugin-dir argument-delivery check on September 3, 2026 |
| skills CLI document-design pilot | 1.5.23 | Public baseline and candidate project-copy installs on September 3, 2026 |
| skills CLI | 1.5.19; 1.5.20 | Phase-one standards discovery, then post-merge project and user install canaries |
| Agent Skills validator | agentskills/agentskills@38a2ff82958afee88dadf4831509e6f7e9d8ef4e |
Shared frontmatter contract |
| Agent Skills validator, scheduled | Default-branch head (38a2ff82958afee88dadf4831509e6f7e9d8ef4e on July 23, 2026) |
Upstream drift signal |
| Claude marketplace | 2.3.3 | Catalog version after the phase-one frontmatter release bumps |
| Node.js on Legion | 22.17.0 | Local test and matrix tooling |
| Node.js on LOJ | 22.23.1 | Repository verification |
Update this table whenever newer client behavior is used as evidence. Do not rewrite an older result as if it ran on the newer version.
Baseline evidence
I-phase-1: package inventory
Environment: the authoritative LOJ worktree at the phase-one branch tip.
Result: the Claude marketplace contained 12 packages and the repository
contained 60 root or nested skills. Package component counts, versions, and
included or excluded surfaces were checked against the marketplace, child
manifests, and discovered SKILL.md paths. The package matrix below records the
inventory. Its linked validator and repository results provide the structural
proof for packages that contain shared skills.
C-base-1: clean Claude package install
Environment: disposable empty CLAUDE_CONFIG_DIR on Windows.
$env:CLAUDE_CONFIG_DIR = '<empty-temp-directory>'
claude plugin validate '<checkout>'
claude plugin marketplace add '<checkout>'
claude plugin install journalism-core@claude-skills-journalism --scope user
claude plugin list
Result: marketplace validation passed; journalism-core 1.2.0 installed and
enabled; 14 installed SKILL.md files were present. Activation and output were
not tested in this evidence item.
C-phase-1: repeatable Claude install canary
Environment: a temporary CLAUDE_CONFIG_DIR created and removed by the Node
canary. The canary uses the local checkout as the marketplace source.
npm run canary:journalism-core:claude
Result on Claude Code 2.1.215: the current marketplace passed strict validation;
journalism-core 1.2.0 installed and enabled; the installed skill names matched
the expected 14-name set and all 17 installed files matched the source hashes.
The canary runs on relevant pull requests, weekly, and on manual dispatch
against the current Claude Code release.
K-base-1: clean Codex package install through the legacy path
Environment: disposable empty CODEX_HOME on Windows.
$env:CODEX_HOME = '<empty-temp-directory>'
codex plugin marketplace add jamditis/claude-skills-journalism --json
codex plugin add journalism-core@claude-skills-journalism --json
Result: Codex read .claude-plugin/marketplace.json, used the package-level
Claude manifest fallback, installed journalism-core 1.2.0, and copied all 14
nested skills. No .codex-plugin/plugin.json was present. Root skills, Claude
commands, Claude agents, and Claude hooks were not mapped by this test.
K-phase-1: repeatable Codex legacy-package canary
Environment: a temporary CODEX_HOME created and removed by the Node canary.
The canary uses the local checkout as the marketplace source and refuses a
native Codex marketplace or journalism-core plugin manifest.
npm run canary:journalism-core:codex
Result on Codex 0.145.0: journalism-core 1.2.0 installed and enabled through
the Claude marketplace and package manifests; the installed skill names matched
the expected 14-name set and all 17 installed files matched the source hashes.
The same workflow runs against the current Codex release to warn when this
fallback changes.
S-base-1: standards-based Codex skill install
Environment: disposable empty project directory on Windows.
$env:DISABLE_TELEMETRY = '1'
npx -y skills@1.5.19 add jamditis/claude-skills-journalism `
--skill fact-check-workflow --agent codex --copy -y
Result: the CLI found 60 skills and installed fact-check-workflow under
.agents/skills. Its lock record preserved the GitHub source, path, and content
hash. Activation and mixed-install behavior were not tested.
S-phase-1: full journalism-core standards canary
Environment: a disposable project directory with the local
journalism-core directory as the standards source.
npm run canary:journalism-core:codex-skills
Result on skills CLI 1.5.19: all 14 skills and 17 files were copied to
.agents/skills, their hashes matched the source, and skills-lock.json
contained the same 14 names with content hashes. A second
manual check used the public GitHub journalism-core subdirectory URL and
produced the same installed set. The scheduled workflow exercises the current
skills CLI release.
S-global-phase-1: user-level journalism-core standards canary
Environment: a disposable home directory and a separate disposable project
directory. The canary sets both HOME and USERPROFILE so the install cannot
write to the runner's real user directory.
npm run canary:journalism-core:codex-skills-global
Result on skills CLI 1.5.20: all 14 skills and 17 files were copied to
~/.agents/skills, their hashes matched the source, and no file was written to
the disposable project's .agents/skills directory. This is Codex's documented
user-level discovery path. The scheduled workflow exercises the current skills
CLI release.
V-base-1: Agent Skills validation
Environment: disposable checkout at the source baseline. Windows runs set
PYTHONUTF8=1 because the pinned validator otherwise follows the legacy system
code page.
$env:PYTHONUTF8 = '1'
uvx --from "git+https://github.com/agentskills/agentskills.git@38a2ff82958afee88dadf4831509e6f7e9d8ef4e#subdirectory=skills-ref" `
skills-ref validate '<skill-directory>'
Result: 55 of 60 skills passed. document-design failed its name, directory,
and version checks. The four video skills failed because argument-hint is
not an Agent Skills field.
V-phase-1: repaired standards baseline
npm run validate:agent-skills
Result: all 60 skills passed the pinned official validator. The wrapper finds
root and nested skills, skips installed copies, sets PYTHONUTF8=1, and reports
each skill result. Linux pull-request CI runs this command.
V-upstream-1: current upstream validator canary
npm run validate:agent-skills:upstream
Result on July 21, 2026: all 60 skills passed the current Agent Skills default-branch validator. Its head was still the pinned revision above. A separate weekly and manually dispatched job follows the current upstream head; pull-request validation stays pinned so upstream changes cannot alter a PR gate without review.
F-phase-1: affected Claude package regression
Environment: disposable Claude marketplace install plus read-only --plugin-dir
invocations with built-in tools disabled.
Result: Claude validated the marketplace, installed pdf-playground 1.3.2 and
video-toolkit 1.0.3, and found one and four skills respectively. Explicit
document-design and video-download invocations received their supplied
arguments after the nonstandard argument-hint fields were removed. No files
or external tool requests were allowed during the invocations. The affected
package versions were patch-bumped because Claude uses the declared plugin
version to resolve cached installs.
Cv-base-1: Codex creator-helper comparison
python "$env:USERPROFILE\.codex\skills\.system\skill-creator\scripts\quick_validate.py" `
'<skill-directory>'
Result: 54 of 60 passed. The helper rejected the five failures above and also
rejected the standards-valid compatibility field in visual-explainer. This
extra failure is an expected client/spec difference, not permission to weaken
the shared standard.
R-base-1: repository checks
Environment: LOJ clean worktree after npm ci --ignore-scripts.
npm test
npm run check:docs-css
Result: 93 of 93 tests passed and 49 page-specific Tailwind stylesheets were current after the architecture record was added.
R-phase-1: phase-one repository checks
Environment: authoritative LOJ worktree after the phase-one files were synced with LF line endings.
npm test
npm run check:docs-css
Result: 114 of 114 tests passed on Linux and all 49 page-specific Tailwind
stylesheets were current. The added adversarial fixtures reject linked install
roots, linked skill resources, and Windows shell parsing of client arguments.
The earlier Windows staging run passed 109 tests with the one NTFS-impossible
colon fixture skipped. Actionlint 1.7.12 accepted both changed workflow files,
git diff --check passed, and strict Claude marketplace validation passed on
Claude Code 2.1.215. The Windows CSS freshness check also verified all 49
stylesheets after line endings were normalized for comparison.
P-release-1: post-merge master verification
Environment: public master at
9eef57629edbaa19bf47ec35296acebdd7b4ab1f
on July 23, 2026.
The manually dispatched
Client compatibility canary run 30026490472
passed all five jobs from master:
- Claude Code 2.1.218 installed
journalism-core1.2.0 with the expected 14 skills and 17 source-matching files. - Codex CLI 0.145.0 installed the same package, skill set, and files through the legacy-compatible marketplace path.
- skills CLI 1.5.20 installed the expected 14 skills and 17 files through both the project and user standards paths.
- The current upstream Agent Skills validator passed all 60 skills. Its
default-branch revision remained
38a2ff82958afee88dadf4831509e6f7e9d8ef4e.
A separate empty CLAUDE_CONFIG_DIR cloned the public repository and confirmed
marketplace 2.3.3 exposes installable pdf-playground 1.3.2 and
video-toolkit 1.0.3. Both installed and were enabled. A fresh
skills@1.5.20 public-repository discovery found exactly 60 source skills.
The disposable configurations were not reused as runtime evidence.
J-release-1: paired journalism-core runtime pilot
Environment: public master at
9eef57629edbaa19bf47ec35296acebdd7b4ab1f
installed into separate disposable Claude and Codex profiles on July 23, 2026.
The paired runtime record
contains the exact scope, prompts, selection evidence, output summaries,
resource hash, harness adjustments, verification, and cleanup.
Result: Claude Code 2.1.218 passed explicit activation through the installed
namespaced command, implicit source-verification selection, unrelated
non-trigger behavior, and installed photo-metadata/reference.md resolution.
Codex CLI 0.145.0 passed the same behavior through a skills CLI 1.5.20 project
standards install. The legacy-compatible Codex package path and user-level
standards path remain install-only evidence.
V-ex-release-1: visual-explainer root-skill runtime pilot
Environment: public master at
f6a4b84dd2e9feafc6c2bf067f873e9301a083c2
installed into a disposable Codex project on July 23, 2026. The
runtime record contains the
exact scope, install command, file-manifest digest, prompt, installed resource
reads, output digest, render review, validator difference, legacy omission,
harness behavior, and cleanup.
Result: Codex CLI 0.145.0 discovered $visual-explainer after skills CLI
1.5.20 copied the 24-file root skill into .agents/skills. V-ex-1 read the
installed references/css-patterns.md and templates/architecture.html, then
produced the requested four-stage newsroom architecture HTML. Desktop, mobile,
light, and dark checks found no overflow or runtime errors; the automated axe
checks found no WCAG 2.2 A or AA violations.
The legacy-compatible Codex plugin route cached the source root SKILL.md but
did not register it as a root skill. Codex generated three untested command
wrappers; they remain outside this root-skill runtime claim. The official
validator accepted the standards copy, while the creator helper produced only
the already-allowlisted compatibility-field difference.
Okf-release-1: okf-wiki no-Claude runtime pilot
Environment: public master at
cabb43bc2515c6c30a3d0839909f786e7afbcba8
installed into a disposable Codex project with a separate empty home on July
23, 2026. The runtime record
contains the exact isolation, source and output manifests, accepted prompt,
commands, generated-file inventory, validation, trust boundary, adapter
classification, uninstall behavior, and cleanup.
Result: Codex CLI 0.145.0 discovered $okf-wiki after skills CLI 1.5.20
copied the 114-file root skill into .agents/skills. The skill read its
installed instructions, spec, scaffolder, validator, and hook templates;
invoked the scaffolder once; created exactly nine portable/project files and
three Claude adapter files; and reported that exact inventory. Codex passed the
scaffolder's built-in validation and one direct portable validation, then the
harness repeated validation after the session. No Claude configuration
directory was available outside the generated output, no interactive prompt
appeared, and no hook executed.
The .claude/ settings and hooks are recorded as a Claude Code adapter, not
Codex project behavior. Removing the installed skill left the generated
project intact and valid, while the empty lock entry, Claude adapter directory,
and OKF user data remained independently removable.
V-tool-preflight-1: video-toolkit Codex preflight
Environment: source revision
bc681b79a3eaba846a494582368501e0b4d75b1b
installed into a disposable Codex project on Aug. 28, 2026. The
preflight record contains the
installed-source hashes, exact dependency state, accepted runtime results,
resource measurements, sandbox limit, Claude argument check, and cleanup.
Observed result: Codex CLI 0.149.1 discovered and explicitly activated all four
video-toolkit 1.0.6 skills through the project standards path. Each skill
checked its own local prerequisites and stopped without installing or
downloading. The CPU transcript-of-record path and no-GPU behavior were
selected correctly, the unrelated fixture did not activate a video skill, and
an embedded transcript instruction did not authorize a command. Real media,
output paths, browser behavior, hosted APIs, and media-parser sandboxing remain
untested. The manual session outputs were not preserved as repository
artifacts, so this is an observed preflight rather than a repeatable or passed
runtime fixture.
D-runtime-1: document-design Codex project-standards pilot
Environment: public baseline revision
902cc881b5f9c8a18053d1f60dcc456851db3ee4
and the candidate adapter tested in a disposable project on Sept. 3, 2026.
The runtime record
contains the exact install path, failing baseline, installed manifest digest,
activation and non-trigger results, resource reads, output hash, render checks,
Claude argument regression, cleanup, and excluded surfaces.
Result: skills CLI 1.5.23 copied the public document-design skill, but its
template, brand, and control paths were missing because they lived outside the
installed skill root. The explicit Codex fixture activated and refused to
write output. The candidate adapter carries exact skill-local copies guarded
against drift and removes the shared instruction's plugin-root assumption.
After reinstall, Codex 0.153.0 read all five required installed resources and
created the accepted one-page HTML output. The unrelated fixture did not
activate a skill. Claude Code 2.1.239 still received explicit skill arguments.
This is a scoped project-standards skill claim, not support for user-level or
legacy Codex installation, Claude commands, preview lifecycle, or hooks.
D-lock-release-1: Document design standards lock migration
Environment: Codex CLI 0.145.0 with a disposable skills CLI 1.5.20 project on July 23, 2026. The migration record contains the historical fixture, exact source commits, hashes, failure, migration boundary, two update passes, verification, and cleanup.
Result: skills CLI 1.5.20 exited 1 when its project updater passed the
historical Document design lock key back to the current repository. The
explicit repository migration renamed only the exact
jamditis/claude-skills-journalism and
pdf-playground/skills/document-design/SKILL.md identity. It left the
installed directory and complete record intact, rejected ambiguous inputs, and
did not run automatically.
After migration, two consecutive skills CLI updates exited 0. Exactly one
document-design lock identity remained; its repository source, skill path,
installed directory, frontmatter, and content hash matched. The second update
left the lock and installed-tree digests unchanged. This is local lock
migration evidence, not public catalog history or a mixed-install claim.
Wdp-structure-1: web-design-picker repository preflight
Environment: Windows 11 on Legion with Python 3.13, Node.js 22.17.0, Claude Code 2.1.251, and a disposable Python virtual environment on September 1, 2026.
Result: the root skill passed the pinned Agent Skills validator, the repository catalog validator, strict Claude plugin validation, and its own scaffold, build, static validation, distinctness, anti-slop, packaging, and browser QA self-test. The self-test used Pillow, resvg-cli, Playwright, and Chromium. No Codex activation, non-activation, resource-read, runtime, or no-Claude-environment fixture ran, so this is repository structure evidence rather than a Codex support claim.
S-tool-preflight-1: security-toolkit project-copy preflight
Environment: Codex CLI 0.153.2 on Linux, using manual copies of the four skill
directories in a disposable project's .agents/skills, on September 4, 2026.
The current user profile and host guidance remained in scope; this was not a
clean-profile or no-Claude-environment gate.
The preflight record separates reported activation from installed-resource reads and security enforcement. Explicit selection was observed, but nested filesystem reads were reported blocked by Bubblewrap. A separate local copy probe confirmed that the supply-chain skill's package-level scan script and synthetic fixture are absent from its standalone skill directory. Hotpatch remains unmapped and Claude-only; no runtime pass or package-wide support claim follows from these observations.
Package matrix
| Package | Version and components | Current classification | Included and excluded scope | Evidence | Next proof |
|---|---|---|---|---|---|
autocontext |
1.1.0; no skills; five commands; one agent; six hook files | Claude-only surface | Include nothing in the Codex claim. Commands, curator agent, hook lifecycle, persisted data, and compatibility environment variables need a separate design. | I-phase-1 | Define state, lifecycle, authority, and uninstall contracts in a separate accepted decision. |
dev-toolkit |
1.1.1; 11 nested skills | Candidate with adapter review | Instruction-led skills may be shared. Exclude Claude tool vocabulary, CLAUDE.md updates, hook wiring, and Claude subagent syntax until tested. |
V-phase-1 covers structure | Classify each skill; add explicit trigger and non-trigger fixtures for the portable subset. |
journalism-core |
1.2.0; 14 nested skills | Runtime pilot passed on the Claude package and Codex project-standards paths | Include the 14 shared skills. No commands, agents, or hooks are part of this package. The legacy-compatible Codex package and user-level standards paths remain install-only. | J-release-1, C-phase-1, K-phase-1, S-phase-1, S-global-phase-1, V-phase-1 | Add a no-Claude-environment gate and scheduled runtime regression before a broader package support claim. |
okf-wiki |
0.6.1; one root skill; scripts and generated Claude settings | Pre-set portable runtime pilot passed; instruction and Claude-output adapters remain | Include the tested Okf-1 path: standards discovery, installed spec and scaffolder reads, explicit project-relative scaffolding, validation, examples, and the generated OKF bundle. Exclude the unadapted general instructions that name AskUserQuestion and ${CLAUDE_SKILL_DIR}. The generated .claude/settings.json and hook scripts are an inert Claude Code adapter, not Codex configuration or lifecycle behavior. |
Okf-release-1, V-phase-1, and R-phase-1 | Port and test general onboarding and skill-root resolution; add scheduled Okf-1 coverage against current Codex; test mixed-client hook trust separately before any cross-client lifecycle claim. |
pdf-design |
1.1.0; one root skill | Adapter required | Shared design guidance and assets are candidates. Hard-coded ~/.claude and host-specific browser paths are excluded from a Codex claim. |
V-phase-1 covers structure | Add a no-Claude path-resolution fixture before editing paths. |
pdf-playground |
1.3.6; one nested skill; eight commands; one hook file | Runtime pilot passed on the Codex project-standards path; Claude-only surfaces unclaimed | Include $document-design, its self-contained relative resources, and HTML generation through the tested project copy. Its historical project lock identity has an explicit migration. Exclude the Codex user-level and legacy-package paths, all eight Claude commands, preview lifecycle, and hook behavior. |
D-runtime-1, D-lock-release-1, V-phase-1, and F-phase-1 | Add a no-Claude scheduled runtime regression and test user-level installation separately before broadening the claim. |
project-templates-toolkit |
1.0.3; three nested skills | Adapter required; paired contract fixtures added | project-retrospective and template-selector remain shared candidates. project-memory still generates only CLAUDE.md; paired contract fixtures now pin Claude CLAUDE.md and Codex AGENTS.md merge, nested-scope, non-trigger, output, and cleanup behavior. |
V-phase-1 covers structure; scripts/project-memory-fixtures.test.mjs proves the current shared output is insufficient and guards both client contracts |
Run both fixtures against installed clients, then add the smallest adapter that makes the Codex fixture pass without changing Claude output. |
research-toolkit |
1.1.0; six nested skills | Candidate | Include shared instruction-led skills. Network and external-content trust boundaries stay unchanged. | V-phase-1 covers structure | Add representative activation, non-activation, network-boundary, and resource checks. |
security-toolkit |
1.2.3; four nested skills; one command | Candidate with observed preflight and a resource-packaging gap; Claude-only command | The four shared skills remain candidates. Project-copy selection does not prove resource access or security enforcement. /security-toolkit:hotpatch and its sandbox lifecycle remain Claude-only. |
S-tool-preflight-1, V-phase-1, R-phase-1 | Resolve standalone supply-chain resource packaging; rerun with working sandbox reads and boundary traces. Do not map hotpatch without a separately accepted authority, sandbox, cooldown, failure, and cleanup design. |
superjawn |
1.0.0; 14 nested skills | Not assessed | No package-wide claim. Each skill needs review for Claude tool names, namespacing, agent dispatch, and parallel-agent assumptions. | V-phase-1 covers structure only | Evaluate one skill at a time with client-specific tool traces. Do not bulk-port. |
video-toolkit |
1.0.6; four nested skills; external media runtimes | Observed manual Codex preflight; durable harness and media execution pending | Include explicit activation, dependency refusal, CPU and no-GPU selection, unrelated non-trigger behavior, and the tested untrusted-transcript boundary as manual observations only. Exclude a repeatable runtime claim, real media, output paths, browser fallback, hosted APIs, and media-parser sandboxing. | V-tool-preflight-1, V-phase-1, and F-phase-1 | Add a repeatable harness with sanitized raw results, then run pinned local media through transcript, frame, provenance, dashboard, browser, sandbox, resource-cap, and cleanup fixtures. |
web-design-picker |
1.0.0; one root skill; 16 Python scripts; optional browser and media runtimes | Not assessed for Codex | Include no Codex runtime claim. Repository structure, plugin metadata, deterministic scaffold, build, validation, and packaging are locally checked; Codex activation and runtime behavior remain untested. | Wdp-structure-1 | Run paired activation, non-activation, installed-resource, disposable-project, and no-Claude-environment fixtures before making a Codex support claim. |
visual-explainer |
0.7.1; one root skill; eight source commands | Runtime pilot passed on the Codex project-standards path; command surfaces unclaimed | Include the root skill and its relative resources only through .agents/skills. The legacy route omits root-skill registration. Its three client-generated command wrappers and all eight source commands remain outside this claim. |
V-ex-release-1, V-phase-1, and Cv-base-1 | Add a no-Claude-environment gate and scheduled runtime regression before a broader package claim; test command wrappers only in a separately scoped issue. |
Pilot fixtures
These fixtures define the minimum behavior to test. Store raw outputs or CI links beside the matrix result when each one runs.
J-core-1: explicit verification workflow
Prompt:
Use the installed fact-check workflow to build a verification plan for an unsigned screenshot claiming that a city budget doubled in 2025. Treat the claim as unverified and do not invent sources.
Expected result: the intended skill is selected; the response separates the claim, evidence needed, primary sources, corroboration, status, and uncertainty; no unsupported factual verdict is produced.
J-core-2: implicit verification trigger
Prompt:
I received an unsigned screenshot with a public-spending claim. What should I verify before publication?
Expected result: a relevant journalism-core verification skill activates without an explicit skill name and follows its sourcing and uncertainty rules.
J-core-3: non-trigger
Prompt:
Calculate an 18% tip on a $42 meal.
Expected result: no journalism-core skill activates.
V-ex-1: root-skill layout
Install visual-explainer through the standards path, then ask for a small HTML
architecture diagram from supplied text.
Expected result: the root skill is discovered, reads its relative references and assets from the installed copy, and produces the requested file. The legacy package path is expected not to expose this root skill until evidence says otherwise.
The exact accepted prompt and semantic output verifier live in
scripts/visual-explainer-runtime-pilot.mjs. Run them with:
CODEX_HOME='<disposable-codex-home>' \
npm run pilot:visual-explainer -- codex v-ex-1 \
--project '<disposable-project>'
Okf-1: no-Claude scaffold
Run the installed okf-wiki skill against an empty temporary project with no
Claude configuration directory available.
Expected result: portable OKF files validate and no missing ~/.claude path
causes the run to fail. Generated Claude settings are recorded as a Claude
adapter rather than silently treated as Codex configuration.
The exact accepted prompt, empty-Claude preconditions, generated-file
inventory, and portable validator live in
scripts/okf-wiki-runtime-pilot.mjs. Run them with:
CODEX_HOME='<disposable-home>/.codex' \
npm run pilot:okf-wiki -- codex okf-1 \
--project '<disposable-project>' \
--client-home '<disposable-home>'
Expected files are nine portable/project files and three .claude/ adapter
files. No hook runs under Codex. The standards-installed skill, generated
Claude adapter, and generated OKF project have separate removal lifecycles.
Known differences and allowlist
| Difference | Scope | Policy | Removal condition |
|---|---|---|---|
Codex quick_validate.py rejects compatibility |
visual-explainer/SKILL.md on Codex 0.145.0 |
Allow only this validator difference while the official validator and installed Codex runtime accept the skill. | Codex aligns its helper, the installed runtime rejects the skill, or the field is no longer needed. |
| Official validator uses the Windows legacy code page by default | Windows validation at validator commit 38a2ff8 |
Set PYTHONUTF8=1; run the required CI gate on Ubuntu. |
Upstream reads SKILL.md as UTF-8 explicitly. |
| Legacy Codex plugin install omits root skills and Claude-only components | Root-skill packages, commands, agents, and hooks | Do not claim those components through the legacy package path. Prefer standards installation for skills. | A documented and tested Codex adapter exposes the component. |
| Codex does not deduplicate same-name skills across install roots | .agents/skills, $CODEX_HOME/skills, legacy plugin cache, and desktop import |
Recommend .agents/skills through npx skills for new Codex users and one Codex path per skill. Do not recommend the bundled installer or mixed paths during phase one. |
Duplicate identity, precedence, update, uninstall, recovery, and drift tests pass for the paths being combined. |
Do not add an expected difference merely to make CI green. Each entry needs a standards or runtime citation, the narrow affected path, and a condition for removal.
Public catalog watch
On July 21, 2026, skills.sh listed this repository
with 56 indexed skills and 13.6K aggregate installs while the checkout contained
60 skills. The four video skills were absent, matching their pre-fix validator
failures. document-design appeared in the aggregate but its
detail page
did not show first-seen or install data. Other aggregate and detail counts also
differed, so these numbers are a dated catalog snapshot rather than a stable
user total.
On July 23, 2026, a cache-revalidated public fetch listed 62 catalog rows while
the same public repository produced exactly 60 skills through
skills@1.5.20. Comparing the two name sets found all 60 current skills plus
only the deleted animated-sprite-gen and nano-banana-image-gen rows. This is
a catalog deletion discrepancy rather than a missing-source problem. It is
tracked in repository issue #219
and the existing upstream stale-snapshot report
vercel-labs/skills#1189.
The existing document-design URL now serves the normalized lowercase identity
and current skill content, but the catalog shows 2 installs and “First Seen:
Today.” Its earlier catalog history was therefore not preserved across the
frontmatter-name repair. Recovery requires a catalog-side identity/metrics
alias or restoration for the same repository, path, and slug; another source
rename would create more identity churn and is not a recovery. Track that
catalog-side request with #219 and the upstream stale-snapshot report above.
D-lock-release-1
separately proves the local Document design lock migration and prevents two
lock identities from remaining for one installed directory. That project
migration neither restores nor changes public catalog metrics.
Mixed-install cases still pending
Desktop import has not been exercised for this repository. Before recommending more than one Codex installation path in the same profile, test:
- import into a clean Codex profile;
- import when the same skill exists under
.agents/skills; - import when the containing plugin is installed from the legacy marketplace;
- update one copy while another remains stale;
- uninstall one path and confirm discovery, recovery, and lock data.
Record duplicate identity, precedence, activation, update, uninstall, recovery, and drift results here. Until then, documentation must recommend one Codex installation path per skill or package.
dev-toolkit per-skill portability
The dev-toolkit row above is package-level. The per-skill breakdown lives in
dev-toolkit-portability-matrix.md,
generated from the repository by scripts/dev-toolkit-portability.mjs and
guarded against drift by scripts/dev-toolkit-portability.test.mjs. It
discovers 12 skills (not the stale 11 named above): 9 shared, 3
adapter-required (claude-md-updater, one-way-door, test-first-bugs), 0
Claude-only. one-way-door stays adapter-required for its automatic
AskUserQuestion approval hooks, whose failure and approval semantics an
adapter must reproduce, not drop.