carlos-algms / agentic-self-review
Reviews a diff before commit: tests can fail, routed rules hold for changed files, unchanged siblings still hold. Runs no full gate. Use to review a diff: yours, a sub-agent's, or as plan-review loop reviewer.
Self-review
One review per diff. If this diff already passed a review and no file changed
since, do not review it again.
Run read-only commands only, plus make test-file FILE=<path> for the revert
check in step 1. This review trusts the gates that already passed: never runmake validate, make test, lint, or types.
Checklist
Create a task list with these items. Mark each completed only when it is done
for every changed file.
Tests can fail. For each new or changed assertion, name the value that
would make it fail. None reachable -> the assertion is decoration. For a
bug-fix test, undo the fix, runmake test-file FILE=<path>, confirm red,
restore the fixObservable effect. Does an assertion read a private field that both the
correct and the broken branch write? Then it cannot fail. Assert the public
effect insteadAsync. No assertion inside a
vim.schedule,vim.defer_fn, timer, or
coroutine callback. Store the value, assert in theit()bodyCleanup. Stubs reverted before assertions or in
after_each; no
discardedpcallresult; teardown compares handle sets, not countsRule sweep. For each changed file, open every doc its router row names.
Check every rule in those docs against the diff, not only the rules you
remember. Include test mocks: they follow the same rules as production codeNew rules. If the diff adds or edits a rule in any
AGENTS.mdor skill,
check that rule against every function in the same diff. A new runtime rule
must cite a testSiblings. For each fixed or guarded path, read the unchanged sibling
paths in the same function and its callers (rgthe symbol). Does the
change's premise make any unchanged line wrong? Apcallin a callee hides
a violation: no error, no failing test. Do not treat a caught error as
handled until you know what it hidTransitive context. For code that runs in a libuv callback, follow every
call it makes. The fast-event ban applies to the whole call chainDocs drift. For each symbol or behavior the diff changes,
rgit acrossdocs/,doc/,README.md,CONTRIBUTING.md, everyAGENTS.md, and.agents/skills/. Re-read each hit against the code. One contract stated in
several places drifts in one copyRule gaps. Every gap found goes in the
Rule gapslist of your final
report: file, rule, what happened. The agent that receives the report
appends it torules-report.md. A gap in an area you own is fixed in the
same change, per skillagentic-learn
Output
Report findings as file:symbol - problem - fix. Fix them, or hand them back
to the agent that owns the commit. Report "no findings" when there are none.