morningman opened a new pull request, #10:
URL: https://github.com/apache/doris-skills/pull/10
## What
A PR is normally reviewed more than once, but every run of
`doris-repo-review` used to start from zero: the dismissals were re-derived,
the same files were re-read, and *"was this considered last time, and dismissed
with what evidence?"* was unanswerable. This teaches the skill to inherit from
its own earlier runs, and closes three gaps that made a round cost more than it
returned.
## Scripts
| Script | Change |
|---|---|
| `scripts/coverage-report.sh` | **New** (step 6a). Mechanical check of
which changed files no ledger file has mentioned yet — `grep`, not judgement.
Exits 1 while gaps remain, appends to `coverage_history.tsv`. The risk scan and
the merged ledger are excluded: neither is evidence that a file was read. |
| `scripts/save-run-state.sh` | **New** (step 11). Persists the merged
ledger under a stable per-PR state directory (`$DORIS_REVIEW_STATE`, default
`~/.cache/doris-repo-review`) and maintains an `index.tsv` history. Runs for
both verdicts — a REQUEST_CHANGES review has rather more to hand forward than a
pass. |
| `scripts/prepare-review-context.sh` | Emits `coverage_checklist.tsv`,
copies earlier runs of the same PR into `$CTX/prior_runs/`, records `STATE_DIR`
/ `PRIOR_RUNS` in `meta.env`. |
## SKILL.md
- **0.4a** — evidence may live outside the repository: open the pinned jar
under `~/.m2`, the `-sources.jar`, the vendored definition, the JDK class whose
contract a comment claims. Name the artifact and its version so the evidence is
reproducible.
- **2.1 / 3.3a** — prior runs are input, not history. Dismissals carry
forward with their evidence; a rebased head is compared by content (`git show
<old head>:<path>`), not by commit hash.
- **4.1** — every risk item carries a premise and a one-command premise
check, run *before* dispatch. A false premise becomes a row in "Considered and
Dismissed", not a subagent that spends its budget proving the main agent wrong.
- **5.1** — round 1 goes out in two waves. The deduplication rule ("read
every file in `ledger/` first") cannot work in round 1, because the directory
is empty when all agents start at once.
- **7** — a round converges on *no new `Blocker`/`Major` plus clean
coverage*, not on "no new candidates at all". A large PR yields another Minor
for as long as anyone keeps looking; a run that ended that way **converged**
and should not be reported as a failure.
- **9** — documents are named by the reviewed head
(`pr-<N>-review.<head7>.{en,zh}.md`) with symlinks to the newest pair.
`review-docs/` is untracked, so overwriting an earlier run's pair destroys the
only record of what was already dismissed.
- **13** — six new traps drawn from the above.
## References
- `references/prompts.md` — `{TECHNIQUE}` placeholder plus **section D**, a
catalogue of the eight techniques that actually produce findings
(differential-against-base, what-did-this-switch-turn-on, contract boundaries,
doc-versus-code, parallel paths, failure-mode enumeration,
coverage-of-the-gate, completeness critic). A subagent told only "review your
slice" invents a method, and the method it invents finds what a careful author
already found.
- `references/doc-templates.md` — `Builds on` header row, convergence stated
separately from the verdict, three additions to "Coverage and Limits" (outside
evidence, inherited runs, convergence). EN and ZH in step.
## README
The skill's one-line description now names the new mechanics.
## Testing
Documentation and scripts only; nothing here builds Doris or touches a
cluster.
- `bash -n` clean on all five shell scripts; the python embedded in
`coverage-report.sh` parses; `verify-anchors.py` compiles.
- `coverage-report.sh` smoke-tested against a synthetic context: correctly
excludes `00-main-risk-scan.md` from coverage evidence, lists the unmentioned
files, exits 1, writes `coverage_history.tsv`.
- `save-run-state.sh` smoke-tested: writes the run directory and
`index.tsv`, **replaces** rather than appends the row when re-run against an
unchanged head, and rejects a bad `--verdict` / malformed `--findings` with
exit 2.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01GWPzxwYKXgPKrsXVSazJnr
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]