--- id: ADR-002 title: Customer–Supplier Engagement Boundary status: accepted date: "2026-06-18" --- # ADR-002 — Customer–Supplier Engagement Boundary ## Status Accepted ## Context Coulomb hired kaizen-agentic as a **supplier** of agents and improvement expertise. Agents must improve Coulomb's fleet without becoming part of Coulomb's application codebases or the supplier's product repo. ## Decision ### coulomb-loop (customer) owns - Engagement INTENT, SCOPE, workplans, decisions - Loop rosters (`loops/*/roster.yaml`) - ActivityDefinition **copies** tuned for Coulomb cadence - Loop health records and cadence state (`loops/*/cadence.yml`, `health.jsonl`) - state-hub progress events for the engagement ### kaizen-agentic (supplier) owns - Agent markdown definitions (`agents/agent-*.md`) - CLI (`schedule`, `metrics`, `memory`, `validate`) - ADRs for memory, metrics, scheduled execution (ADR-002–005) - ActivityDefinition **reference** templates - Customer-repo bootstrap playbook (KAIZEN-WP-0008) ### Target repos (fleet) hold runtime state - `.kaizen/schedule.yml` — opt-in per repo - `.kaizen/agents//memory.md` — project-scoped agent memory - `.kaizen/metrics//` — execution metrics ### Shared operators (not owned by either repo) | System | Role | |--------|------| | activity-core | Cron/event → task creation | | state-hub | Fleet roster, workstream index | | reuse-surface | Capability registry CLI and federation | ## Consequences - No agent definitions are copied into `coulomb-loop` - No scheduling runtime code in `coulomb-loop` - Supplier improvements flow back via KAIZEN-WP-0008, not by merging into coulomb-loop - Customer may fork ActivityDefinitions without waiting for supplier release ## Related - `INTENT.md` - `docs/adr/ADR-003-cadence-ramp-policy.md`