Generate comprehension-first PR explanation reports #139
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools!139
Loading…
Reference in a new issue
No description provided.
Delete branch "vnprc-agent/pr-explain-report-tool"
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?
Implements the reusable PR explanation report generator tracked in #138.
What this adds
allod pr explain <number> --codex|--claude --output <report.html>with explicit provider consent, immutable PR SHA verification, detached analysis checkout, provider-environment sanitization, atomic publication, overwrite protection, dry-run, and one bounded validation-repair pass.forge pr snapshot <number>as a stable read-only JSON interface for same-repository and fork PRs.The narrow-screen alignment bug is fixed structurally: flow connectors are pseudo-elements owned by their destination nodes. The authored glyph changes from
↓to→/←when the shared container has room; no full-width connector box is rotated independently of its node.Human workflow
The command never commits, pushes, edits the PR, or chooses a private publication path.
Validation
allod/tools#136succeeded and produced a 67 KB validated report.Codex runner behavior is fully mocked and tested; no Codex tokens were used after the account quota was exhausted.
pr-explain: add release-review regression tests for issue #138to Generate comprehension-first PR explanation reportsOwner review artifact generated by this PR itself: https://forge.anarch.diy/vnprc/notes/raw/branch/master/allod/reports/pr-explain-report-tool-explanation.html
The report is self-contained and validated. Please review both its explanation and the visual/interaction language; concrete comprehension feedback can drive the next template iteration.
Review finding
High — interrupted runs are reported as success and leak the private job directory.
pr-explain/explain:17-33only installs anEXITtrap and decides whether to preserve/report the job from$?. In Bash, an interactive SIGINT received while waiting for a foreground child does not make the shell exit non-zero by itself; aftercodex/claudeis interrupted, execution can continue (or a later command can become the final status), and an external SIGTERM can terminate the shell with the EXIT trap observing status 0. That means Ctrl-C or service shutdown can leave.allod-pr-explain.*behind without printingdiagnostics preserved, and can in some paths continue toward publication. This is especially problematic because the directory contains the complete diff and review context. Install explicitINT/TERMhandlers that record a non-zero interrupted state (and terminate the provider/process group as needed), make the EXIT cleanup/report path use that state, and add mocked slow-runner tests for both signals verifying non-zero exit, no publication, and an announced preserved directory.reopened as #141
Pull request closed