kaizen-agentic/docs/integrations/activity-core-handoff-wp0006.md

95 lines
4.9 KiB
Markdown
Raw Normal View History

# activity-core Handoff — Scheduled Agent Execution (WP-0006)
> **Historical supplier handoff, completed for the initial resolver/pilot path.**
> The initial production composition used activity-core durable `ops_run` work
> claimed by rein-aharness through its generic `agent-session` approach. Glas
> contract 1.0 now defines the rein-neutral execution boundary: new blueprint
> and agent-instance handoffs should carry a versioned `harness_profile_ref`.
> The resolver and preparation contracts below remain compatible inputs.
Coordination checklist for the **activity-core** team to enable kaizen scheduled
agent runs. kaizen-agentic owns the schedule contract, the prepare CLI, and the
ActivityDefinition **drafts**; activity-core owns the resolver, schedule firing,
and durable work creation (repo boundary, ADR-005). Task intake remains
rein-local where implemented; glas-harness owns explicit execution-profile
resolution and normalized evidence.
Open this as an activity-core issue/PR titled *"Enable kaizen scheduled agent
execution (WP-0006)"* and track the boxes there.
## What kaizen-agentic ships (done in this repo)
- [x] `.kaizen/schedule.yml` schema + `schedule validate|init|list|prepare` CLI
- [x] ADR-005 contract
- [x] Resolver spec: [discover-kaizen-scheduled-repos.md](discover-kaizen-scheduled-repos.md)
- [x] State Hub roster fields design: [state-hub-roster-fields.md](state-hub-roster-fields.md)
- [x] Draft definitions (`enabled: false`):
[weekly-coach-orientation](activity-definitions/weekly-coach-orientation.md),
[weekly-optimization-review](activity-definitions/weekly-optimization-review.md)
- [x] Event payload spec: [kaizen-schedule-prepared-event.md](kaizen-schedule-prepared-event.md)
## What activity-core must do
- [x] **Implement resolver** `discover_kaizen_scheduled_repos` per the spec
(`activity_core/context_resolvers/kaizen.py`).
- [x] **Add resolver unit tests**`tests/test_kaizen_context_resolver.py` (7 passed).
- [ ] **Copy custodian weekly definitions** from `docs/integrations/activity-definitions/`
(`weekly-coach-orientation.md`, `weekly-optimization-review.md`) into the
activity-core catalog path (per ACT-ADR-002). *Deferred: coulomb-loop engagement
ships customer-owned daily bootstrap definitions instead (LOOP-WP-0001).*
- [ ] **Register** weekly definition slugs in the activity-core index (when custodian
fleet moves off coulomb engagement copies).
- [x] **Run** `make sync-activity-definitions` — coulomb-loop definitions synced
(`coulomb-hourly-coach-orientation`, `coulomb-hourly-optimization-review`, etc.).
- [x] **Wire cron** triggers — daily stabilize chain on pilot roster (08:0010:00).
- [x] **Smoke test** — resolver dry-run returns 6 `scheduled_runs` on coulomb roster;
`schedule prepare coach` succeeds on `kaizen-agentic` and `the-custodian`.
- [x] **Enable gradually** — coulomb bootstrap definitions `enabled: true` on pilot.
- [x] **Verify runner prerequisites**`kaizen-agentic` on PATH; `KAIZEN_RUNNER_HOST`
set on worker (`bnt-lap001`).
### Supplier closure evidence (2026-06-18)
| Check | Result |
|-------|--------|
| Resolver dry-run (coulomb roster, `cadence: daily`) | 6 runs across 3 pilot repos |
| `tests/test_kaizen_context_resolver.py` | 7 passed |
| `schedule validate` + `prepare coach` | OK on `kaizen-agentic`, `the-custodian`, `activity-core` |
| Live definitions using resolver | `f234bb1a` coach, `097fc027` optimization (enabled) |
**Remaining activity-core item:** optional custodian-fleet weekly templates (`enabled: false`
in kaizen-agentic drafts) when engagement moves beyond coulomb-loop bootstrap copies.
## State Hub team (the-custodian)
- [ ] Optional: add `kaizen_schedule_enabled` repo flag + `GET /repos/` filter
(v2 pre-filter; the repo file remains the source of truth).
## Smoke test (manual reference path)
```bash
cd /path/to/pilot-repo
kaizen-agentic schedule init # if not already present
kaizen-agentic schedule validate # exit 0
kaizen-agentic schedule list # shows coach + optimization enabled
kaizen-agentic schedule prepare coach # non-empty orientation bundle
```
Then in activity-core: run the resolver (dry-run) and confirm one
`scheduled_run` per enabled `(repo, agent)` with a correct `prepare_command`.
For unattended operation, confirm the resulting `ops_run` is claimable, the
blueprint/instance provides an approved `harness_profile_ref`, and Glas resolves
it without a hidden rein/model fallback before enabling the schedule broadly.
## Pilot roster
- `kaizen-agentic` (dogfood)
- `the-custodian` (hub operator)
- one additional custodian-domain repo with `.kaizen/` state (TBD at pilot time)
## Related
- [ADR-005](../adr/ADR-005-scheduled-agent-execution.md)
- [INTEGRATION_PATTERNS.md Pattern 2](../INTEGRATION_PATTERNS.md)
- [KAIZEN-WP-0006](../../workplans/KAIZEN-WP-0006-scheduled-agent-execution.md)