feat: advance LOOP-WP-0002/0003/0004 without activity-core blockers

Document event payload contract, draft disabled ActivityDefinitions for
CI/regulator/registry hygiene, initialize loop health snapshots and
regulator dashboard, record DEC-005 kaizen-stack promotion, and close
supplier-independent workplan tasks.
This commit is contained in:
2026-06-18 13:10:59 +02:00
parent f678473892
commit 169a71f3e3
21 changed files with 513 additions and 30 deletions

View File

@@ -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`.

View File

@@ -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 (0810 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/<loop-id>/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).

View File

@@ -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.