P1: Remove first-class deployment semantics from cli-guard; preserve generic stepflow #190
Labels
No labels
burndown-2026-06
sunday-sprint
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/umbra#190
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision
This is a P1 removal, not an open-ended design exercise. cli-guard must stop exposing deployment policy as first-class engine behavior. The generic machinery underneath it remains valuable and must be preserved.
This issue does not delete stepflow. Keep the reusable core: ordered step execution, explicit data/output threading, deterministic planning, and fail-closed resolution of every concrete call. Whether that generic package is extracted later is separate from this urgent cleanup.
Remove from the cli-guard model
Compensation/Compensateand automatic reverse-order rollback.Canary, polling windows, andDegradedWhen/HealthyWhendeployment verdicts.These policies may be authored later as ordinary pipeline steps or owned by infrastructure scripts. cli-guard should authorize each concrete call, not understand why a caller considers it a health probe or rollback.
Current source evidence
Current main still carries the domain model end to end:
http/guardfile/guardfile.goparsesCompensationandCanary.http/specverb/action_call.goresolves them and callsstepflow.Runwith a canary.pkg/stepflow/stepflow.goowns the reverse compensation stack, health polling, and deployment verdict loop.http/specverb/describe.goadvertises rollback and canary behavior as part of the generated product surface.The original Ward Eco hardcoded-script consumer described in the earlier issue text is no longer present on current Ward main. Treat that as historical motivation, not as a migration dependency for this patch.
Acceptance
Boundary
Preserve stepflow as a generic sequencing primitive. Do not replace this work with a broad package extraction or a new deployment framework. The P1 outcome is the smaller trustworthy cli-guard boundary.
Parent product context: cli-guard#239.
cli-guard grew an ops-orchestration engine (stepflow health/canary/rollback) it should not own; eco-server spec reaches infra by hardcoded host pathto P1: Remove first-class deployment semantics from cli-guard; preserve generic stepflowCompatibility check: Forgejo repository search found only Ward as a live in-forge consumer. Ward main pins cli-guard v0.103.0 in go.mod; its tracked tree has no Guardfile/KDL consumer configuration, so this removal has no observed live Guardfile migration impact. Downstream Go callers using the removed exported deployment API will need to move that policy into their own pipeline steps.
WARDED_WORKFLOW: coilyco-flight-deck/cli-guard#241
details
Review gate: intentionally skipped (temporary Ward default pending brokered QA).
workflow: pull-request-and-merge; review summary: intentionally skipped (temporary Ward default pending brokered QA)
Felt: focused boundary cleanup; the shared sequence core stayed small and direct.
Confidence: high — PR #241 merged after green test, lint, and secrets checks.
Surprise: local MkDocs was unavailable, while repository documentation-link checks passed.
Follow-up: consumers that relied on the removed exported deployment API should own that policy in their pipeline steps.
WARDED_WORKFLOW: reservation-released
release details
Run finished with
WARDED_WORKFLOW: https://forgejo.coilysiren.me/coilyco-flight-deck/cli-guard/pulls/241.ward container reapreleased containerengineer-codex-cli-guard-190(--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs--override-reservation.Outcome summary: coilyco-flight-deck/cli-guard#241
— Codex, via
ward agent