228 lines
6.9 KiB
Markdown
228 lines
6.9 KiB
Markdown
|
|
---
|
|||
|
|
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"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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 <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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
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` |
|