Compare commits

...

27 Commits

Author SHA1 Message Date
f3d1d98e42 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-22:
  - update .custodian-brief.md for coulomb-loop
2026-06-22 23:20:31 +02:00
2f94943d97 Normalize agent instructions and workplan frontmatter (STATE-WP-0067)
- Align agent files with on-disk workplan prefixes (infer from workplan ids)
- Set workplan domain to registered domain_slug; add topic_slug where applicable
- Repair frontmatter delimiter formatting; migrate legacy task status literals
- Regenerate AGENTS.md, CLAUDE.md, and .claude/rules from State Hub templates
2026-06-22 23:16:24 +02:00
35052500b1 Add .repo-classification.yaml (CUST-WP-0050 T11 agent first-pass) 2026-06-22 17:47:35 +02:00
3225cf9dd6 Mark activity-core weekly sync complete (DEC-008)
Definitions and Temporal schedules synced; daily/hourly coulomb defs
disabled. Weekly resolver returns 6 scheduled_runs on pilot roster.
2026-06-19 02:04:00 +02:00
245b7fcbfe Document atomic schedule promote; sync roster phase to operate
Fleet layer aligned via kaizen-agentic schedule promote --fleet-only.
2026-06-19 01:57:50 +02:00
27e05552a2 Complete LOOP-WP-0005: DEC-008 weekly operate promotion
Operator override per ADR-003 closes the stabilize observation window
early (day 2/14) and promotes all four loops to weekly Mon crons.
Activity definitions renamed coulomb-daily-* → coulomb-weekly-*;
cadence.yml, dashboard, SCOPE, and health records updated.
activity-core definition sync still required on operator side.
2026-06-19 01:39:47 +02:00
78b82dd17b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-19:
  - update .custodian-brief.md for coulomb-loop
2026-06-19 01:39:41 +02:00
3eb553f508 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-19:
  - update .custodian-brief.md for coulomb-loop
2026-06-19 01:36:22 +02:00
7f9cc62cc6 Enable registry hygiene sweep after ACTIVITY-WP-0013 R2
Turn on coulomb-daily-registry-hygiene-sweep with runtime resolver
params; document live smoke (4 gaps) and issue-core emit follow-up.
2026-06-18 18:11:43 +02:00
f0dd557662 LOOP-WP-0005: mark reuse-surface onboarding complete
Update expansion readiness and dashboard after kaizen schedule
and agents installed on reuse-surface (1a2d80e).
2026-06-18 17:24:41 +02:00
6bd1c12044 LOOP-WP-0005 T04–T06: expansion prep, operate targets, R2 handoff
Document reuse-surface hygiene expansion readiness, draft weekly
operate_target crons in all loop cadence files (gated on T07), and
post reuse_surface_report_gaps resolver spec to activity-core
(hub message bffa224c).
2026-06-18 17:09:26 +02:00
497dd898b6 Add state-hub task IDs to LOOP-WP-0005 workplan frontmatter 2026-06-18 15:17:06 +02:00
7704845b16 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 15:16:47 +02:00
d74d3b5447 Open LOOP-WP-0005: stabilize observation and dashboard refresh
Bootstrap sprint complete; daily defs active. Start 14-day ADR-003 observation
window (review 2026-07-02). Refresh regulator dashboard and SCOPE current state.
2026-06-18 15:16:28 +02:00
9b19956af6 Rename hourly activity definitions to daily stabilize phase (DEC-005)
Crons were already daily; align file names, ids (coulomb-daily-*), rule labels,
and cross-references. Old hourly definitions disabled on activity-core sync.
Kept hourly-ci-health-escalation as bootstrap-only (disabled).
2026-06-18 15:02:41 +02:00
fa0eb147c3 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 14:06:23 +02:00
5fa0b59cce Complete LOOP-WP-0002: event-driven quality escalation smoke + daily backup cadence
ACTIVITY-WP-0011 event-payload resolver unblocked the reactive path. Live NATS
smoke confirmed tasks_spawned=1 for low-success-rate-review. Promoted sweep from
hourly bootstrap to daily backup (disabled); cadence.yml now in stabilize phase.
2026-06-18 13:39:11 +02:00
7cb79aff62 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 13:23:10 +02:00
d9b398999a feat: complete LOOP-WP-0003 and LOOP-WP-0004
Registry hygiene: 3-round pilot bootstrap smoke, helix_forge rollout
expansion, daily cadence promotion (DEC-006). Loop regulator: daily
collector and weekly session cadence (DEC-007), rotation runbook (T09).
2026-06-18 13:22:53 +02:00
a8207ea408 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 13:11:38 +02:00
169a71f3e3 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.
2026-06-18 13:10:59 +02:00
f678473892 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 12:09:57 +02:00
b3d8a9f8e4 feat: complete LOOP-WP-0001 bootstrap exit and daily cadence promotion
Record 3/3 consecutive hourly E2E cycles, session-close metrics on all
pilots, and promote kaizen stack to stabilize phase (daily 08/09/10 crons).
2026-06-18 12:09:25 +02:00
7cfe4dd52f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-06-18:
  - update .custodian-brief.md for coulomb-loop
2026-06-18 11:02:31 +02:00
25f31c3851 feat: complete LOOP-WP-0000 bootstrap — reuse-surface capability D0
Register capability.coulomb-social.loop-orchestrate; validate passes.
Mark engagement bootstrap workplan done (8/8 tasks).
2026-06-18 11:02:05 +02:00
6948f10968 bootstrap: enable hourly-optimization-review definition
Third definition in bootstrap enable chain verified — 3 optimization
tasks spawned across pilot roster. Update handoff checklist and log.
2026-06-18 08:11:48 +02:00
2bdcb6830d bootstrap: fix rule syntax, enable metrics+coach definitions
Align coulomb ActivityDefinition rules with activity-core path syntax
(context.p.* / {context.p.*}). Enable hourly-metrics-optimize and
hourly-coach-orientation; record first E2E cycle in bootstrap-log.
2026-06-18 08:11:09 +02:00
62 changed files with 1861 additions and 412 deletions

View File

@@ -1,25 +1,8 @@
## Architecture
`coulomb-loop` is a **markdown-first engagement layer** — no application runtime.
<!-- TODO: Describe the key design decisions and component structure.
Key modules, data flows, external integrations, state machines, etc. -->
```
activity-core (cron/event)
→ state-hub roster + coulomb-loop rosters
→ tasks on target repos
→ kaizen-agentic schedule prepare / metrics CLI
→ coding-agent sessions (supplier agents)
```
## Quick Reference
### Layers
| Layer | Repo | Role |
|-------|------|------|
| Customer contracts | coulomb-loop | Workplans, ADRs, ActivityDefinition copies, `loops/` |
| Supplier IP | kaizen-agentic | Agents, CLI, ADR-002006 |
| Scheduler | activity-core | Temporal schedules, resolvers |
| Roster | state-hub | Repo list, workstreams, events |
| Execution state | target repos | `.kaizen/schedule.yml`, memory, metrics |
### Four loops
See `INTENT.md` and LOOP-WP-00010004. LOOP-WP-0004 regulates cadence (ADR-003).
`~/state-hub/mcp_server/TOOLS.md` — MCP tool reference

View File

@@ -0,0 +1,50 @@
# Credential and access routing
**Audience:** Codex, Claude Code, Grok, and custodian agents that call **llm-connect**
for inference. Run this check **before** requesting secrets, API keys, SSH access,
login tokens, or database passwords — in any repo, not only `ops-warden`.
ops-warden **issues SSH certificates only** (`warden sign`, `cert_command`). Every
other credential need belongs to another subsystem. **Do not** message
`ops-warden` on State Hub expecting a secret value; the reply is a pointer, not a key.
### Lookup (do this first)
```bash
warden route find "<describe your need>" --json
warden route show <catalog-id> --json
```
Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run warden`).
| Agent runtime | How to orient |
| --- | --- |
| **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=coulomb-loop` is for coordination, not secret vending |
| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership |
| **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` |
### Quick routing table
| I need… | Owner | ops-warden executes? |
| --- | --- | --- |
| SSH cert (`adm`/`agt`/`atm`) | ops-warden | **Yes**`warden sign` |
| API key, DB password, provider token | OpenBao (`railiance-platform`) | No — route only |
| Login / OIDC / MFA | key-cape / Keycloak | No — route only |
| Authorization decision | flex-auth | No — route only |
| activity-core → issue-core emission | activity-core + issue-core | No — `warden route show activity-core-issue-sink` |
| SSH tunnel | ops-bridge (+ `cert_command` from warden) | No — route only |
### Anti-patterns (do not do these)
- `POST /messages/` to `ops-warden` asking for `ISSUE_CORE_API_KEY`, `OPENROUTER_API_KEY`, etc.
- Inventing `warden secret`, `warden login`, `warden bao`, `warden tunnel` — they do not exist
- Pasting secrets into Git, State Hub, workplans, logs, or chat
### Other capabilities (reuse-surface)
Non-credential capabilities are usually discovered through **reuse-surface** federation
(`reuse-surface` registry / `capability.*` indexes). Credential routing is inlined in
every repo's agent instructions because it is high-frequency, high-risk, and easy to
get wrong.
**Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml`

View File

@@ -1,11 +1,11 @@
## First Session Protocol
Triggered when `get_domain_summary("coulomb_social")` shows **no workstreams**.
Triggered when `get_domain_summary("communication")` shows **no workstreams**.
The project is registered but work has not yet been structured.
**Step 1 — Read, don't write**
- `~/the-custodian/canon/projects/coulomb_social/project_charter_v0.1.md` — purpose, scope
- `~/the-custodian/canon/projects/coulomb_social/roadmap_v0.1.md` — planned phases
- `~/the-custodian/canon/projects/communication/project_charter_v0.1.md` — purpose, scope
- `~/the-custodian/canon/projects/communication/roadmap_v0.1.md` — planned phases
- Scan repo root: README, directory structure, existing code or docs
**Step 2 — Survey in-progress work**
@@ -17,7 +17,7 @@ roadmap phase. **Wait for approval before creating.**
**Step 4 — Create workplan file first, then DB record (ADR-001)**
```
workplans/COULOMB-WP-NNNN-<slug>.md ← write this first
workplans/LOOP-WP-NNNN-<slug>.md ← write this first
```
Then register in the hub:
```
@@ -28,7 +28,7 @@ create_task(workstream_id="<id>", title="...", priority="high|medium|low")
**Step 5 — Record the setup**
```
add_progress_event(
summary="First session: structured coulomb_social into N workstreams, M tasks",
summary="First session: structured communication into N workstreams, M tasks",
event_type="milestone",
topic_id="36c7421b-c537-4723-bf75-42a3ebc6a1dc",
detail={"workstreams": [...], "tasks_created": M}

View File

@@ -1,11 +1,8 @@
## Repo boundary
This repo owns **coulomb-loop engagement operations** only. It does not own:
This repo owns **coulomb-loop** only. It does not own:
- Kaizen agent definitions `kaizen-agentic`
- activity-core resolvers and Temporal workers → `activity-core`
- State-hub API/MCP`state-hub` / `the-custodian`
- reuse-surface CLI and federation hub → `reuse-surface`
- Target repo `.kaizen/` state → each fleet repo checkout
Cross-repo handoffs are documented in loop workplans and `docs/adr/ADR-002-customer-supplier-boundary.md`.
<!-- TODO: List what belongs in adjacent repos, e.g.:
- SSH key management → railiance-infra/
- State hub code → state-hub/
-->

View File

@@ -1,15 +1,5 @@
## Repo Identity
**Purpose:** Coulomb fleet self-improvement loop engagement — customer repo for scheduled kaizen-agentic supplier operations.
**Purpose:** coulomb-loop — Coulomb customer engagement repo for fleet self-improvement loops operated with kaizen-agentic as supplier.
**Domain:** coulomb_social
**Domain:** communication
**Repo slug:** coulomb-loop
**Topic ID:** 36c7421b-c537-4723-bf75-42a3ebc6a1dc
**Supplier:** `kaizen-agentic` (agents, CLI, playbook — not merged into this repo)
**Custodian integration:** Registered in state-hub. Workplans use `LOOP-WP` prefix (ADR-001). Sync after workplan edits:
```bash
cd ~/state-hub && make fix-consistency REPO=coulomb-loop
```

View File

@@ -1,6 +1,7 @@
## Session Protocol
State Hub: http://127.0.0.1:8000
Dev Hub (State Hub API): http://127.0.0.1:8000
MCP server name in `~/.claude.json`: `dev-hub`
**Step 1 — Orient**
@@ -10,7 +11,7 @@ cat .custodian-brief.md
```
Then call the MCP tool for richer cross-domain context when MCP tools are exposed:
```
get_domain_summary("coulomb_social")
get_domain_summary("communication")
```
If MCP tools are unavailable in the current agent session, use the REST API:
```bash
@@ -43,7 +44,7 @@ For each file with `status: ready`, `active`, or `blocked`, note pending
**Step 4 — Present brief**
1. **Active workstreams** for `coulomb_social` — title, task counts, blocking decisions
1. **Active workstreams** for `communication` — title, task counts, blocking decisions
2. **Pending tasks** from `workplans/` + any `[repo:coulomb-loop]` hub tasks
3. **Goal guidance** — if `goal_guidance` in summary:
- `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"*

View File

@@ -1,28 +1,19 @@
## Stack and Commands
## Stack
**Language:** Markdown / YAML coordination artefacts
**Package manager:** none
**Test runner:** none
<!-- TODO: Fill in language, frameworks, and key dependencies -->
- **Language:**
- **Key deps:**
### Essential commands
## Dev Commands
```bash
# Sync workplans to state-hub after edits
cd ~/state-hub && make fix-consistency REPO=coulomb-loop
# TODO: Fill in the standard commands for this repo
# Validate reuse-surface registry (when entries exist)
reuse-surface validate
# Install dependencies
# Supplier CLI on target repos (not this repo)
kaizen-agentic schedule validate --target /path/to/target-repo
kaizen-agentic schedule prepare coach --target /path/to/target-repo
# Run tests
# Lint / type check
# Build / package (if applicable)
```
### Session orientation
```bash
# MCP when available
get_domain_summary("coulomb_social")
```
Fallback: `.custodian-brief.md`

View File

@@ -1,17 +1,40 @@
## Workplan Convention (ADR-001)
File location: `workplans/LOOP-WP-NNNN-<slug>.md`
ID prefix: `LOOP-WP` (see `docs/adr/ADR-001-workplan-prefix.md`)
ID prefix: `LOOP-WP-`
Work items originate as files in this repo **before** being registered in the hub.
Ecosystem todos from supplier or other agents arrive as `[repo:coulomb-loop]` hub tasks.
Canonical workplan/workstream frontmatter statuses are:
`proposed`, `ready`, `active`, `blocked`, `backlog`, `finished`, `archived`.
Use `proposed` for a newly drafted plan, `ready` after review against current
repo state, and `finished` when implementation is complete. `stalled` and
`needs_review` are derived health labels, not stored statuses.
After workplan file updates:
Closed workplans may be moved to `workplans/archived/` with a completion-date
prefix: `YYMMDD-LOOP-WP-NNNN-<slug>.md`. The frontmatter id remains
unchanged; the prefix is only for quick visual reference.
```bash
cd ~/state-hub && make fix-consistency REPO=coulomb-loop
Small opportunistic tasks discovered during another session use **Ad Hoc Tasks**:
`workplans/ADHOC-YYYY-MM-DD.md`, workstream slug `adhoc-YYYY-MM-DD`, and task ids
`ADHOC-YYYY-MM-DD-T01`, `T02`, etc. Use adhocs only for low-risk work completed
directly. Promote anything requiring analysis, design, approval, dependencies, or
multiple planned phases into a normal workplan.
Ecosystem todos from other agents arrive as `[repo:coulomb-loop]` hub tasks —
visible at session start. Pick one up by creating the workplan file, then registering
the workstream.
Task blocks use this shape:
```task
id: LOOP-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
```
Customer loop workplans: LOOP-WP-0000 (bootstrap), LOOP-WP-00010004 (loops).
Supplier mirror: `kaizen-agentic` KAIZEN-WP-0008.
Status progression is `todo``progress``done`; use `wait` for waiting or
blocked work and `cancel` for stopped work.
<!-- Ralph Loop rules and HEUREKA sequence: ~/.claude/CLAUDE.md — do not duplicate here -->

View File

@@ -1,66 +1,18 @@
<!-- custodian-brief: generated by fix-consistency — do not edit manually -->
# Custodian Brief — coulomb-loop
**Domain:** coulomb_social
**Last synced:** 2026-06-18 05:46 UTC
**Domain:** communication
**Last synced:** 2026-06-22 21:20 UTC
**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)*
## Active Workstreams
### Engagement bootstrap (registration, assessment, governance)
Progress: 7/8 done | workstream_id: `0df6df54-4313-4c2d-93f2-dc6844fe47ec`
**Open tasks:**
- · reuse-surface capability entry `54f5e683`
### Reactive Quality Escalation (signal-driven improvement)
Progress: 0/7 done | workstream_id: `d4d3b624-dad3-4e1d-9db3-e84548d133de`
**Open tasks:**
- · Define escalation signals and thresholds `f6f549e5`
- · Draft low-success-rate ActivityDefinition `a19c2ade`
- · Specify event emitter contract `6dbdb335`
- · Hourly metrics sweep fallback `604a9515`
- · Wire activity-core and smoke test `a5d8a6e1`
- · test-maintenance escalation for CI-degraded repos `206d33c2`
- · Promote sweep to daily `fa4205f4`
### Loop Regulator (second-order improvement)
Progress: 0/9 done | workstream_id: `08970648-dbd8-48f6-9b3a-72f196013089`
**Open tasks:**
- · Define loop health model and state machine `d3a9aa4c`
- · Create loops directory structure `3ae8f36f`
- · Hourly loop-health-collector ActivityDefinition `734c76b6`
- · optimization-agent regulator session template `e417226b`
- · Hourly bootstrap collection `9d4dc665`
- · First cadence promotion decision `e8fb9e66`
- · Supplier customer-repo playbook `9600bd31`
- … and 2 more open tasks
### Registry & Orientation Hygiene (fleet legibility)
Progress: 0/7 done | workstream_id: `f3a4b60a-7bc2-400d-bf8a-e7209a9e45c4`
**Open tasks:**
- · Define hygiene signals and rollout order `cacc914e`
- · Hourly registry gap sweep ActivityDefinition `7c6b15cd`
- · scope-analyst orientation template `e8eb2700`
- · Integrate SBOM staleness with hygiene roster `09cec748`
- · Hourly bootstrap on custodian pilot slice `76029879`
- · Expand domain batch `f6e5a9d5`
- · Promote cadence `5b6bb667`
### Kaizen Improvement Stack (coach + metrics + optimization)
Progress: 6/8 done | workstream_id: `90a05147-7b95-4ce7-96bf-39cdb487b557`
**Open tasks:**
- · Three-repo pilot with metrics `e60fa833`
- · Promote to daily cadence `7c77ec4f`
*(none — repo may need first-session setup)*
---
## MCP Orientation (when available)
If the state-hub MCP server is reachable, call:
`get_domain_summary("coulomb_social")`
`get_domain_summary("communication")`
This provides richer cross-domain context.
If the MCP call fails, use this file as your orientation source.

17
.repo-classification.yaml Normal file
View File

@@ -0,0 +1,17 @@
repo_classification:
standard: Repo Classification Standard
version: '1.0'
classified_at: '2026-06-22'
classified_by: agent
category: experimental
domain: communication
secondary_domains: []
capability_tags:
- marketplace
- collaboration
business_stake:
- product
- sales
business_mechanics:
- coordination
- operation

219
AGENTS.md Normal file
View File

@@ -0,0 +1,219 @@
# coulomb-loop — Agent Instructions
## Repo Identity
**Purpose:** Coulomb fleet self-improvement loop engagement — customer repo for scheduled kaizen-agentic supplier operations.
**Domain:** communication
**Repo slug:** coulomb-loop
**Topic ID:** `36c7421b-c537-4723-bf75-42a3ebc6a1dc`
**Workplan prefix:** `LOOP-WP-`
---
## State Hub Integration
The Custodian State Hub tracks work across all domains. Interact via HTTP REST —
there is no MCP server for Codex agents.
| Context | URL |
|---------|-----|
| Local workstation | `http://127.0.0.1:8000` |
| Remote via tunnel | `http://127.0.0.1:18000` |
### Orient at session start
```bash
# Offline brief — works without hub connection
cat .custodian-brief.md
# Active workstreams for this domain
curl -s "http://127.0.0.1:8000/workstreams/?topic_id=36c7421b-c537-4723-bf75-42a3ebc6a1dc&status=active" \
| python3 -m json.tool
# Check inbox
curl -s "http://127.0.0.1:8000/messages/?to_agent=coulomb-loop&unread_only=true" \
| python3 -m json.tool
```
Mark a message read:
```bash
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
-H "Content-Type: application/json" -d '{}'
```
### Log progress (required at session close)
```bash
curl -s -X POST http://127.0.0.1:8000/progress/ \
-H "Content-Type: application/json" \
-d '{
"summary": "what was done",
"event_type": "note",
"author": "codex",
"workstream_id": "<uuid>",
"task_id": "<uuid>"
}'
```
Omit `workstream_id` / `task_id` when not applicable.
### Update task status
```bash
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
-H "Content-Type: application/json" \
-d '{"status": "progress"}'
# values: wait | todo | progress | done | cancel
```
### Flag a task for human review
```bash
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
-H "Content-Type: application/json" \
-d '{"needs_human": true, "intervention_note": "reason"}'
```
---
## Session Protocol
**Start:**
1. `cat .custodian-brief.md` — domain goal and open workstreams (offline-safe)
2. Check inbox: `GET /messages/?to_agent=coulomb-loop&unread_only=true`; mark read
3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks
4. Check human-needed tasks: `GET /tasks/?needs_human=true`
**During work:**
- Update task statuses in workplan files as tasks progress
- Record significant decisions via `POST /decisions/`
**Close:**
1. Update workplan file task statuses to reflect progress
2. Log: `POST /progress/` with a summary of what changed
3. Note for the custodian operator: after workplan file changes, run from
`~/state-hub`:
```bash
make fix-consistency REPO=coulomb-loop
```
This syncs task status from files into the hub DB.
---
## Credential and access routing
**Audience:** Codex, Claude Code, Grok, and custodian agents that call **llm-connect**
for inference. Run this check **before** requesting secrets, API keys, SSH access,
login tokens, or database passwords — in any repo, not only `ops-warden`.
ops-warden **issues SSH certificates only** (`warden sign`, `cert_command`). Every
other credential need belongs to another subsystem. **Do not** message
`ops-warden` on State Hub expecting a secret value; the reply is a pointer, not a key.
### Lookup (do this first)
```bash
warden route find "<describe your need>" --json
warden route show <catalog-id> --json
```
Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run warden`).
| Agent runtime | How to orient |
| --- | --- |
| **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=coulomb-loop` is for coordination, not secret vending |
| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership |
| **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` |
### Quick routing table
| I need… | Owner | ops-warden executes? |
| --- | --- | --- |
| SSH cert (`adm`/`agt`/`atm`) | ops-warden | **Yes** — `warden sign` |
| API key, DB password, provider token | OpenBao (`railiance-platform`) | No — route only |
| Login / OIDC / MFA | key-cape / Keycloak | No — route only |
| Authorization decision | flex-auth | No — route only |
| activity-core → issue-core emission | activity-core + issue-core | No — `warden route show activity-core-issue-sink` |
| SSH tunnel | ops-bridge (+ `cert_command` from warden) | No — route only |
### Anti-patterns (do not do these)
- `POST /messages/` to `ops-warden` asking for `ISSUE_CORE_API_KEY`, `OPENROUTER_API_KEY`, etc.
- Inventing `warden secret`, `warden login`, `warden bao`, `warden tunnel` — they do not exist
- Pasting secrets into Git, State Hub, workplans, logs, or chat
### Other capabilities (reuse-surface)
Non-credential capabilities are usually discovered through **reuse-surface** federation
(`reuse-surface` registry / `capability.*` indexes). Credential routing is inlined in
every repo's agent instructions because it is high-frequency, high-risk, and easy to
get wrong.
**Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml`
<!-- REPO-AGENTS-EXTENSIONS -->
<!-- Append repo-specific agent instructions below this marker.
The state-hub template sync preserves content after this line. -->
---
## Workplan Convention (ADR-001)
Work items originate as files in this repo — not in the hub. The hub is a
read/cache/index layer that rebuilds from files.
**File location:** `workplans/COULOMB-WP-NNNN-<slug>.md`
**Archived location:** finished workplans may move to
`workplans/archived/YYMMDD-COULOMB-WP-NNNN-<slug>.md`. The `YYMMDD` prefix is
the completion/archive date; the frontmatter `id` does not change.
**Ad Hoc Tasks:** small opportunistic fixes discovered during a session use
`workplans/ADHOC-YYYY-MM-DD.md` with task ids `ADHOC-YYYY-MM-DD-T01`, etc. Use
this only for low-risk work completed directly; create a normal workplan for
anything needing analysis, design, approval, dependencies, or multiple phases.
**Frontmatter:**
```yaml
---
id: COULOMB-WP-NNNN
type: workplan
title: "..."
domain: communication
repo: coulomb-loop
status: proposed | ready | active | blocked | backlog | finished | archived
owner: codex
topic_slug: ...
created: "YYYY-MM-DD"
updated: "YYYY-MM-DD"
state_hub_workstream_id: "<uuid>" # written by fix-consistency — do not edit
---
```
Use `proposed` for a new draft, `ready` after review against current repo
state, and `finished` after implementation. `stalled` and `needs_review` are
derived health labels, not frontmatter statuses.
**Task block format** (one per `##` section):
```
## Task Title
` ` `task
id: COULOMB-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
` ` `
Task description text.
```
Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work.
To create a new workplan:
1. Write the file following the format above
2. Notify the custodian operator to run `make fix-consistency REPO=coulomb-loop`
(or send a message to the hub agent via `POST /messages/`)

View File

@@ -8,4 +8,5 @@
@.claude/rules/stack-and-commands.md
@.claude/rules/architecture.md
@.claude/rules/repo-boundary.md
@.claude/rules/credential-routing.md
@.claude/rules/agents.md

View File

@@ -41,10 +41,10 @@ with project-scoped memory and metrics.
## Current State
- Status: active (bootstrap)
- Implementation: planning artefacts + hub registration complete
- Stability: evolving (hourly cadence bootstrap pending)
- Usage: internal engagement
- Status: active (operate — weekly cadence)
- Implementation: four loops operational on custodian pilot roster (3 repos)
- Stability: observation window closed 2026-06-19 via DEC-008 operator override (LOOP-WP-0005 done)
- Usage: internal engagement; weekly Mon crons live; activity-core synced 2026-06-19
## How It Fits

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

@@ -1,38 +0,0 @@
---
id: coulomb-hourly-coach-orientation
name: Hourly Kaizen Coach Orientation (coulomb-loop bootstrap)
enabled: false
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "15 * * * *"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_scheduled_repos
params:
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
cadence: daily
bind_to: context.scheduled_runs
---
# Hourly Kaizen Coach Orientation (bootstrap)
```rule
id: run-hourly-coach
for_each: context.scheduled_runs
bind_as: r
condition: 'r.agent == "coach" and r.enabled == true'
action:
task_template: "Hourly coach orientation: {{r.repo}}"
description: |
{{r.prepare_command}}
Load agents/agent-coach.md, execute coach synthesis.
Session close: kaizen-agentic metrics record coach --success --time <s> --quality <0-1>
target_repo: "{{r.repo}}"
priority: medium
labels: ["kaizen", "agent-run", "coach", "coulomb-loop", "bootstrap"]
```

View File

@@ -1,41 +0,0 @@
---
id: coulomb-hourly-metrics-health-sweep
name: Hourly Metrics Health Sweep (coulomb-loop bootstrap)
enabled: false
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "45 * * * *"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_projects
params:
marker: .kaizen/metrics
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
bind_to: context.projects
---
# Hourly Metrics Health Sweep
Bootstrap fallback per DEC-002 option A until `kaizen.metrics.recorded` events ship.
```rule
id: flag-low-success-hourly
for_each: context.projects
bind_as: p
condition: 'p.summary.success_rate < 0.8 and p.summary.execution_count >= 5'
action:
task_template: "Review {{p.agent}} success rate on {{p.repo}}"
description: |
Agent metrics below threshold on {{p.repo}}.
kaizen-agentic metrics show <agent>
kaizen-agentic metrics optimize <agent>
Load agents/agent-optimization.md for review.
target_repo: "{{p.repo}}"
priority: high
labels: ["kaizen", "quality-escalation", "coulomb-loop", "bootstrap"]
```

View File

@@ -1,42 +0,0 @@
---
id: coulomb-hourly-metrics-optimize
name: Hourly Kaizen Metrics Optimization (coulomb-loop bootstrap)
enabled: false
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "0 * * * *"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_projects
params:
marker: .kaizen/metrics
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
bind_to: context.projects
---
# Hourly Kaizen Metrics Optimization (bootstrap)
Runs hourly during coulomb-loop bootstrap phase. Limited to pilot roster
(DEC-001 option A). Promote to daily when LOOP-WP-0004 regulator approves.
```rule
id: run-hourly-optimizer
for_each: context.projects
bind_as: p
condition: 'p.has_metrics == true and p.in_pilot_roster == true'
action:
task_template: "Run kaizen metrics optimize on {{p.repo}}"
description: |
cd {{p.root}} && kaizen-agentic metrics optimize
Optional: kaizen-agentic metrics publish (when artifact-store configured)
target_repo: "{{p.repo}}"
priority: medium
labels: ["kaizen", "metrics", "optimizer", "coulomb-loop", "bootstrap"]
```
**Supplier reference:** `kaizen-agentic/docs/integrations/activity-definitions/weekly-metrics-optimize.md`

View File

@@ -1,7 +1,7 @@
---
id: coulomb-low-success-rate-review
name: Low Agent Success Rate Review (event-driven)
enabled: false
enabled: true
owner: coulomb-loop
governance: coulomb_social
status: proposed
@@ -15,8 +15,8 @@ context_sources:
# Low Agent Success Rate Review
Activates after KAIZEN-WP-0008 T03 (`metrics record --emit-event`). Until then,
use `hourly-metrics-health-sweep.md`.
Enabled 2026-06-18 after activity-core event-payload resolver (ACTIVITY-WP-0011).
Fallback: `weekly-metrics-health-sweep.md` at `0 6 * * 1`.
```rule
id: flag-low-success-rate

View File

@@ -0,0 +1,40 @@
---
id: coulomb-weekly-coach-orientation
name: Weekly Kaizen Coach Orientation (coulomb-loop operate)
enabled: true
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "0 9 * * 1"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_scheduled_repos
params:
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
cadence: weekly
bind_to: context.scheduled_runs
---
# Weekly Kaizen Coach Orientation
Operate phase per DEC-008. Cron `0 9 * * 1` Europe/Berlin.
```rule
id: run-weekly-coach
for_each: context.scheduled_runs
bind_as: r
condition: 'context.r.agent == "coach" and context.r.enabled'
action:
task_template: "Weekly coach orientation: {context.r.repo}"
description: |
{context.r.prepare_command}
Load agents/agent-coach.md, execute coach synthesis.
Session close: kaizen-agentic metrics record coach --success --time <s> --quality <0-1> --emit-event
target_repo: context.r.repo
priority: medium
labels: ["kaizen", "agent-run", "coach", "coulomb-loop", "operate"]
```

View File

@@ -0,0 +1,46 @@
---
id: coulomb-weekly-loop-health-collector
name: Weekly Loop Health Collector (coulomb-loop regulator)
enabled: false
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "0 11 * * 1"
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
---
# Weekly Loop Health Collector
LOOP-WP-0004 — aggregates first-order loop health for regulator sessions.
Weekly `0 11 * * 1` aligned with regulator session (DEC-008).
```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 7d 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`.

View File

@@ -0,0 +1,42 @@
---
id: coulomb-weekly-metrics-health-sweep
name: Weekly Metrics Health Sweep (coulomb-loop backup)
enabled: false
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "0 6 * * 1"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_projects
params:
marker: .kaizen/metrics
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
bind_to: context.projects
---
# Weekly Metrics Health Sweep (backup)
Operate-phase backup per LOOP-WP-0002. Primary path is event-driven
`low-success-rate-review`; enable only if the event bus is down.
```rule
id: flag-low-success-weekly
for_each: context.projects
bind_as: p
condition: 'context.p.summary.success_rate < 0.8 and context.p.summary.execution_count >= 5'
action:
task_template: "Review {context.p.agent} success rate on {context.p.repo}"
description: |
Agent metrics below threshold on {context.p.repo}.
kaizen-agentic metrics show <agent>
kaizen-agentic metrics optimize <agent>
Load agents/agent-optimization.md for review.
target_repo: context.p.repo
priority: high
labels: ["kaizen", "quality-escalation", "coulomb-loop", "backup"]
```

View File

@@ -0,0 +1,41 @@
---
id: coulomb-weekly-metrics-optimize
name: Weekly Kaizen Metrics Optimization (coulomb-loop operate)
enabled: true
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "0 8 * * 1"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
- type: kaizen
query: discover_kaizen_projects
params:
marker: .kaizen/metrics
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
bind_to: context.projects
---
# Weekly Kaizen Metrics Optimization
Operate phase per DEC-008. Pilot roster only (DEC-001 option A). Cron `0 8 * * 1`.
```rule
id: run-weekly-optimizer
for_each: context.projects
bind_as: p
condition: 'context.p.has_metrics and context.p.in_pilot_roster'
action:
task_template: "Run kaizen metrics optimize on {context.p.repo}"
description: |
cd {context.p.root} && kaizen-agentic metrics optimize
Optional: kaizen-agentic metrics publish (when artifact-store configured)
target_repo: context.p.repo
priority: medium
labels: ["kaizen", "metrics", "optimizer", "coulomb-loop", "operate"]
```
**Supplier reference:** `kaizen-agentic/docs/integrations/activity-definitions/weekly-metrics-optimize.md`

View File

@@ -1,13 +1,13 @@
---
id: coulomb-hourly-optimization-review
name: Hourly Kaizen Optimization Review (coulomb-loop bootstrap)
enabled: false
id: coulomb-weekly-optimization-review
name: Weekly Kaizen Optimization Review (coulomb-loop operate)
enabled: true
owner: coulomb-loop
governance: coulomb_social
status: proposed
trigger:
type: cron
cron_expression: "30 * * * *"
cron_expression: "0 10 * * 1"
timezone: Europe/Berlin
misfire_policy: skip
context_sources:
@@ -15,26 +15,28 @@ context_sources:
query: discover_kaizen_scheduled_repos
params:
roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml
cadence: daily
cadence: weekly
bind_to: context.scheduled_runs
---
# Hourly Kaizen Optimization Review (bootstrap)
# Weekly Kaizen Optimization Review
Operate phase per DEC-008. Cron `0 10 * * 1` Europe/Berlin.
```rule
id: run-hourly-optimization
id: run-weekly-optimization
for_each: context.scheduled_runs
bind_as: r
condition: 'r.agent == "optimization" and r.enabled == true'
condition: 'context.r.agent == "optimization" and context.r.enabled'
action:
task_template: "Hourly optimization review: {{r.repo}}"
task_template: "Weekly optimization review: {context.r.repo}"
description: |
{{r.prepare_command}}
{context.r.prepare_command}
kaizen-agentic metrics optimize
Load agents/agent-optimization.md; act on recommendations.
Session close: kaizen-agentic metrics record optimization --success --time <s> --quality <0-1>
If saturation signals fire (ADR-004), file regulator rotation recommendation.
target_repo: "{{r.repo}}"
target_repo: context.r.repo
priority: medium
labels: ["kaizen", "agent-run", "optimization", "coulomb-loop", "bootstrap"]
labels: ["kaizen", "agent-run", "optimization", "coulomb-loop", "operate"]
```

View File

@@ -0,0 +1,51 @@
---
id: coulomb-weekly-registry-hygiene-sweep
name: Weekly Registry Hygiene Sweep (coulomb-loop operate)
enabled: true
owner: coulomb-loop
governance: coulomb_social
status: active
trigger:
type: cron
cron_expression: "0 9 * * 1"
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: 2
round_robin_state: /home/worsch/coulomb-loop/loops/registry-hygiene/round-robin-state.json
reuse_surface_bin: /home/worsch/reuse-surface/.venv/bin/reuse-surface
runner_host: bnt-lap001
bind_to: context.gaps
---
# Weekly Registry Hygiene Sweep
LOOP-WP-0003 — weekly batch from `rollout.yaml` (custodian pilot + helix_forge).
Promoted 2026-06-19 per DEC-008.
```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"]
```
Runtime params per activity-core R2 note `36ac3eeb` (reuse_surface_bin + runner_host).

View File

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

View File

@@ -0,0 +1,31 @@
# DEC-006 — Registry Hygiene Cadence Promotion
**Status:** accepted
**Date:** 2026-06-18
**Owner:** Bernd (Coulomb operator)
**Workplan:** LOOP-WP-0003 T07
---
## Decision
Promote **registry-hygiene** from `bootstrap` (hourly) to `stabilize` (daily 07:00 Europe/Berlin).
## Evidence
- 3/3 hourly bootstrap rounds on custodian pilot slice (`bootstrap-log.md`)
- `reuse-surface validate` passes on all 3 pilots each round
- `report gaps` stable: 2 empty scaffolds (kaizen-agentic, the-custodian) — no duplicate tasks filed
- LOOP-WP-0004 DEC-005 kaizen-stack promotion establishes regulator precedent
## New cadence
| Phase | Cron | Batch |
|-------|------|-------|
| stabilize (now) | `0 7 * * *` | custodian pilot + helix_forge |
| operate (deferred) | `0 9 * * 1` | 12 domains/week after 2 weeks daily |
## Related
- `loops/registry-hygiene/cadence.yml`
- `activity-definitions/hourly-registry-hygiene-sweep.md` (cron updated to daily)

View File

@@ -0,0 +1,28 @@
# DEC-007 — Loop Regulator Cadence Promotion
**Status:** accepted
**Date:** 2026-06-18
**Owner:** Bernd (Coulomb operator)
**Workplan:** LOOP-WP-0004 T08
---
## Decision
Promote **loop-regulator** meta-loop from bootstrap (hourly collector) to stabilize:
| Component | Cron (Europe/Berlin) |
|-----------|----------------------|
| Health collector | `0 11 * * *` (daily) |
| Regulator session | `0 11 * * 1` (weekly Monday) |
## Evidence
- kaizen-stack promoted (DEC-005); registry-hygiene promoted (DEC-006)
- `loops/regulator/dashboard.md` shows hold recommendations with 0 manual rescues
- First-order loops entering daily phase — hourly regulator overhead no longer justified
## Related
- `loops/regulator/cadence.yml`
- `activity-definitions/hourly-loop-health-collector.md`

View File

@@ -0,0 +1,66 @@
# DEC-008 — Operate Phase Promotion (Operator Override)
**Status:** accepted
**Date:** 2026-06-19
**Owner:** Bernd (Coulomb operator)
**Workplan:** LOOP-WP-0005 T07
---
## Decision
Promote all four Coulomb loops from **stabilize (daily)** to **operate (weekly)**,
invoking ADR-003 **operator override** to close the observation window early
(planned `review_at: 2026-07-02`; actual review `2026-06-19`, day 2/14).
## Operator override rationale
- Bootstrap sprint (LOOP-WP-00000004) closed with 3/3 E2E cycles on pilot roster
- Daily definitions live since 2026-06-18; event path and R2 shell resolver proven
- All recorded health snapshots: `manual_rescues == 0`, `false_positive_rate < 0.2`
- `min_daily_cycles: 14` not met (2 days observed) — override to complete
operate-phase setup and reduce task noise per ADR-003 intent
- Regulator recommends **promote** on available evidence; operator accepts
## Per-loop promotion
| Loop | From | To | Mechanism |
|------|------|-----|-----------|
| kaizen-improvement-stack | stabilize daily | operate weekly Mon 0810 | metrics → coach → optimization chain |
| quality-escalation | stabilize daily | operate weekly | event `low-success-rate-review` primary; Mon 06:00 backup sweep (disabled) |
| registry-hygiene | stabilize daily 07:00 | operate weekly Mon 09:00 | batch 2, weekly domain rotation |
| loop-regulator | stabilize daily 11:00 | operate weekly Mon 11:00 | collector aligns with regulator session |
## New cadence (Europe/Berlin)
| Definition | Cron | Enabled |
|------------|------|---------|
| `coulomb-weekly-metrics-optimize` | `0 8 * * 1` | yes |
| `coulomb-weekly-coach-orientation` | `0 9 * * 1` | yes |
| `coulomb-weekly-optimization-review` | `0 10 * * 1` | yes |
| `coulomb-low-success-rate-review` | event | yes |
| `coulomb-weekly-metrics-health-sweep` | `0 6 * * 1` | no (backup) |
| `coulomb-weekly-registry-hygiene-sweep` | `0 9 * * 1` | yes |
| `coulomb-weekly-loop-health-collector` | `0 11 * * 1` | no (executor pending) |
Retired `coulomb-daily-*` ids disabled on next activity-core sync.
## Evidence
- `loops/*/health.jsonl` — 0 manual rescues, FPR 0.0 where measured
- `loops/kaizen-stack/bootstrap-log.md` — 3/3 fleet E2E cycles
- `loops/registry-hygiene/health.jsonl` — R2 sweep live (ACTIVITY-WP-0013)
- `loops/regulator/stabilize-observation.yml` — override recorded
- `loops/*/cadence.yml``operate_target` drafts applied
## Deferred (not in scope)
- `reuse-surface` hygiene batch promotion — still gated on 7 daily stabilize
cycles per `expansion-reuse-surface.yml` (separate from cadence ramp)
- Loop health collector automation — still blocked on activity-core instruction executor
## Related
- ADR-003 cadence ramp policy (operator override authority)
- LOOP-WP-0005 T07 regulator review gate
- `loops/regulator/dashboard.md`

View File

@@ -1,23 +1,26 @@
# activity-core Handoff — coulomb-loop Bootstrap
**Customer:** coulomb-loop
**Status:** ready for activity-core PR/issue
**Status:** weekly operate phase — synced 2026-06-19
## Prerequisites (done)
- [x] Pilot roster: `loops/kaizen-stack/roster.yaml`
- [x] `.kaizen/schedule.yml` on kaizen-agentic, the-custodian, activity-core
- [x] ActivityDefinition copies in `coulomb-loop/activity-definitions/` (all `enabled: false`)
- [x] ActivityDefinition copies in `coulomb-loop/activity-definitions/`
## activity-core checklist
- [x] Implement `discover_kaizen_scheduled_repos` + `discover_kaizen_projects`
(`activity_core/context_resolvers/kaizen.py`; types `kaizen` / `resolver` / `shell`)
- [x] Dry-run: 6 `scheduled_runs` for pilot roster (2026-06-18)
- [ ] Copy definitions from `coulomb-loop/activity-definitions/` to catalog
- [ ] `make sync-activity-definitions`
- [ ] Dry-run hourly chain (no `enabled: true` yet)
- [ ] Enable `hourly-metrics-optimize` first after dry-run pass
- [x] `ACTIVITY_DEFINITION_DIRS` includes coulomb-loop; `sync_activity_definitions` (7 upserted)
- [x] Dev stack up (docker compose, alembic, worker + API on 8010)
- [x] E2E manual trigger: metrics optimize → 6 tasks (2026-06-18)
- [x] Enable daily kaizen stack — crons 08:00/09:00/10:00 (DEC-005)
- [x] Bootstrap exit 3/3 E2E cycles; definition files renamed hourly→daily (2026-06-18)
- [x] Promote to weekly operate phase (DEC-008, 2026-06-19); daily→weekly definition rename
- [x] **Sync weekly definitions** — retired `coulomb-daily-*` disabled; `coulomb-weekly-*` upserted; Temporal schedules synced (2026-06-19)
## Smoke commands (pilot)
@@ -29,8 +32,35 @@ kaizen-agentic metrics optimize --target /home/worsch/kaizen-agentic
## Definition enable order
1. `hourly-metrics-optimize`
2. `hourly-coach-orientation`
3. `hourly-optimization-review`
4. `hourly-metrics-health-sweep`
5. `low-success-rate-review` (after KAIZEN-WP-0008 T03)
1. `weekly-metrics-optimize` (enabled)
2. `weekly-coach-orientation` (enabled)
3. `weekly-optimization-review` (enabled)
4. `low-success-rate-review` (enabled — event primary)
5. `weekly-metrics-health-sweep` (backup, disabled)
6. `weekly-registry-hygiene-sweep` (enabled — ACTIVITY-WP-0013)
7. `weekly-loop-health-collector` (after instruction executor)
## Blocked on activity-core
- Instruction executor for loop health collector
- Weekly loop-health-collector — cron `0 11 * * 1` (disabled)
## Closed (activity-core)
- R2 `reuse_surface_report_gaps` — ACTIVITY-WP-0013 (`2078915`); sweep enabled
- R1 `event-payload` — ACTIVITY-WP-0011; low-success-rate-review live
## Sync commands (reference)
```bash
cd ~/activity-core
ACTCORE_DB_URL=postgresql+asyncpg://actcore:actcore@localhost:5433/actcore \
ACTIVITY_DEFINITION_DIRS=/home/worsch/coulomb-loop \
make sync-activity-definitions
ACTCORE_DB_URL=postgresql+asyncpg://actcore:actcore@localhost:5433/actcore \
TEMPORAL_HOST=localhost:7233 \
uv run python -m activity_core.sync_schedules
```
Future promotions: `kaizen-agentic schedule promote --engagement-repo ...` (see
`loops/regulator/session-template.md`).

View File

@@ -14,6 +14,21 @@
| 2026-06-18T04:54 | activity-core | schedule prepare coach+optimization | pass | 6900/9643 bytes |
| 2026-06-18T05:00 | activity-core | discover_kaizen_scheduled_repos dry-run | pass | 6 runs (3 repos × 2 agents) |
| 2026-06-18T06:07 | activity-core | dev stack up (docker compose, alembic, sync) | pass | 7 definitions upserted |
| 2026-06-18T06:07 | coulomb-loop | enable hourly-metrics-optimize | pass | Temporal schedule upserted |
| 2026-06-18T06:09 | activity-core | E2E trigger metrics-optimize (manual) | pass | 6 tasks spawned (3 repos × 2 agent metrics dirs) |
| 2026-06-18T06:10 | all pilots | metrics record coach+optimization | pass | bootstrap session-close samples |
| 2026-06-18T06:10 | coulomb-loop | enable hourly-coach-orientation | pass | 3 coach tasks spawned (1 per pilot repo) |
| 2026-06-18T06:12 | coulomb-loop | enable hourly-optimization-review | pass | 3 optimization tasks spawned (1 per pilot repo) |
**Bootstrap exit (single repo):** manual smoke pass; 0/3 consecutive hourly E2E cycles.
**Next:** `make sync-activity-definitions` when ACTCORE_DB up; enable definitions one-by-one.
| 2026-06-18T09:00 | activity-core | cron hourly-metrics-optimize | pass | 6 tasks (scheduled) |
| 2026-06-18T09:15 | activity-core | cron hourly-coach-orientation | pass | 3 tasks |
| 2026-06-18T14:30 | coulomb-loop | rename hourly→daily definition files | pass | DEC-005; ids `coulomb-daily-*` synced |
| 2026-06-18T09:30 | activity-core | cron hourly-optimization-review | pass | 3 tasks |
| 2026-06-18T10:05 | activity-core | E2E trigger cycle 2 (manual) | pass | metrics 6, coach 3, optimization 3 |
| 2026-06-18T10:06 | activity-core | E2E trigger cycle 3 (manual) | pass | metrics 6, coach 3, optimization 3 |
| 2026-06-18T10:06 | all pilots | metrics record coach+optimization | pass | cycle 2+3 session-close samples |
**Bootstrap exit (single repo):** pass (smoke + cron).
**Bootstrap exit (fleet pilot):** pass — 3/3 consecutive hourly E2E cycles across 3 repos.
**Promotion:** 2026-06-18 — regulator approved daily cadence (LOOP-WP-0001 T08); see `cadence.yml`.

View File

@@ -1,7 +1,14 @@
loop: kaizen-improvement-stack
phase: bootstrap
cron: "0 * * * *"
promoted_at: null
phase: operate
cron: "0 8 * * 1"
chain:
metrics: "0 8 * * 1"
coach: "0 9 * * 1"
optimization: "0 10 * * 1"
promoted_at: "2026-06-19"
demotion_count: 0
regulator_approval: pending
notes: Hourly chain — metrics :00, coach :15, optimization :30 (per-repo schedule.yml)
regulator_approval: approved
notes: >
Promoted from stabilize daily to operate weekly per DEC-008 (operator override,
LOOP-WP-0005 T07). Weekly chain Mon 08:0010:00 Europe/Berlin.
Prior stabilize promotion: 2026-06-18 (DEC-005).

View File

@@ -0,0 +1,3 @@
{"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"}
{"timestamp":"2026-06-19T00:00:00Z","loop":"kaizen-improvement-stack","phase":"operate","manual_rescues":0,"false_positive_rate":0.0,"notes":"DEC-008 weekly promotion; LOOP-WP-0005 T07 regulator review (operator override day 2/14)"}

View File

@@ -1,34 +1,39 @@
version: "1"
version: '1'
loop: kaizen-improvement-stack
decision: DEC-001 option A (2026-06-18)
phase: bootstrap
# Repos currently receiving scheduled optimization/coach runs
phase: operate
active:
- slug: kaizen-agentic
root: /home/worsch/kaizen-agentic
agents: [coach, optimization]
status: active
rationale: supplier dogfood
- slug: the-custodian
root: /home/worsch/the-custodian
agents: [coach, optimization]
status: active
rationale: state-hub coordination operator
- slug: activity-core
root: /home/worsch/activity-core
agents: [coach, optimization]
status: active
rationale: scheduler owner
# Ordered candidates after pilot — promoted by regulator (ADR-004)
- slug: kaizen-agentic
root: /home/worsch/kaizen-agentic
agents:
- coach
- optimization
status: active
rationale: supplier dogfood
- slug: the-custodian
root: /home/worsch/the-custodian
agents:
- coach
- optimization
status: active
rationale: state-hub coordination operator
- slug: activity-core
root: /home/worsch/activity-core
agents:
- coach
- optimization
status: active
rationale: scheduler owner
expansion_queue:
- slug: reuse-surface
agents: [coach, optimization, scope-analyst]
domain: helix_forge
- slug: vergabe-teilnahme
agents: [coach, scope-analyst]
domain: coulomb_social
# Repos paused after diminishing-returns detection (ADR-004)
saturated: []
- slug: reuse-surface
agents:
- coach
- optimization
- scope-analyst
domain: helix_forge
- slug: vergabe-teilnahme
agents:
- coach
- scope-analyst
domain: coulomb_social
saturated: []

View File

@@ -1,8 +1,9 @@
# Supplier Notes (kaizen-agentic friction log)
| Date | Observation | Suggested supplier fix |
|------|-------------|------------------------|
| 2026-06-18 | `schedule init` defaults weekly; bootstrap needs manual cron patch | KAIZEN-WP-0008 `schedule init --engagement --bootstrap-cadence hourly` |
| 2026-06-18 | `metrics optimize` runs with 0 records (OK) but message could link to engagement | Document bootstrap expectation in playbook |
| 2026-06-18 | No `--emit-event` yet for LOOP-WP-0002 | KAIZEN-WP-0008 T03 |
| 2026-06-18 | Rotation signals need aggregator CLI | KAIZEN-WP-0008 ADR-004 follow-on `metrics rotation-signals` |
| Date | Observation | Status |
|------|-------------|--------|
| 2026-06-18 | `schedule init` defaults weekly; bootstrap needs manual cron patch | **Shipped** `schedule init --engagement --bootstrap-cadence hourly` |
| 2026-06-18 | `metrics optimize` with 0 records during bootstrap | **Documented** — playbook v1; expected until ≥10 records |
| 2026-06-18 | No `--emit-event` for LOOP-WP-0002 | **Shipped**`metrics record --emit-event` |
| 2026-06-18 | Rotation signals need aggregator CLI | **Open** `metrics rotation-signals` follow-on (ADR-004) |
| 2026-06-18 | activity-core `event-payload` resolver missing | **Open** — see kaizen `activity-core-handoff-engagement.md` R1 |

View File

@@ -1,4 +1,11 @@
loop: quality-escalation
phase: bootstrap
cron: "45 * * * *"
regulator_approval: pending
phase: operate
cron: "0 6 * * 1"
event_primary: low-success-rate-review
sweep_fallback: weekly-metrics-health-sweep
promoted_at: "2026-06-19"
regulator_approval: approved
notes: >-
Promoted from stabilize daily to operate weekly per DEC-008 (LOOP-WP-0005 T07).
Event path primary (ACTIVITY-WP-0011); weekly Mon 06:00 backup sweep (disabled).
Prior stabilize: event proven 2026-06-18.

View File

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

View File

@@ -0,0 +1,2 @@
{"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"}
{"timestamp":"2026-06-19T00:00:00Z","loop":"quality-escalation","phase":"operate","manual_rescues":0,"false_positive_rate":0.0,"notes":"DEC-008 weekly promotion; LOOP-WP-0005 T07 regulator review (operator override day 2/14)"}

View File

@@ -17,9 +17,13 @@ triggers:
priority: medium
bootstrap:
mechanism: hourly_sweep
definition: hourly-metrics-health-sweep
mechanism: daily_sweep_backup
definition: weekly-metrics-health-sweep
stabilize:
mechanism: event_primary
definition: low-success-rate-review
backup_sweep_cron: "0 6 * * *"
backup_sweep_cron: "0 6 * * *"
operate:
mechanism: event_primary
definition: low-success-rate-review
backup_sweep_cron: "0 6 * * 1"

View File

@@ -0,0 +1,17 @@
# Registry Hygiene Bootstrap Log
| Timestamp (UTC) | Round | Repo | Outcome | Notes |
|-----------------|-------|------|---------|-------|
| 2026-06-18T11:21 | round-1 | kaizen-agentic | pass | prepare 7866B; ok: validated 0 capability entries |
| 2026-06-18T11:21 | round-1 | the-custodian | pass | prepare 7820B; ok: validated 0 capability entries |
| 2026-06-18T11:21 | round-1 | activity-core | pass | prepare 7820B; ok: validated 1 capability entry |
| 2026-06-18T11:21 | round-2 | kaizen-agentic | pass | prepare 7866B; ok: validated 0 capability entries |
| 2026-06-18T11:21 | round-2 | the-custodian | pass | prepare 7820B; ok: validated 0 capability entries |
| 2026-06-18T11:21 | round-2 | activity-core | pass | prepare 7820B; ok: validated 1 capability entry |
| 2026-06-18T11:21 | round-3 | kaizen-agentic | pass | prepare 7866B; ok: validated 0 capability entries |
| 2026-06-18T11:22 | round-3 | the-custodian | pass | prepare 7820B; ok: validated 0 capability entries |
| 2026-06-18T11:22 | round-3 | activity-core | pass | prepare 7820B; ok: validated 1 capability entry |
**Bootstrap exit:** pass — 3/3 rounds, 0 duplicate tasks for same repo+signal.
**Signals:** `empty_scaffolds` stable at kaizen-agentic, the-custodian (2).
**Promotion:** daily 07:00 per DEC-006; helix_forge added to rollout (T06).

View File

@@ -0,0 +1,12 @@
loop: registry-hygiene
phase: operate
cron: "0 9 * * 1"
batch_size: 2
domain_rotation: weekly
promoted_at: "2026-06-19"
regulator_approval: approved
notes: >
Promoted from stabilize daily 07:00 to operate weekly Mon 09:00 per DEC-008
(LOOP-WP-0005 T07). Batch 2, weekly domain rotation.
Prior stabilize promotion: 2026-06-18 (DEC-006). reuse-surface batch expansion
still deferred per expansion-reuse-surface.yml.

View File

@@ -0,0 +1,35 @@
version: "1"
repo: reuse-surface
domain: helix_forge
phase: expansion_candidate
workplan: LOOP-WP-0005-T04
surveyed_at: "2026-06-18"
onboarded_at: "2026-06-18"
readiness:
rollout_included: true
rollout_domain: helix_forge
kaizen_schedule: true
kaizen_metrics: true
scope_analyst_agent: true
report_gaps_cli: true
publish_check: pass
onboarding:
- kaizen-agentic schedule init --engagement coulomb-loop --target /home/worsch/reuse-surface --agents coach,optimization,scope-analyst --bootstrap-cadence daily
- kaizen-agentic agents install scope-analyst --target /home/worsch/reuse-surface
- reuse-surface validate
- reuse-surface establish --publish-check
blockers:
- issue-core task sink for hygiene task emission (operator)
promotion:
trigger: shell resolver shipped + 7 daily stabilize cycles on custodian batch
action: reuse-surface enters active hygiene batch (helix_forge domain rotation)
kaizen_roster: loops/kaizen-stack/roster.yaml expansion_queue
notes: >
reuse-surface is in rollout.yaml helix_forge active domain. No .kaizen/ marker
yet — hygiene sweep can target via state-hub host_paths before schedule init.
report gaps CLI operational (51 empty scaffolds on federation roster).

View File

@@ -0,0 +1,5 @@
{"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"}
{"timestamp":"2026-06-18T11:22:00Z","loop":"registry-hygiene","phase":"bootstrap","tasks_created":9,"manual_rescues":0,"false_positive_rate":0.0,"notes":"3/3 pilot rounds; empty_scaffolds=2 stable"}
{"timestamp":"2026-06-18T11:22:00Z","loop":"registry-hygiene","phase":"stabilize","tasks_created":null,"manual_rescues":0,"notes":"Promoted daily 07:00; helix_forge added per T06 DEC-006"}
{"timestamp":"2026-06-18T16:11:00Z","loop":"registry-hygiene","phase":"stabilize","tasks_created":4,"manual_rescues":0,"false_positive_rate":0.0,"notes":"R2 ACTIVITY-WP-0013 live; sweep enabled 744294af; resolver 4 gaps; emit 404 issue-core"}
{"timestamp":"2026-06-19T00:00:00Z","loop":"registry-hygiene","phase":"operate","manual_rescues":0,"false_positive_rate":0.0,"notes":"DEC-008 weekly promotion; LOOP-WP-0005 T07 regulator review (operator override day 2/14)"}

View File

@@ -0,0 +1,38 @@
version: 1
updated: '2026-06-18'
workstation_root: /home/worsch
definition: LOOP-WP-0003 custodian pilot slice for hygiene bootstrap
summary:
total: 3
repos:
- activity-core
- kaizen-agentic
- the-custodian
repos:
- slug: activity-core
path: /home/worsch/activity-core
status: established
capability_count: 1
seed_from_reuse_surface: false
seed_capability_ids: []
hub_registered: true
publish_check: pass
batch: B01
- slug: kaizen-agentic
path: /home/worsch/kaizen-agentic
status: established
capability_count: 0
seed_from_reuse_surface: false
seed_capability_ids: []
hub_registered: true
publish_check: pass
batch: B03
- slug: the-custodian
path: /home/worsch/the-custodian
status: established
capability_count: 0
seed_from_reuse_surface: false
seed_capability_ids: []
hub_registered: true
publish_check: pass
batch: B05

View File

@@ -0,0 +1,26 @@
version: "1"
batch_size_hourly: 3
batch_size_daily: 4
domains:
- slug: custodian
phase: active
repos:
- kaizen-agentic
- the-custodian
- activity-core
- slug: helix_forge
phase: active
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 T06 complete; stack domain next after daily stabilize

View File

@@ -0,0 +1,9 @@
{
"cursor": 2,
"last_batch": [
"reuse-surface",
"kaizen-agentic",
"the-custodian"
],
"updated_at": "2026-06-18T16:11:20.117486+00:00"
}

View File

@@ -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 <pilot-repo-root>
```
## 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`

View File

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

View File

@@ -0,0 +1,11 @@
loop: loop-regulator
phase: operate
collector_cron: "0 11 * * 1"
regulator_session_cron: "0 11 * * 1"
promoted_at: "2026-06-19"
regulator_approval: approved
notes: >
Promoted from stabilize daily to operate weekly per DEC-008 (LOOP-WP-0005 T07).
Collector and regulator session both Mon 11:00 Europe/Berlin.
Prior stabilize promotion: 2026-06-18 (DEC-007). Emergency demotion remains
event-driven (immediate task).

View File

@@ -0,0 +1,62 @@
# Loop regulator dashboard
Regenerated 2026-06-19 (LOOP-WP-0005 T07 / DEC-008).
## Summary
| Loop | Phase | Last health | Manual rescues | Recommendation |
|------|-------|-------------|----------------|----------------|
| kaizen-improvement-stack | operate | 2026-06-19T00:00Z | 0 | **promoted** — weekly Mon 08:0010:00 |
| quality-escalation | operate | 2026-06-19T00:00Z | 0 | **promoted** — event primary; weekly backup sweep |
| registry-hygiene | operate | 2026-06-19T00:00Z | 0 | **promoted** — weekly Mon 09:00, batch 2 |
| loop-regulator | operate | 2026-06-19T00:00Z | 0 | **promoted** — weekly Mon 11:00 collector + session |
## Observation window (ADR-003)
| Field | Value |
|-------|-------|
| Started | 2026-06-18 |
| Planned review | 2026-07-02 |
| Closed | 2026-06-19 (operator override, DEC-008) |
| Cycles observed | 2/14 |
| Outcome | promoted to operate (weekly) |
See `stabilize-observation.yml`.
## Active definitions (activity-core)
| Definition | Cron | Enabled |
|------------|------|---------|
| `coulomb-weekly-metrics-optimize` | `0 8 * * 1` | yes |
| `coulomb-weekly-coach-orientation` | `0 9 * * 1` | yes |
| `coulomb-weekly-optimization-review` | `0 10 * * 1` | yes |
| `coulomb-low-success-rate-review` | event | yes |
| `coulomb-weekly-metrics-health-sweep` | `0 6 * * 1` | no (backup) |
| `coulomb-weekly-registry-hygiene-sweep` | `0 9 * * 1` | yes |
Retired `coulomb-daily-*` and `coulomb-hourly-*` ids disabled on next sync.
## Rotation queue (ADR-004)
| Repo | Saturation score | Action |
|------|------------------|--------|
| kaizen-agentic | n/a (<14 cycles) | keep active |
| the-custodian | n/a | keep active |
| activity-core | n/a | keep active |
| reuse-surface | — | onboarded; hygiene batch after 7 daily cycles |
No rotation recommended. See `rotation-runbook.md`.
## Blockers
| Item | Owner | Hub ref |
|------|-------|---------|
| Issue-core task sink (`/issues/`) | operator | manual trigger 4 tasks; emit 404 |
| Hot-reload definitions/schedules | activity-core | `f4876517` |
| Loop health instruction executor | activity-core | `weekly-loop-health-collector` |
## Regulator cadence (DEC-008)
- Collector: weekly Monday 11:00
- Session: weekly Monday 11:00

View File

@@ -0,0 +1,2 @@
{"timestamp":"2026-06-18T11:22:00Z","loop":"loop-regulator","phase":"stabilize","manual_rescues":0,"false_positive_rate":0.0,"notes":"DEC-007 daily collector + weekly session; T09 rotation runbook committed, no rotation executed"}
{"timestamp":"2026-06-19T00:00:00Z","loop":"loop-regulator","phase":"operate","manual_rescues":0,"false_positive_rate":0.0,"notes":"DEC-008 weekly promotion; LOOP-WP-0005 T07 regulator review (operator override day 2/14)"}

View File

@@ -0,0 +1,52 @@
# Repo rotation runbook (ADR-004)
LOOP-WP-0004 T09 — manual rotation during bootstrap; automation deferred to
`kaizen-agentic metrics rotation-signals` CLI.
## Saturation assessment
Per `rotation-policy.yml`, compute signals for each active repo (14-cycle window):
| Signal | Source |
|--------|--------|
| quality_plateau | `avg_quality_delta < 0.02` vs prior window |
| success_stable | `success_rate >= 0.85` |
| optimizer_stall | 0 new actionable recommendations |
| marginal_gain | 0 progress events / merged changes |
**Rotate when:** ≥3 of 4 signals true (saturation_score ≥ 0.75).
```bash
# Per pilot repo (supplier CLI follow-on)
kaizen-agentic metrics show coach --target /home/worsch/<repo>
kaizen-agentic metrics show optimization --target /home/worsch/<repo>
kaizen-agentic metrics optimize --target /home/worsch/<repo>
```
## Manual rotation procedure
1. Run regulator session (`session-template.md`); confirm saturation recommendation
2. Update `loops/kaizen-stack/roster.yaml`:
- Move repo from `active``saturated`
- Promote next slug from `expansion_queue`
3. Patch saturated repo `.kaizen/schedule.yml`:
```yaml
agents:
optimization:
enabled: false
```
4. Record decision in state-hub (`record_decision` or progress event)
5. Append rotation event to `loops/kaizen-stack/health.jsonl`
## Bootstrap status (2026-06-18)
No rotation executed — pilots still accumulating metrics (<14 cycles).
**Next review:** after 14 daily kaizen-stack cycles or explicit operator request.
## Automation path
After 2 successful manual rotations:
- Enable `saturation_score` in health collector definition
- Supplier ships `metrics rotation-signals` (KAIZEN-WP-0008 extension)
- Regulator may auto-recommend; human still commits roster changes

View File

@@ -0,0 +1,67 @@
# 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 <s> --quality <0-1> \
--target /home/worsch/kaizen-agentic
```
Record decision in state-hub when promotion/demotion approved.
## Cadence promotion (atomic)
After regulator approval, promote all three scheduling layers in one step:
```bash
kaizen-agentic schedule promote \
--engagement-repo /home/worsch/coulomb-loop \
--engagement coulomb-loop \
--to-phase operate \
--activity-core /home/worsch/activity-core
```
Dry-run first: add `--dry-run`. Repair fleet drift only (definitions already promoted):
```bash
kaizen-agentic schedule promote \
--engagement-repo /home/worsch/coulomb-loop \
--fleet-only \
--activity-core /home/worsch/activity-core
```
Layers: (1) `loops/*/cadence.yml`, (2) `activity-definitions/` + activity-core sync,
(3) pilot `.kaizen/schedule.yml` via roster.
## 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`.

View File

@@ -0,0 +1,27 @@
version: "1"
started_at: "2026-06-18"
review_at: "2026-07-02"
closed_at: "2026-06-19"
duration_days: 14
policy: ADR-003
loops:
- kaizen-improvement-stack
- quality-escalation
- registry-hygiene
- loop-regulator
exit_criteria:
false_positive_rate_max: 0.2
manual_rescues_max: 0
min_daily_cycles: 14
override:
applied_at: "2026-06-19"
authority: operator
decision: DEC-008
cycles_observed: 2
rationale: >
Bootstrap evidence strong (3/3 E2E, 0 manual rescues, FPR < 0.2).
Operator override per ADR-003 to complete operate-phase setup.
outcome: promoted_operate
notes: >
Observation window opened after bootstrap sprint (LOOP-WP-00000004).
Closed early via DEC-008; weekly promotion applied in loops/*/cadence.yml.

View File

@@ -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/<loop-id>/
```
## Bootstrap checklist (proven on coulomb-loop)
1. Register in state-hub (`coulomb_social`)
2. LOOP-WP-0000 — ADRs, DEC-001004, 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/<id>/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.

View File

@@ -0,0 +1,96 @@
---
id: capability.coulomb-social.loop-orchestrate
name: Fleet Loop Orchestration Engagement
summary: Customer engagement capability for operating kaizen self-improvement loops across a registered fleet roster.
owner: coulomb-loop
status: draft
domain: coulomb_social
tags:
- coulomb-loop
- kaizen
- engagement
- activity-core
maturity:
discovery:
current: D0
target: D3
confidence: low
rationale: Engagement repo registered; loop workplans and ADRs committed; automation partially live.
availability:
current: A0
target: A2
confidence: low
rationale: Orchestration depends on activity-core cron and manual operator steps during bootstrap.
external_evidence:
completeness:
level: C0
confidence: low
basis: scope_vs_intent_and_consumer_expectations
satisfied_expectations:
- INTENT and LOOP-WP workplans define loop map
broken_expectations:
- event-driven quality path blocked on activity-core event-payload resolver
out_of_scope_expectations:
- owning kaizen agent prompts
reliability:
level: R0
confidence: low
basis: consumer_quality_signals
known_reliability_risks:
- bootstrap hourly E2E not yet at 3/3 consecutive cycles
discovery:
intent: >
Make fleet-wide self-improvement loops operable as a governed engagement —
rosters, cadence policy, ActivityDefinitions, and health records — without
colocating agent runtime in the customer repo.
includes:
- pilot roster declaration
- activity-core definition copies and enable order
- cadence ramp and regulator policy (LOOP-WP-0004)
- supplier friction feedback to kaizen-agentic
excludes:
- kaizen agent definitions
- Temporal worker implementation
- per-repo .kaizen runtime in coulomb-loop
use_cases:
- Coulomb fleet kaizen bootstrap (kaizen-agentic, the-custodian, activity-core pilots)
research_memos:
- history/2026-06-18-initial-codebase-assessment.md
availability:
current_level: A0
target_level: A2
current_artifacts:
- coulomb-loop/INTENT.md
- coulomb-loop/workplans/LOOP-WP-0000-engagement-bootstrap.md
- coulomb-loop/loops/kaizen-stack/roster.yaml
consumption_modes:
- informational
relations:
depends_on:
- capability.activity.event-coordinate
supports: []
related_to:
- capability.registry.validate
consumer_guidance:
recommended_for:
- planning multi-repo kaizen engagements with activity-core orchestration
not_recommended_for:
- single-repo agent authoring (use kaizen-agentic directly)
known_limitations:
- D0 discovery only; automation maturity tracked in LOOP-WP-0001 bootstrap log
promotion_history: []
---
# Fleet Loop Orchestration Engagement
`coulomb-loop` is the customer engagement repo for Coulomb fleet self-improvement
loops. Supplier: `kaizen-agentic`. Scheduler: `activity-core`. State: target repos.
See `INTENT.md` and `workplans/LOOP-WP-0001` for operational status.

View File

@@ -1,4 +1,7 @@
version: 1
updated: '2026-06-16'
domain: helix_forge
capabilities: []
updated: '2026-06-18'
domain: coulomb_social
capabilities:
- id: capability.coulomb-social.loop-orchestrate
path: registry/capabilities/capability.coulomb-social.loop-orchestrate.md
status: draft

View File

@@ -2,11 +2,11 @@
id: LOOP-WP-0000
type: workplan
title: "Engagement bootstrap (registration, assessment, governance)"
domain: coulomb_social
domain: communication
repo: coulomb-loop
status: active
status: done
owner: coulomb-loop
topic_slug: coulomb_social
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-18"
@@ -34,14 +34,14 @@ tasks:
status: done
title: Fill SCOPE.md and .claude/rules integration stubs
- id: T08
status: todo
status: done
title: Register reuse-surface capability entry for loop orchestration
state_hub_workstream_id: "0df6df54-4313-4c2d-93f2-dc6844fe47ec"
---
# LOOP-WP-0000 — Engagement Bootstrap
**Status:** active
**Status:** done
**Owner:** coulomb-loop
**Purpose:** One-time (and ongoing governance) setup before loop automation runs.
@@ -135,13 +135,13 @@ SCOPE.md and `.claude/rules/{repo-identity,architecture,repo-boundary,stack-and-
```task
id: LOOP-WP-0000-T08
status: todo
status: done
priority: low
state_hub_task_id: "54f5e683-0081-4db1-abdb-4f57323f840e"
```
Add capability row for fleet loop orchestration engagement (D0 scaffold).
Run `reuse-surface validate` when entry drafted.
`capability.coulomb_social.loop-orchestrate` at D0 in `registry/capabilities/`.
Index updated; `reuse-surface validate` passes (2026-06-18).
## Definition of done

View File

@@ -2,11 +2,11 @@
id: LOOP-WP-0001
type: workplan
title: "Kaizen Improvement Stack (coach + metrics + optimization)"
domain: coulomb_social
domain: communication
repo: coulomb-loop
status: active
status: done
owner: coulomb-loop
topic_slug: coulomb_social
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-18"
@@ -31,17 +31,17 @@ tasks:
status: done
title: Hourly bootstrap smoke test on single pilot repo
- id: T07
status: todo
status: done
title: Expand pilot to three repos and record metrics at session close
- id: T08
status: todo
status: done
title: Promote cadence to daily after bootstrap exit criteria met
state_hub_workstream_id: "90a05147-7b95-4ce7-96bf-39cdb487b557"
---
# LOOP-WP-0001 — Kaizen Improvement Stack
**Status:** active
**Status:** done
**Owner:** coulomb-loop (customer)
**Supplier:** kaizen-agentic
**Repo:** coulomb-loop
@@ -227,11 +227,14 @@ without manual intervention.
```task
id: LOOP-WP-0001-T07
status: todo
status: done
priority: medium
state_hub_task_id: "e60fa833-9407-460a-b1d1-7e08850fa291"
```
Completed 2026-06-18: 3/3 consecutive hourly E2E cycles (cron 09:00 chain + manual
cycles 23). Session-close metrics on all 3 pilots. Evidence: `bootstrap-log.md`.
Enable activity-core definitions for full pilot roster. Each session close:
```bash
@@ -245,11 +248,15 @@ kaizen-agentic metrics record optimization --success --time <s> --quality <0-1>
```task
id: LOOP-WP-0001-T08
status: todo
status: done
priority: low
state_hub_task_id: "7c77ec4f-594c-4122-9c64-af5c4071446d"
```
Completed 2026-06-18: promoted to stabilize phase — daily crons (metrics 08:00,
coach 09:00, optimization 10:00). Updated pilot `schedule.yml`, activity-definitions,
and activity-core Temporal schedules. `loops/kaizen-stack/cadence.yml` approved.
After LOOP-WP-0004 regulator approves:
1. Update pilot `schedule.yml` crons to daily (`0 8`, `0 9`, `0 10`)

View File

@@ -2,11 +2,11 @@
id: LOOP-WP-0002
type: workplan
title: "Reactive Quality Escalation (signal-driven improvement)"
domain: coulomb_social
domain: communication
repo: coulomb-loop
status: active
status: finished
owner: coulomb-loop
topic_slug: coulomb_social
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-18"
@@ -20,26 +20,26 @@ 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
status: done
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
status: done
title: Promote sweep cadence from hourly to daily after stabilization
state_hub_workstream_id: "d4d3b624-dad3-4e1d-9db3-e84548d133de"
---
# LOOP-WP-0002 — Reactive Quality Escalation
**Status:** active
**Status:** finished
**Owner:** coulomb-loop (customer)
**Supplier:** kaizen-agentic
**Depends on:** LOOP-WP-0001 (metrics scaffold on pilot repos)
@@ -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`
@@ -166,18 +172,19 @@ Cron: `45 * * * *` (offset from LOOP-WP-0001 hourly chain).
```task
id: LOOP-WP-0002-T05
status: todo
status: done
priority: medium
state_hub_task_id: "a5d8a6e1-9908-49a5-8976-900c433cd325"
```
1. Sync sweep definition to activity-core
2. Inject test metrics below threshold on one pilot repo
3. Verify task creation within one hourly cycle
4. Run optimization session; confirm metrics improve on next sweep
Completed 2026-06-18 after activity-core ACTIVITY-WP-0011 event-payload resolver:
When event bus is ready, enable `low-success-rate-review` and keep sweep as
backup only.
1. `low-success-rate-review` enabled and synced (`da7a9af7-7bec-5677-9520-3c6ee6d01964`)
2. Pilot metrics seeded on `kaizen-agentic` (coach `success_rate: 0.75`, `execution_count: 8`)
3. Event router + NATS publish `activity.kaizen.metrics.recorded``tasks_spawned=1`
4. Context snapshot confirmed `context.metrics.summary.success_rate=0.75`
Optimization close-out deferred to next scheduled optimization cycle (LOOP-WP-0001).
## Part 3 — Test health path
@@ -185,11 +192,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):
@@ -204,16 +213,16 @@ Defer full fleet CI integration until daily phase.
```task
id: LOOP-WP-0002-T07
status: todo
status: done
priority: low
state_hub_task_id: "fa4205f4-6058-495c-bcaa-40c20f27f9aa"
```
After LOOP-WP-0004 approval and event trigger proven:
Completed 2026-06-18:
1. Disable hourly sweep
2. Enable event-driven `low-success-rate-review`
3. Retain daily backup sweep at `0 6 * * *`
1. Hourly sweep retired (`enabled: false`, cron promoted to `0 6 * * *`)
2. Event-driven `low-success-rate-review` primary (`enabled: true`)
3. `loops/quality-escalation/cadence.yml``phase: stabilize`
## Definition of done

View File

@@ -2,11 +2,11 @@
id: LOOP-WP-0003
type: workplan
title: "Registry & Orientation Hygiene (fleet legibility)"
domain: coulomb_social
domain: communication
repo: coulomb-loop
status: active
status: done
owner: coulomb-loop
topic_slug: coulomb_social
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-18"
@@ -14,32 +14,32 @@ 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
status: done
title: Hourly bootstrap on custodian-domain pilot slice
- id: T06
status: todo
status: done
title: Expand to next domain batch after pilot exit
- id: T07
status: todo
status: done
title: Promote cadence to daily then weekly
state_hub_workstream_id: "f3a4b60a-7bc2-400d-bf8a-e7209a9e45c4"
---
# LOOP-WP-0003 — Registry & Orientation Hygiene
**Status:** active
**Status:** done
**Owner:** coulomb-loop (customer)
**Supplier:** kaizen-agentic (`scope-analyst` agent)
**Partner:** reuse-surface (CLI), state-hub (SBOM status)
@@ -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
@@ -182,11 +184,14 @@ Add cross-reference in `loops/registry-hygiene/signals.yml`.
```task
id: LOOP-WP-0003-T05
status: todo
status: done
priority: medium
state_hub_task_id: "76029879-01ed-4db2-afcf-3876db45b395"
```
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.
Pilot batch: `kaizen-agentic`, `the-custodian`, `activity-core`.
Manual smoke test (before activity-core enable):
@@ -203,11 +208,13 @@ reuse-surface validate # in target repo
```task
id: LOOP-WP-0003-T06
status: todo
status: done
priority: low
state_hub_task_id: "f6e5a9d5-2c32-439d-9e95-aa6d6fd3c6ab"
```
Completed 2026-06-18: `helix_forge` + `reuse-surface` active in `rollout.yaml`.
After regulator approval, add helix_forge domain to rollout. Increase batch size
when false-positive rate stays below 20%.
@@ -215,11 +222,14 @@ when false-positive rate stays below 20%.
```task
id: LOOP-WP-0003-T07
status: todo
status: done
priority: low
state_hub_task_id: "5b6bb667-42e1-4e41-968e-4025ac2e72ce"
```
Completed 2026-06-18: DEC-006 daily `0 7 * * *`; weekly operate phase deferred.
Definition cron updated; activity-core sync pending.
| Promotion | Condition |
|-----------|-----------|
| hourly → daily | bootstrap exit + LOOP-WP-0004 approval |

View File

@@ -2,11 +2,11 @@
id: LOOP-WP-0004
type: workplan
title: "Loop Regulator (second-order improvement)"
domain: coulomb_social
domain: communication
repo: coulomb-loop
status: active
status: done
owner: coulomb-loop
topic_slug: coulomb_social
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-18"
@@ -22,32 +22,32 @@ 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
status: done
title: Promote regulator from hourly to daily after meta-loop stabilizes
- id: T09
status: todo
status: done
title: Implement diminishing-returns detection and repo rotation per ADR-004
state_hub_workstream_id: "08970648-dbd8-48f6-9b3a-72f196013089"
---
# LOOP-WP-0004 — Loop Regulator (Second-Order Improvement)
**Status:** active
**Status:** done
**Owner:** coulomb-loop (customer)
**Supplier:** kaizen-agentic (`optimization`, `tooling-optimization`)
**Depends on:** LOOP-WP-0001, LOOP-WP-0002, LOOP-WP-0003
@@ -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/)
@@ -274,11 +284,13 @@ supplier repo. **This is the reuse outcome of the entire engagement.**
```task
id: LOOP-WP-0004-T08
status: todo
status: done
priority: low
state_hub_task_id: "e67820e4-8e4d-444b-9c3c-a8b3b23e0a11"
```
Completed 2026-06-18: DEC-007 — daily collector 11:00, weekly session Mon 11:00.
After 1 week of hourly regulator runs with stable recommendations:
- Collector: hourly → daily (`0 11 * * *`)
@@ -289,11 +301,14 @@ After 1 week of hourly regulator runs with stable recommendations:
```task
id: LOOP-WP-0004-T09
status: todo
status: done
priority: medium
state_hub_task_id: "431ebe91-3a6f-475f-a862-a784dbbe29b4"
```
Completed 2026-06-18: `rotation-runbook.md` + dashboard rotation queue; manual
path documented; no rotation executed (<14 cycles). Supplier CLI follow-on.
Implement saturation detection per `loops/regulator/rotation-policy.yml`:
1. Extend health collector to compute `saturation_score` per active repo

View File

@@ -0,0 +1,170 @@
---
id: LOOP-WP-0005
type: workplan
title: "Operate phase observation and fleet expansion prep"
domain: communication
repo: coulomb-loop
status: done
owner: coulomb-loop
topic_slug: coulomb-social
supplier: kaizen-agentic
created: "2026-06-18"
updated: "2026-06-19"
depends_on:
- LOOP-WP-0001
- LOOP-WP-0002
- LOOP-WP-0003
- LOOP-WP-0004
tasks:
- id: T01
status: done
title: Refresh regulator dashboard and loop health summaries
state_hub_task_id: "669aa2e5-bc2f-409f-a170-52c2e5824577"
- id: T02
status: done
title: Update SCOPE and engagement docs for stabilize phase
state_hub_task_id: "b950ad21-7bd5-4ab5-864d-2e154fc5045a"
- id: T03
status: done
title: Start 14-day stabilize observation window per ADR-003
state_hub_task_id: "868c3fa1-9d1d-4f69-af62-67d1142e529c"
- id: T04
status: done
title: Prep reuse-surface for registry hygiene pilot expansion
state_hub_task_id: "c6667e3e-3507-456d-baa0-a43c20e095ce"
- id: T05
status: done
title: Draft operate-phase cadence targets (weekly promotion criteria)
state_hub_task_id: "07554dce-03d6-42b2-8080-6071482c4f3a"
- id: T06
status: done
title: Handoff reuse_surface_report_gaps resolver to activity-core
state_hub_task_id: "92f93ac2-8d01-4094-b701-aa991e4b4caf"
- id: T07
status: done
title: Regulator review at observation window end (weekly promotion decision)
state_hub_task_id: "890416df-45db-437c-ba9a-355ac464ad0e"
state_hub_workstream_id: "620731c9-ed7b-478d-97a2-5e251c2c36ff"
---
# LOOP-WP-0005 — Operate Phase Observation & Fleet Expansion Prep
**Status:** done
**Owner:** coulomb-loop
**Depends on:** LOOP-WP-00000004 (bootstrap sprint complete)
## Goal
Bridge **stabilize (daily)** to **operate (weekly)** across all four loops without
premature promotion. Refresh operator-facing health artefacts, start the ADR-003
14-day observation clock, and prepare the next fleet expansion (`reuse-surface`).
## Context (2026-06-18)
| Loop | Phase | Primary mechanism |
|------|-------|-------------------|
| kaizen-improvement-stack | stabilize | daily coach/optimization chain |
| quality-escalation | stabilize | event `low-success-rate-review` + daily backup sweep |
| registry-hygiene | stabilize | daily sweep enabled (ACTIVITY-WP-0013) |
| loop-regulator | stabilize | daily collector 11:00 + weekly session Mon 11:00 |
Bootstrap sprint closed. Activity definitions renamed `coulomb-daily-*`. Worker
restarted; hot-reload capability suggested to activity-core (`f4876517`).
## Refresh regulator dashboard
```task
id: LOOP-WP-0005-T01
status: done
priority: high
state_hub_task_id: "669aa2e5-bc2f-409f-a170-52c2e5824577"
```
Completed 2026-06-18: `loops/regulator/dashboard.md` — daily defs, event path,
observation window, blockers.
## Update engagement docs
```task
id: LOOP-WP-0005-T02
status: done
priority: medium
state_hub_task_id: "b950ad21-7bd5-4ab5-864d-2e154fc5045a"
```
Completed 2026-06-18: `SCOPE.md` § Current State → stabilize phase.
## Stabilize observation window
```task
id: LOOP-WP-0005-T03
status: done
priority: high
state_hub_task_id: "868c3fa1-9d1d-4f69-af62-67d1142e529c"
```
Completed 2026-06-18: `loops/regulator/stabilize-observation.yml`:
- `started_at: 2026-06-18`
- `review_at: 2026-07-02` (14 days)
- Exit criteria per ADR-003: `false_positive_rate < 0.2`, `manual_rescues == 0`
## reuse-surface expansion prep
```task
id: LOOP-WP-0005-T04
status: done
priority: medium
state_hub_task_id: "c6667e3e-3507-456d-baa0-a43c20e095ce"
```
Completed 2026-06-18: `loops/registry-hygiene/expansion-reuse-surface.yml` — no
`.kaizen/` yet; onboarding path documented; helix_forge rollout active; blocked on
shell resolver before hygiene batch promotion.
## Operate-phase draft
```task
id: LOOP-WP-0005-T05
status: done
priority: low
state_hub_task_id: "07554dce-03d6-42b2-8080-6071482c4f3a"
```
Completed 2026-06-18: `operate_target` blocks added to all four `loops/*/cadence.yml`
files (weekly Mon crons, `promotion_gate: LOOP-WP-0005-T07`). Not promoted.
## activity-core handoff
```task
id: LOOP-WP-0005-T06
status: done
priority: medium
state_hub_task_id: "92f93ac2-8d01-4094-b701-aa991e4b4caf"
```
Completed 2026-06-18: state-hub handoff R2 posted to activity-core
(`bffa224c-3594-4fc9-9fa6-a2fc528bbda3`, task `25293d5e-49d6-4c18-af53-317a8c86edcb`).
Spec covers shell resolver contract, gap shape, round-robin batching, and acceptance
criteria for `coulomb-daily-registry-hygiene-sweep`.
## Regulator review (gate)
```task
id: LOOP-WP-0005-T07
status: done
priority: low
state_hub_task_id: "890416df-45db-437c-ba9a-355ac464ad0e"
```
Completed 2026-06-19: operator override per ADR-003 (day 2/14). Regulator session
evidence reviewed; all loops promoted to operate weekly. DEC-008 filed;
`loops/*/cadence.yml` updated; activity definitions renamed `coulomb-daily-*`
`coulomb-weekly-*`. activity-core sync pending.
## Definition of done
- [x] Dashboard and SCOPE reflect stabilize reality
- [x] Observation window documented with review date
- [x] reuse-surface expansion path defined
- [x] Weekly promotion decision (DEC-008, operator override)