Files
reuse-surface/workplans/REUSE-WP-0015-federation-polish-and-planning-analytics.md
tegwick 29c77ff1f7
Some checks failed
ci / validate-registry (push) Has been cancelled
WP-0015: complete compose acceptance after Gitea visibility fix
Refresh federated index (20 capabilities, 0 duplicate warnings). Update
workplan, SCOPE, gap analysis, and tests for 59/60 publish pass. Mark
T04/T06 done; T01 remains on tegwick-control repo creation.

Note: production hub whynot URLs still need REUSE_SURFACE_TOKEN update.
2026-06-16 12:35:49 +02:00

272 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: REUSE-WP-0015
type: workplan
title: "Federation polish and planning analytics"
domain: helix_forge
repo: reuse-surface
status: active
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 **2527**. 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 / C5C6 / 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: progress
priority: high
state_hub_task_id: "7024ca46-cabd-44a8-8baf-cbc83d99c1fe"
needs_human: true
intervention_note: "tegwick-control — no HTTP-visible Gitea repo; operator must create coulomb/tegwick-control (59/60 pass)"
```
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 (follow-up):** `hub-core` resolved — Gitea repo created, push OK,
`publish_check: pass`. **12** slugs remain HTTP 404.
**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).
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
**Resolved:** `hub-core``coulomb/hub-core` created on Gitea; roster
`publish_check: pass` (2026-06-16 follow-up).
**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: done
priority: high
state_hub_task_id: "a354ef8f-fdbb-4929-8278-8ecf4ca79553"
```
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
where owner repo index is canonical and fetchable.
**Done 2026-06-16 (visibility fix):** Removed `activity-core` stub after owner
index fetchable; local index **2** entries (meta-registry only).
**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: done
priority: medium
state_hub_task_id: "e135ea2e-a68f-4f72-947c-abe08a3aedef"
```
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`.
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 56 have a documented CLI or report
artifact beyond overlaps/cohorts.
## Federation Compose Acceptance Gate
```task
id: REUSE-WP-0015-T04
status: done
priority: high
state_hub_task_id: "aa26429d-6d42-4d84-9235-96feb61303f2"
```
Verify federation health after T01 and T02.
**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.
```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: done
priority: low
state_hub_task_id: "88f50eb3-9fba-413f-89aa-7b159f136520"
```
**Done 2026-06-16:** CI informational steps for `stats --roster --federation-ready`
and `report gaps` in `.gitea/workflows/ci.yml`.
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: done
priority: low
state_hub_task_id: "fd25e504-21b7-4e9f-841c-cfa20318be33"
```
**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.
On workplan completion:
- Update `SCOPE.md` §What Is Not Possible Yet and §Current State
- Update `docs/IntentScopeGapAnalysis.md` — close priorities 2527; 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` (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)
## 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` |
| 2026-06-16 | T02 dedup (3 local entries); T03 report gaps; T05 CI; T01 operator-blocked |
| 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 |