--- id: KAIZEN-WP-0008 type: workplan title: "Coulomb-loop supplier engagement (customer-repo playbook)" domain: agents repo: kaizen-agentic status: finished owner: kaizen-agentic topic_slug: custodian customer_repo: coulomb-loop created: "2026-06-18" updated: "2026-06-18" depends_on: - KAIZEN-WP-0006 - KAIZEN-WP-0004 tasks: - id: T01 status: done title: Document customer engagement repo layout from coulomb-loop reference - id: T02 status: done title: Add docs/integrations/customer-engagement-playbook.md skeleton - id: T03 status: done title: Implement metrics record --emit-event for kaizen.metrics.recorded - id: T04 status: done title: Add schedule init --engagement mode for customer repos - id: T05 status: done title: Support pilot schedule init on kaizen-agentic the-custodian activity-core - id: T06 status: done title: Draft ADR-006 customer engagement convention - id: T07 status: done title: Absorb coulomb-loop supplier-notes into playbook v1 - id: T08 status: done title: ActivityDefinition override manifest design for hybrid sync - id: T09 status: done title: Tests for emit-event and engagement init - id: T10 status: done title: Update CHANGELOG wiki and cross-link coulomb-loop INTENT state_hub_workstream_id: "80f473eb-d052-4f50-a633-806f03c469be" --- # KAIZEN-WP-0008 — Coulomb-loop Supplier Engagement **Status:** finished **Owner:** kaizen-agentic (supplier) **Customer:** `coulomb-loop` (coulomb_social domain) **Depends on:** WP-0006 (schedule contract), WP-0004 (activity-core integration) ## Goal Deliver supplier capabilities for Coulomb's self-improvement loop engagement and **generalize learnings** into a reusable customer-repo bootstrap playbook — so the next engagement requires ≤50% setup effort compared to coulomb-loop. This workplan is the **supplier mirror** of coulomb-loop LOOP-WP-0001–0004. Customer-specific operations stay in `coulomb-loop`; reusable IP stays here. ## Engagement model ```mermaid flowchart LR CL[coulomb-loop customer] KA[kaizen-agentic supplier] TR[target repos fleet] AC[activity-core] CL -->|contracts rosters definitions| AC KA -->|agents CLI ADRs playbook| CL KA -->|schedule prepare metrics| TR AC -->|tasks| TR ``` See coulomb-loop `docs/adr/ADR-002-customer-supplier-boundary.md`. ## Sequencing (per DEC-004 default — smoke-first) ``` Part 1 (T01–T02, T05) ── parallel with coulomb-loop smoke test Part 2 (T03–T04, T06–T09) ── after first hourly E2E pass Part 3 (T07–T08, T10) ── after LOOP-WP-0004 supplier-notes available ``` --- ## Part 1 — Document and support smoke test ## Document customer engagement repo layout ```task id: KAIZEN-WP-0008-T01 status: done priority: high state_hub_task_id: "c63b4e59-3797-5b41-99d2-8d2bedd84977" ``` Create `docs/integrations/customer-engagement-repo-layout.md` from coulomb-loop reference: ``` customer-repo/ INTENT.md SCOPE.md workplans/LOOP-WP-* or -WP-* docs/adr/ docs/decisions/ history/ activity-definitions/ # customer-owned copies loops// # roster cadence health ``` No code — layout contract only. ## Playbook skeleton ```task id: KAIZEN-WP-0008-T02 status: done priority: high state_hub_task_id: "03ca3db6-511b-5e49-93c1-f19d8df0c414" ``` Add `docs/integrations/customer-engagement-playbook.md`: 1. Register repo (state-hub `register_project.sh`) 2. Write INTENT + 4 loop workplans 3. Run `fix-consistency` 4. Pilot `schedule init` on target repos 5. Sync ActivityDefinitions to activity-core 6. Bootstrap hourly → regulator promotes cadence Link to coulomb-loop as reference implementation. ## Support pilot schedule init ```task id: KAIZEN-WP-0008-T05 status: done priority: high state_hub_task_id: "33e8b258-dcbc-5144-8e97-258fbe69f985" ``` Completed 2026-06-18 on kaizen-agentic, the-custodian, activity-core. Bootstrap hourly crons patched manually; friction logged in coulomb-loop `supplier-notes.md`. Execute on pilot repos (after DEC-001 approval): ```bash for repo in kaizen-agentic the-custodian activity-core; do cd ~/$repo kaizen-agentic schedule init --timezone Europe/Berlin kaizen-agentic memory init coach kaizen-agentic memory init optimization kaizen-agentic schedule validate done ``` Record friction in coulomb-loop `loops/kaizen-stack/supplier-notes.md`. --- ## Part 2 — Supplier automation ## metrics record --emit-event ```task id: KAIZEN-WP-0008-T03 status: done priority: medium state_hub_task_id: "257bebed-8676-5c8d-a87d-100f07c29bd3" ``` Emit NATS event `kaizen.metrics.recorded` when flag set: ```bash kaizen-agentic metrics record coach --success --time 120 --quality 0.9 --emit-event ``` Payload per coulomb-loop LOOP-WP-0002 T03 / `low-success-rate-review` definition. Default: off (backward compatible). ## schedule init --engagement ```task id: KAIZEN-WP-0008-T04 status: done priority: medium state_hub_task_id: "cdfec704-a3ec-5045-88f2-1c758d6db2e7" ``` Scaffold customer-target schedule with bootstrap crons: ```bash kaizen-agentic schedule init --engagement coulomb-loop \ --agents coach,optimization --bootstrap-cadence hourly ``` Writes hourly crons per ADR-003; documents engagement slug in schedule comment. ## ADR-006 customer engagement convention ```task id: KAIZEN-WP-0008-T06 status: done priority: medium state_hub_task_id: "87f577e7-466c-50e5-831c-27f165e29029" ``` `docs/adr/ADR-006-customer-engagement-convention.md` — formalize supplier/customer split, `.kaizen/` placement in target repos, playbook lifecycle. ## Tests ```task id: KAIZEN-WP-0008-T09 status: done priority: medium state_hub_task_id: "fea67e82-11a9-5591-8045-62f2bb29efc6" ``` Covered by `tests/test_metrics_emit_event.py` and `tests/test_schedule_cli.py` (engagement init + module presets). --- ## Part 3 — Playbook v1 and hybrid sync design ## Absorb supplier-notes into playbook v1 ```task id: KAIZEN-WP-0008-T07 status: done priority: low state_hub_task_id: "1b0c03dd-6072-5394-9c93-d6b827bc0e92" ``` After LOOP-WP-0004 T07 draft in coulomb-loop, merge into playbook v1. Target: second customer can copy template repo and run checklist in one session. ## ActivityDefinition override manifest ```task id: KAIZEN-WP-0008-T08 status: done priority: low state_hub_task_id: "62d34189-0d7d-52e2-acc7-cf5aacf09fdd" ``` Design-only (implements DEC-003 option C): YAML manifest mapping supplier definition id → customer cron/labels/enabled overrides. No runtime in v1. ## Documentation release ```task id: KAIZEN-WP-0008-T10 status: done priority: low state_hub_task_id: "71323ad6-31b5-5252-b3ba-ccaf83e0f006" ``` Update `wiki/EcosystemIntegration.md`, `CHANGELOG [Unreleased]`, cross-link coulomb-loop INTENT from `docs/integrations/customer-engagement-playbook.md`. --- ## ADR-004 follow-on (customer accepted 2026-06-18) After bootstrap metrics baseline, supplier may add: ``` kaizen-agentic metrics rotation-signals [--target PATH] ``` Reads `.kaizen/metrics/` + optimizer output; emits saturation score per `coulomb-loop/loops/regulator/rotation-policy.yml`. Feeds LOOP-WP-0004 T09. Track as KAIZEN-WP-0008 extension task if needed after T03 ships. ## Out of scope - activity-core resolver implementation (activity-core repo) - coulomb-loop workplan execution (customer repo) - Fleet-wide rollout beyond agreed pilot (DEC-001) ## Success criteria 1. Pilot repos have valid `.kaizen/schedule.yml` via supplier CLI 2. `metrics record --emit-event` enables LOOP-WP-0002 event path 3. Playbook v1 committed; coulomb-loop cited as reference 4. ADR-006 accepted ## Customer workplans (do not duplicate here) | Customer WP | Supplier support | |-------------|------------------| | LOOP-WP-0001 | T05 schedule init; activity-core handoff docs | | LOOP-WP-0002 | T03 emit-event | | LOOP-WP-0003 | scope-analyst agent (existing) | | LOOP-WP-0004 | T07 playbook feedback |