feat(agent): declare workflow convergence criteria - #762
Conversation
Self-review — principal-architect passReviewed via the Verdict: Approve with nitsClean, backward-compatible, explicitly declarative-only. The Vision alignment ✅Serves reviewable outcomes — makes "what counts as done" a declarative, validated per-workflow contract while explicitly preserving the defensive Blocking issuesNone. Non-blocking suggestions / nits
Documentation ✅
Tests & CI
Review agents run
Human heuristics
Recommendation: Approve pending 🤖 Generated with Claude Code |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #762 +/- ##
=======================================
Coverage ? 92.48%
=======================================
Files ? 328
Lines ? 95046
Branches ? 10504
=======================================
Hits ? 87899
Misses ? 7147
Partials ? 0 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Addressed all self-review nits in
Also tightened schema-path assertions in the convergence validation tests. Validation:
|
|
Tightly-scoped contract addition, and the v1 "descriptive only, no runtime branch" boundary is stated clearly in both the
1, 4 and 5 are cheap; 2 and 3 are design calls I'd defer to you on. |
Adds an optional, validated convergence contract so workflows can explicitly describe the sensors and terminal signals that define completion. The v1 contract is declarative and preserves existing runtime success behavior.
Area
cdk— infrastructure, handlers, constructsagent— Python runtime / Docker imagecli—bgagentclientdocs— guides or design sources (docs/guides/,docs/design/)tooling— rootmise.toml, scripts, CI workflowsRelated
Closes #517
Changes
convergenceschema and typed workflow models.Validation
mise run builduv run pytest --no-cov tests/test_workflow_loader.py tests/test_workflow_validation_corpus.py tests/test_workflow_tree_valid.py -q(64 passed)Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.