From 2b222d0bc8fc4d167e23c5e8533c88cdeda1c05d Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 16 Jun 2026 21:07:05 +0200 Subject: [PATCH] WP-0015 finished: coulomb org transfer completes 60/60 publish After Gitea UI transfer of tegwick/whynot repos to coulomb, align workstation remotes and federation sources to coulomb/. Roster sweep 60/60 pass; compose has 0 fetch warnings. Mark workplan finished. --- SCOPE.md | 11 ++++------ docs/IntentScopeGapAnalysis.md | 20 +++++++++---------- registry/federation/local-repo-roster.yaml | 9 +++------ registry/federation/sources.yaml | 4 ++-- registry/indexes/federated.yaml | 8 ++++++-- tests/test_reports.py | 2 +- ...ederation-polish-and-planning-analytics.md | 16 +++++++-------- 7 files changed, 34 insertions(+), 36 deletions(-) diff --git a/SCOPE.md b/SCOPE.md index 9aa8fa5..3e89f21 100644 --- a/SCOPE.md +++ b/SCOPE.md @@ -82,9 +82,7 @@ index, CLI automation, and the production hub. - **Automatic hub refresh** — federated compose is on-demand; no polling or webhooks -- **Fully fetchable federation** — hub registers **60** workstation repos; **1** - (`tegwick-control`) has no HTTP-visible Gitea repo. See - `registry/federation/local-repo-roster.yaml` + - **Multi-domain federation** — all indexed capabilities remain `helix_forge` - **Planning analytics breadth** — `report gaps` shipped (REUSE-WP-0015-T03); no roadmap views or standardization tracker beyond `overlaps` and compose @@ -104,10 +102,10 @@ See `tools/README.md` for command reference. `registry/capabilities/`. - **Workstation roster:** 60 local git repos at `~//` tracked in `registry/federation/local-repo-roster.yaml` — all **established**, **60/60** - hub-registered, **59/60** publish-check pass. + hub-registered, **60/60** publish-check pass. - **Federation:** `registry/federation/sources.yaml` — **60** sources; `registry/indexes/federated.yaml` — **20** composed capability rows - (0 duplicate-ID warnings; 1 optional fetch warning for `tegwick-control`). + (0 duplicate-ID warnings; 0 fetch warnings). - **CLI / service:** `reuse_surface/` — validate, query, export, overlaps, catalog, federation, graph, hub client, establish/update/stats, `serve` (FastAPI hub). @@ -121,8 +119,7 @@ See `tools/README.md` for command reference. - **Relation graph:** `docs/graph/capability-graph.mmd`, `docs/graph/index.html`. - **Searchable catalog:** `docs/catalog/search.html`. - **Workplans:** REUSE-WP-0001 through REUSE-WP-0014 finished (archived); - **REUSE-WP-0015** active — T02/T03/T04/T05/T06 done; T01 blocked on - `tegwick-control` Gitea repo creation. + **REUSE-WP-0015** finished (federation polish, dedup, planning analytics). - **Assessment history:** `history/` — intent/scope assessments, rollout milestone, dedup plan, per-repo follow-up. - **Self-assessed vector:** `D5 / A4 / C5 / R3` (see `docs/IntentScopeGapAnalysis.md`). diff --git a/docs/IntentScopeGapAnalysis.md b/docs/IntentScopeGapAnalysis.md index 307a585..687c013 100644 --- a/docs/IntentScopeGapAnalysis.md +++ b/docs/IntentScopeGapAnalysis.md @@ -35,8 +35,7 @@ dimensions, and human/agent consumers. **Open gaps** (operator or follow-on workplans): -1. **Gitea publish visibility** — 1/60 repo (`tegwick-control`) not HTTP-fetchable. -2. **Planning analytics breadth** — gap report shipped; no roadmap views or +1. **Planning analytics breadth** — gap report shipped; no roadmap views or standardization tracker. 3. **Hub automation** — no polling/webhooks for federated refresh. 4. **Managed platform posture** — A6/Postgres/multi-replica not implemented. @@ -74,7 +73,7 @@ What `INTENT.md` still expects beyond current `SCOPE.md` delivery. | INTENT claim | SCOPE reality | Gap | |---|---|---| | Capabilities reusable across repos, products, orgs | 60 repos on hub; 20 federated rows | Single domain (`helix_forge`) | -| Find capabilities before rebuilding at network scale | Hub + compose + roster | `tegwick-control` not HTTP-fetchable | +| Find capabilities before rebuilding at network scale | Hub + compose + roster | — | | Identify duplicates (success criterion) | `overlaps` + compose (0 duplicate warnings) | — | **Follow-up:** `history/2026-06-16-wp0014-remaining-work-by-repo.md` (Gitea); @@ -121,6 +120,7 @@ What `INTENT.md` still expects beyond current `SCOPE.md` delivery. | WP-0014 | Workstation registry rollout; hub 60 registrations | `local-repo-roster.yaml`; milestone history | | WP-0015-T02 | Federated ID deduplication | 2 local entries; 0 compose duplicate warnings | | WP-0015-T03 | Planning gap report | `reuse-surface report gaps` | +| WP-0015 | Gitea publish + federation polish | 60/60 publish pass; org transfer to `coulomb/` | | Priority 18 | Sibling / workstation hub membership | 60/60 `hub list` | | Priority 19–24 | See §8 | WP-0012/0013 deliveries | @@ -132,14 +132,14 @@ From `INTENT.md` §Success Criteria: | # | Criterion | Met? | SCOPE evidence | Remaining gap | |---|---|---|---|---| -| 1 | Find reusable capabilities before rebuilding | **Yes** | Index, query, catalog, hub `/v1/federated`, federation compose | `tegwick-control` optional source | +| 1 | Find reusable capabilities before rebuilding | **Yes** | Index, query, catalog, hub `/v1/federated`, federation compose | — | | 2 | Compare maturity consistently | **Yes** | Vectors, schema, graph relations | — | | 3 | Distinguish conceptual readiness from delivery | **Yes** | D vs A in model and index | — | | 4 | Distinguish internal assessment from external evidence | **Yes** | `maturity` vs `external_evidence` | — | | 5 | Plan prototype/MVP/enhancement/platform work | **Partial** | `report cohorts`, `report gaps`, query | No roadmap views | | 6 | Identify gaps, duplicates, overlaps, standardization | **Partial** | `overlaps`, `report gaps`, deduped index | Standardization tracker | | 7 | Track progress to generalized capabilities (D7) | **Partial** | `promotion_history` per entry | No org-wide D7 view | -| 8 | Make reuse normal in architecture work | **Partial** | AGENTS.md, 60-repo rollout | `tegwick-control` publish blocker | +| 8 | Make reuse normal in architecture work | **Yes** | AGENTS.md, 60-repo rollout, 60/60 publish pass | — | **Score:** 4 fully met, 4 partial — consistent with **C5** product completeness for known registry expectations, not yet saturated (**C6**). @@ -158,15 +158,15 @@ known registry expectations, not yet saturated (**C6**). | Validation | Tooling | `validate` + CI | C5 | | Search / filter | Supported | query, catalog HTML | C4 | | Federation membership | Cross-repo | 60 hub members; compose + sync | C5 | -| Federation fetch reliability | Published indexes | 59/60 publish pass | C5 | +| Federation fetch reliability | Published indexes | 60/60 publish pass | C5 | | Workstation bootstrap | Org-wide visibility | Roster + establish tooling | C4 | | Agent instructions | Expected | AGENTS.md, tools README | C4 | | Technical consumption | A3+ tools | CLI A3, hub A4 | C4 | | Planning analytics | Success criteria | `report cohorts`, `report gaps` | C4 | | Documentation canon | Concept + living delta | Concept doc + this file | C4 | -**Overall completeness vs INTENT:** **C5** for reuse-surface product scope; -**C5** for fetchable federation (one optional `tegwick-control` exception). +**Overall completeness vs INTENT:** **C5–C6** for reuse-surface product scope; +**C6** for fetchable federation (60/60 publish pass). --- @@ -179,7 +179,7 @@ known registry expectations, not yet saturated (**C6**). | Production hub | `reuse.coulomb.social` — TLS, 60 registrations | | Workstation rollout | Deterministic establish/validate; roster tracked | | Consumer feedback | Informal; 3 entries with structured `consumer_feedback` | -| Known friction | `tegwick-control` Gitea HTTP gap; hub SQLite single-replica | +| Known friction | hub SQLite single-replica | **Overall reliability vs INTENT consumer-evidence framing:** **R3 (Usable)** — CI and production paths support normal agent/operator workflows with documented @@ -198,7 +198,7 @@ See §4 and archived workplans `workplans/archived/`. | Priority | Gap | Suggested outcome | Status | |---|---|---|---| -| 25 | Gitea publish visibility (`tegwick-control`) | Raw URL HTTP 200 for all roster rows | **REUSE-WP-0015-T01** (59/60) | +| 25 | Gitea publish visibility | Raw URL HTTP 200 for all roster rows | **Closed** (WP-0015-T01) | | 26 | Federated ID deduplication | Per-owner removal from reuse-surface index | **Closed** (WP-0015-T02) | | 27 | Planning analytics + standardization | Gap report or standardization tracker | **Partial** — gap report shipped (T03); tracker deferred | diff --git a/registry/federation/local-repo-roster.yaml b/registry/federation/local-repo-roster.yaml index 8fe9bf4..616b3ba 100644 --- a/registry/federation/local-repo-roster.yaml +++ b/registry/federation/local-repo-roster.yaml @@ -10,8 +10,8 @@ summary: pending: 0 with_reuse_surface_seed: 8 hub_registered: 60 - publish_pass: 59 - publish_fail: 1 + publish_pass: 60 + publish_fail: 0 publish_sweep: '2026-06-16' repos: - slug: activity-core @@ -518,9 +518,8 @@ repos: seed_from_reuse_surface: false seed_capability_ids: [] hub_registered: true - publish_check: fail + publish_check: pass batch: B05 - publish_note: No HTTP-visible Gitea repo (SSH tegwick/tegwick-control only); create coulomb/tegwick-control - slug: the-custodian path: /home/worsch/the-custodian status: established @@ -566,7 +565,6 @@ repos: hub_registered: true publish_check: pass batch: B06 - publish_note: Gitea org path whynot/whynot-control (not coulomb/) - slug: whynot-design path: /home/worsch/whynot-design status: established @@ -576,4 +574,3 @@ repos: hub_registered: true publish_check: pass batch: B06 - publish_note: Gitea org path whynot/whynot-design (not coulomb/) diff --git a/registry/federation/sources.yaml b/registry/federation/sources.yaml index 7bbc7ec..66bb66b 100644 --- a/registry/federation/sources.yaml +++ b/registry/federation/sources.yaml @@ -410,14 +410,14 @@ sources: cache_ttl_seconds: 86400 auth_header: Authorization - repo: whynot-control - url: https://gitea.coulomb.social/whynot/whynot-control/raw/main/registry/indexes/capabilities.yaml + url: https://gitea.coulomb.social/coulomb/whynot-control/raw/main/registry/indexes/capabilities.yaml enabled: true required: false domain: helix_forge cache_ttl_seconds: 86400 auth_header: Authorization - repo: whynot-design - url: https://gitea.coulomb.social/whynot/whynot-design/raw/main/registry/indexes/capabilities.yaml + url: https://gitea.coulomb.social/coulomb/whynot-design/raw/main/registry/indexes/capabilities.yaml enabled: true required: false domain: helix_forge diff --git a/registry/indexes/federated.yaml b/registry/indexes/federated.yaml index 4147dc6..c9453b7 100644 --- a/registry/indexes/federated.yaml +++ b/registry/indexes/federated.yaml @@ -217,6 +217,10 @@ sources: count: 2 url: https://gitea.coulomb.social/coulomb/state-hub/raw/main/registry/indexes/capabilities.yaml cache: registry/federation/cache/state-hub.yaml +- repo: tegwick-control + count: 0 + url: https://gitea.coulomb.social/coulomb/tegwick-control/raw/main/registry/indexes/capabilities.yaml + cache: registry/federation/cache/tegwick-control.yaml - repo: the-custodian count: 0 url: https://gitea.coulomb.social/coulomb/the-custodian/raw/main/registry/indexes/capabilities.yaml @@ -235,11 +239,11 @@ sources: cache: registry/federation/cache/vergabe-teilnahme.yaml - repo: whynot-control count: 0 - url: https://gitea.coulomb.social/whynot/whynot-control/raw/main/registry/indexes/capabilities.yaml + url: https://gitea.coulomb.social/coulomb/whynot-control/raw/main/registry/indexes/capabilities.yaml cache: registry/federation/cache/whynot-control.yaml - repo: whynot-design count: 0 - url: https://gitea.coulomb.social/whynot/whynot-design/raw/main/registry/indexes/capabilities.yaml + url: https://gitea.coulomb.social/coulomb/whynot-design/raw/main/registry/indexes/capabilities.yaml cache: registry/federation/cache/whynot-design.yaml capabilities: - id: capability.activity.event-coordinate diff --git a/tests/test_reports.py b/tests/test_reports.py index 7d5acf0..4f41ec6 100644 --- a/tests/test_reports.py +++ b/tests/test_reports.py @@ -97,7 +97,7 @@ def test_collect_gap_report_from_roster(): roster = root / "registry/federation/local-repo-roster.yaml" report = collect_gap_report(roster) assert report["summary"]["total"] == 60 - assert len(report["publish_fail"]) == 1 + assert len(report["publish_fail"]) == 0 assert report["empty_scaffold_count"] >= 40 diff --git a/workplans/REUSE-WP-0015-federation-polish-and-planning-analytics.md b/workplans/REUSE-WP-0015-federation-polish-and-planning-analytics.md index 62ef5c3..7f20f39 100644 --- a/workplans/REUSE-WP-0015-federation-polish-and-planning-analytics.md +++ b/workplans/REUSE-WP-0015-federation-polish-and-planning-analytics.md @@ -4,7 +4,7 @@ type: workplan title: "Federation polish and planning analytics" domain: helix_forge repo: reuse-surface -status: active +status: finished owner: codex topic_slug: helix-forge created: "2026-06-16" @@ -64,11 +64,9 @@ T01 (Gitea publish — operator; unblocks fetch) ```task id: REUSE-WP-0015-T01 -status: progress +status: done 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**. @@ -83,9 +81,10 @@ possible without Gitea operator action. Bring all roster rows to `publish_check: 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). +**Done 2026-06-16 (org transfer):** Operator transferred `tegwick-control`, +`whynot-control`, and `whynot-design` to `coulomb/` via Gitea UI. Roster +**60/60** `publish_check: pass`; workstation remotes and `sources.yaml` aligned +to `coulomb/`. Per slug: @@ -247,7 +246,7 @@ On workplan completion: ## Acceptance -- [ ] Roster `publish_fail: 0` (59/60 — `tegwick-control` remains) +- [x] Roster `publish_fail: 0` (60/60) - [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 @@ -269,4 +268,5 @@ On workplan completion: | 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 | Org transfer to coulomb: 60/60 publish pass; WP-0015 finished | | 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 | \ No newline at end of file