feat(skills): skill-builder scaffolds dispositions row + narrative counts (ag-cw2y items 1-scaffold + 2)#610
Merged
Conversation
…unts (ag-cw2y items 1-scaffold + 2) Completes the scaffold-half of ag-cw2y item 1 and item 2: a newly-scaffolded skill is now one-shot-green against the two gates that silently tripped /burndown #600. - scripts/append-skill-disposition.sh: idempotent helper that appends a skill-dispositions.yaml row (valid BC4 placeholder + TODO rationale) if the skill has none. Repo-root-injectable for testing. - init.sh: after scaffolding, calls the helper (pairs with #609's heal.sh Check 12) AND runs check-registry-drift.sh --fix-counts (bumps the 'N checked-in skills' narrative tokens in domain-map + bdd Gherkin so the new skill doesn't trip registry-drift). - Discovery: item 2's CHECK + --fix-counts already existed and were wired into both the fast gate and CI; the gap was only that skill-builder never invoked them. No new check needed. Codex artifact: refreshed skill-builder source/generated hash only (6 unrelated pre-existing main drifts left untouched). PR-scope codex validation passes. Closes-scenario: ag-cw2y#skillbuilder-scaffold-dispositions-counts Bounded-context: BC4-factory Evidence: tests/scripts/append-skill-disposition.bats
boshu2
added a commit
that referenced
this pull request
May 30, 2026
…g-cw2y item 4) (#611) ## What **ag-cw2y item 4** — the 4th and last new-skill gate that cost `/burndown` #600 a CI round. A new skill previously tripped `validate-codex-override-coverage` ("source skill missing from Codex catalog"). skill-builder now adds the catalog entry automatically. ## How - **`scripts/append-codex-override-entry.sh`** — idempotent, JSON-aware: appends a `parity_only` entry (`name`/`treatment`/`wave=catalog-parity`/`reason`) to `skills-codex-overrides/catalog.json` if the skill is absent. `parity_only` is correct for skill-builder's canonical-derived codex form; author flips to `bespoke` + scaffolds the override dir only if a Codex-only divergence is needed. Repo-root-injectable. - **`init.sh`** — calls it in the new-skill plumbing block alongside the dispositions row (#609/#610) and `--fix-counts` (#610). All three gates now pre-empted at scaffold time. ## Tests (TDD, red→green) `tests/scripts/append-codex-override-entry.bats` — appends parity_only / stays valid JSON / idempotent / no-dup-on-existing. 4/4 green. shellcheck clean. ## Codex artifact Refreshed **only skill-builder's** hash (6 unrelated pre-existing `main` drifts untouched). PR-scope codex validation passes. ## ag-cw2y status after this Item 1 (#609 check + #610 scaffold) ✅ · Item 2 (#610) ✅ · **Item 4 (here)** ✅ · **Item 3** (codex desc token budget / `ag-vzbt`) is the only remaining piece. Once item 3 lands, a new skill — and therefore `ag-hdqu0.8` + `/burndown` #600 — is fully one-shot-green. Closes-scenario: ag-cw2y#override-catalog-scaffold Bounded-context: BC4-factory Evidence: tests/scripts/append-codex-override-entry.bats
boshu2
added a commit
that referenced
this pull request
May 30, 2026
…egate (ag-vzbt) (#612) ## What **ag-vzbt** — the last `ag-cw2y` item. The skills-codex description catalog budget was a **hard aggregate** (2800 chars, bumped 2600→2700→2800 as skills landed) with ~17 chars headroom. Adding the Nth+ skill walls out — `/burndown` #600 was forced into a 17-char stub ("Bounded epic loop") to fit. ## How Replace the hard aggregate with a **per-skill average** cap (`CODEX_DESC_AVG_FAIL_CHARS=45`) that scales with the catalog: - Each terse description keeps the average low; the gate fails only if descriptions are **bloated on average** — not because the catalog grew. - Current state: avg **35** chars/skill (77% of 45) — real headroom, and it never becomes a wall again. - The per-skill hard cap (`DESC_FAIL_CHARS=180`) still bounds any single bloated description. - `BUDGET_REPO_ROOT` override added so the rule is fixture-testable. ## Tests (TDD, red→green) `tests/scripts/codex-desc-avg-budget.bats` — PASS under budget / FAIL over budget / **100 skills (total ~3800 > old 2800 wall) still pass** because avg stays low. 3/3 green; shellcheck clean; real-repo gate passes (avg 35/45). ##⚠️ Pre-existing unrelated red The local fast gate also surfaces a **pre-existing** `mkdocs strict` failure on `rfcs/0001-finding-generator-parallelism.md` — reproduces on clean `origin/main` with my changes stashed; my diff touches only the test script + bats (zero docs). Flagging separately; not in scope here. ## ag-cw2y status **All four items now done** (items 1,2,4 merged #609/#610/#611; item 3 here). A brand-new skill is now **one-shot-green** → this unblocks **`ag-hdqu0.8`** (last Outcomes bead) and **`/burndown` #600**. Closes-scenario: ag-vzbt#per-skill-average-budget Bounded-context: BC2-validation Evidence: tests/scripts/codex-desc-avg-budget.bats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Completes ag-cw2y item 1's scaffold-half + item 2. A newly-scaffolded skill is now one-shot-green against the two gates that silently tripped
/burndown#600:skill-dispositions.yamlrow →heal.shCheck 12 (MISSING_DISPOSITION, shipped feat(skills): heal --strict checks skill-dispositions coverage (ag-cw2y item 1) #609)"N checked-in skills"narrative counts →check-registry-driftHow
scripts/append-skill-disposition.sh— idempotent helper that appends a dispositions row (validBC4 Factoryplaceholder + TODO rationale, socheck-bounded-contexts-driftpasses; author refines during content fill). Repo-root-injectable → fixture-testable.init.sh— after scaffolding, calls the helper and runscheck-registry-drift.sh --fix-countsto bump the narrative skill-count tokens. Both calls are guarded + WARN-on-failure so they never break the scaffold.Discovery (scope-narrowing)
Item 2's check +
--fix-countsalready existed and were wired into both the fast pre-push gate (line 1330) and CI (line 803). The only gap was that skill-builder never invoked them — so the fix is wiring, not a new check.Tests (TDD, red→green)
tests/scripts/append-skill-disposition.bats— appends row / valid BC + TODO / idempotent / no-dup-on-existing. 4/4 green. shellcheck clean.Codex artifact
Refreshed only skill-builder's source/generated hash (6 unrelated pre-existing
maindrifts left untouched). PR-scopevalidate-codex-generated-artifacts --scope headpasses.ag-cw2y remaining
Item 1 (check #609 + scaffold here) ✅ · Item 2 (here) ✅ · Item 3 (codex desc budget /
ag-vzbt) and Item 4 (override-catalog scaffold +test-codex-override-coverage) remain — thenag-hdqu0.8and/burndown#600 are fully one-shot-green.Closes-scenario: ag-cw2y#skillbuilder-scaffold-dispositions-counts
Bounded-context: BC4-factory
Evidence: tests/scripts/append-skill-disposition.bats