Commit 86f240d
feat(codex-rig)!: harden denial UX and rename core skills
Changes:
- Rename the public analyse skill to change-analysis and develop to implement without compatibility aliases, update every packaged skill reference, codemap route, artifact schema, calibration case, README, and top-level discovery surface, and bump Codex Rig to 0.8.0 for the intentional breaking interface change.
- Define denial as a terminal user decision: agents must acknowledge it, avoid replaying or disguising the denied action, continue the conversation without treating denial as cancellation, and may retry only when an agent-originated sandbox choice failed before any user denial and the corrected request is explained.
- Add a sanitized App Server denial diagnostic harness that binds exact commands and lifecycle events, rejects missing command starts and malformed or incomplete transcripts, drains post-exit events, requires declared network context, isolates evidence and output roots, and records failure evidence without retaining prompts, credentials, raw command output, or unrelated session content.
- Make live validation fail closed across logical and physical path aliases, package identity, manifest payload hashes and modes, workspace names, bytes, links, modes, and modification times; revalidate the installed candidate after cleanup so package or workspace mutations cannot pass through a time-of-check/time-of-use gap.
- Strengthen package build and validation around complete manifest-bound payload identity, installed-package gates, restrictive umask behavior, capability-gated symlink coverage, approval contracts, Windows skip accounting, and plugin-only release checks.
- Mark accepted live calibration evidence stale after the skill-roster change, regenerate task and behavioral calibration records for the renamed workflows, and update operator documentation to distinguish offline proof, archived evidence, and candidate-specific live validation.
Impact:
- Users receive predictable denial handling: a denied action is not retried, the chat remains available for a different request, and the plugin contract no longer conflates user refusal with an agent sandbox-configuration mistake.
- Developers and release operators gain deterministic, sanitized diagnostics that distinguish policy, package, lifecycle, isolation, and host-session failures while refusing ambiguous evidence.
- Install and release checks detect incomplete, modified, aliased, or post-validation-mutated candidate payloads instead of accepting a partial manifest or source-only success.
- Skill invocations and integrations must migrate from analyse/develop to change-analysis/implement; 0.8.0 intentionally provides no backward-compatible aliases.
- Documentation and calibration no longer imply that evidence captured for the 0.7.5-era skill roster verifies the 0.8.0 candidate.
Verification:
- .venv/bin/python -m pytest plugins/codex-rig/tests -q: 733 passed, 5 skipped, 2 macOS temporary-directory cleanup warnings.
- Focused denial and installed-package closure suite: 77 passed.
- Changed denial/package/skip/approval QA suite: 135 passed; restrictive-umask slice: 18 passed.
- pre-commit ruff-format, ruff-check, and mdformat hooks on all changed applicable files: passed.
- .venv/bin/python plugins/codex-rig/scripts/build_package.py --check: passed immediately before commit; package manifest current.
- .venv/bin/python plugins/codex-rig/scripts/validate_package.py: passed immediately before commit.
- uv run --only-group docs --python 3.12 mkdocs build --strict: passed.
- Calibration run: passed at confidence 0.90 with zero critical, high, medium, or low findings.
- Fresh independent protocol, QA, curation, and release review axes found no unresolved code defect; protocol and QA confidence 0.94, curation confidence 0.96.
- git diff --cached --check: passed immediately before commit.
Residual limits:
- Native Windows execution was unavailable; Windows behavior has static contract coverage and capability-gated tests plus macOS execution, but not a native candidate run.
- A paid live App Server matrix was not rerun against this exact candidate; archived live evidence is explicitly marked stale.
- Future release CI must bind its OS and Python matrix evidence to this committed candidate identity before release certification.
- Two non-failing pytest warnings remain from macOS cleanup of pre-existing garbage-* temporary directories.
---
Co-authored-by: Codex <codex@openai.com>1 parent 1bd25c1 commit 86f240d
47 files changed
Lines changed: 4152 additions & 312 deletions
File tree
- .codex
- docs
- plugins/codex-rig
- .codex-plugin
- assets
- runtime/calibration
- scripts
- skills
- calibrate
- change-analysis
- code-remediate
- code-review
- implement
- investigate
- kaggle
- manage
- optimize
- release
- sync
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| |||
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
237 | | - | |
| 237 | + | |
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
| |||
295 | 295 | | |
296 | 296 | | |
297 | 297 | | |
298 | | - | |
| 298 | + | |
299 | 299 | | |
300 | 300 | | |
301 | 301 | | |
302 | | - | |
| 302 | + | |
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
3 | 10 | | |
4 | 11 | | |
5 | 12 | | |
| |||
23 | 30 | | |
24 | 31 | | |
25 | 32 | | |
26 | | - | |
| 33 | + | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
| |||
0 commit comments