DataDesigner/plans/472
Andre Manoel b220f3697b
ci: add daily audit suites with 5 rotating recipes and scheduled workflow (#543)
* ci: add daily audit suites with 5 recipes and scheduled workflow

Add the daily maintenance infrastructure (Phase 2+3 of the agentic CI
plan). A new workflow runs one audit suite per weekday via day-of-week
rotation, with runner memory persisted via actions/cache.

Recipes: docs-and-references (Mon), dependencies (Tue), structure (Wed),
code-quality (Thu), test-health (Fri). Each targets gaps that CI and ruff
don't cover: cross-reference validation, transitive dep analysis, lazy
import compliance, complexity trends, and test-to-source mapping.

Reports go to the Actions step summary. Code changes use /create-pr.

* ci: add executable smoke checks and harden runner memory

Add executable smoke checks to test-health and code-quality recipes
that exercise real code paths (config build, validate, import timing,
registry completeness, error hierarchy, input rejection) without
needing an LLM provider. Checks are split into fixed canaries (same
every run) and creative checks (agent varies inputs each run).

Harden runner memory: define JSON schema in _runner.md with TTL and
size rules, validate state file after agent runs, only update
last_run on success, drop unused audit-log.md. Add make install-dev
workflow step so recipes can run Python against the installed packages.

* ci: fix codex review findings - test paths, provider check, step gating

Fix issues found by Codex review:
- Fix test paths: tests/ does not exist at repo root, use
  packages/*/tests/ and packages/data-designer/tests/test_import_perf.py
- Remove DataDesigner(model_providers=[]) from smoke checks - raises
  NoModelProvidersError; keep config-layer checks only
- Fix audit step gating: remove continue-on-error, use step outcome
  to gate runner memory update (|| true + continue-on-error made the
  step always "succeed", defeating the success() condition)

* ci: fix review findings - heredoc, state validation, lazy import wording

Fix heredoc with indented EOF terminator that never terminates - replace
with printf. Run state validation on all outcomes (not just success) so
corrupted state from a failed audit is caught before caching. Only stamp
last_run when audit succeeds. Align test-health lazy import section with
its own Constraints (report count only, don't duplicate structure audit).

Also fixes datetime.utcnow() deprecation and shell variable injection
in Python string by using os.environ instead.
2026-04-17 14:48:55 -03:00
..
agentic-ci-plan.md ci: add daily audit suites with 5 rotating recipes and scheduled workflow (#543) 2026-04-17 14:48:55 -03:00