Coverage self-seeds + refresh_pattern_coverage tool + shape-accounting skill (#2802) #116

Merged
bvandeusen merged 2 commits from dev into main 2026-08-20 19:05:48 -04:00
Owner

Seeding the shape ledger no longer requires the UI Refresh button:

  • enter_project fire-and-forgets a background refresh when the readout is absent or >24h stale and the owner's keyring serves the project (in-flight guard; forge-less installs exit quietly per rule #115)
  • refresh_pattern_coverage(project_id): synchronous agent-facing seed/refresh, write-gated, owner-keyring resolution, ValueErrors that name the fix
  • plugin 0.1.33 ships the shape-accounting skill (five statuses, seed→todo→judge loop, derive-first rule)

CI: run 4066 green.

Post-deploy: the Forge P7 backfill (task #2790) runs fully self-service — refresh_pattern_coverage(24) then the 101-row classify_shapes import.

🤖 Generated with Claude Code

Seeding the shape ledger no longer requires the UI Refresh button: - enter_project fire-and-forgets a background refresh when the readout is absent or >24h stale and the owner's keyring serves the project (in-flight guard; forge-less installs exit quietly per rule #115) - refresh_pattern_coverage(project_id): synchronous agent-facing seed/refresh, write-gated, owner-keyring resolution, ValueErrors that name the fix - plugin 0.1.33 ships the shape-accounting skill (five statuses, seed→todo→judge loop, derive-first rule) CI: run 4066 green. Post-deploy: the Forge P7 backfill (task #2790) runs fully self-service — refresh_pattern_coverage(24) then the 101-row classify_shapes import. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-08-20 19:05:42 -04:00
feat(ledger): coverage self-seeds — enter_project background refresh + refresh_pattern_coverage tool + shape-accounting skill (#2802, milestone 294)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 7s
CI & Build / integration (push) Successful in 23s
CI & Build / TypeScript typecheck (push) Successful in 32s
CI & Build / Python tests (push) Failing after 33s
CI & Build / Build & push image (push) Skipped
e2a084f1fb
The UI Refresh button must not be the only seed path (operator directive,
hit live: the P7 backfill stalled waiting for a click). Three parts:

- enter_project fire-and-forgets refresh_if_stale on the project OWNER —
  absent or day-old readouts recompute in the background (same spawn the
  webhook path uses), the enter stays fast, forge-less owners exit quietly
  (rule #115 baseline), and an in-flight guard keeps concurrent enters from
  fetching the same tarball N times.
- refresh_pattern_coverage(project_id): the synchronous agent-facing form —
  write-gated, owner-keyring resolution, and ValueError messages that name
  the fix (add a connection / bind_repo) instead of measuring nothing
  silently.
- plugin 0.1.33 ships the shape-accounting skill: the five statuses, the
  seed/todo/judge loop, and the derive-first rule, triggered by the
  coverage line or any proved code-to-canon relationship.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix(tests): restore the assert my seed-test insertion orphaned from its neighbor
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 8s
CI & Build / TypeScript typecheck (push) Successful in 10s
CI & Build / integration (push) Successful in 25s
CI & Build / Python tests (push) Successful in 53s
CI & Build / Build & push image (push) Successful in 25s
3e21978a9c
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bvandeusen merged commit 9d5b89d785 into main 2026-08-20 19:05:48 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#116