Skip to content

feat(delivery): qualify canonical release checkout preflight and exact-head delivery (ticket-218) - #221

Merged
ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/218-canonical-release-preflight
Oct 28, 2026
Merged

ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/218-canonical-release-preflight

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Summary

  • Qualify DeliveryPolicy(mode="direct-main") for canonical Worktrees v5 release checkouts (<primaryCheckout>/.worktrees/ticket-NNN--<slug>) with explicit --ticket ticket-NNN, relative .git link (linkMode=relative), symlink-free path components, non-duplicate worktree registration, clean release working tree, exact authoritative remote base (HEAD == origin/<base_branch>), active wellmanifest.change-lease/v1 lease, and independent terminal merge receipt (.git/new-project/terminal-receipts.json).
  • Preserve dirty or foreign-branch primary checkouts untouched during canonical release preflight and publication.
  • Enforce read-only bootstrap, post-test exact-head/lease/receipt revalidation, and tag-only remote push (refs/tags/v<version>) in execute_push_workflow, supporting idempotent existing-tag-release-repair without moving main or pushing the ticket branch.

Closes #163

@ifuri-validator-agent ifuri-validator-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validator approval after policy checks for exact head def1c2114da2a51b6784e2e098214bf01a0d51f9.

Ticket: ticket-218
Correlation ID: local-semcod-goal-pr-221-ticket-218
Model: ollama/qwen3-coder:30b
Advisory LLM review: LLM_UNAVAILABLE
Reason: LLM response missing keys: summary, verdict
This approval rests on the deterministic checks alone; no advisory opinion was recorded for this head.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.

Actual PR impact radar

Exact range: ef52387dcc69687aca65e06fb5ed5372d0104ae4...def1c2114da2a51b6784e2e098214bf01a0d51f9
Change digest: dbf5c8fda183bce15b06062d9931e56c36a3db023907c46e273550a8255446d8
Score: 72/100 (L), estimated 123 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":1892,"base_sha":"ef52387dcc69687aca65e06fb5ed5372d0104ae4","binary_files":0,"categories":{"code":2,"configuration":1,"docs":2,"tests":2},"change_digest":"dbf5c8fda183bce15b06062d9931e56c36a3db023907c46e273550a8255446d8","comparison":"ef52387dcc69687aca65e06fb5ed5372d0104ae4...def1c2114da2a51b6784e2e098214bf01a0d51f9","deletions":20,"file_count":7,"files":["goal/governance/delivery.py","goal/push/core.py","project/TICKETS.md","project/ticket-218/README.md","project/ticket-218/intent.json","tests/test_governance_delivery.py","tests/test_release_only_delivery.py"],"head_sha":"def1c2114da2a51b6784e2e098214bf01a0d51f9","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":3,"scope":5,"uncertainty":3,"validation":2},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":123,"within_budget":false},"impact":{"components":["exact-head","git","goal","project","refs","tests","wellmanifest.change-lease","worktrees"],"files":["exact-head/lease/receipt","git/new-project/terminal-receipts.json","goal/governance/delivery.py","goal/push/core.py","project/TICKETS.md","project/ticket-218/README.md","project/ticket-218/intent.json","refs/tags/v","tests/test_governance_delivery.py","tests/test_release_only_delivery.py","wellmanifest.change-lease/v1","worktrees/ticket-NNN--"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":72,"split":{"parts":[{"estimated_minutes":15,"name":"Implement exact-head","scope":["exact-head"]},{"estimated_minutes":15,"name":"Implement git","scope":["git"]},{"estimated_minutes":15,"name":"Implement goal","scope":["goal"]},{"estimated_minutes":15,"name":"Implement project","scope":["project"]},{"estimated_minutes":15,"name":"Implement refs","scope":["refs"]},{"estimated_minutes":15,"name":"Validate and project to trackers","scope":["tests","planfile","github/gitlab/jira projections"]}],"reason":"estimated_minutes_exceed_budget","recommended":true},"standards":[{"id":"wellmanifest/dsl","revision":"6c60fc4e0dd1f1bb74f46a7745e28019908d1203","version":"0.1.0-dev"},{"id":"wellmanifest/ticket-lifecycle","revision":"5bf581907a87b46a13a73e6c033d3abe4d9a306f","version":"0.1.0-dev"},{"id":"wellmanifest/git-lifecycle","revision":"7d77d4b7af57e69bc75c3a0290b3a4805c5c4438","version":"0.2.0-dev"},{"id":"wellmanifest/logs","revision":"48c284ef7a069055c0bcb6b900147ce5e65f8b43","version":"0.3.0"}],"ticket_ref":"ticket-218"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-218: feat(delivery): qualify canonical release checkout preflight and exact-head delivery (ticket-218)</title><rect width="128" height="128" rx="12" fill="#f8fafc"/><g stroke-width="1"><polygon points="64,55 72,61 69,71 59,71 56,61" fill="none" stroke="#d7dde5"/><polygon points="64,47 80,59 74,78 54,78 48,59" fill="none" stroke="#d7dde5"/><polygon points="64,38 89,56 79,85 49,85 39,56" fill="none" stroke="#d7dde5"/><polygon points="64,30 97,53 84,92 44,92 31,53" fill="none" stroke="#d7dde5"/><polygon points="64,21 105,51 89,99 39,99 23,51" fill="none" stroke="#d7dde5"/><line x1="64" y1="64" x2="64" y2="21" stroke="#aab4c0"/><line x1="64" y1="64" x2="105" y2="51" stroke="#aab4c0"/><line x1="64" y1="64" x2="89" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="39" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="23" y2="51" stroke="#aab4c0"/></g><polygon points="64,21 105,51 79,85 54,78 39,56" fill="#fb923c" fill-opacity="0.45" stroke="#c2410c" stroke-width="2"/><circle cx="64" cy="64" r="3" fill="#c2410c"/><g font-family="sans-serif" font-size="7" fill="#334155"><text x="64" y="11" text-anchor="middle">SCO</text><text x="114" y="48" text-anchor="middle">COU</text><text x="95" y="107" text-anchor="middle">UNC</text><text x="33" y="107" text-anchor="middle">VAL</text><text x="14" y="48" text-anchor="middle">DEL</text></g><text x="64" y="124" text-anchor="middle" font-family="sans-serif" font-size="8" fill="#0f172a">L · 123m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-218-4915
TICKET ticket-218
HEAD_SHA def1c2114da2a51b6784e2e098214bf01a0d51f9
CORRELATION_ID local-semcod-goal-pr-221-ticket-218
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["governance / remote lifecycle=PASS","governance / enforce=PASS","test (3.13)=PASS","test (3.12)=PASS","onedev/local-verify=PASS"]
INPUT required_checks = ["onedev/local-verify","test (3.12)","test (3.13)","governance / remote lifecycle","governance / enforce"]
INPUT required_checks_source = "protected registry + GitHub applied rules (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/goal","pull_request":221,"head_sha":"def1c2114da2a51b6784e2e098214bf01a0d51f9","base_sha":"ef52387dcc69687aca65e06fb5ed5372d0104ae4","diff_sha256":"2a501a2995bbdbd12eddb646ca175d21c16a654147badce649494f34b68cba25"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["goal/governance/delivery.py","goal/push/core.py","project/TICKETS.md","project/ticket-218/README.md","project/ticket-218/intent.json","tests/test_governance_delivery.py","tests/test_release_only_delivery.py"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"not_required","reason":null,"review_sha256":null,"unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"ef52387dcc69687aca65e06fb5ed5372d0104ae4","head_sha":"def1c2114da2a51b6784e2e098214bf01a0d51f9","change_digest":"dbf5c8fda183bce15b06062d9931e56c36a3db023907c46e273550a8255446d8","score":72,"complexity":"L","estimated_minutes":123,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "" MODEL "ollama/qwen3-coder:30b"
ASSERT VERDICT_AUTHORITY != "ADVISORY"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit 490f405 into main Oct 28, 2026
5 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/218-canonical-release-preflight branch October 28, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Preflight worktree branch PR i exact-head delivery

1 participant