--- id: REUSE-WP-0015 type: workplan title: "Federation polish and planning analytics" domain: helix_forge repo: reuse-surface status: ready owner: codex topic_slug: helix-forge created: "2026-06-16" updated: "2026-06-16" state_hub_workstream_id: "a67689ce-4634-4e88-a66f-e357520e1c4a" --- # Federation polish and planning analytics Follow-up to `history/2026-06-16-intent-scope-assessment.md` and `docs/IntentScopeGapAnalysis.md` priorities **25–27**. REUSE-WP-0014 established registry scaffolds in **60** workstation repos and hub registrations; this workplan closes the remaining INTENT↔SCOPE gaps: **fetchable federation**, **duplicate-ID cleanup**, **planning analytics**, and **compose acceptance**. **Baseline vector:** `D5 / A4 / C5 / R3` **Target vector:** `D5 / A4 / C5–C6 / R3` (completeness rises when federation fetch and namespace are clean; reliability unchanged until telemetry program) ## Assessment reference | Priority | Gap | Task | |---|---|---| | 25 | Gitea publish visibility (13 repos) | T01 | | 26 | Federated ID deduplication | T02 | | 27 | Planning analytics / standardization | T03 | | — | Federation compose acceptance | T04 | | — | Roster CI observability | T05 | | — | SCOPE + gap analysis refresh | T06 | **Roster:** `registry/federation/local-repo-roster.yaml` **Per-repo operator guide:** `history/2026-06-16-wp0014-remaining-work-by-repo.md` **Dedup plan:** `history/2026-06-16-federation-deduplication-plan.md` ## Suggested execution order ```text T01 (Gitea publish — operator; unblocks fetch) → T02 (dedup reuse-surface index — per owner) → T04 (compose acceptance — verify 0 warnings) → T03 (planning analytics — can start design in parallel with T02) → T05 (CI roster stats — after T01/T04 metrics stable) → T06 (docs refresh) ``` ## Dependencies | Dependency | Owner | Notes | |---|---|---| | Gitea repo visibility | Operator | 13 slugs; `hub-core` needs repo creation | | Owner agreement | Domain repos | Dedup removes reuse-surface canonical copies | | Production hub | Railiance01 | `https://reuse.coulomb.social` | --- ## Remediate Gitea Publish Blockers ```task id: REUSE-WP-0015-T01 status: todo priority: high state_hub_task_id: "7024ca46-cabd-44a8-8baf-cbc83d99c1fe" ``` Close gap priority **25**. Bring all roster rows to `publish_check: pass`. **Blocked slugs (13):** `activity-core`, `hub-core`, `ihp-railiance-probe`, `inter-hub`, `net-kingdom`, `railiance-apps`, `railiance-cluster`, `railiance-enablement`, `railiance-infra`, `railiance-platform`, `tegwick-control`, `whynot-control`, `whynot-design` Per slug: 1. Ensure Gitea repo exists and `main` has `registry/indexes/capabilities.yaml` 2. Enable anonymous raw URL access (or document `auth_env` in `sources.yaml`) 3. `reuse-surface establish --publish-check --raw-url ` 4. Update `local-repo-roster.yaml` (`publish_check`, `publish_note`) 5. Re-run roster sweep: all `publish_fail` → 0 **Special:** `hub-core` — create `coulomb/hub-core` on Gitea first (push-to-create disabled). **Done when:** `reuse-surface stats --roster ... --federation-ready` shows `all_publish_pass: true`. ## Deduplicate Owner-Migrated Index Rows ```task id: REUSE-WP-0015-T02 status: todo priority: high state_hub_task_id: "a354ef8f-fdbb-4929-8278-8ecf4ca79553" ``` Close gap priority **26**. Remove duplicate capability rows from reuse-surface where owner repo index is canonical and fetchable. **Owner batches** (separate commits per owner — see dedup plan): | Owner | IDs to remove from reuse-surface | |---|---| | `audit-core` | `capability.audit.event-retain` | | `flex-auth` | `capability.authorization.policy-evaluate` | | `feature-control` | evaluate, rollout, visibility | | `identity-canon` | subject-resolution, vocabulary-canonicalize | | `state-hub` | progress-log, workstream-coordinate | | `shard-wiki` | 8× `capability.wiki.*` | | `activity-core` | `capability.activity.event-coordinate` (after T01) | After each batch: ```bash reuse-surface validate --relations reuse-surface federation compose reuse-surface graph --check ``` **Keep in reuse-surface:** `capability.registry.register`, `capability.registry.validate`. **Done when:** `federation compose` reports **0** duplicate-ID warnings. ## Planning Gap Report And Standardization Tracker ```task id: REUSE-WP-0015-T03 status: todo priority: medium state_hub_task_id: "e135ea2e-a68f-4f72-947c-abe08a3aedef" ``` Close gap priority **27**. Extend planning support beyond `report cohorts`. Deliver one or both (minimum: **gap report**): | Deliverable | Description | |---|---| | **Gap report** | `reuse-surface report gaps` — federated IDs vs empty owner scaffolds; repos with `capability_count: 0` and suggested next entries from roster | | **Standardization tracker** | Markdown or YAML artifact listing overlap clusters from `overlaps` + compose duplicate history | Update `tools/README.md` and `SCOPE.md` when shipped. **Done when:** INTENT success criteria row 5–6 have a documented CLI or report artifact beyond overlaps/cohorts. ## Federation Compose Acceptance Gate ```task id: REUSE-WP-0015-T04 status: todo priority: high state_hub_task_id: "aa26429d-6d42-4d84-9235-96feb61303f2" ``` Verify federation health after T01 and T02. ```bash reuse-surface hub sync --merge reuse-surface federation compose ``` **Acceptance:** - 0 remote index unavailable warnings (or documented `required: false` exceptions) - 0 duplicate-ID warnings - `registry/indexes/federated.yaml` committed when compose output changes - Record final capability count and source counts in workplan progress log Optional: add `--fail-on-warnings` to compose for CI (separate commit if scope grows). ## Roster Federation Stats In CI ```task id: REUSE-WP-0015-T05 status: todo priority: low state_hub_task_id: "88f50eb3-9fba-413f-89aa-7b159f136520" ``` Informational CI step (non-blocking until T01 complete): ```bash reuse-surface stats --roster registry/federation/local-repo-roster.yaml \ --federation-ready --format json ``` Emit summary to CI log; fail or warn when `publish_fail > 0` once T01 is marked done (operator choice documented in workplan). ## Refresh SCOPE And Gap Analysis ```task id: REUSE-WP-0015-T06 status: todo priority: low state_hub_task_id: "fd25e504-21b7-4e9f-841c-cfa20318be33" ``` On workplan completion: - Update `SCOPE.md` §What Is Not Possible Yet and §Current State - Update `docs/IntentScopeGapAnalysis.md` — close priorities 25–27; propose new priorities if hub automation or R4 telemetry remain - Add `history/` snapshot if vector or success-criteria score changes materially --- ## Acceptance - [ ] Roster `publish_fail: 0` (all 60 repos fetchable) - [ ] `federation compose` — 0 duplicate-ID warnings - [ ] `federation compose` — 0 remote fetch warnings for enabled sources - [ ] reuse-surface index retains only meta-registry entries (+ any agreed stubs) - [ ] Planning gap report or standardization tracker shipped (T03) - [ ] `SCOPE.md` and `IntentScopeGapAnalysis.md` reflect closed gaps ## Out of scope - Multi-domain federation (non–`helix_forge`) - Hub Postgres / multi-replica implementation (documented only) - Automatic hub polling/webhooks (future workplan) - Mandatory `establish --discover` for empty scaffolds ## Progress log | Date | Event | |---|---| | 2026-06-16 | WP-0015 created from `history/2026-06-16-intent-scope-assessment.md` |