Skip to content

ci: add automatic Planfile GitHub synchronization - #15

Merged
ifuri-validator-agent[bot] merged 3 commits into
mainfrom
ticket/015-planfile-sync
Sep 16, 2026
Merged

ifuri-validator-agent[bot] merged 3 commits into
mainfrom
ticket/015-planfile-sync

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Adds automatic Planfile GitHub synchronization for this repository.

The caller is pinned to semcod/planfile@v0.1.126 and runs hourly, on
relevant Planfile changes, and manually. Governance evidence is in the
implementation ticket on this branch.

@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 28d9454cc66bfc287c00b579a73b929f349eec6a.

Ticket: ticket-015
Correlation ID: local-semcod-estimation-pr-15-ticket-015
Model: zai/glm-5.3
Reviewed diff chunks: 1
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 1 diff chunk(s). Adds a new GitHub Actions caller workflow for Planfile GitHub sync, pinned by commit SHA to semcod/planfile v0.1.126, plus ticket-015 governance/evidence files and documentation updates. Required checks (test, windows-governance) pass; observational checks also pass. The workflow uses least-privilege permissions (contents: read, issues: write) and runs on schedule, push to main with path filters, and manual dispatch only.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Semantic review prerequisite: satisfied; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.

Actual PR impact radar

Exact range: e207b5182d289bd2db2b33b2b6d7cd105551cf30...28d9454cc66bfc287c00b579a73b929f349eec6a
Change digest: 9095734cc10607ea8d2b909a9c81ddb50d3cfb3257b89200178c451d4e95a68a
Score: 68/100 (L), estimated 68 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":201,"base_sha":"e207b5182d289bd2db2b33b2b6d7cd105551cf30","binary_files":0,"categories":{"code":1,"configuration":2,"docs":6},"change_digest":"9095734cc10607ea8d2b909a9c81ddb50d3cfb3257b89200178c451d4e95a68a","comparison":"e207b5182d289bd2db2b33b2b6d7cd105551cf30...28d9454cc66bfc287c00b579a73b929f349eec6a","deletions":0,"file_count":9,"files":["github/workflows/planfile-github-sync.yml","TODO.md","project/TICKETS.md","project/ticket-015/README.md","project/ticket-015/ai-codex-logs.txt","project/ticket-015/ai-codex.md","project/ticket-015/changelog.md","project/ticket-015/intent.json","project/ticket-015/preprompt.md"],"head_sha":"28d9454cc66bfc287c00b579a73b929f349eec6a","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":3,"scope":5,"uncertainty":3,"validation":1},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":68,"within_budget":false},"impact":{"components":["github","project","repository-root","semcod"],"files":["TODO.md","github/workflows/planfile-github-sync.yml","project/TICKETS.md","project/ticket-015/README.md","project/ticket-015/ai-codex-logs.txt","project/ticket-015/ai-codex.md","project/ticket-015/changelog.md","project/ticket-015/intent.json","project/ticket-015/preprompt.md","semcod/planfile@v0.1.126"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":68,"split":{"parts":[{"estimated_minutes":15,"name":"Implement github","scope":["github"]},{"estimated_minutes":15,"name":"Implement project","scope":["project"]},{"estimated_minutes":15,"name":"Implement repository-root","scope":["repository-root"]},{"estimated_minutes":15,"name":"Implement semcod","scope":["semcod"]},{"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-015"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-015: ci: add automatic Planfile GitHub synchronization</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 59,71 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 · 68m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-015-5690
TICKET ticket-015
HEAD_SHA 28d9454cc66bfc287c00b579a73b929f349eec6a
CORRELATION_ID local-semcod-estimation-pr-15-ticket-015
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["test=PASS","governance / remote lifecycle=PASS","windows-governance=PASS","governance / enforce=PASS"]
INPUT required_checks = ["test","windows-governance"]
INPUT required_checks_source = "protected registry (governance/required-checks.json)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/estimation","pull_request":15,"head_sha":"28d9454cc66bfc287c00b579a73b929f349eec6a","base_sha":"e207b5182d289bd2db2b33b2b6d7cd105551cf30","diff_sha256":"c16e27281223accf50c57dd4b0419b8ff336d6400810655afa74c664d07ef0ef"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":true,"critical_paths":[".github/workflows/planfile-github-sync.yml"],"observed_paths":[".github/workflows/planfile-github-sync.yml","TODO.md","project/TICKETS.md","project/ticket-015/README.md","project/ticket-015/ai-codex-logs.txt","project/ticket-015/ai-codex.md","project/ticket-015/changelog.md","project/ticket-015/intent.json","project/ticket-015/preprompt.md"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"satisfied","reason":null,"review_sha256":"71557846a0f35bec7a589b547dc7294dc6d08794191f0203788377d001e890bb","unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"e207b5182d289bd2db2b33b2b6d7cd105551cf30","head_sha":"28d9454cc66bfc287c00b579a73b929f349eec6a","change_digest":"9095734cc10607ea8d2b909a9c81ddb50d3cfb3257b89200178c451d4e95a68a","score":68,"complexity":"L","estimated_minutes":68,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "APPROVE" MODEL "zai/glm-5.3"
ASSERT VERDICT_AUTHORITY != "ADVISORY"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit bc56f74 into main Sep 16, 2026
4 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/015-planfile-sync branch September 16, 2026 12:26
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.

1 participant