Files
reuse-surface/workplans/REUSE-WP-0017-capability-coverage-campaign.md
tegwick 493f23123c
Some checks failed
ci / validate-registry (push) Has been cancelled
Move WP-0017, WP-0018, WP-0019 to ready
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-06 18:31:39 +02:00

7.2 KiB
Raw Blame History

id, type, title, domain, repo, status, owner, topic_slug, created, updated, state_hub_workstream_id
id type title domain repo status owner topic_slug created updated state_hub_workstream_id
REUSE-WP-0017 workplan Capability coverage campaign: seed or explicitly close all empty scaffolds infotech reuse-surface ready claude-code helix-forge 2026-07-06 2026-07-06 a2d83504-fcd0-4561-8688-b77a01cb7f06

Capability coverage campaign: seed or explicitly close all empty scaffolds

The federation infrastructure is complete (61/61 repos established and hub-registered, WP-0014/0015), but 51 of 61 roster repos publish zero capabilities. The federated index carries 24 capabilities, concentrated in a handful of custodian-core repos. A registry that answers most queries with "nothing found" trains agents to stop querying — content coverage is the prerequisite for the consumption loop (REUSE-WP-0018) and the automation loop (REUSE-WP-0019).

Goal: every roster repo either publishes ≥1 capability entry or carries an explicit, machine-readable no-reusable-capability marker with a rationale. "Empty" becomes informative instead of ambiguous.

Baseline: 10/61 repos with ≥1 capability; 51 empty scaffolds; 7 seed-ready (gap report 2026-07-06). Target: 0 ambiguous scaffolds; coverage ratio surfaced in report gaps and CI.

Approach

  1. Classify before drafting. Sweep the 51 empty scaffolds and bucket each: has-capability (draft entries) vs no-capability (mark explicitly — experiments, forks, canon/docs-only repos, probes).
  2. Draft with existing tooling. reuse-surface establish --discover + llm-connect per repo produces first-pass entries at honest low maturity (typically D1D2 / A0A1); no invented evidence.
  3. Human review gate. Drafts land as branches/commits flagged for review; nothing publishes to the federated index without a human pass (same pattern as CUST-WP-0050 repo classification).
  4. Publish + recompose. After review: publish-check, hub state refresh, federation compose, catalog/graph regeneration.

Dependencies

Dependency Owner Notes
llm-connect llm-connect drafting backend for establish --discover
local-repo-roster.yaml reuse-surface 61-repo roster, sweep source of truth
.repo-classification.yaml the-custodian classification signals for the no-capability bucket
config-atlas publish fix config-atlas 303 publish blocker (T06)
Sibling repo write access Bernd drafts commit into sibling checkouts at ~/<slug>/

Design decisions

  • no-capability marker format: a registry/NO_CAPABILITIES.md file with frontmatter (reason, reviewed, revisit) in the sibling repo, plus a capability_status: none field in the roster row. report gaps treats marked repos as resolved, not empty.
  • Honest maturity floor: first-pass entries never claim above D2/A2/C2/R1 without cited on-disk evidence (WP-0016 evidence gates apply).
  • Batch execution: repos are processed in cohorts of ~10 via /ralph-workplan; each cohort ends with validate + gap-report delta.

Extend Gap Report And Roster For Explicit No-Capability Status

id: REUSE-WP-0017-T01
status: todo
priority: high
state_hub_task_id: "90fe5bf2-7c03-4af5-bc4a-e5d608c7e879"
  • Add capability_status: has | none | pending to roster schema and local-repo-roster.yaml handling (default pending for empty scaffolds)
  • report gaps: split "Empty scaffolds" into "Unclassified" and "Explicitly none (n)"; add a coverage ratio headline (repos with capabilities or explicit none / total)
  • Define registry/NO_CAPABILITIES.md template in templates/
  • Pytest coverage for both report paths

Classification Sweep Of The 51 Empty Scaffolds

id: REUSE-WP-0017-T02
status: todo
priority: high
state_hub_task_id: "17ea8783-1344-4d04-8f7f-f93859ae4a20"
  • For each empty-scaffold repo: read INTENT/SCOPE/README + top-level layout, bucket has-capability vs no-capability with a one-line rationale
  • Output: history/2607xx-coverage-classification.md table (repo, bucket, rationale, candidate capability ids for the has bucket)
  • Cross-check against .repo-classification.yaml where available
  • Human review checkpoint: Bernd confirms the bucket split before T03/T04

Mark No-Capability Repos

id: REUSE-WP-0017-T03
status: wait
priority: medium
state_hub_task_id: "3465cebf-84f9-4d67-8d8a-cca9771f2f06"

Blocked on T02 review. For each confirmed no-capability repo:

  • Write registry/NO_CAPABILITIES.md from template into the sibling checkout
  • Set capability_status: none in the roster
  • Commit in sibling repo with a uniform message referencing this workplan

Draft Capability Entries For Has-Capability Repos

id: REUSE-WP-0017-T04
status: wait
priority: high
state_hub_task_id: "20d67516-331b-46bd-8a90-1170139313c2"

Blocked on T02 review. In cohorts of ~10 repos:

  • reuse-surface establish --discover with llm-connect per repo
  • Manual tightening: id namespace (capability.<domain>.<verb>), scope boundary, honest vectors, relations to existing federated capabilities
  • reuse-surface validate + overlaps check per cohort (no duplicate semantics vs the existing 24)
  • Drafts committed in sibling repos, flagged for human review; roster capability_status: has

Human Review And Publish Pass

id: REUSE-WP-0017-T05
status: wait
priority: high
state_hub_task_id: "56b68b6f-4dca-4fed-925f-d20783dc40d9"
  • Bernd reviews drafted entries per cohort (maturity honesty, scope, ids)
  • After approval: sibling repos push; establish --publish-check per repo; hub registrations refreshed where raw URLs changed
  • reuse-surface federation compose + catalog + graph regeneration in this repo

Fix config-atlas Publish Blocker

id: REUSE-WP-0017-T06
status: todo
priority: medium
state_hub_task_id: "1a04b60a-b982-4b5f-ae20-955bc88d4204"
  • Diagnose the 303 on the config-atlas raw index URL (same block class as the earlier state-hub/feature-control issue)
  • Note: likely interacts with the Gitea→Forgejo host transition (REUSE-WP-0019-T01); if the new Forgejo raw URL scheme fixes it, record that and close here
  • Target: 61/61 publish pass

Closeout: Coverage Metrics, Docs, SCOPE Update

id: REUSE-WP-0017-T07
status: wait
priority: low
state_hub_task_id: "24ac37bf-2509-4077-9aa3-c09a599dd644"
  • report gaps shows 0 unclassified scaffolds; record final coverage ratio
  • Update SCOPE.md Current State (capability count, coverage), regenerate docs/CapabilityCatalog.md, graph, search catalog
  • history/ milestone note; progress event + fix-consistency

Acceptance

  • Every roster repo is has or none — zero pending
  • All none repos carry a reviewed registry/NO_CAPABILITIES.md
  • Federated index capability count reflects the seeded entries; 0 collision warnings
  • 61/61 publish pass (config-atlas unblocked)
  • Coverage ratio visible in report gaps and CI output
  • No entry claims maturity without on-disk evidence citations

Out of scope

  • Consumption/plan-check tooling (REUSE-WP-0018)
  • Forgejo webhooks/automation (REUSE-WP-0019)
  • Maturity promotions beyond honest first-pass levels
  • Multi-domain federation (all entries remain helix_forge)