2026-06-16 02:18:51 +02:00
---
id: REUSE-WP-0015
type: workplan
title: "Federation polish and planning analytics"
domain: helix_forge
repo: reuse-surface
2026-06-16 02:22:17 +02:00
status: active
2026-06-16 02:18:51 +02:00
owner: codex
topic_slug: helix-forge
created: "2026-06-16"
updated: "2026-06-16"
2026-06-16 02:19:29 +02:00
state_hub_workstream_id: "a67689ce-4634-4e88-a66f-e357520e1c4a"
2026-06-16 02:18:51 +02:00
---
# 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
2026-06-16 02:22:17 +02:00
status: progress
2026-06-16 02:18:51 +02:00
priority: high
2026-06-16 02:19:29 +02:00
state_hub_task_id: "7024ca46-cabd-44a8-8baf-cbc83d99c1fe"
2026-06-16 02:22:17 +02:00
needs_human: true
2026-06-16 12:35:49 +02:00
intervention_note: "tegwick-control — no HTTP-visible Gitea repo; operator must create coulomb/tegwick-control (59/60 pass)"
2026-06-16 02:18:51 +02:00
```
2026-06-16 02:22:17 +02:00
Close gap priority **25** .
**2026-06-16:** Sweep re-run — all 13 still HTTP 404. No agent-side remediation
possible without Gitea operator action. Bring all roster rows to `publish_check: pass` .
2026-06-16 02:18:51 +02:00
2026-06-16 03:46:01 +02:00
**2026-06-16 (follow-up):** `hub-core` resolved — Gitea repo created, push OK,
`publish_check: pass` . **12** slugs remain HTTP 404.
2026-06-16 12:35:49 +02:00
**2026-06-16 (visibility fix):** Gitea repos made public — **11** former blockers
now `publish_check: pass` . `whynot-control` / `whynot-design` use `whynot/` org
paths in `sources.yaml` . **59/60** pass; **1** remains.
**Blocked slug (1):** `tegwick-control` — SSH remote `tegwick/tegwick-control`
exists but no HTTP-visible repo; `coulomb/tegwick-control` not created
(push-to-create disabled).
2026-06-16 02:18:51 +02:00
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 <url>`
4. Update `local-repo-roster.yaml` (`publish_check` , `publish_note` )
5. Re-run roster sweep: all `publish_fail` → 0
2026-06-16 03:46:01 +02:00
**Resolved:** `hub-core` — `coulomb/hub-core` created on Gitea; roster
`publish_check: pass` (2026-06-16 follow-up).
2026-06-16 02:18:51 +02:00
**Done when:** `reuse-surface stats --roster ... --federation-ready` shows
`all_publish_pass: true` .
## Deduplicate Owner-Migrated Index Rows
```task
id: REUSE-WP-0015-T02
2026-06-16 02:22:17 +02:00
status: done
2026-06-16 02:18:51 +02:00
priority: high
2026-06-16 02:19:29 +02:00
state_hub_task_id: "a354ef8f-fdbb-4929-8278-8ecf4ca79553"
2026-06-16 02:18:51 +02:00
```
2026-06-16 02:22:17 +02:00
Close gap priority **26** .
**Done 2026-06-16:** Removed 17 owner-migrated rows + markdown from reuse-surface
index (kept `activity-core` stub until T01). Local index **3** entries. Compose
duplicate warnings clear after Gitea index push (`--refresh` ). Remove duplicate capability rows from reuse-surface
2026-06-16 02:18:51 +02:00
where owner repo index is canonical and fetchable.
2026-06-16 12:35:49 +02:00
**Done 2026-06-16 (visibility fix):** Removed `activity-core` stub after owner
index fetchable; local index **2** entries (meta-registry only).
2026-06-16 02:18:51 +02:00
**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
2026-06-16 02:22:17 +02:00
status: done
2026-06-16 02:18:51 +02:00
priority: medium
2026-06-16 02:19:29 +02:00
state_hub_task_id: "e135ea2e-a68f-4f72-947c-abe08a3aedef"
2026-06-16 02:18:51 +02:00
```
2026-06-16 02:22:17 +02:00
Close gap priority **27** .
**Done 2026-06-16:** `reuse-surface report gaps` — roster publish blockers,
empty scaffolds, seed-ready repos, local owner stubs. Standardization tracker
deferred (overlaps + compose warnings sufficient for now). Extend planning support beyond `report cohorts` .
2026-06-16 02:18:51 +02:00
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
2026-06-16 12:35:49 +02:00
status: done
2026-06-16 02:18:51 +02:00
priority: high
2026-06-16 02:19:29 +02:00
state_hub_task_id: "aa26429d-6d42-4d84-9235-96feb61303f2"
2026-06-16 02:18:51 +02:00
```
Verify federation health after T01 and T02.
2026-06-16 12:35:49 +02:00
**Done 2026-06-16 (visibility fix):** `federation compose --refresh` → **20**
federated capabilities, **0** duplicate-ID warnings, **1** remote-fetch warning
(`tegwick-control` , `required: false` ). Acceptance met for enabled sources.
2026-06-16 03:46:01 +02:00
2026-06-16 02:18:51 +02:00
```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
2026-06-16 02:22:17 +02:00
status: done
2026-06-16 02:18:51 +02:00
priority: low
2026-06-16 02:19:29 +02:00
state_hub_task_id: "88f50eb3-9fba-413f-89aa-7b159f136520"
2026-06-16 02:18:51 +02:00
```
2026-06-16 02:22:17 +02:00
**Done 2026-06-16:** CI informational steps for `stats --roster --federation-ready`
and `report gaps` in `.gitea/workflows/ci.yml` .
2026-06-16 02:18:51 +02:00
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
2026-06-16 12:35:49 +02:00
status: done
2026-06-16 02:18:51 +02:00
priority: low
2026-06-16 02:19:29 +02:00
state_hub_task_id: "fd25e504-21b7-4e9f-841c-cfa20318be33"
2026-06-16 02:18:51 +02:00
```
2026-06-16 12:35:49 +02:00
**2026-06-16 (visibility fix):** `SCOPE.md` and `docs/IntentScopeGapAnalysis.md`
updated for 59/60 publish pass, dedup complete, compose acceptance. Final T06
note when `tegwick-control` resolves.
2026-06-16 03:46:01 +02:00
2026-06-16 02:18:51 +02:00
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
2026-06-16 12:35:49 +02:00
- [ ] Roster `publish_fail: 0` (59/60 — `tegwick-control` remains)
- [x] `federation compose` — 0 duplicate-ID warnings
- [x] `federation compose` — 0 remote fetch warnings for `required: true` sources
- [x] reuse-surface index retains only meta-registry entries
- [x] Planning gap report or standardization tracker shipped (T03)
- [x] `SCOPE.md` and `IntentScopeGapAnalysis.md` reflect closed gaps (pending tegwick)
2026-06-16 02:18:51 +02:00
## 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 02:22:17 +02:00
| 2026-06-16 | WP-0015 created from `history/2026-06-16-intent-scope-assessment.md` |
2026-06-16 03:46:01 +02:00
| 2026-06-16 | T02 dedup (3 local entries); T03 report gaps; T05 CI; T01 operator-blocked |
2026-06-16 12:35:49 +02:00
| 2026-06-16 | Follow-up: hub-core publish pass (12 blockers); T06 partial doc refresh |
| 2026-06-16 | Visibility fix: 59/60 publish pass; whynot org URLs; activity-core dedup; T04 done |
| 2026-06-16 | T04 closed — compose healthy (20 caps, 0 dup, 12 fetch warns = required:false exceptions). T01 remains the sole operator gate (12 Gitea 404); T06 final pass blocked on T01 |