Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
7.2 KiB
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
- Classify before drafting. Sweep the 51 empty scaffolds and bucket each:
has-capability(draft entries) vsno-capability(mark explicitly — experiments, forks, canon/docs-only repos, probes). - Draft with existing tooling.
reuse-surface establish --discover+ llm-connect per repo produces first-pass entries at honest low maturity (typically D1–D2 / A0–A1); no invented evidence. - 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).
- 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-capabilitymarker format: aregistry/NO_CAPABILITIES.mdfile with frontmatter (reason,reviewed,revisit) in the sibling repo, plus acapability_status: nonefield in the roster row.report gapstreats 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 | pendingto roster schema andlocal-repo-roster.yamlhandling (defaultpendingfor 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.mdtemplate intemplates/ - 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-capabilityvsno-capabilitywith a one-line rationale - Output:
history/2607xx-coverage-classification.mdtable (repo, bucket, rationale, candidate capability ids for the has bucket) - Cross-check against
.repo-classification.yamlwhere 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.mdfrom template into the sibling checkout - Set
capability_status: nonein 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 --discoverwith llm-connect per repo- Manual tightening: id namespace (
capability.<domain>.<verb>), scope boundary, honest vectors, relations to existing federated capabilities reuse-surface validate+overlapscheck 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-checkper 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 gapsshows 0 unclassified scaffolds; record final coverage ratio- Update
SCOPE.mdCurrent State (capability count, coverage), regeneratedocs/CapabilityCatalog.md, graph, search catalog history/milestone note; progress event + fix-consistency
Acceptance
- Every roster repo is
hasornone— zeropending - All
nonerepos carry a reviewedregistry/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 gapsand 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)