Files
kaizen-agentic/docs/integrations/schedule-schema.md
tegwick 3b2edd4a9e feat: scheduled agent execution via activity-core (WP-0006, v1.3.0)
Enable kaizen agents to run on a regular cadence against a preselected repo
roster, orchestrated by activity-core and prepared by kaizen-agentic — without
this repo owning cron, Temporal workers, or an LLM runtime.

CLI + module:
- src/kaizen_agentic/schedule.py — .kaizen/schedule.yml parse/validate/scaffold
- `kaizen-agentic schedule` group: init, validate, list, prepare <agent>
  (prepare bundles agent prompt + memory + metrics + repo pointers, offline)
- tests/test_schedule_cli.py — 15 tests

Contract & design:
- ADR-005 scheduled agent execution; schema doc + example manifest
- discover_kaizen_scheduled_repos resolver spec, state-hub roster fields,
  kaizen.schedule.prepared event payload, activity-core handoff checklist
- INTEGRATION_PATTERNS Pattern 2 extended with roster model

ActivityDefinition drafts (enabled: false):
- weekly-coach-orientation, weekly-optimization-review

Docs: agency-framework, CLI cheat sheet, PACKAGE_RELEASE runner prereqs,
EcosystemIntegration, CHANGELOG, TODO. Workplan closed (status: done).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 08:19:51 +02:00

2.9 KiB

.kaizen/schedule.yml Schema

The schedule manifest declares which kaizen agents run on what cadence in an opted-in repo. It is the repo-local half of the scheduled-agent-execution contract (ADR-005). activity-core reads it (via the roster resolver) to fire recurring tasks; kaizen-agentic schedule prepare reads it indirectly by preparing per-agent orientation.

Canonical example: docs/examples/.kaizen/schedule.yml.

Location

<project-root>/.kaizen/schedule.yml

Lives alongside .kaizen/agents/ (memory) and .kaizen/metrics/. Like those, its presence is the opt-in signal for fleet scheduling.

Fields

Key Required Type Default Notes
version yes string Must be "1"
timezone no string from ActivityDefinition IANA tz, e.g. Europe/Berlin
agents yes mapping agent-name → settings
agents.<name>.cadence yes enum daily | weekly | monthly
agents.<name>.cron no string cadence default 5-field cron expression
agents.<name>.enabled no bool true Set false to declare but pause

Example

version: "1"
timezone: Europe/Berlin
agents:
  coach:
    cadence: weekly
    cron: "0 9 * * 1"
    enabled: true
  optimization:
    cadence: weekly
    cron: "0 10 * * 1"
    enabled: true
  tdd-workflow:
    cadence: monthly
    enabled: false

Validation

kaizen-agentic schedule validate

Errors are emitted with actionable messages and a non-zero exit code:

  • Missing or non-"1" version.
  • agents not a mapping, or no agents declared.
  • An agent name that is not installed or packaged (typo guard).
  • A cadence outside daily / weekly / monthly.
  • Duplicate agent entries.

Only agents available to the project (installed under agents/ or packaged in the distribution) may appear in a schedule.

Scaffolding

kaizen-agentic schedule init                 # defaults: coach + optimization weekly
kaizen-agentic schedule init --timezone UTC  # override timezone
kaizen-agentic schedule init --force         # overwrite existing

The default scaffold enables coach and optimization weekly and declares tdd-workflow monthly but disabled (operator opts in deliberately).

Listing

kaizen-agentic schedule list        # enabled entries only
kaizen-agentic schedule list --all  # include disabled

Relationship to activity-core

The cron field is an optional per-repo override. When omitted, the cadence maps to the default cron declared in the matching ActivityDefinition (e.g. weekly-coach-orientation fires Mon 09:00). This keeps fleet-wide timing in one place while letting individual repos shift their slot.

See ADR-005 and INTEGRATION_PATTERNS.md Pattern 2.