2026-06-18 04:53:51 +02:00
|
|
|
|
---
|
|
|
|
|
|
id: LOOP-WP-0003
|
|
|
|
|
|
type: workplan
|
|
|
|
|
|
title: "Registry & Orientation Hygiene (fleet legibility)"
|
2026-06-22 23:16:24 +02:00
|
|
|
|
domain: communication
|
2026-06-18 04:53:51 +02:00
|
|
|
|
repo: coulomb-loop
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
owner: coulomb-loop
|
2026-06-22 23:16:24 +02:00
|
|
|
|
topic_slug: coulomb-social
|
2026-06-18 04:53:51 +02:00
|
|
|
|
supplier: kaizen-agentic
|
|
|
|
|
|
created: "2026-06-18"
|
|
|
|
|
|
updated: "2026-06-18"
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- LOOP-WP-0001
|
|
|
|
|
|
tasks:
|
|
|
|
|
|
- id: T01
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Define hygiene signals and domain rollout order
|
|
|
|
|
|
- id: T02
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Create hourly registry gap sweep ActivityDefinition
|
|
|
|
|
|
- id: T03
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Create scope-analyst orientation task template
|
|
|
|
|
|
- id: T04
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Integrate state-hub SBOM staleness with hygiene roster
|
|
|
|
|
|
- id: T05
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Hourly bootstrap on custodian-domain pilot slice
|
|
|
|
|
|
- id: T06
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Expand to next domain batch after pilot exit
|
|
|
|
|
|
- id: T07
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
title: Promote cadence to daily then weekly
|
|
|
|
|
|
state_hub_workstream_id: "f3a4b60a-7bc2-400d-bf8a-e7209a9e45c4"
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# LOOP-WP-0003 — Registry & Orientation Hygiene
|
|
|
|
|
|
|
2026-06-18 13:22:53 +02:00
|
|
|
|
**Status:** done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
**Owner:** coulomb-loop (customer)
|
|
|
|
|
|
**Supplier:** kaizen-agentic (`scope-analyst` agent)
|
|
|
|
|
|
**Partner:** reuse-surface (CLI), state-hub (SBOM status)
|
|
|
|
|
|
|
|
|
|
|
|
## Goal
|
|
|
|
|
|
|
|
|
|
|
|
Prevent **fleet legibility drift** across 56 state-hub repos and 53 reuse-surface
|
|
|
|
|
|
registries. Agents and planners can only improve what they can see; this loop
|
|
|
|
|
|
keeps `SCOPE.md`, capability entries, and SBOM metadata current.
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart LR
|
|
|
|
|
|
SH[state-hub repo roster]
|
|
|
|
|
|
RS[reuse-surface report gaps]
|
|
|
|
|
|
SBOM[repo_sbom_status]
|
|
|
|
|
|
SA[schedule prepare scope-analyst]
|
|
|
|
|
|
VAL[reuse-surface validate]
|
|
|
|
|
|
SH --> RS
|
|
|
|
|
|
SH --> SBOM
|
|
|
|
|
|
RS --> SA --> VAL
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Hygiene signals
|
|
|
|
|
|
|
|
|
|
|
|
| Signal | Source | Action |
|
|
|
|
|
|
|--------|--------|--------|
|
|
|
|
|
|
| Registry gap | `reuse-surface report gaps` | `scope-analyst` + `establish --publish-check` |
|
|
|
|
|
|
| Empty capability scaffold | federation roster `capability_count: 0` | draft capability entry or mark intentional |
|
|
|
|
|
|
| Stale SCOPE | `SCOPE.md` mtime > 90d or missing | `scope-analyst` refresh |
|
|
|
|
|
|
| Stale SBOM | `sbom_age_days > 30` (state-hub) | flag + link to existing activity-core SBOM job |
|
|
|
|
|
|
| Publish check fail | `publish_check: fail` in federation roster | registry fix task |
|
|
|
|
|
|
|
|
|
|
|
|
Signals documented in `loops/registry-hygiene/signals.yml`.
|
|
|
|
|
|
|
|
|
|
|
|
## Domain rollout order
|
|
|
|
|
|
|
|
|
|
|
|
Bootstrap processes **small batches** to avoid task storms:
|
|
|
|
|
|
|
|
|
|
|
|
1. **custodian** (11 repos) — aligns with LOOP-WP-0001 pilots
|
|
|
|
|
|
2. **helix_forge** (4 repos) — reuse-surface home domain
|
|
|
|
|
|
3. **stack** (3 repos) — artifact-store, open-reuse
|
|
|
|
|
|
4. Remaining domains — one per weekly cycle after daily stabilization
|
|
|
|
|
|
|
|
|
|
|
|
## Cadence ramp
|
|
|
|
|
|
|
|
|
|
|
|
| Phase | Cron | Batch size |
|
|
|
|
|
|
|-------|------|------------|
|
|
|
|
|
|
| Bootstrap | `0 * * * *` (hourly) | 3 repos per run (round-robin) |
|
|
|
|
|
|
| Stabilize | `0 7 * * *` (daily) | 1 domain per day |
|
|
|
|
|
|
| Operate | `0 9 * * 1` (weekly Mon) | 1–2 domains per week |
|
|
|
|
|
|
|
|
|
|
|
|
Hourly bootstrap uses **round-robin** across custodian pilot slice (3 repos per
|
|
|
|
|
|
hour), not full fleet scan.
|
|
|
|
|
|
|
|
|
|
|
|
## Part 1 — Signal and template setup
|
|
|
|
|
|
|
|
|
|
|
|
## Define hygiene signals and rollout order
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T01
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: high
|
|
|
|
|
|
state_hub_task_id: "cacc914e-85e6-4067-b39d-cf8a3ae91320"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Create:
|
|
|
|
|
|
|
|
|
|
|
|
- `loops/registry-hygiene/signals.yml`
|
|
|
|
|
|
- `loops/registry-hygiene/rollout.yaml` (domain order + repo slugs)
|
|
|
|
|
|
- `loops/registry-hygiene/round-robin-state.json` (cursor for hourly batching)
|
|
|
|
|
|
|
|
|
|
|
|
## Hourly registry gap sweep ActivityDefinition
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T02
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: high
|
|
|
|
|
|
state_hub_task_id: "7c6b15cd-a5ac-4602-956f-61de72a55fef"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Create `coulomb-loop/activity-definitions/hourly-registry-hygiene-sweep.md`:
|
|
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
trigger:
|
|
|
|
|
|
cron_expression: "20 * * * *"
|
|
|
|
|
|
context_sources:
|
|
|
|
|
|
- type: state-hub
|
|
|
|
|
|
query: repo_sbom_status
|
|
|
|
|
|
bind_to: context.repos
|
|
|
|
|
|
- type: shell
|
|
|
|
|
|
query: reuse_surface_report_gaps
|
|
|
|
|
|
params:
|
|
|
|
|
|
roster: coulomb-loop/loops/registry-hygiene/rollout.yaml
|
|
|
|
|
|
bind_to: context.gaps
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Rule: for each repo in current hourly batch with any hygiene signal, create task:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
kaizen-agentic schedule prepare scope-analyst
|
|
|
|
|
|
reuse-surface validate
|
|
|
|
|
|
reuse-surface establish --publish-check # when registry touched
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
`enabled: false` until shell resolver wrapper exists in activity-core.
|
|
|
|
|
|
|
|
|
|
|
|
## scope-analyst orientation template
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T03
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: medium
|
|
|
|
|
|
state_hub_task_id: "e8eb2700-8ef5-43fb-8d2e-ec080fa86f6f"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Create `loops/registry-hygiene/session-template.md` — standard task description
|
|
|
|
|
|
for scope-analyst sessions: read SCOPE, compare to INTENT, update registry index,
|
|
|
|
|
|
file state-hub progress event.
|
|
|
|
|
|
|
|
|
|
|
|
## Part 2 — Integration
|
|
|
|
|
|
|
|
|
|
|
|
## Integrate SBOM staleness with hygiene roster
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T04
|
2026-06-18 13:10:59 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: medium
|
|
|
|
|
|
state_hub_task_id: "09cec748-0bfa-4870-b44f-50813f7ed626"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-18 13:10:59 +02:00
|
|
|
|
Completed 2026-06-18: `signals.yml` sbom_handoff section delegates to weekly-sbom-staleness.
|
|
|
|
|
|
|
2026-06-18 04:53:51 +02:00
|
|
|
|
Document handoff with existing `activity-core/weekly-sbom-staleness`:
|
|
|
|
|
|
|
|
|
|
|
|
- Do not duplicate SBOM rescans in this loop
|
|
|
|
|
|
- Hygiene task **links** to SBOM job when `sbom_age_days > 30`
|
|
|
|
|
|
- Shared label: `fleet-hygiene`
|
|
|
|
|
|
|
|
|
|
|
|
Add cross-reference in `loops/registry-hygiene/signals.yml`.
|
|
|
|
|
|
|
|
|
|
|
|
## Hourly bootstrap on custodian pilot slice
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T05
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: medium
|
|
|
|
|
|
state_hub_task_id: "76029879-01ed-4db2-afcf-3876db45b395"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-18 13:22:53 +02:00
|
|
|
|
Completed 2026-06-18: 3/3 rounds in `loops/registry-hygiene/bootstrap-log.md`;
|
|
|
|
|
|
`hygiene-roster.yaml` + `reuse-surface report gaps` + validate on all pilots.
|
|
|
|
|
|
|
2026-06-18 04:53:51 +02:00
|
|
|
|
Pilot batch: `kaizen-agentic`, `the-custodian`, `activity-core`.
|
|
|
|
|
|
|
|
|
|
|
|
Manual smoke test (before activity-core enable):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
reuse-surface report gaps --roster <rollout.yaml>
|
|
|
|
|
|
kaizen-agentic schedule prepare scope-analyst --target /home/worsch/kaizen-agentic
|
|
|
|
|
|
reuse-surface validate # in target repo
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Bootstrap exit:** 3 hourly rounds complete without duplicate tasks for same repo+signal.
|
|
|
|
|
|
|
|
|
|
|
|
## Expand domain batch
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T06
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: low
|
|
|
|
|
|
state_hub_task_id: "f6e5a9d5-2c32-439d-9e95-aa6d6fd3c6ab"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-18 13:22:53 +02:00
|
|
|
|
Completed 2026-06-18: `helix_forge` + `reuse-surface` active in `rollout.yaml`.
|
|
|
|
|
|
|
2026-06-18 04:53:51 +02:00
|
|
|
|
After regulator approval, add helix_forge domain to rollout. Increase batch size
|
|
|
|
|
|
when false-positive rate stays below 20%.
|
|
|
|
|
|
|
|
|
|
|
|
## Promote cadence
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: LOOP-WP-0003-T07
|
2026-06-18 13:22:53 +02:00
|
|
|
|
status: done
|
2026-06-18 04:53:51 +02:00
|
|
|
|
priority: low
|
|
|
|
|
|
state_hub_task_id: "5b6bb667-42e1-4e41-968e-4025ac2e72ce"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-06-18 13:22:53 +02:00
|
|
|
|
Completed 2026-06-18: DEC-006 daily `0 7 * * *`; weekly operate phase deferred.
|
|
|
|
|
|
Definition cron updated; activity-core sync pending.
|
|
|
|
|
|
|
2026-06-18 04:53:51 +02:00
|
|
|
|
| Promotion | Condition |
|
|
|
|
|
|
|-----------|-----------|
|
|
|
|
|
|
| hourly → daily | bootstrap exit + LOOP-WP-0004 approval |
|
|
|
|
|
|
| daily → weekly | 2 weeks daily with < 10% repeat tasks for same signal |
|
|
|
|
|
|
|
|
|
|
|
|
Update activity-core definitions and `loops/registry-hygiene/cadence.yml`.
|
|
|
|
|
|
|
|
|
|
|
|
## Definition of done
|
|
|
|
|
|
|
|
|
|
|
|
- Hygiene sweep creates actionable scope-analyst tasks on pilot repos
|
|
|
|
|
|
- reuse-surface validate passes after hygiene session on at least one repo
|
|
|
|
|
|
- SBOM staleness delegated to existing activity-core job (no duplicate work)
|
|
|
|
|
|
- Domain rollout order and cadence ramp documented
|
|
|
|
|
|
|
|
|
|
|
|
## Out of scope
|
|
|
|
|
|
|
|
|
|
|
|
- Implementing `reuse-surface report gaps` resolver in coulomb-loop
|
|
|
|
|
|
- Mandatory capability maturity promotion (planning-only in bootstrap)
|
|
|
|
|
|
- Full 56-repo hourly scan
|
|
|
|
|
|
|
|
|
|
|
|
## Supplier feedback
|
|
|
|
|
|
|
|
|
|
|
|
Document whether `scope-analyst` needs engagement-specific briefing template.
|
|
|
|
|
|
Feed reuse-surface + kaizen-agentic supplier playbook.
|