diff --git a/.claude/rules/architecture.md b/.claude/rules/architecture.md index 7c2a645..5cb3602 100644 --- a/.claude/rules/architecture.md +++ b/.claude/rules/architecture.md @@ -1,8 +1,25 @@ ## Architecture - +`coulomb-loop` is a **markdown-first engagement layer** — no application runtime. -## Quick Reference +``` +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) +``` -`~/state-hub/mcp_server/TOOLS.md` — MCP tool reference +### Layers + +| Layer | Repo | Role | +|-------|------|------| +| Customer contracts | coulomb-loop | Workplans, ADRs, ActivityDefinition copies, `loops/` | +| Supplier IP | kaizen-agentic | Agents, CLI, ADR-002–006 | +| 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-0001–0004. LOOP-WP-0004 regulates cadence (ADR-003). \ No newline at end of file diff --git a/.claude/rules/credential-routing.md b/.claude/rules/credential-routing.md deleted file mode 100644 index 62e1a3a..0000000 --- a/.claude/rules/credential-routing.md +++ /dev/null @@ -1,50 +0,0 @@ -# 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 "" --json -warden route show --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` \ No newline at end of file diff --git a/.claude/rules/first-session.md b/.claude/rules/first-session.md index ed53a45..86f5ad2 100644 --- a/.claude/rules/first-session.md +++ b/.claude/rules/first-session.md @@ -1,11 +1,11 @@ ## First Session Protocol -Triggered when `get_domain_summary("communication")` shows **no workstreams**. +Triggered when `get_domain_summary("coulomb_social")` shows **no workstreams**. The project is registered but work has not yet been structured. **Step 1 — Read, don't write** -- `~/the-custodian/canon/projects/communication/project_charter_v0.1.md` — purpose, scope -- `~/the-custodian/canon/projects/communication/roadmap_v0.1.md` — planned phases +- `~/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 - 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/LOOP-WP-NNNN-.md ← write this first +workplans/COULOMB-WP-NNNN-.md ← write this first ``` Then register in the hub: ``` @@ -28,7 +28,7 @@ create_task(workstream_id="", title="...", priority="high|medium|low") **Step 5 — Record the setup** ``` add_progress_event( - summary="First session: structured communication into N workstreams, M tasks", + summary="First session: structured coulomb_social into N workstreams, M tasks", event_type="milestone", topic_id="36c7421b-c537-4723-bf75-42a3ebc6a1dc", detail={"workstreams": [...], "tasks_created": M} diff --git a/.claude/rules/repo-boundary.md b/.claude/rules/repo-boundary.md index 861bedf..724854f 100644 --- a/.claude/rules/repo-boundary.md +++ b/.claude/rules/repo-boundary.md @@ -1,8 +1,11 @@ ## Repo boundary -This repo owns **coulomb-loop** only. It does not own: +This repo owns **coulomb-loop engagement operations** 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`. \ No newline at end of file diff --git a/.claude/rules/repo-identity.md b/.claude/rules/repo-identity.md index 5f565d5..9a1d87c 100644 --- a/.claude/rules/repo-identity.md +++ b/.claude/rules/repo-identity.md @@ -1,5 +1,15 @@ -**Purpose:** Coulomb fleet self-improvement loop engagement — customer repo for scheduled kaizen-agentic supplier operations. +## Repo Identity -**Domain:** communication +**Purpose:** coulomb-loop — Coulomb customer engagement repo for fleet self-improvement loops operated with kaizen-agentic as supplier. + +**Domain:** coulomb_social **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 +``` \ No newline at end of file diff --git a/.claude/rules/session-protocol.md b/.claude/rules/session-protocol.md index e7e9679..41aa985 100644 --- a/.claude/rules/session-protocol.md +++ b/.claude/rules/session-protocol.md @@ -1,7 +1,6 @@ ## Session Protocol -Dev Hub (State Hub API): http://127.0.0.1:8000 -MCP server name in `~/.claude.json`: `dev-hub` +State Hub: http://127.0.0.1:8000 **Step 1 — Orient** @@ -11,7 +10,7 @@ cat .custodian-brief.md ``` Then call the MCP tool for richer cross-domain context when MCP tools are exposed: ``` -get_domain_summary("communication") +get_domain_summary("coulomb_social") ``` If MCP tools are unavailable in the current agent session, use the REST API: ```bash @@ -44,7 +43,7 @@ For each file with `status: ready`, `active`, or `blocked`, note pending **Step 4 — Present brief** -1. **Active workstreams** for `communication` — title, task counts, blocking decisions +1. **Active workstreams** for `coulomb_social` — 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"* diff --git a/.claude/rules/stack-and-commands.md b/.claude/rules/stack-and-commands.md index dc53ac6..ab14597 100644 --- a/.claude/rules/stack-and-commands.md +++ b/.claude/rules/stack-and-commands.md @@ -1,19 +1,28 @@ -## Stack +## Stack and Commands - -- **Language:** -- **Key deps:** +**Language:** Markdown / YAML coordination artefacts +**Package manager:** none +**Test runner:** none -## Dev Commands +### Essential commands ```bash -# TODO: Fill in the standard commands for this repo +# Sync workplans to state-hub after edits +cd ~/state-hub && make fix-consistency REPO=coulomb-loop -# Install dependencies +# Validate reuse-surface registry (when entries exist) +reuse-surface validate -# Run tests - -# Lint / type check - -# Build / package (if applicable) +# 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 ``` + +### Session orientation + +```bash +# MCP when available +get_domain_summary("coulomb_social") +``` + +Fallback: `.custodian-brief.md` \ No newline at end of file diff --git a/.claude/rules/workplan-convention.md b/.claude/rules/workplan-convention.md index c9021d9..be1ba7f 100644 --- a/.claude/rules/workplan-convention.md +++ b/.claude/rules/workplan-convention.md @@ -1,40 +1,17 @@ ## Workplan Convention (ADR-001) File location: `workplans/LOOP-WP-NNNN-.md` -ID prefix: `LOOP-WP-` +ID prefix: `LOOP-WP` (see `docs/adr/ADR-001-workplan-prefix.md`) Work items originate as files in this repo **before** being registered in the hub. -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. +Ecosystem todos from supplier or other agents arrive as `[repo:coulomb-loop]` hub tasks. -Closed workplans may be moved to `workplans/archived/` with a completion-date -prefix: `YYMMDD-LOOP-WP-NNNN-.md`. The frontmatter id remains -unchanged; the prefix is only for quick visual reference. +After workplan file updates: -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: "" # written by fix-consistency — do not edit +```bash +cd ~/state-hub && make fix-consistency REPO=coulomb-loop ``` -Status progression is `todo` → `progress` → `done`; use `wait` for waiting or -blocked work and `cancel` for stopped work. - - +Customer loop workplans: LOOP-WP-0000 (bootstrap), LOOP-WP-0001–0004 (loops). +Supplier mirror: `kaizen-agentic` KAIZEN-WP-0008. \ No newline at end of file diff --git a/.custodian-brief.md b/.custodian-brief.md index 6052542..1df1165 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -1,18 +1,25 @@ # Custodian Brief — coulomb-loop -**Domain:** communication -**Last synced:** 2026-06-22 21:20 UTC +**Domain:** coulomb_social +**Last synced:** 2026-06-18 13:16 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams -*(none — repo may need first-session setup)* +### Operate phase observation and fleet expansion prep +Progress: 3/7 done | workstream_id: `620731c9-ed7b-478d-97a2-5e251c2c36ff` + +**Open tasks:** +- · Operate-phase draft `07554dce` +- · activity-core handoff `92f93ac2` +- · Regulator review (gate) `890416df` +- · reuse-surface expansion prep `c6667e3e` --- ## MCP Orientation (when available) If the state-hub MCP server is reachable, call: -`get_domain_summary("communication")` +`get_domain_summary("coulomb_social")` This provides richer cross-domain context. If the MCP call fails, use this file as your orientation source. diff --git a/.forgejo/workflows/ci-smoke.yaml b/.forgejo/workflows/ci-smoke.yaml deleted file mode 100644 index bd44c56..0000000 --- a/.forgejo/workflows/ci-smoke.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# Canonical CI smoke template (tier 1 routing drill). -# Copy to: .forgejo/workflows/ci-smoke.yaml in consumer repos. -name: CI Smoke - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - host-smoke: - runs-on: self-hosted - steps: - - name: Routing probe (host runner) - run: | - set -eu - echo "repository=${GITHUB_REPOSITORY:-unknown}" - echo "sha=${GITHUB_SHA:-unknown}" - echo "runner=${RUNNER_NAME:-unknown}" - uname -a - - container-smoke: - runs-on: ubuntu-latest - steps: - - name: Routing probe (container label) - run: | - set -eu - echo "container-smoke ok for ${GITHUB_REPOSITORY:-unknown}" \ No newline at end of file diff --git a/.repo-classification.yaml b/.repo-classification.yaml deleted file mode 100644 index f0db1cf..0000000 --- a/.repo-classification.yaml +++ /dev/null @@ -1,17 +0,0 @@ -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 diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index bf653a0..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,219 +0,0 @@ -# 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//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": "", - "task_id": "" - }' -``` - -Omit `workstream_id` / `task_id` when not applicable. - -### Update task status - -```bash -curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ - -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/" \ - -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 "" --json -warden route show --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` - - - - ---- - -## 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-.md` - -**Archived location:** finished workplans may move to -`workplans/archived/YYMMDD-COULOMB-WP-NNNN-.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: "" # 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: "" # 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/`) diff --git a/CLAUDE.md b/CLAUDE.md index 2e7223c..e075dd5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,5 +8,4 @@ @.claude/rules/stack-and-commands.md @.claude/rules/architecture.md @.claude/rules/repo-boundary.md -@.claude/rules/credential-routing.md @.claude/rules/agents.md diff --git a/SCOPE.md b/SCOPE.md index b08757c..9b83333 100644 --- a/SCOPE.md +++ b/SCOPE.md @@ -41,10 +41,10 @@ with project-scoped memory and metrics. ## Current State -- Status: active (operate — weekly cadence) +- Status: active (stabilize — daily 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 +- Stability: observation window 2026-06-18 → 2026-07-02 (LOOP-WP-0005) +- Usage: internal engagement; weekly promotion gated on regulator review ## How It Fits diff --git a/activity-definitions/weekly-coach-orientation.md b/activity-definitions/daily-coach-orientation.md similarity index 65% rename from activity-definitions/weekly-coach-orientation.md rename to activity-definitions/daily-coach-orientation.md index ca5c661..b33c181 100644 --- a/activity-definitions/weekly-coach-orientation.md +++ b/activity-definitions/daily-coach-orientation.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-coach-orientation -name: Weekly Kaizen Coach Orientation (coulomb-loop operate) +id: coulomb-daily-coach-orientation +name: Daily Kaizen Coach Orientation (coulomb-loop stabilize) enabled: true owner: coulomb-loop governance: coulomb_social status: proposed trigger: type: cron - cron_expression: "0 9 * * 1" + cron_expression: "0 9 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -15,26 +15,26 @@ context_sources: query: discover_kaizen_scheduled_repos params: roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml - cadence: weekly + cadence: daily bind_to: context.scheduled_runs --- -# Weekly Kaizen Coach Orientation +# Daily Kaizen Coach Orientation -Operate phase per DEC-008. Cron `0 9 * * 1` Europe/Berlin. +Stabilize phase per DEC-005. Cron `0 9 * * *` Europe/Berlin. ```rule -id: run-weekly-coach +id: run-daily-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}" + task_template: "Daily 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 --quality <0-1> --emit-event target_repo: context.r.repo priority: medium - labels: ["kaizen", "agent-run", "coach", "coulomb-loop", "operate"] + labels: ["kaizen", "agent-run", "coach", "coulomb-loop", "stabilize"] ``` \ No newline at end of file diff --git a/activity-definitions/weekly-loop-health-collector.md b/activity-definitions/daily-loop-health-collector.md similarity index 79% rename from activity-definitions/weekly-loop-health-collector.md rename to activity-definitions/daily-loop-health-collector.md index 0d20ac9..0ce5daf 100644 --- a/activity-definitions/weekly-loop-health-collector.md +++ b/activity-definitions/daily-loop-health-collector.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-loop-health-collector -name: Weekly Loop Health Collector (coulomb-loop regulator) +id: coulomb-daily-loop-health-collector +name: Daily Loop Health Collector (coulomb-loop regulator) enabled: false owner: coulomb-loop governance: coulomb_social status: proposed trigger: type: cron - cron_expression: "0 11 * * 1" + cron_expression: "0 11 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -26,10 +26,10 @@ context_sources: bind_to: context.pilot_metrics --- -# Weekly Loop Health Collector +# Daily Loop Health Collector LOOP-WP-0004 — aggregates first-order loop health for regulator sessions. -Weekly `0 11 * * 1` aligned with regulator session (DEC-008). +Daily `0 11 * * *` after first-order chains (DEC-007). ```instruction id: append-health-snapshot @@ -38,7 +38,7 @@ description: | loops//health.jsonl with: - timestamp, phase, tasks_created (from hub), manual_rescues (bootstrap-log), agent_success_rate (pilot metrics avg), false_positive_rate (estimate). - Regenerate loops/regulator/dashboard.md from last 7d of health.jsonl files. + Regenerate loops/regulator/dashboard.md from last 24h of health.jsonl files. If demotion trigger from state-machine.md fires, create urgent optimization task. ``` diff --git a/activity-definitions/weekly-metrics-health-sweep.md b/activity-definitions/daily-metrics-health-sweep.md similarity index 78% rename from activity-definitions/weekly-metrics-health-sweep.md rename to activity-definitions/daily-metrics-health-sweep.md index 30e0a31..257d7c3 100644 --- a/activity-definitions/weekly-metrics-health-sweep.md +++ b/activity-definitions/daily-metrics-health-sweep.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-metrics-health-sweep -name: Weekly Metrics Health Sweep (coulomb-loop backup) +id: coulomb-daily-metrics-health-sweep +name: Daily Metrics Health Sweep (coulomb-loop backup) enabled: false owner: coulomb-loop governance: coulomb_social status: proposed trigger: type: cron - cron_expression: "0 6 * * 1" + cron_expression: "0 6 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -19,13 +19,13 @@ context_sources: bind_to: context.projects --- -# Weekly Metrics Health Sweep (backup) +# Daily Metrics Health Sweep (backup) -Operate-phase backup per LOOP-WP-0002. Primary path is event-driven +Stabilize-phase backup per LOOP-WP-0002 T07. Primary path is event-driven `low-success-rate-review`; enable only if the event bus is down. ```rule -id: flag-low-success-weekly +id: flag-low-success-daily for_each: context.projects bind_as: p condition: 'context.p.summary.success_rate < 0.8 and context.p.summary.execution_count >= 5' diff --git a/activity-definitions/weekly-metrics-optimize.md b/activity-definitions/daily-metrics-optimize.md similarity index 71% rename from activity-definitions/weekly-metrics-optimize.md rename to activity-definitions/daily-metrics-optimize.md index 4a11f6c..1aed797 100644 --- a/activity-definitions/weekly-metrics-optimize.md +++ b/activity-definitions/daily-metrics-optimize.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-metrics-optimize -name: Weekly Kaizen Metrics Optimization (coulomb-loop operate) +id: coulomb-daily-metrics-optimize +name: Daily Kaizen Metrics Optimization (coulomb-loop stabilize) enabled: true owner: coulomb-loop governance: coulomb_social status: proposed trigger: type: cron - cron_expression: "0 8 * * 1" + cron_expression: "0 8 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -19,12 +19,12 @@ context_sources: bind_to: context.projects --- -# Weekly Kaizen Metrics Optimization +# Daily Kaizen Metrics Optimization -Operate phase per DEC-008. Pilot roster only (DEC-001 option A). Cron `0 8 * * 1`. +Stabilize phase per DEC-005. Pilot roster only (DEC-001 option A). Cron `0 8 * * *`. ```rule -id: run-weekly-optimizer +id: run-daily-optimizer for_each: context.projects bind_as: p condition: 'context.p.has_metrics and context.p.in_pilot_roster' @@ -35,7 +35,7 @@ action: Optional: kaizen-agentic metrics publish (when artifact-store configured) target_repo: context.p.repo priority: medium - labels: ["kaizen", "metrics", "optimizer", "coulomb-loop", "operate"] + labels: ["kaizen", "metrics", "optimizer", "coulomb-loop", "stabilize"] ``` **Supplier reference:** `kaizen-agentic/docs/integrations/activity-definitions/weekly-metrics-optimize.md` \ No newline at end of file diff --git a/activity-definitions/weekly-optimization-review.md b/activity-definitions/daily-optimization-review.md similarity index 72% rename from activity-definitions/weekly-optimization-review.md rename to activity-definitions/daily-optimization-review.md index 32002ee..9ac9c7b 100644 --- a/activity-definitions/weekly-optimization-review.md +++ b/activity-definitions/daily-optimization-review.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-optimization-review -name: Weekly Kaizen Optimization Review (coulomb-loop operate) +id: coulomb-daily-optimization-review +name: Daily Kaizen Optimization Review (coulomb-loop stabilize) enabled: true owner: coulomb-loop governance: coulomb_social status: proposed trigger: type: cron - cron_expression: "0 10 * * 1" + cron_expression: "0 10 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -15,21 +15,21 @@ context_sources: query: discover_kaizen_scheduled_repos params: roster: /home/worsch/coulomb-loop/loops/kaizen-stack/roster.yaml - cadence: weekly + cadence: daily bind_to: context.scheduled_runs --- -# Weekly Kaizen Optimization Review +# Daily Kaizen Optimization Review -Operate phase per DEC-008. Cron `0 10 * * 1` Europe/Berlin. +Stabilize phase per DEC-005. Cron `0 10 * * *` Europe/Berlin. ```rule -id: run-weekly-optimization +id: run-daily-optimization for_each: context.scheduled_runs bind_as: r condition: 'context.r.agent == "optimization" and context.r.enabled' action: - task_template: "Weekly optimization review: {context.r.repo}" + task_template: "Daily optimization review: {context.r.repo}" description: | {context.r.prepare_command} kaizen-agentic metrics optimize @@ -38,5 +38,5 @@ action: If saturation signals fire (ADR-004), file regulator rotation recommendation. target_repo: context.r.repo priority: medium - labels: ["kaizen", "agent-run", "optimization", "coulomb-loop", "operate"] + labels: ["kaizen", "agent-run", "optimization", "coulomb-loop", "stabilize"] ``` \ No newline at end of file diff --git a/activity-definitions/weekly-registry-hygiene-sweep.md b/activity-definitions/daily-registry-hygiene-sweep.md similarity index 59% rename from activity-definitions/weekly-registry-hygiene-sweep.md rename to activity-definitions/daily-registry-hygiene-sweep.md index de457b0..cb4fa29 100644 --- a/activity-definitions/weekly-registry-hygiene-sweep.md +++ b/activity-definitions/daily-registry-hygiene-sweep.md @@ -1,13 +1,13 @@ --- -id: coulomb-weekly-registry-hygiene-sweep -name: Weekly Registry Hygiene Sweep (coulomb-loop operate) -enabled: true +id: coulomb-daily-registry-hygiene-sweep +name: Daily Registry Hygiene Sweep (coulomb-loop stabilize) +enabled: false owner: coulomb-loop governance: coulomb_social -status: active +status: proposed trigger: type: cron - cron_expression: "0 9 * * 1" + cron_expression: "0 7 * * *" timezone: Europe/Berlin misfire_policy: skip context_sources: @@ -20,17 +20,14 @@ context_sources: 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 + batch_size: 3 bind_to: context.gaps --- -# Weekly Registry Hygiene Sweep +# Daily Registry Hygiene Sweep -LOOP-WP-0003 — weekly batch from `rollout.yaml` (custodian pilot + helix_forge). -Promoted 2026-06-19 per DEC-008. +LOOP-WP-0003 — daily batch from `rollout.yaml` (custodian pilot + helix_forge). +Promoted 2026-06-18 per DEC-006. ```rule id: hygiene-task-per-signal @@ -48,4 +45,4 @@ action: labels: ["fleet-hygiene", "coulomb-loop", "scope-analyst"] ``` -Runtime params per activity-core R2 note `36ac3eeb` (reuse_surface_bin + runner_host). \ No newline at end of file +`enabled: false` until `reuse_surface_report_gaps` shell resolver exists in activity-core. \ No newline at end of file diff --git a/activity-definitions/low-success-rate-review.md b/activity-definitions/low-success-rate-review.md index 034ecb9..16a124d 100644 --- a/activity-definitions/low-success-rate-review.md +++ b/activity-definitions/low-success-rate-review.md @@ -16,7 +16,7 @@ context_sources: # Low Agent Success Rate Review Enabled 2026-06-18 after activity-core event-payload resolver (ACTIVITY-WP-0011). -Fallback: `weekly-metrics-health-sweep.md` at `0 6 * * 1`. +Fallback: `daily-metrics-health-sweep.md` at `0 6 * * *`. ```rule id: flag-low-success-rate diff --git a/docs/decisions/DEC-008-operate-phase-promotion.md b/docs/decisions/DEC-008-operate-phase-promotion.md deleted file mode 100644 index 27cde10..0000000 --- a/docs/decisions/DEC-008-operate-phase-promotion.md +++ /dev/null @@ -1,66 +0,0 @@ -# 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-0000–0004) 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 08–10 | 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` \ No newline at end of file diff --git a/docs/integrations/activity-core-handoff.md b/docs/integrations/activity-core-handoff.md index f510b7b..31d6a6a 100644 --- a/docs/integrations/activity-core-handoff.md +++ b/docs/integrations/activity-core-handoff.md @@ -1,7 +1,7 @@ # activity-core Handoff — coulomb-loop Bootstrap **Customer:** coulomb-loop -**Status:** weekly operate phase — synced 2026-06-19 +**Status:** ready for activity-core PR/issue ## Prerequisites (done) @@ -17,10 +17,9 @@ - [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] Enable daily kaizen stack (`daily-metrics-optimize`, `daily-coach-orientation`, + `daily-optimization-review`) — 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) @@ -32,35 +31,17 @@ kaizen-agentic metrics optimize --target /home/worsch/kaizen-agentic ## Definition enable order -1. `weekly-metrics-optimize` (enabled) -2. `weekly-coach-orientation` (enabled) -3. `weekly-optimization-review` (enabled) +1. `daily-metrics-optimize` (enabled) +2. `daily-coach-orientation` (enabled) +3. `daily-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) +5. `daily-metrics-health-sweep` (backup, disabled) +6. `daily-registry-hygiene-sweep` (after shell resolver) +7. `daily-loop-health-collector` (after instruction executor) ## Blocked on activity-core +- R2 `reuse_surface_report_gaps` shell resolver — LOOP-WP-0005 T06 handoff posted - 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`). \ No newline at end of file +- Daily loop-health-collector — LOOP-WP-0004 done; cron `0 11 * * *` (disabled) +- Hot-reload definitions/schedules — hub message `f4876517` \ No newline at end of file diff --git a/loops/kaizen-stack/cadence.yml b/loops/kaizen-stack/cadence.yml index 9538d5d..f08f7cd 100644 --- a/loops/kaizen-stack/cadence.yml +++ b/loops/kaizen-stack/cadence.yml @@ -1,14 +1,26 @@ loop: kaizen-improvement-stack -phase: operate -cron: "0 8 * * 1" +phase: stabilize +cron: "0 8 * * *" chain: - metrics: "0 8 * * 1" - coach: "0 9 * * 1" - optimization: "0 10 * * 1" -promoted_at: "2026-06-19" + metrics: "0 8 * * *" + coach: "0 9 * * *" + optimization: "0 10 * * *" +promoted_at: "2026-06-18" demotion_count: 0 regulator_approval: approved +operate_target: + phase: operate + promotion_gate: LOOP-WP-0005-T07 + chain: + metrics: "0 8 * * 1" + coach: "0 9 * * 1" + optimization: "0 10 * * 1" + timezone: Europe/Berlin + criteria: + - false_positive_rate < 0.2 + - manual_rescues == 0 + - min_daily_cycles: 14 notes: > - Promoted from stabilize daily to operate weekly per DEC-008 (operator override, - LOOP-WP-0005 T07). Weekly chain Mon 08:00–10:00 Europe/Berlin. - Prior stabilize promotion: 2026-06-18 (DEC-005). \ No newline at end of file + Promoted from bootstrap hourly after 3/3 consecutive E2E cycles (2026-06-18). + Daily chain — metrics 08:00, coach 09:00, optimization 10:00 Europe/Berlin. + operate_target: weekly Mon 08:00–10:00 (draft; do not promote until T07). \ No newline at end of file diff --git a/loops/kaizen-stack/health.jsonl b/loops/kaizen-stack/health.jsonl index 84fa581..8c99b58 100644 --- a/loops/kaizen-stack/health.jsonl +++ b/loops/kaizen-stack/health.jsonl @@ -1,3 +1,2 @@ {"timestamp":"2026-06-18T10:06:00Z","loop":"kaizen-improvement-stack","phase":"bootstrap","tasks_created":12,"tasks_completed":null,"manual_rescues":0,"false_positive_rate":0.0,"agent_success_rate":0.85,"mean_session_time_sec":104,"cost_signal":12,"notes":"3/3 E2E cycles; final cycle metrics 6+3+3 tasks"} -{"timestamp":"2026-06-18T10:16:00Z","loop":"kaizen-improvement-stack","phase":"stabilize","tasks_created":null,"tasks_completed":null,"manual_rescues":0,"false_positive_rate":0.0,"agent_success_rate":0.85,"mean_session_time_sec":103,"cost_signal":null,"notes":"Promoted to daily 08/09/10 per DEC-005"} -{"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)"} +{"timestamp":"2026-06-18T10:16:00Z","loop":"kaizen-improvement-stack","phase":"stabilize","tasks_created":null,"tasks_completed":null,"manual_rescues":0,"false_positive_rate":0.0,"agent_success_rate":0.85,"mean_session_time_sec":103,"cost_signal":null,"notes":"Promoted to daily 08/09/10 per DEC-005"} \ No newline at end of file diff --git a/loops/kaizen-stack/roster.yaml b/loops/kaizen-stack/roster.yaml index 4ab7d9c..2ab7e02 100644 --- a/loops/kaizen-stack/roster.yaml +++ b/loops/kaizen-stack/roster.yaml @@ -1,39 +1,34 @@ -version: '1' +version: "1" loop: kaizen-improvement-stack decision: DEC-001 option A (2026-06-18) -phase: operate +phase: bootstrap + +# Repos currently receiving scheduled optimization/coach runs 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 + - 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) expansion_queue: -- slug: reuse-surface - agents: - - coach - - optimization - - scope-analyst - domain: helix_forge -- slug: vergabe-teilnahme - agents: - - coach - - scope-analyst - domain: coulomb_social -saturated: [] + - 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: [] \ No newline at end of file diff --git a/loops/quality-escalation/cadence.yml b/loops/quality-escalation/cadence.yml index 8fdeeda..9552202 100644 --- a/loops/quality-escalation/cadence.yml +++ b/loops/quality-escalation/cadence.yml @@ -1,11 +1,23 @@ loop: quality-escalation -phase: operate -cron: "0 6 * * 1" +phase: stabilize +cron: "0 6 * * *" event_primary: low-success-rate-review -sweep_fallback: weekly-metrics-health-sweep -promoted_at: "2026-06-19" +sweep_fallback: daily-metrics-health-sweep +stabilize_target: + event: enabled + sweep_cron: "0 6 * * *" +operate_target: + phase: operate + promotion_gate: LOOP-WP-0005-T07 + event_primary: low-success-rate-review + sweep_cron: "0 6 * * 1" + timezone: Europe/Berlin + criteria: + - false_positive_rate < 0.2 + - manual_rescues == 0 + - min_daily_cycles: 14 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. \ No newline at end of file + Event path proven 2026-06-18 (ACTIVITY-WP-0011 + NATS smoke, tasks_spawned=1). + low-success-rate-review enabled; hourly sweep retired to daily backup cron (disabled). + operate_target: event-only primary; weekly Mon 06:00 backup sweep (draft). \ No newline at end of file diff --git a/loops/quality-escalation/health.jsonl b/loops/quality-escalation/health.jsonl index 775b642..42aaade 100644 --- a/loops/quality-escalation/health.jsonl +++ b/loops/quality-escalation/health.jsonl @@ -1,2 +1 @@ -{"timestamp":"2026-06-18T10:16:00Z","loop":"quality-escalation","phase":"bootstrap","tasks_created":0,"manual_rescues":0,"false_positive_rate":null,"notes":"Event path blocked on activity-core R1; sweep definition ready, disabled"} -{"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)"} +{"timestamp":"2026-06-18T10:16:00Z","loop":"quality-escalation","phase":"bootstrap","tasks_created":0,"manual_rescues":0,"false_positive_rate":null,"notes":"Event path blocked on activity-core R1; sweep definition ready, disabled"} \ No newline at end of file diff --git a/loops/quality-escalation/thresholds.yml b/loops/quality-escalation/thresholds.yml index 38174f9..0608017 100644 --- a/loops/quality-escalation/thresholds.yml +++ b/loops/quality-escalation/thresholds.yml @@ -18,12 +18,8 @@ triggers: bootstrap: mechanism: daily_sweep_backup - definition: weekly-metrics-health-sweep + definition: daily-metrics-health-sweep stabilize: mechanism: event_primary definition: low-success-rate-review - backup_sweep_cron: "0 6 * * *" -operate: - mechanism: event_primary - definition: low-success-rate-review - backup_sweep_cron: "0 6 * * 1" \ No newline at end of file + backup_sweep_cron: "0 6 * * *" \ No newline at end of file diff --git a/loops/registry-hygiene/cadence.yml b/loops/registry-hygiene/cadence.yml index 2509ef6..28d0e9a 100644 --- a/loops/registry-hygiene/cadence.yml +++ b/loops/registry-hygiene/cadence.yml @@ -1,12 +1,22 @@ loop: registry-hygiene -phase: operate -cron: "0 9 * * 1" -batch_size: 2 -domain_rotation: weekly -promoted_at: "2026-06-19" +phase: stabilize +cron: "0 7 * * *" +batch_size: 3 +domain_rotation: daily +promoted_at: "2026-06-18" +operate_target: + phase: operate + promotion_gate: LOOP-WP-0005-T07 + cron: "0 9 * * 1" + batch_size: 2 + domain_rotation: weekly + timezone: Europe/Berlin + criteria: + - false_positive_rate < 0.2 + - repeat_task_rate < 0.1 + - min_daily_cycles: 14 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. \ No newline at end of file + Bootstrap 3/3 rounds complete (2026-06-18). Promoted hourly→daily per DEC-006. + helix_forge added to rollout (T06). Weekly promotion deferred until 2 weeks daily. + operate_target: weekly Mon 09:00, 1–2 domains per run (draft). \ No newline at end of file diff --git a/loops/registry-hygiene/expansion-reuse-surface.yml b/loops/registry-hygiene/expansion-reuse-surface.yml index 1606764..6bbbe51 100644 --- a/loops/registry-hygiene/expansion-reuse-surface.yml +++ b/loops/registry-hygiene/expansion-reuse-surface.yml @@ -22,7 +22,8 @@ onboarding: - reuse-surface establish --publish-check blockers: - - issue-core task sink for hygiene task emission (operator) + - reuse_surface_report_gaps shell resolver (activity-core; LOOP-WP-0005-T06) + - daily-registry-hygiene-sweep enabled gate promotion: trigger: shell resolver shipped + 7 daily stabilize cycles on custodian batch diff --git a/loops/registry-hygiene/health.jsonl b/loops/registry-hygiene/health.jsonl index 54f3372..eb68e70 100644 --- a/loops/registry-hygiene/health.jsonl +++ b/loops/registry-hygiene/health.jsonl @@ -1,5 +1,3 @@ {"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)"} +{"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"} \ No newline at end of file diff --git a/loops/registry-hygiene/round-robin-state.json b/loops/registry-hygiene/round-robin-state.json index c646ce0..72c2f7c 100644 --- a/loops/registry-hygiene/round-robin-state.json +++ b/loops/registry-hygiene/round-robin-state.json @@ -1,9 +1,8 @@ { - "cursor": 2, - "last_batch": [ - "reuse-surface", - "kaizen-agentic", - "the-custodian" - ], - "updated_at": "2026-06-18T16:11:20.117486+00:00" -} + "cursor_domain": "custodian", + "cursor_index": 0, + "last_run": "2026-06-18T11:22:00Z", + "last_batch": ["kaizen-agentic", "the-custodian", "activity-core"], + "rounds_completed": 3, + "duplicate_tasks": 0 +} \ No newline at end of file diff --git a/loops/regulator/cadence.yml b/loops/regulator/cadence.yml index e3dec60..5073801 100644 --- a/loops/regulator/cadence.yml +++ b/loops/regulator/cadence.yml @@ -1,11 +1,20 @@ loop: loop-regulator -phase: operate -collector_cron: "0 11 * * 1" +phase: stabilize +collector_cron: "0 11 * * *" regulator_session_cron: "0 11 * * 1" -promoted_at: "2026-06-19" +promoted_at: "2026-06-18" +operate_target: + phase: operate + promotion_gate: LOOP-WP-0005-T07 + collector_cron: "0 11 * * 1" + regulator_session_cron: "0 11 * * 1" + timezone: Europe/Berlin + criteria: + - all first-order loops at operate phase + - false_positive_rate < 0.2 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). \ No newline at end of file + Promoted 2026-06-18 (LOOP-WP-0004 T08). Collector daily 11:00 after first-order + daily chains complete. Regulator optimization session weekly Monday 11:00. + Emergency demotion remains event-driven (immediate task). + operate_target: collector aligns with weekly session Mon 11:00 (draft). \ No newline at end of file diff --git a/loops/regulator/dashboard.md b/loops/regulator/dashboard.md index 7cf0193..7f95da2 100644 --- a/loops/regulator/dashboard.md +++ b/loops/regulator/dashboard.md @@ -1,40 +1,38 @@ # Loop regulator dashboard -Regenerated 2026-06-19 (LOOP-WP-0005 T07 / DEC-008). +Regenerated 2026-06-18 (LOOP-WP-0005 T01). ## Summary | Loop | Phase | Last health | Manual rescues | Recommendation | |------|-------|-------------|----------------|----------------| -| kaizen-improvement-stack | operate | 2026-06-19T00:00Z | 0 | **promoted** — weekly Mon 08:00–10: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 | +| kaizen-improvement-stack | stabilize | 2026-06-18T10:16Z | 0 | **hold** — daily chain 08:00→10:00 active | +| quality-escalation | stabilize | 2026-06-18T12:05Z | 0 | **hold** — event path live; backup sweep disabled | +| registry-hygiene | stabilize | 2026-06-18T11:22Z | 0 | **hold** — daily sweep; blocked on shell resolver | +| loop-regulator | stabilize | 2026-06-18T11:22Z | 0 | **hold** — daily collector 11:00 (manual until executor) | -## Observation window (ADR-003) +## Stabilize observation (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) | +| Review | 2026-07-02 | +| Workplan | LOOP-WP-0005 | -See `stabilize-observation.yml`. +See `stabilize-observation.yml`. Weekly promotion **not** before review. ## 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-daily-metrics-optimize` | `0 8 * * *` | yes | +| `coulomb-daily-coach-orientation` | `0 9 * * *` | yes | +| `coulomb-daily-optimization-review` | `0 10 * * *` | 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-daily-metrics-health-sweep` | `0 6 * * *` | no (backup) | +| `coulomb-daily-registry-hygiene-sweep` | `0 7 * * *` | no (resolver) | -Retired `coulomb-daily-*` and `coulomb-hourly-*` ids disabled on next sync. +Retired `coulomb-hourly-*` ids disabled on sync. ## Rotation queue (ADR-004) @@ -43,7 +41,7 @@ Retired `coulomb-daily-*` and `coulomb-hourly-*` ids disabled on next sync. | 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 | +| reuse-surface | — | onboarded; hygiene batch after R2 resolver | No rotation recommended. See `rotation-runbook.md`. @@ -51,12 +49,11 @@ No rotation recommended. See `rotation-runbook.md`. | Item | Owner | Hub ref | |------|-------|---------| -| Issue-core task sink (`/issues/`) | operator | manual trigger 4 tasks; emit 404 | +| `reuse_surface_report_gaps` resolver | activity-core | handoff R2 posted | | Hot-reload definitions/schedules | activity-core | `f4876517` | -| Loop health instruction executor | activity-core | `weekly-loop-health-collector` | +| Loop health instruction executor | activity-core | `daily-loop-health-collector` | +## Regulator cadence (DEC-007) -## Regulator cadence (DEC-008) - -- Collector: weekly Monday 11:00 +- Collector: daily 11:00 - Session: weekly Monday 11:00 \ No newline at end of file diff --git a/loops/regulator/health.jsonl b/loops/regulator/health.jsonl index 18e2624..92fa065 100644 --- a/loops/regulator/health.jsonl +++ b/loops/regulator/health.jsonl @@ -1,2 +1 @@ -{"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)"} +{"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"} \ No newline at end of file diff --git a/loops/regulator/session-template.md b/loops/regulator/session-template.md index 85c69e0..8c1af6e 100644 --- a/loops/regulator/session-template.md +++ b/loops/regulator/session-template.md @@ -33,30 +33,6 @@ kaizen-agentic metrics record optimization --success --time --quality <0-1> 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 diff --git a/loops/regulator/stabilize-observation.yml b/loops/regulator/stabilize-observation.yml index f666e5c..512b056 100644 --- a/loops/regulator/stabilize-observation.yml +++ b/loops/regulator/stabilize-observation.yml @@ -1,7 +1,6 @@ version: "1" started_at: "2026-06-18" review_at: "2026-07-02" -closed_at: "2026-06-19" duration_days: 14 policy: ADR-003 loops: @@ -13,15 +12,6 @@ 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-0000–0004). - Closed early via DEC-008; weekly promotion applied in loops/*/cadence.yml. \ No newline at end of file + Observation window opened after bootstrap sprint (LOOP-WP-0000–0004) and daily + definition rename (9b19956). Weekly promotion requires regulator session LOOP-WP-0005-T07. \ No newline at end of file diff --git a/workplans/LOOP-WP-0000-engagement-bootstrap.md b/workplans/LOOP-WP-0000-engagement-bootstrap.md index b0737c6..8f3705e 100644 --- a/workplans/LOOP-WP-0000-engagement-bootstrap.md +++ b/workplans/LOOP-WP-0000-engagement-bootstrap.md @@ -2,11 +2,11 @@ id: LOOP-WP-0000 type: workplan title: "Engagement bootstrap (registration, assessment, governance)" -domain: communication +domain: coulomb_social repo: coulomb-loop status: done owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" updated: "2026-06-18" diff --git a/workplans/LOOP-WP-0001-kaizen-improvement-stack.md b/workplans/LOOP-WP-0001-kaizen-improvement-stack.md index 8016247..f5cb80e 100644 --- a/workplans/LOOP-WP-0001-kaizen-improvement-stack.md +++ b/workplans/LOOP-WP-0001-kaizen-improvement-stack.md @@ -2,11 +2,11 @@ id: LOOP-WP-0001 type: workplan title: "Kaizen Improvement Stack (coach + metrics + optimization)" -domain: communication +domain: coulomb_social repo: coulomb-loop status: done owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" updated: "2026-06-18" diff --git a/workplans/LOOP-WP-0002-reactive-quality-escalation.md b/workplans/LOOP-WP-0002-reactive-quality-escalation.md index 6d3d8bc..4b8e858 100644 --- a/workplans/LOOP-WP-0002-reactive-quality-escalation.md +++ b/workplans/LOOP-WP-0002-reactive-quality-escalation.md @@ -2,11 +2,11 @@ id: LOOP-WP-0002 type: workplan title: "Reactive Quality Escalation (signal-driven improvement)" -domain: communication +domain: coulomb_social repo: coulomb-loop status: finished owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" updated: "2026-06-18" diff --git a/workplans/LOOP-WP-0003-registry-orientation-hygiene.md b/workplans/LOOP-WP-0003-registry-orientation-hygiene.md index 41f9622..71bf58f 100644 --- a/workplans/LOOP-WP-0003-registry-orientation-hygiene.md +++ b/workplans/LOOP-WP-0003-registry-orientation-hygiene.md @@ -2,11 +2,11 @@ id: LOOP-WP-0003 type: workplan title: "Registry & Orientation Hygiene (fleet legibility)" -domain: communication +domain: coulomb_social repo: coulomb-loop status: done owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" updated: "2026-06-18" diff --git a/workplans/LOOP-WP-0004-loop-regulator.md b/workplans/LOOP-WP-0004-loop-regulator.md index 2d787c6..fa8b559 100644 --- a/workplans/LOOP-WP-0004-loop-regulator.md +++ b/workplans/LOOP-WP-0004-loop-regulator.md @@ -2,11 +2,11 @@ id: LOOP-WP-0004 type: workplan title: "Loop Regulator (second-order improvement)" -domain: communication +domain: coulomb_social repo: coulomb-loop status: done owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" updated: "2026-06-18" diff --git a/workplans/LOOP-WP-0005-operate-phase-observation.md b/workplans/LOOP-WP-0005-operate-phase-observation.md index 1fa2e74..f62e78c 100644 --- a/workplans/LOOP-WP-0005-operate-phase-observation.md +++ b/workplans/LOOP-WP-0005-operate-phase-observation.md @@ -2,14 +2,14 @@ id: LOOP-WP-0005 type: workplan title: "Operate phase observation and fleet expansion prep" -domain: communication +domain: coulomb_social repo: coulomb-loop -status: done +status: active owner: coulomb-loop -topic_slug: coulomb-social +topic_slug: coulomb_social supplier: kaizen-agentic created: "2026-06-18" -updated: "2026-06-19" +updated: "2026-06-18" depends_on: - LOOP-WP-0001 - LOOP-WP-0002 @@ -41,7 +41,7 @@ tasks: title: Handoff reuse_surface_report_gaps resolver to activity-core state_hub_task_id: "92f93ac2-8d01-4094-b701-aa991e4b4caf" - id: T07 - status: done + status: todo 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" @@ -49,7 +49,7 @@ state_hub_workstream_id: "620731c9-ed7b-478d-97a2-5e251c2c36ff" # LOOP-WP-0005 — Operate Phase Observation & Fleet Expansion Prep -**Status:** done +**Status:** active **Owner:** coulomb-loop **Depends on:** LOOP-WP-0000–0004 (bootstrap sprint complete) @@ -65,7 +65,7 @@ premature promotion. Refresh operator-facing health artefacts, start the ADR-003 |------|-------|-------------------| | 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) | +| registry-hygiene | stabilize | daily sweep (disabled pending shell resolver) | | loop-regulator | stabilize | daily collector 11:00 + weekly session Mon 11:00 | Bootstrap sprint closed. Activity definitions renamed `coulomb-daily-*`. Worker @@ -152,19 +152,16 @@ criteria for `coulomb-daily-registry-hygiene-sweep`. ```task id: LOOP-WP-0005-T07 -status: done +status: todo 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. +On or after `review_at`, run regulator session; file DEC-008 if weekly promotion approved. ## 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) \ No newline at end of file +- Dashboard and SCOPE reflect stabilize reality +- Observation window documented with review date +- reuse-surface expansion path defined +- Weekly promotion decision deferred until T07 \ No newline at end of file