3.4 KiB
New-Skill Landing — the six derived surfaces
Adding or modifying a skill regenerates six derived surfaces, each gated by CI. Regenerating them piecemeal is the dominant fix-and-repush cause (the 2026-05-29 /burndown re-land needed 3 rounds; the codex-desc-budget fix needed 1). Regenerate them in one shot before opening the PR.
The shortcut
scripts/regen-all.sh covers surfaces 1–3 + the CLI reference in one pass — prefer it over running the generators individually. Then run the codex + count steps below.
Live skill edits
When an agent edits an existing live skill at skills/<slug>/SKILL.md, seal the
edit before the next cycle hands off:
ao skills edit seal --skill <slug> --actor "${AGENT_NAME:-agent}"
That command stages the skill's source directory and any matching Codex skill
directory, creates a git rollback point, and records Skill-Edit trailers in
the commit body. Critical skills listed in
docs/contracts/critical-skills.txt reject unattended edits; rerun with
--allow-critical only for a human-supervised critical edit.
Daily operator review uses:
ao skills edit digest --since "24 hours ago"
The digest is the lightweight immune-system surface for "what did agents teach the runtime today?" A live edit seal does not replace the derived-surface work below: new skills, renames, metadata changes, and publication-bound edits still need the full six-surface regeneration.
The six surfaces
- registry.json (SKU catalog) —
scripts/generate-registry.sh(verify with--check). The most-missed surface: a staleregistry.jsontripscontracts-sync("registry.json is stale") ANDcorrectness(ubuntu)("SKU_CATALOG: DRIFT") together. As of ag-ekyq,skills/skill-builder/scripts/init.shregenerates it automatically during scaffold; regenerate by hand for any out-of-band skill edit. - skill-domain-map —
scripts/generate-skill-domain-map.sh(narrativeN skillscount + per-skill row; verify--check). - context-map —
scripts/generate-context-map.sh(hex roles from frontmatter; CI gatevalidate-context-map-drift). - skill counts —
scripts/sync-skill-counts.sh. TheSKILL-TIERS.mdrow must be added by hand —sync-skill-countsonly syncs the counts across PRODUCT/ARCHITECTURE/SKILLS/using-agentops; it never adds the row. - codex twin —
scripts/register-new-codex-skill.sh <name> --treatment parity_only|bespoke --reason "…"(manifest entry + override-catalog +.agentops-generated.jsonmarker, atomic + idempotent). Then hand-authorskills-codex/<name>/prompt.md— codex twins are MANUAL;regen-all.shdoes NOT generate them. Re-runscripts/regen-codex-hashes.shafterward (addingprompt.mdchanges the tree hash). Parity_only minimalprompt.md= title + description + an## Instructionsblock ("Load and follow the siblingSKILL.md"). - narrative skill counts —
scripts/check-registry-drift.sh --fix-counts(theN skillslines inagentops-skill-domain-map.md+agentops-domain-evolution-bdd.md).
Embedded sync
If the edit touches skills/** content that is embedded (e.g. using-agentops), run cd cli && make sync-hooks so cli/embedded/skills/... stays in sync — else the codex artifact metadata/embedded-drift gate fails.
See also
- gate-hygiene.md — pre-push diff-scope check + pre-existing-vs-mine red triage (the companion discipline that keeps a new-skill PR one-shot-green).