fix(manifest): drop Agent Plugins $schema so Codex stops truncating skills at 8KB - #1426
Merged
Conversation
…kills at 8KB Codex >= 0.147 classifies a plugin whose root plugin.json carries an agent-plugins.org $schema as an Agent Plugin and injects only the first 8000 bytes of each SKILL.md. 26 bundled skills exceed that, so gates and handoffs were silently dropped. Falling back to the legacy .codex-plugin/plugin.json manifest restores full injection. Adds a shrink-only size guard so no new skill crosses the bound and the $schema cannot return until every skill fits. Fixes #1412 Claude-Session: https://claude.ai/code/session_0139gs5yWrMWY9Crx17Ci2Zv
PR SummaryCursor Bugbot is generating a summary for commit 290de6c. Configure here. |
Merged
This was referenced Aug 17, 2026
Merged
ethras
added a commit
to ethras/compound-engineering-orca
that referenced
this pull request
Aug 21, 2026
* fix(ce-commit-push-pr): root PR stacks on the parent PR the user named (EveryInc#1365) * fix(ce-babysit-pr): decode gh output as UTF-8 on Windows (EveryInc#1368) * fix(ce-prototype): cover decisions settled by seeing, not just driving (EveryInc#1369) * perf(tests): cut suite wall time by splitting the largest test file (EveryInc#1370) * fix(tests): stop the cross-model routes test reading the working tree (EveryInc#1371) * fix(ce-doc-review): ask only where a real choice exists, batch the rest (EveryInc#1373) * feat(ce-prototype): add a seeing-mode craft floor and durable storage (EveryInc#1374) * fix(ce-pov): stop the panel guessing the cross-model host argument (EveryInc#1375) * chore(cross-model): pin the Grok peer to 4.6 (EveryInc#1376) * docs(skills): rewrite user skill pages for accuracy and clearer use (EveryInc#1377) * fix(commit): append known plan unit ids to commit subjects (EveryInc#1379) * fix(ce-work): stop sandboxed workers committing in linked worktrees (EveryInc#1382) * fix(ce-doc-review): edit HTML plans in native format (EveryInc#1381) * fix(ce-code-review): cover adversarial after quota or auth no-review (EveryInc#1380) * fix(skills): correct a rejected dispatch instead of spending the fallback (EveryInc#1383) * fix(ce-compound): find Claude sessions started outside the repo root (EveryInc#1378) * ci(windows-native): retry peer-job-runner smoke on ctypes flake (EveryInc#1384) * fix(ce-debug): stop asking at the handoff, stop shipping unoffered work (EveryInc#1385) * docs(solutions): record why skill gates state conditions, not git commands (EveryInc#1386) * fix(skills): drop the residual-findings record file for real sinks (EveryInc#1387) * fix(ce-doc-review): run the cross-model pass when CROSS_MODEL_PEERS is unset (EveryInc#1389) * fix(ce-proof): sync with current Proof v3 contract (EveryInc#1390) * fix(skill-authoring): make goal-first the default when authoring and reviewing skills (EveryInc#1391) * fix(cross-model): let reviews run on Fable and pin model/effort from CE config (EveryInc#1392) * docs(cross-model): point superseded peer benchmarks at the luna/xhigh decision (EveryInc#1393) * fix(cross-model): discover the Codex.app-bundled codex CLI and name the peer-CLI requirement (EveryInc#1395) * feat(cross-model): add cross_model_review_mode checkout egress gate (EveryInc#1396) * fix(ce-compound-refresh): compare knowledge-track learnings against guidance they name (EveryInc#1399) * docs(solutions): capture the named-guidance contradiction-check learning (EveryInc#1400) * fix(ce-compound): prefer the repo's own frontmatter vocabulary over the Rails-era enums (EveryInc#1394) * fix(ce-work): stop asking about branches before starting work (EveryInc#1397) * fix(review): answer covered cases on skill prose with the condition, not a patch (EveryInc#1401) * fix(scratch): fall back to $TMPDIR when /tmp cannot host the scratch root (EveryInc#1398) * feat(ce-skill-work): repo-local skill for authoring, editing, reviewing, and responding to review on skills (EveryInc#1402) * fix(ce-pov): reject non-final peer positions instead of folding them in (EveryInc#1403) * feat(manifest): add Agent Plugins v1.0.0 manifest support (EveryInc#1345) * chore: release main (EveryInc#1354) * fix(ce-work): run cross-model verification on warm checkouts (EveryInc#1404) * fix(ce-skill-work): author for Sol/Fable, not Opus-era procedure (EveryInc#1408) * docs(skill-design): retarget stale learning citations (EveryInc#1409) * fix(ce-setup): support read-only sandboxes (EveryInc#1407) * fix(ce-skill-work): require pointer descriptions (EveryInc#1410) * chore: release main (EveryInc#1405) * fix(ce-work): let a project-defined shipping process override ce-commit-push-pr (EveryInc#1416) * fix(ce-doc-review): state the CROSS_MODEL_PEERS gate as a condition at the gate (EveryInc#1421) * fix(ce-strategy): ground the interview in the repo and share the file safely (EveryInc#1419) * fix(ce-babysit-pr): fall back for private ref 404 (EveryInc#1418) Co-authored-by: Trevin Chow <trevin@trevinchow.com> * fix(ce-commit-push-pr): make medium and large PR descriptions scannable (EveryInc#1422) * chore: release main (EveryInc#1420) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(ce-plan): make Goal Capsule Objective outcome-shaped with a Means slot (EveryInc#1424) * fix(manifest): drop Agent Plugins $schema so Codex stops truncating skills at 8KB (EveryInc#1426) * fix(manifest): also block Agent Plugins $schema while skill frontmatter is non-conformant (EveryInc#1427) * chore: release main (EveryInc#1425) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(solutions): capture why the Agent Plugins $schema is a host routing switch (EveryInc#1428) * fix(skills): Make CE portable on no-checkout / shared-workspace hosts (EveryInc#1429) Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com> * chore: release main (EveryInc#1430) * fix(orca): reconcile fork identity and guards with upstream 3.22.4 Re-pin the fork release identity to 3.22.4-orca.5 (release-as, version literals in the Orca suites), resolve the upstream-currency check against the latest compound-engineering-v* release tag instead of the upstream/main tip (main carries unreleased commits), regenerate the skill-local Orca role-registry bundles, re-anchor the lfg step-8 ordering test to upstream's rewritten Ship step, and compact the ce-simplify-code Orca hook to a conditional pointer so the skill fits Codex's 8000-byte prompt bound (mechanism stays in references/orca-review-dispatch.md, which already owns it). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019PxdaWqiHDDsPPBHdDevQC * ci(orca): fetch upstream release tags for the provenance currency check The check now resolves the latest compound-engineering-v* tag; without tags the CI fallback compared the pin to the upstream/main tip, which fails whenever upstream carries unreleased commits. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019PxdaWqiHDDsPPBHdDevQC * ci: pin bun to 1.3.14 bun 1.4.0 (picked up by bun-version: latest on 2026-08-21) hangs the subprocess-heavy suites on Linux runners: ce-pov and cross-model tests hit their 5s/20s caps and the profile-lock contention test times out, inflating the test job from ~2m to 13m. The same suites pass on 1.3.14 locally and in the last green run (2026-08-19). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019PxdaWqiHDDsPPBHdDevQC --------- Co-authored-by: Trevin Chow <trevin@trevinchow.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ruslan Kurkebayev <kurkebayev.ruslan@gmail.com> Co-authored-by: cmbish <carter.m.bish@gmail.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Trevin Chow <tmchow@users.noreply.github.com> Co-authored-by: Claude Fable 5 <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
Codex users get whole skills again. Since 3.22.0, Codex >= 0.147 was injecting only the first 8,000 bytes of each
SKILL.md— 26 of 33 bundled skills were silently cut mid-body (ce-setuplost the last ~30%,ce-plan~93%), dropping approval gates, repair steps, and handoffs with only a warning. This PR removes the trigger and adds a guard so it cannot come back unnoticed.Fixes #1412
Why it happened
plugin.jsonhas a$schemastarting withhttps://agent-plugins.org/schemas/. That manifest wins over.codex-plugin/plugin.json, which becomes an overlay.MAX_SKILL_PROMPT_BYTES = 8_000at injection; legacy manifests are exempt.$schema. Nothing else in the plugin changed for Codex.What changed
plugin.jsonkeeps the Agent Plugins field shape but omits$schema, so Codex resolves the legacy.codex-plugin/plugin.jsonagain and injects full skill bodies.tests/codex-skill-prompt-budget.test.ts: measures everySKILL.mdas a CRLF checkout would (matches the 11,392-bytece-setupfigure in the issue), fails if a skill outside the known-over-budget set exceeds 8,000 bytes, fails if a listed skill has shrunk under the bound but is still listed (ratchet), and fails if$schemareappears while any skill is over budget. The set does not pin sizes, so ordinary skill edits do not churn it.tests/release-metadata.test.ts:$schemais now optional; when present it must still be the v1.0.0 URI.docs/specs/agent-plugins.md: records the posture and the conditions for restoring$schema.Validation
bun run test(3174 pass) andbun run release:validateclean. Not exercised against a live Codex 0.147 install; the mechanism is confirmed from Codex source (utils/plugins/src/plugin_namespace.rs::find_plugin_manifest_path,core-skills/src/injection.rs::bounded_skill_prompt_contents).Follow-up and caveat
$schemareturns when it is empty. That work needs its own plan.Security Disclosure
No security-relevant changes.
Agent Disclosure
Claude Code · claude-fable-5