#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.
Pass 1 of N: lands practices: frontmatter declarations on the
RPI-lifecycle and foundational skills (rpi, discovery, crank, validation,
plan, implement, vibe, pr-prep, pr-validate, post-mortem, domain,
flywheel, handoff), each citing 3-4 slugs from PRACTICE.md's 45-slug
registry.
scripts/validate-practice-citations.sh report now:
primitives scanned: 754
with practices field: 13 (was 0)
missing practices field: 741 (was 754)
invalid slug citations: 0
Schema fix in same commit (required infrastructure that was missed in
the pre-mortem audit): schemas/skill-frontmatter.v1.schema.json had
additionalProperties: false, which would have rejected every practices:
declaration via validate-manifests.sh. Added practices as a recognized
array-of-slug property; this unblocks all future backfill passes.
Codex twins intentionally NOT modified — skills-codex/* SKILL.md
frontmatter is strictly name+description by design (enforced by
scripts/validate-codex-generated-artifacts.sh). Skills-codex
.agentops-generated.json markers regenerated via regen-codex-hashes.sh
to record the source-side content drift.
Plan: .agents/plans/2026-05-10-practice-citation-backfill-rpi-core.md
Research: .agents/research/2026-05-10-practice-citation-backfill-mapping.md
Pre-mortem: .agents/council/2026-05-10-pre-mortem-practice-citation-backfill.md (PASS, with one gap noted: schema enforcement)
Bead epic: soc-hdot (14 child issues closed)
Local pre-push gate (fast): green.
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.
Add CHANGELOG entries for v2.23.1 and v2.24.0, bump plugin.json to
2.24.0, condense post-mortem SKILL.md to stay under 1050-line lint
limit, sync codex bundle and embedded hooks, add glob patterns to
codex residual allowlist for domain checklist trigger syntax.
Generated by sync-codex-native-skills.sh with modular layout.
References and scripts copied as files instead of inlined.
Overrides applied for 9 skills. Parity validated: 49/49.
- skills-codex/: 53 skills converted to Codex-native agents.md format
- install-codex-native-skills.sh: install to ~/.codex/agents/
- sync-codex-native-skills.sh: sync from source skills/ to skills-codex/
- test-codex-native-install.sh: integration tests for the install pipeline