Files
kaizen-agentic/tests/test_integration_patterns.py
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

34 lines
1.1 KiB
Python

"""Smoke tests for WP-0004 integration artifacts."""
from __future__ import annotations
from pathlib import Path
import yaml
DEFINITIONS_DIR = (
Path(__file__).parent.parent / "docs" / "integrations" / "activity-definitions"
)
def test_activity_definitions_have_required_frontmatter():
files = list(DEFINITIONS_DIR.glob("*.md"))
# 3 from WP-0004 (metrics) + 2 from WP-0006 (scheduled agent runs)
assert len(files) == 5
for path in files:
text = path.read_text(encoding="utf-8")
assert text.startswith("---\n")
end = text.index("\n---\n", 4)
frontmatter = yaml.safe_load(text[4:end])
assert frontmatter["id"]
assert frontmatter["trigger"]["type"] in ("cron", "event")
assert frontmatter["owner"] == "kaizen-agentic"
def test_integration_docs_exist():
root = Path(__file__).parent.parent / "docs"
assert (root / "INTEGRATION_PATTERNS.md").exists()
assert (root / "integrations" / "helix-forge-correlation.md").exists()
assert (root / "integrations" / "optimizer-artifact-manifest.md").exists()