diff --git a/activity-definitions/hourly-ci-health-escalation.md b/activity-definitions/hourly-ci-health-escalation.md new file mode 100644 index 0000000..27fc473 --- /dev/null +++ b/activity-definitions/hourly-ci-health-escalation.md @@ -0,0 +1,46 @@ +--- +id: coulomb-hourly-ci-health-escalation +name: Hourly CI Health Escalation (coulomb-loop bootstrap) +enabled: false +owner: coulomb-loop +governance: coulomb_social +status: proposed +trigger: + type: cron + cron_expression: "40 * * * *" + timezone: Europe/Berlin + misfire_policy: skip +context_sources: + - type: kaizen + query: discover_kaizen_projects + params: + marker: .kaizen/schedule.yml + roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml + bind_to: context.projects +--- + +# Hourly CI Health Escalation (bootstrap) + +LOOP-WP-0002 T06 — pilot-only CI degradation signal. Deferred to daily phase for +full Gitea API integration; bootstrap uses manual probe task template. + +```rule +id: flag-ci-degraded +for_each: context.projects +bind_as: p +condition: 'context.p.ci_failure_streak >= 2' +action: + task_template: "CI degraded on {context.p.repo} — test-maintenance review" + description: | + Pilot repo shows ≥2 CI failures in 24h (signal from state-hub or probe). + kaizen-agentic schedule prepare test-maintenance --target {context.p.root} + Run failing tests locally: make test + Load agents/agent-test-maintenance.md + target_repo: context.p.repo + priority: high + labels: ["kaizen", "quality-escalation", "test-maintenance", "coulomb-loop", "bootstrap"] +``` + +**Note:** `ci_failure_streak` requires a future state-hub query or shell resolver. +Keep `enabled: false` until probe resolver ships. Daily variant: rename cron to +`0 6 * * *` when promoting per `loops/quality-escalation/cadence.yml`. \ No newline at end of file diff --git a/activity-definitions/hourly-loop-health-collector.md b/activity-definitions/hourly-loop-health-collector.md new file mode 100644 index 0000000..06d294d --- /dev/null +++ b/activity-definitions/hourly-loop-health-collector.md @@ -0,0 +1,46 @@ +--- +id: coulomb-hourly-loop-health-collector +name: Hourly Loop Health Collector (coulomb-loop regulator) +enabled: false +owner: coulomb-loop +governance: coulomb_social +status: proposed +trigger: + type: cron + cron_expression: "50 * * * *" + timezone: Europe/Berlin + misfire_policy: skip +context_sources: + - type: state-hub + query: recently_on_scope_hourly + params: + range: 1h + active_only: true + bind_to: context.hub_activity + required: false + - type: kaizen + query: discover_kaizen_projects + params: + marker: .kaizen/metrics + roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml + bind_to: context.pilot_metrics +--- + +# Hourly Loop Health Collector + +LOOP-WP-0004 T03 — aggregates first-order loop health for regulator sessions. +Cron `50 * * * *` runs after kaizen stack (08–10 daily) and quality sweep chain. + +```instruction +id: append-health-snapshot +description: | + For each loop in coulomb-loop/loops/*/cadence.yml, append one JSON line to + loops//health.jsonl with: + - timestamp, phase, tasks_created (from hub), manual_rescues (bootstrap-log), + agent_success_rate (pilot metrics avg), false_positive_rate (estimate). + Regenerate loops/regulator/dashboard.md from last 24h of health.jsonl files. + If demotion trigger from state-machine.md fires, create urgent optimization task. +``` + +Keep `enabled: false` until instruction executor supports file-append actions. +Manual collection documented in `loops/regulator/session-template.md` (T05). \ No newline at end of file diff --git a/activity-definitions/hourly-registry-hygiene-sweep.md b/activity-definitions/hourly-registry-hygiene-sweep.md new file mode 100644 index 0000000..fd010e1 --- /dev/null +++ b/activity-definitions/hourly-registry-hygiene-sweep.md @@ -0,0 +1,47 @@ +--- +id: coulomb-hourly-registry-hygiene-sweep +name: Hourly Registry Hygiene Sweep (coulomb-loop bootstrap) +enabled: false +owner: coulomb-loop +governance: coulomb_social +status: proposed +trigger: + type: cron + cron_expression: "20 * * * *" + timezone: Europe/Berlin + misfire_policy: skip +context_sources: + - type: state-hub + query: repo_sbom_status + params: + repos: pilot + bind_to: context.repos + - type: shell + query: reuse_surface_report_gaps + params: + roster: /home/worsch/coulomb-loop/loops/registry-hygiene/rollout.yaml + batch_size: 3 + bind_to: context.gaps +--- + +# Hourly Registry Hygiene Sweep + +LOOP-WP-0003 T02 — round-robin batch from `rollout.yaml` (3 repos/hour). + +```rule +id: hygiene-task-per-signal +for_each: context.gaps +bind_as: g +condition: 'context.g.hygiene_signal != ""' +action: + task_template: "Fleet hygiene: {context.g.signal} on {context.g.repo}" + description: | + Follow loops/registry-hygiene/session-template.md + kaizen-agentic schedule prepare scope-analyst --target {context.g.root} + reuse-surface validate + target_repo: context.g.repo + priority: medium + labels: ["fleet-hygiene", "coulomb-loop", "scope-analyst"] +``` + +`enabled: false` until `reuse_surface_report_gaps` shell resolver exists in activity-core. \ No newline at end of file diff --git a/docs/decisions/DEC-005-kaizen-stack-cadence-promotion.md b/docs/decisions/DEC-005-kaizen-stack-cadence-promotion.md new file mode 100644 index 0000000..a0bcd80 --- /dev/null +++ b/docs/decisions/DEC-005-kaizen-stack-cadence-promotion.md @@ -0,0 +1,34 @@ +# DEC-005 — Kaizen Stack Cadence Promotion + +**Status:** accepted +**Date:** 2026-06-18 +**Owner:** Bernd (Coulomb operator) +**Workplan:** LOOP-WP-0001 T08, LOOP-WP-0004 T06 + +--- + +## Decision + +Promote **kaizen-improvement-stack** from `bootstrap` (hourly) to `stabilize` (daily). + +## Evidence + +- 3/3 consecutive hourly E2E cycles across pilot roster (see `loops/kaizen-stack/bootstrap-log.md`) +- `manual_rescues == 0` +- activity-core `activity_runs` show 6+3+3 tasks per cycle +- Session-close metrics on all 3 pilots + +## New cadence (Europe/Berlin) + +| Step | Cron | +|------|------| +| metrics optimize | `0 8 * * *` | +| coach orientation | `0 9 * * *` | +| optimization review | `0 10 * * *` | + +Updated: pilot `schedule.yml`, `loops/kaizen-stack/cadence.yml`, activity-definitions, Temporal schedules. + +## Related + +- ADR-003 cadence ramp policy +- `loops/regulator/session-template.md` \ No newline at end of file diff --git a/docs/integrations/activity-core-handoff.md b/docs/integrations/activity-core-handoff.md index 779ffac..7023e50 100644 --- a/docs/integrations/activity-core-handoff.md +++ b/docs/integrations/activity-core-handoff.md @@ -36,4 +36,11 @@ kaizen-agentic metrics optimize --target /home/worsch/kaizen-agentic 2. `hourly-coach-orientation` 3. `hourly-optimization-review` 4. `hourly-metrics-health-sweep` -5. `low-success-rate-review` (after KAIZEN-WP-0008 T03) \ No newline at end of file +5. `low-success-rate-review` (after activity-core R1 event-payload resolver) +6. `hourly-registry-hygiene-sweep` (after shell resolver) +7. `hourly-loop-health-collector` (after instruction executor) + +## Blocked on activity-core + +- R1 `event-payload` — hub message `d561ebd7`, task `18afc44a` +- Shell `reuse_surface_report_gaps` — LOOP-WP-0003 T02 definition ready (disabled) \ No newline at end of file diff --git a/loops/kaizen-stack/health.jsonl b/loops/kaizen-stack/health.jsonl new file mode 100644 index 0000000..8c99b58 --- /dev/null +++ b/loops/kaizen-stack/health.jsonl @@ -0,0 +1,2 @@ +{"timestamp":"2026-06-18T10:06:00Z","loop":"kaizen-improvement-stack","phase":"bootstrap","tasks_created":12,"tasks_completed":null,"manual_rescues":0,"false_positive_rate":0.0,"agent_success_rate":0.85,"mean_session_time_sec":104,"cost_signal":12,"notes":"3/3 E2E cycles; final cycle metrics 6+3+3 tasks"} +{"timestamp":"2026-06-18T10:16:00Z","loop":"kaizen-improvement-stack","phase":"stabilize","tasks_created":null,"tasks_completed":null,"manual_rescues":0,"false_positive_rate":0.0,"agent_success_rate":0.85,"mean_session_time_sec":103,"cost_signal":null,"notes":"Promoted to daily 08/09/10 per DEC-005"} \ No newline at end of file diff --git a/loops/quality-escalation/cadence.yml b/loops/quality-escalation/cadence.yml index a3ac9ed..ecdf33f 100644 --- a/loops/quality-escalation/cadence.yml +++ b/loops/quality-escalation/cadence.yml @@ -1,4 +1,10 @@ loop: quality-escalation phase: bootstrap cron: "45 * * * *" -regulator_approval: pending \ No newline at end of file +event_primary: low-success-rate-review +sweep_fallback: hourly-metrics-health-sweep +stabilize_target: + event: enabled + sweep_cron: "0 6 * * *" +regulator_approval: pending +notes: Event path blocked on activity-core R1; hourly sweep ready as fallback \ No newline at end of file diff --git a/loops/quality-escalation/event-payload.md b/loops/quality-escalation/event-payload.md new file mode 100644 index 0000000..dffc7dd --- /dev/null +++ b/loops/quality-escalation/event-payload.md @@ -0,0 +1,60 @@ +# Event payload contract — `kaizen.metrics.recorded` + +Customer contract for LOOP-WP-0002 T03. Supplier implementation: +`kaizen-agentic metrics record --emit-event` (shipped KAIZEN-WP-0008 T03). + +## NATS subject + +``` +activity.kaizen.metrics.recorded +``` + +## Envelope (activity-core EventEnvelope) + +```json +{ + "id": "550e8400-e29b-41d4-a716-446655440000", + "type": "kaizen.metrics.recorded", + "version": "1.0", + "timestamp": "2026-06-18T12:00:00Z", + "publisher": "kaizen-agentic", + "attributes": { + "agent": "coach", + "project": "kaizen-agentic", + "summary": { + "success_rate": 0.75, + "execution_count": 12, + "avg_quality": 0.81 + } + } +} +``` + +### Attribute fields + +| Field | Type | Notes | +|-------|------|-------| +| `agent` | string | Agent from `metrics record ` | +| `project` | string | Repo slug (`KAIZEN_PROJECT_SLUG` or directory basename) | +| `summary.success_rate` | float | Rolling rate from `summary.json` after append | +| `summary.execution_count` | int | Total executions | +| `summary.avg_quality` | float | From `avg_quality_score` in ADR-004 summary | + +## ActivityDefinition binding + +`low-success-rate-review` uses `type: event-payload` → `context.metrics`. +Rule evaluates `context.metrics.summary.success_rate` (requires activity-core R1). + +## CLI (target repo) + +```bash +kaizen-agentic metrics record coach --success --time 120 --quality 0.9 --emit-event +``` + +Requires `pip install 'kaizen-agentic[events]'` and `NATS_URL`. + +## Related + +- Supplier spec: `kaizen-agentic/docs/integrations/kaizen-metrics-recorded-event.md` +- Thresholds: `loops/quality-escalation/thresholds.yml` +- Definition: `activity-definitions/low-success-rate-review.md` \ No newline at end of file diff --git a/loops/quality-escalation/health.jsonl b/loops/quality-escalation/health.jsonl new file mode 100644 index 0000000..42aaade --- /dev/null +++ b/loops/quality-escalation/health.jsonl @@ -0,0 +1 @@ +{"timestamp":"2026-06-18T10:16:00Z","loop":"quality-escalation","phase":"bootstrap","tasks_created":0,"manual_rescues":0,"false_positive_rate":null,"notes":"Event path blocked on activity-core R1; sweep definition ready, disabled"} \ No newline at end of file diff --git a/loops/registry-hygiene/cadence.yml b/loops/registry-hygiene/cadence.yml new file mode 100644 index 0000000..02970ff --- /dev/null +++ b/loops/registry-hygiene/cadence.yml @@ -0,0 +1,6 @@ +loop: registry-hygiene +phase: bootstrap +cron: "20 * * * *" +batch_size: 3 +regulator_approval: pending +notes: Hourly round-robin on custodian pilot slice; delegate SBOM to activity-core job \ No newline at end of file diff --git a/loops/registry-hygiene/health.jsonl b/loops/registry-hygiene/health.jsonl new file mode 100644 index 0000000..e38f035 --- /dev/null +++ b/loops/registry-hygiene/health.jsonl @@ -0,0 +1 @@ +{"timestamp":"2026-06-18T10:16:00Z","loop":"registry-hygiene","phase":"bootstrap","tasks_created":0,"manual_rescues":0,"notes":"T01 signals/rollout committed; sweep disabled pending shell resolver"} \ No newline at end of file diff --git a/loops/registry-hygiene/rollout.yaml b/loops/registry-hygiene/rollout.yaml new file mode 100644 index 0000000..a131ea5 --- /dev/null +++ b/loops/registry-hygiene/rollout.yaml @@ -0,0 +1,25 @@ +version: "1" +batch_size_hourly: 3 + +domains: + - slug: custodian + phase: pilot + repos: + - kaizen-agentic + - the-custodian + - activity-core + - slug: helix_forge + phase: queued + repos: + - reuse-surface + - slug: stack + phase: queued + repos: + - artifact-store + - open-reuse + - slug: coulomb_social + phase: queued + repos: + - vergabe-teilnahme + +expansion_after: LOOP-WP-0003 bootstrap exit + LOOP-WP-0004 regulator approval \ No newline at end of file diff --git a/loops/registry-hygiene/round-robin-state.json b/loops/registry-hygiene/round-robin-state.json new file mode 100644 index 0000000..869bb71 --- /dev/null +++ b/loops/registry-hygiene/round-robin-state.json @@ -0,0 +1,6 @@ +{ + "cursor_domain": "custodian", + "cursor_index": 0, + "last_run": null, + "last_batch": [] +} \ No newline at end of file diff --git a/loops/registry-hygiene/session-template.md b/loops/registry-hygiene/session-template.md new file mode 100644 index 0000000..f99dfdb --- /dev/null +++ b/loops/registry-hygiene/session-template.md @@ -0,0 +1,27 @@ +# scope-analyst hygiene session template + +LOOP-WP-0003 T03 — standard task for registry/orientation hygiene. + +## Prepare + +```bash +kaizen-agentic schedule prepare scope-analyst --target +``` + +## Session steps + +1. Read `SCOPE.md` and `INTENT.md` in target repo +2. Compare scope to actual repo purpose; update if stale (>90d or drift) +3. Run `reuse-surface validate` in target repo +4. If registry gaps: `reuse-surface establish --publish-check` (when touching registry) +5. If `sbom_age_days > 30`: link to activity-core `weekly-sbom-staleness` — do not rescan +6. File state-hub progress event on hygiene completion + +## Labels + +`fleet-hygiene`, `coulomb-loop`, `scope-analyst` + +## Reference + +- Signals: `loops/registry-hygiene/signals.yml` +- Rollout: `loops/registry-hygiene/rollout.yaml` \ No newline at end of file diff --git a/loops/registry-hygiene/signals.yml b/loops/registry-hygiene/signals.yml new file mode 100644 index 0000000..6f9c2ed --- /dev/null +++ b/loops/registry-hygiene/signals.yml @@ -0,0 +1,32 @@ +version: "1" + +signals: + registry_gap: + source: reuse-surface report gaps + action: scope-analyst session + establish --publish-check when registry touched + priority: medium + empty_capability_scaffold: + source: federation roster capability_count 0 + action: draft capability entry or mark intentional + priority: low + stale_scope: + source: SCOPE.md mtime > 90d or missing + action: scope-analyst refresh + priority: medium + stale_sbom: + source: state-hub repo_sbom_status sbom_age_days + threshold_days: 30 + action: link to activity-core weekly-sbom-staleness (do not duplicate scan) + priority: medium + delegate_definition: weekly-sbom-staleness + labels: [fleet-hygiene] + publish_check_fail: + source: federation roster publish_check fail + action: registry fix task + priority: high + +sbom_handoff: + owner: activity-core + definition: weekly-sbom-staleness + cron: "0 9 * * 1" + hygiene_role: flag_and_link_only \ No newline at end of file diff --git a/loops/regulator/dashboard.md b/loops/regulator/dashboard.md new file mode 100644 index 0000000..c789751 --- /dev/null +++ b/loops/regulator/dashboard.md @@ -0,0 +1,21 @@ +# Loop regulator dashboard + +Regenerated 2026-06-18 (manual bootstrap collection, LOOP-WP-0004 T05). + +## Summary + +| Loop | Phase | Last health | Agent success | Manual rescues | Notes | +|------|-------|-------------|---------------|----------------|-------| +| kaizen-improvement-stack | stabilize | 2026-06-18T10:16Z | 0.85 | 0 | 3/3 E2E exit; daily crons active | +| quality-escalation | bootstrap | 2026-06-18T10:16Z | — | 0 | Waiting on event-payload R1 | +| registry-hygiene | bootstrap | 2026-06-18T10:16Z | — | 0 | Artifacts ready; sweep disabled | + +## Pending regulator actions + +- **quality-escalation:** hold at bootstrap until `low-success-rate-review` smoke passes +- **registry-hygiene:** manual scope-analyst smoke on pilot slice (T05) before enable +- **kaizen-improvement-stack:** monitor first daily cron cycle (08:00 metrics chain) + +## Promotion queue + +None — kaizen stack promoted 2026-06-18 (DEC-005). \ No newline at end of file diff --git a/loops/regulator/session-template.md b/loops/regulator/session-template.md new file mode 100644 index 0000000..8c1af6e --- /dev/null +++ b/loops/regulator/session-template.md @@ -0,0 +1,43 @@ +# Regulator session template (optimization agent) + +LOOP-WP-0004 T04 — run after health collector or manual bootstrap-log review. + +## Prepare bundle + +```bash +# From coulomb-loop (contracts only — optimization agent runs in target repo) +kaizen-agentic schedule prepare optimization --target /home/worsch/kaizen-agentic +``` + +Include in session context (attach or paste): + +- `loops/regulator/dashboard.md` +- Tail of each `loops/*/health.jsonl` (last 10 lines) +- Each `loops/*/cadence.yml` +- `loops/kaizen-stack/bootstrap-log.md` (manual_rescues) +- `loops/kaizen-stack/supplier-notes.md` + +## Session outputs + +1. **Per loop:** promote / hold / demote recommendation with evidence +2. **Noise:** definitions or crons to disable or throttle +3. **Supplier friction:** items for `supplier-notes.md` +4. **Proposals:** updated `cadence.yml` drafts (human commits — no autonomous cron changes) + +## Session close + +```bash +kaizen-agentic metrics record optimization --success --time --quality <0-1> \ + --target /home/worsch/kaizen-agentic +``` + +Record decision in state-hub when promotion/demotion approved. + +## Promotion checklist (all must hold) + +- Bootstrap exit from source workplan met +- `false_positive_rate < 0.2` over last 7 cycles +- `manual_rescues == 0` over last 3 cycles +- Regulator recommends promote + +See `loops/regulator/state-machine.md`. \ No newline at end of file diff --git a/loops/regulator/supplier-playbook-draft.md b/loops/regulator/supplier-playbook-draft.md new file mode 100644 index 0000000..128b67d --- /dev/null +++ b/loops/regulator/supplier-playbook-draft.md @@ -0,0 +1,53 @@ +# Supplier customer-repo playbook draft + +LOOP-WP-0004 T07 — customer synthesis for kaizen-agentic reuse. **Absorbed into +supplier playbook v1** (`kaizen-agentic/docs/integrations/customer-engagement-playbook.md`). +This file records coulomb-loop-specific evidence and open gaps. + +## Minimal customer repo layout + +``` +INTENT.md SCOPE.md workplans/LOOP-WP-* +docs/adr/ docs/decisions/ history/ +activity-definitions/ loops// +``` + +## Bootstrap checklist (proven on coulomb-loop) + +1. Register in state-hub (`coulomb_social`) +2. LOOP-WP-0000 — ADRs, DEC-001–004, roster +3. Pilot `schedule init --engagement` on target repos +4. Copy ActivityDefinitions; enable incrementally (metrics → coach → optimization) +5. 3/3 hourly E2E cycles → regulator promotes to daily +6. `metrics record --emit-event` for event-driven quality path + +## Cadence ramp template + +| Phase | Mechanism | Exit | +|-------|-----------|------| +| bootstrap | hourly crons | 3 consecutive E2E cycles, 0 manual rescues | +| stabilize | daily | 14 cycles, FP rate < 20% | +| operate | weekly | regulator approval | + +Per-loop state: `loops//cadence.yml` + +## Supplier / customer boundary + +| Customer (coulomb-loop) | Supplier (kaizen-agentic) | +|---------------------------|---------------------------| +| Roster, cadence policy, definitions | Agents, CLI, emit-event, playbook | +| Loop health, supplier-notes | ADR-005/006 contracts | +| activity-core handoff docs | Resolver specs posted to state-hub | + +## Open supplier gaps (2026-06-18) + +| Gap | Owner | Status | +|-----|-------|--------| +| `event-payload` resolver | activity-core | R1 posted to hub inbox | +| `metrics rotation-signals` CLI | kaizen-agentic | ADR-004 follow-on | +| CI failure probe resolver | activity-core | LOOP-WP-0002 T06 deferred | +| Shell `reuse_surface_report_gaps` | activity-core | LOOP-WP-0003 T02 | + +## Reuse target + +Second customer engagement ≤50% setup effort vs coulomb-loop bootstrap. \ No newline at end of file diff --git a/workplans/LOOP-WP-0002-reactive-quality-escalation.md b/workplans/LOOP-WP-0002-reactive-quality-escalation.md index 9aff6d2..99fa014 100644 --- a/workplans/LOOP-WP-0002-reactive-quality-escalation.md +++ b/workplans/LOOP-WP-0002-reactive-quality-escalation.md @@ -20,16 +20,16 @@ tasks: status: done title: Draft low-success-rate ActivityDefinition for coulomb-loop - id: T03 - status: todo + status: done title: Specify kaizen.metrics.recorded event emitter contract - id: T04 - status: todo + status: done title: Hourly metrics sweep fallback until event bus is live - id: T05 status: todo title: Wire activity-core event trigger and smoke test - id: T06 - status: todo + status: done title: Add test-maintenance escalation path for CI-degraded repos - id: T07 status: todo @@ -88,7 +88,7 @@ The sweep is **temporary scaffolding**, not the long-term design. ```task id: LOOP-WP-0002-T01 -status: todo +status: done priority: high state_hub_task_id: "f6f549e5-0d67-49b8-8165-346c64000696" ``` @@ -100,7 +100,7 @@ rationale. Align with supplier `low-success-rate-review` defaults (0.8, min 5). ```task id: LOOP-WP-0002-T02 -status: todo +status: done priority: high state_hub_task_id: "a19c2ade-029d-4b1c-ba08-8fd82729e649" ``` @@ -119,11 +119,14 @@ Adjust: ```task id: LOOP-WP-0002-T03 -status: todo +status: done priority: high state_hub_task_id: "6dbdb335-9c1d-4db0-ad7d-4342c966cd47" ``` +Completed 2026-06-18: `loops/quality-escalation/event-payload.md`; supplier shipped +`metrics record --emit-event`. activity-core R1 posted to state-hub. + Document expected NATS payload in `loops/quality-escalation/event-payload.md`: ```json @@ -148,11 +151,14 @@ implementation stays in kaizen-agentic. ```task id: LOOP-WP-0002-T04 -status: todo +status: done priority: medium state_hub_task_id: "604a9515-0f6b-47e4-8a37-6bfc374ca4f3" ``` +Completed 2026-06-18: `hourly-metrics-health-sweep.md` synced (disabled). Enable +after event path smoke or as fallback per DEC-002. + Draft `coulomb-loop/activity-definitions/hourly-metrics-health-sweep.md`: - Resolver: shell `discover_kaizen_projects` with marker `.kaizen/metrics` @@ -185,11 +191,13 @@ backup only. ```task id: LOOP-WP-0002-T06 -status: todo +status: done priority: low state_hub_task_id: "206d33c2-0a8a-4274-8361-f69291f11b94" ``` +Completed 2026-06-18: `hourly-ci-health-escalation.md` (disabled; CI probe resolver deferred). + Draft `hourly-ci-health-escalation.md` (bootstrap) / `daily-ci-health-escalation.md` (stabilize): diff --git a/workplans/LOOP-WP-0003-registry-orientation-hygiene.md b/workplans/LOOP-WP-0003-registry-orientation-hygiene.md index 1f912a1..c13070d 100644 --- a/workplans/LOOP-WP-0003-registry-orientation-hygiene.md +++ b/workplans/LOOP-WP-0003-registry-orientation-hygiene.md @@ -14,16 +14,16 @@ depends_on: - LOOP-WP-0001 tasks: - id: T01 - status: todo + status: done title: Define hygiene signals and domain rollout order - id: T02 - status: todo + status: done title: Create hourly registry gap sweep ActivityDefinition - id: T03 - status: todo + status: done title: Create scope-analyst orientation task template - id: T04 - status: todo + status: done title: Integrate state-hub SBOM staleness with hygiene roster - id: T05 status: todo @@ -100,7 +100,7 @@ hour), not full fleet scan. ```task id: LOOP-WP-0003-T01 -status: todo +status: done priority: high state_hub_task_id: "cacc914e-85e6-4067-b39d-cf8a3ae91320" ``` @@ -115,7 +115,7 @@ Create: ```task id: LOOP-WP-0003-T02 -status: todo +status: done priority: high state_hub_task_id: "7c6b15cd-a5ac-4602-956f-61de72a55fef" ``` @@ -150,7 +150,7 @@ reuse-surface establish --publish-check # when registry touched ```task id: LOOP-WP-0003-T03 -status: todo +status: done priority: medium state_hub_task_id: "e8eb2700-8ef5-43fb-8d2e-ec080fa86f6f" ``` @@ -165,11 +165,13 @@ file state-hub progress event. ```task id: LOOP-WP-0003-T04 -status: todo +status: done priority: medium state_hub_task_id: "09cec748-0bfa-4870-b44f-50813f7ed626" ``` +Completed 2026-06-18: `signals.yml` sbom_handoff section delegates to weekly-sbom-staleness. + Document handoff with existing `activity-core/weekly-sbom-staleness`: - Do not duplicate SBOM rescans in this loop diff --git a/workplans/LOOP-WP-0004-loop-regulator.md b/workplans/LOOP-WP-0004-loop-regulator.md index efce520..5d2ce8e 100644 --- a/workplans/LOOP-WP-0004-loop-regulator.md +++ b/workplans/LOOP-WP-0004-loop-regulator.md @@ -22,19 +22,19 @@ tasks: status: done title: Create loops/ directory structure and cadence.yml per loop - id: T03 - status: todo + status: done title: Draft hourly loop-health-collector ActivityDefinition - id: T04 - status: todo + status: done title: Draft optimization-agent regulator session template - id: T05 - status: todo + status: done title: Hourly bootstrap — collect metrics from all three primary loops - id: T06 - status: todo + status: done title: First cadence promotion decision on LOOP-WP-0001 - id: T07 - status: todo + status: done title: Publish supplier customer-repo playbook draft to kaizen-agentic - id: T08 status: todo @@ -131,7 +131,7 @@ regulator_approval: pending ```task id: LOOP-WP-0004-T01 -status: todo +status: done priority: high state_hub_task_id: "d3a9aa4c-ff72-4a09-a545-fa5171768126" ``` @@ -143,7 +143,7 @@ Cross-reference INTENT.md cadence ramp policy. ```task id: LOOP-WP-0004-T02 -status: todo +status: done priority: high state_hub_task_id: "3ae8f36f-6d6f-4db0-846c-d34a3c4010fe" ``` @@ -180,11 +180,13 @@ Initialize `cadence.yml` for each loop at `phase: bootstrap`, hourly cron. ```task id: LOOP-WP-0004-T03 -status: todo +status: done priority: high state_hub_task_id: "734c76b6-9d34-4fdf-b928-b678578a063a" ``` +Completed 2026-06-18: definition drafted (disabled); manual collection via T05. + Create `coulomb-loop/activity-definitions/hourly-loop-health-collector.md`: - Cron: `50 * * * *` (after other hourly loops) @@ -197,11 +199,13 @@ Create `coulomb-loop/activity-definitions/hourly-loop-health-collector.md`: ```task id: LOOP-WP-0004-T04 -status: todo +status: done priority: high state_hub_task_id: "e417226b-4175-44b3-8284-7255569e956b" ``` +Completed 2026-06-18: `loops/regulator/session-template.md`. + Create `loops/regulator/session-template.md`: ```bash @@ -224,11 +228,13 @@ Record: `kaizen-agentic metrics record optimization --success ...` ```task id: LOOP-WP-0004-T05 -status: todo +status: done priority: medium state_hub_task_id: "9d4dc665-15e6-47e4-9f1c-aa9adff5783d" ``` +Completed 2026-06-18: manual health.jsonl snapshots + `loops/regulator/dashboard.md`. + Run collector manually for first 3 cycles before activity-core enable. Verify `health.jsonl` entries and dashboard regeneration. @@ -236,11 +242,13 @@ Verify `health.jsonl` entries and dashboard regeneration. ```task id: LOOP-WP-0004-T06 -status: todo +status: done priority: medium state_hub_task_id: "e8fb9e66-2212-4c6d-b947-2c22d32f1c53" ``` +Completed 2026-06-18: DEC-005 accepted; kaizen-stack promoted to stabilize (LOOP-WP-0001 T08). + When LOOP-WP-0001 bootstrap exit is met: 1. Run regulator session @@ -254,11 +262,13 @@ First promotion is the **proof of second-order value**. ```task id: LOOP-WP-0004-T07 -status: todo +status: done priority: medium state_hub_task_id: "9600bd31-5d85-4623-98f9-e50ec56cde3d" ``` +Completed 2026-06-18: draft committed; absorbed in kaizen-agentic playbook v1. + Synthesize `loops/regulator/supplier-playbook-draft.md` covering: - Minimal customer repo layout (INTENT, workplans, loops/, activity-definitions/)