Skip to content

fix: import current code2llm HEALTH alerts (ticket-206) - #251

Merged
ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/206-code2llm-health-import
Oct 8, 2026
Merged

ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/206-code2llm-health-import

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Current code2llm analysis reports were silently imported as zero tickets because HEALTH parsing recognized only legacy CC rows. This repair imports GOD modules with concrete paths and DUP/CYCLE alerts as advisory triage, restricts parsing to HEALTH, preserves legacy NEXT/CC fields and supplies names accepted by Planfile persistence. Records retain report digests and stable dedupe labels without acquiring an automatic executor.

Validation:17 focused importer/store tests; managed governance0errors/0warnings; Ruff lint and formatting; actual supplied report imported and persisted20 records(7 GOD,1 DUP,12 CYCLE) in an isolated store. Native ticket206, frozen head 6cf804a. Automatic quality editing remains gated by native protected admission and a scoped dispatcher.

@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 6cf804a2c7f2851502964b1822506bb05bf03c6c.

Ticket: ticket-206
Correlation ID: local-semcod-planfile-pr-251-ticket-206
Model: openai/cursor-auto
Reviewed diff chunks: 2
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 2 diff chunk(s). The PR updates the code2llm importer to parse current HEALTH alerts (GOD, DUP, CYCLE) into actionable tickets, resolving the issue where reports were silently dropped. It preserves legacy CC and NEXT import behavior and implements appropriate path validation to prevent traversal. Ticket metadata correctly reflects bounded implementation goals. | The test coverage is comprehensive and validates normal operation, safe handling of legacy and different metric categories (NEXT, CC), parsing isolation (ignoring non-HEALTH categories), path safety against directory traversal, and error conditions. All required protected checks passed.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.

Actual PR impact radar

Exact range: a5bc9be973a2eca012590c65d271ac8286622e35...6cf804a2c7f2851502964b1822506bb05bf03c6c
Change digest: 302a1b072edb07ea29de70083b139750f1298184582984b546b002cbd316c6ef
Score: 60/100 (L), estimated 78 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":373,"base_sha":"a5bc9be973a2eca012590c65d271ac8286622e35","binary_files":0,"categories":{"code":1,"configuration":1,"docs":1,"tests":1},"change_digest":"302a1b072edb07ea29de70083b139750f1298184582984b546b002cbd316c6ef","comparison":"a5bc9be973a2eca012590c65d271ac8286622e35...6cf804a2c7f2851502964b1822506bb05bf03c6c","deletions":36,"file_count":4,"files":["planfile/importers/code2llm_importer.py","project/ticket-206/README.md","project/ticket-206/intent.json","tests/test_code2llm_importer.py"],"head_sha":"6cf804a2c7f2851502964b1822506bb05bf03c6c","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":2,"scope":4,"uncertainty":3,"validation":1},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":78,"within_budget":false},"impact":{"components":["DUP","NEXT","governance0errors","importer","planfile","project","tests"],"files":["DUP/CYCLE","NEXT/CC","governance0errors/0warnings","importer/store","planfile/importers/code2llm_importer.py","project/ticket-206/README.md","project/ticket-206/intent.json","tests/test_code2llm_importer.py"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":60,"split":{"parts":[{"estimated_minutes":10,"name":"Implement DUP","scope":["DUP"]},{"estimated_minutes":10,"name":"Implement NEXT","scope":["NEXT"]},{"estimated_minutes":10,"name":"Implement governance0errors","scope":["governance0errors"]},{"estimated_minutes":10,"name":"Implement importer","scope":["importer"]},{"estimated_minutes":10,"name":"Implement planfile","scope":["planfile"]},{"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-206"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-206: fix: import current code2llm HEALTH alerts (ticket-206)</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,30 105,51 79,85 59,71 48,59" 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 · 78m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-206-6751
TICKET ticket-206
HEAD_SHA 6cf804a2c7f2851502964b1822506bb05bf03c6c
CORRELATION_ID local-semcod-planfile-pr-251-ticket-206
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["notify=PASS","governance / remote lifecycle=PASS","governance / enforce=PASS","ci-loop=PASS","test (3.13)=PASS","test (3.10)=PASS","freshness=PASS","onedev/local-verify=PASS"]
INPUT required_checks = ["ci-loop","notify","freshness","governance / remote lifecycle","governance / enforce","test (3.10)","test (3.13)","onedev/local-verify"]
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/planfile","pull_request":251,"head_sha":"6cf804a2c7f2851502964b1822506bb05bf03c6c","base_sha":"a5bc9be973a2eca012590c65d271ac8286622e35","diff_sha256":"c773673b19baf0d6f7bf8702f8187901a7ed8276932ef208277e5e017a7e477c"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["planfile/importers/code2llm_importer.py","project/ticket-206/README.md","project/ticket-206/intent.json","tests/test_code2llm_importer.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":"a5bc9be973a2eca012590c65d271ac8286622e35","head_sha":"6cf804a2c7f2851502964b1822506bb05bf03c6c","change_digest":"302a1b072edb07ea29de70083b139750f1298184582984b546b002cbd316c6ef","score":60,"complexity":"L","estimated_minutes":78,"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 "openai/cursor-auto"
ASSERT VERDICT_AUTHORITY != "ADVISORY"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit f1b462d into main Oct 8, 2026
8 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/206-code2llm-health-import branch October 8, 2026 13:52
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