## Summary
Reposition the `/autodev` skill so it reads as **config, not a loop**,
per the canonical vocabulary rule
`skills/domain/references/autodev.md:9,13` — autodev is the
config/intent layer the loop reads each tick, and its description must
never lead with "bounded autonomous dev loops".
- `skills/autodev/SKILL.md`: new `description:` leads with managing the
PROGRAM.md/AUTODEV.md contract and names autodev as the config layer
Evolve and Factory read; "Loop position" prose reframed so the drivers
run the loop, autodev does not.
- `skills-codex/autodev/SKILL.md`: codex mirror description synced.
- Regenerated derived artifacts: `skills/catalog.json`, `registry.json`,
`docs/contracts/context-map.md`, codex hash manifest/marker (autodev
only).
- No command logic changes. Scenario 2 (factory-noun de-collision)
re-sliced to `ag-0qz` (premise drifted — no `ao factory` command
exists).
## Test plan
- [x] `bats tests/scripts/autodev-skill-positioning.bats` (new gate, 6/6
— pins the description + body + derived catalogs + codex mirror to the
config-not-loop rule; written failing-first)
- [x] `scripts/validate-codex-generated-artifacts.sh --scope head`
(parity + manifest)
- [x] `scripts/validate-context-map-drift.sh`,
`scripts/check-skill-catalog-drift.sh`,
`scripts/check-registry-drift.sh`
- [x] `skills/heal-skill/scripts/heal.sh --strict` (autodev clean)
Closes-scenario: soc-ozoqh#autodev-reads-as-config-not-loop
Bounded-context: BC1-Corpus
Evidence: bats tests/scripts/autodev-skill-positioning.bats;
skills/domain/references/autodev.md:13
Skill-dir edits across #503-#508 (.feature additions, SKILL.md links,
heal.sh) changed source dirs but the regenerated codex source_hashes
were never committed; CI codex gate is --scope-head so cross-PR
accumulation slipped through. `regen-codex-hashes.sh` → 'All hashes up
to date'. 9 files, hash strings only.
NOTE: claude-review infra-red (weekly limit) — operator-authorized
bypass when sole red.
Closes-scenario: soc-z5mbz#regen-8-codex-hashes
Bounded-context: BC1-Corpus
Evidence: skills-codex/.agentops-manifest.json
#275's billboard refactor thinned process-skill SKILL.md files and moved
detail into references/, but the validate contracts still grepped SKILL.md.
skill-lint + smoke-test: relax content-presence checks in crank/implement/
post-mortem/swarm validate.sh to scan the skill as a unit (SKILL.md +
references/); structural/identity checks stay SKILL.md-only. test-first-smoke
updated to match relocated SPEC/TEST WAVE + Step 0/4 headings.
skill-lint line caps: trim flywheel 310 -> 286 (cap 300), using-agentops
261 -> 239 (cap 250) by removing redundant prose, no content lost.
skill-integrity: link 3 orphaned references (crank/branch-isolation,
validation/flags + release-readiness-gates).
codex parity: regenerate stale skills-codex source hashes (77 skills).
Local: run-all.sh PASS, heal.sh --strict clean, smoke-test PASS.
Adds a 2400-char aggregate budget for skills-codex/*/SKILL.md `description:`
fields in tests/skills/test-token-budgets.sh, then trims each skill's description
to fit (catalog now 2146/2400). Both Claude and Codex SKILL.md descriptions
are kept in sync; codex .agentops-generated.json hashes regenerated.
Adds --repair-shape to scripts/audit-codex-hooks.sh: when ~/.codex/hooks.json
is missing or in legacy-flat shape, rewrites it from hooks/codex-hooks.json
with the active plugin_root (read from .agentops-codex-install.json) and
backs up any prior file. Covered by new test_repairs_legacy_flat_shape.
Memory decay (4 .agents/ files) bumped by the SessionStart inject hook.