Static reading edition · s03-06
Maintain, disable and evaluate skills
Change a skill safely, diagnose discovery problems and retain evidence that the new version is better.
Understand the approach
Treat a skill as maintained project material. Its description affects selection; its instructions affect execution; its supporting files can change the result. Record the version or commit used in an evaluation so a future comparison is meaningful. A passing case from last week cannot certify today's changed procedure. Keep a small collection of representative requests rather than rebuilding an elaborate evaluation system before there is a real workflow to protect.
Codex discovers local skills in documented repository and user locations, and it detects skill changes automatically. If an update is not visible, inspect the actual path and refresh or restart as documented. Duplicate names are not merged; both can appear in selectors. That makes precise naming and source inspection important when a personal and project package look alike. Do not apply the source guide's Claude-specific precedence rules or reload commands to Codex without verification.
Disabling a skill and deleting its files are different operations. The documented skills.config setting can disable a package by path without discarding it, and distribution as a plugin has its own update process. Choose the smallest maintenance action that solves the observed problem. For the lab, update readme-evidence-review in the practice repository, retain a before-and-after record, and leave personal or organization settings unchanged unless you separately choose to configure them.
The five native-setup checks copy every support file, reject an existing destination, place the explicit-only policy correctly, repair a copied README from two findings to none, and preserve the original fixture. They do not run a model. For an instruction change, keep these factual regressions and repeat the actual selection matrix from the prepared project. Disable a local skill only by its resolved SKILL.md path if that is the intended operation; the documented personal setting takes effect after restarting Codex. A discovery problem is not a reason to delete the package or overwrite user configuration.
A skill revision must earn its place through regression checks
Observe actual failure cases, change the smallest instruction or resource, and rerun the relevant and irrelevant requests. Keep a revision only when it improves the targeted behavior without breaking the boundary.
Practice and acceptance
Maintain selection and factual-output regressions independently; a version change must be judged against fixed cases.
About your environment
Checked 21 October 2026. The disable example is instructional and uses a generic path; this page changes no configuration.
Try it step by step
- Read the linked lab guide, inputs and expected outputs before running the exercise.
- Create an evaluation table with direct, indirect, missing-input and unrelated requests, expected behavior, actual behavior and the skill version.
- Run the cases independently on fixed practice inputs. Record activation and supported output findings in separate columns.
- Revise the description for a selection failure or the procedure for an execution failure. Change one relevant layer at a time.
- Rerun the failing case and nearby cases, then inspect the project diff to confirm that no unrelated package was changed.
- If disabling is appropriate, review the documented configuration example as an option. Verify the actual resolved path before applying it in a chosen environment.
A useful starting example
Illustration · adapt before use.
| Case | Expected | Observed | Skill version |
| --- | --- | --- | --- |
| Direct README review | Evidence-backed gaps | Record actual result | Record commit/date |
| Paraphrased readiness question | Appropriate activation | Record actual result | Same version |
| Missing README | Report missing input | Record actual result | Same version |
| Change button color | Do not use readme-evidence-review | Record actual result | Same version |[[skills.config]]
path = "/your/reviewed/project/.agents/skills/readme-evidence-review/SKILL.md"
enabled = false
# Instructional personal-config fragment; choose the real path and restart deliberately.A repair with a contrasting regression
The canonical broken case stays fixed while a copy gains correct guidance.
Before: npm run start; no test instruction
After in a copy: npm run dev; npm testOriginal broken: 2 findings
Repaired copy: 0 findings
Complete negative: 0 findingsA smaller finding count is useful only when it reflects the corrected evidence, not a weakened checker.
Your turn
Run the supplied matrix and save observed helper outputs. In a copy, repair the broken README by documenting dev and test; confirm its findings disappear without weakening the checker. Add one new unsupported syntax case and document the helper's limitation. For a real skill-description change, separately rerun actual-client selection cases before claiming improvement.
Try the exercise before opening its reference answer. Use a disposable practice folder.
Run and preserve a regression matrix
Extract into a new practice folder and keep the included labs folder. Run these commands from that extraction root, or from the course folder, using an existing Node.js installation.
- Command 1 text
node --test labs/skill-workflow/review.test.cjsCheck: 13 checks pass against the unchanged fixtures.
- Command 2 text
node labs/skill-workflow/skill/scripts/review.cjs labs/skill-workflow/fixtures/completeCheck: findings is empty; execution remains untested.
- Command 3 text
node --test labs/skill-workflow/review.test.cjs labs/skill-workflow/native-setup.test.cjsCheck: 18 factual/package checks pass; actual-client invocation is a separately observed track.
Maintain selection and factual-output regressions independently; a version change must be judged against fixed cases.
Check your result
- The evaluation record identifies the skill source and version used for each result.
- Missing inputs and unrelated requests are covered alongside successful invocation.
- You can explain the difference between refreshing discovery, disabling a skill and removing its files.
- Helper results, actual host activation and unexecuted application commands remain distinguishable.
Reference answer & rubric Try the exercise before opening
A defensible update fixes the responsible layer and checks nearby cases while preserving the original regression baseline.
- Record the skill/helper version and run thirteen unchanged checks.
- Edit a copied broken README, not the canonical fixture: document npm run dev and npm test.
- Rerun the helper on the copy and require zero findings; retain the original fixture's two expected findings.
- Document unsupported syntax honestly and distinguish script behavior, host invocation and disable configuration as separate layers.
Check your understanding
Two installed skills have the same name. What should you do?
- Inspect their paths and actual selection; Codex does not merge their instructions.
- Assume the project's version always wins under Claude's precedence rules.
- Combine their files automatically without reviewing conflicts.
Reveal the answer and explanation
Answer 1: Inspect their paths and actual selection; Codex does not merge their instructions.
Duplicate packages can both appear. Identify the source actually used before changing or evaluating it.
Take this quiz in the interactive lesson to save your answer in the browser.
When it does not work
The tests pass only after deleting the negative fixture.
Likely cause: The evaluation set was changed to accommodate a regression.
What to try: Restore the fixture and fix the responsible description or procedure.
Changing the description is credited with fixing helper output.
Likely cause: Selection text cannot change this deterministic parser.
What to try: Use actual client cases to evaluate selection, and code/fixture checks to evaluate the helper.
Common mistakes
- Declaring success because a package appears in a list or one friendly example works.
- Changing several similarly named skills and personal configuration while debugging a single project package.
Source mapping & differences · different
Codex discovery, duplicate-name behavior and skills.config controls differ from the source's Claude reload and precedence settings.
Source topic: Manage skills ↗Go to the source
Official documentation, checked 21 October 2026. Product names, controls and availability may vary with your version, platform or account.
Completion and quiz progress are saved
only in the interactive course.