- check_budget.py escalated a hard index-row violation to 'warn' on both branches, so INDEX_ROW_HARD could never fail anything. It fails now, and tests/unit/test_budget_measurement.py pins both thresholds. - The corpus note counted scripts/__pycache__/*.pyc, so the same commit reported 27 scripts after the suite had run and 16 on a clean checkout. - TOKENS_PER_CHAR is re-derived from a measurement (26,795 chars -> 6,065 tokens = 4.418); the comment's old figure and its arithmetic were both wrong for this file. - check_repo.py's yaml sentinel carries the type ignore, so mypy is clean with PyYAML installed as well as without it. - The CPUID test now skips with the probe's own note on a host without CPUID instead of failing, and pytest.ini points at tests/README.md, which exists, instead of an EXTENSION file that never did. Tooling: .flake8 (a measured 120-column limit), .gitattributes, .gitignore and .github/workflows/ci.yml (the five gates, the suite on 3.11-3.14 and a lint job), which is what CONTRIBUTING.md already claimed CI runs. The pull-request template it refers to now exists. Content: pitfalls P26-P34 -- the analysis-level failures the catalogue was missing (sampling read as observation, a self-built parser trusted, a verification that could not have failed, a shell-mangled command line) -- registered in the symptom index and its routing mirror. FINDINGS F11-F15 record the defects above. Tests: the coverage guard derives its subject from scripts/ rather than a hand-written list, pe_triage.py and pe_diff.py gain their first tests, and plan.py / preflight.py are declared uncovered with reasons.
3.6 KiB
3.6 KiB
What this changes
One paragraph. What changes, and what a reader can do afterwards that they could not before. If the change is documentation only, say so here and again in the effect surface.
Evidence
Every command below was run in this checkout. Paste the output that decides the question; a summary
of confidence is not a result, and should pass is not a run.
python check_repo.py
python check_refs.py
python check_budget.py
python check_routing.py
python check_commands.py
python -m pytest -q
mypy *.py skills/exe-reverse/scripts/*.py
flake8 *.py skills/exe-reverse/scripts/*.py
Output that matters:
<paste the decisive lines, and say what they decide>
Claims added or changed:
| Claim | Grade | What it rests on (command + result) |
|---|---|---|
| observed / inferred / unverified |
- No claim is graded above the weakest step in its chain.
- Every
observedhas the command and the output beside it. - Every negative result names the range, the pattern and what was searched. A search that returned nothing is evidence about the search.
- Every limit cites the measurement or the constraint that set it, rather than a preference.
Effect surface
Check each line that applies. Documentation only is a claim, so make it explicitly rather than
leaving the list blank.
SKILL.md— the budget gate output is attached above; it is loaded in full on activation.references/— a new or renamed file is registered inreferences/routing.md, reachable fromSKILL.mdor the README, and carries a navigable head if it passes 100 lines.references/pitfalls.md— a new entry takes the next number and keeps the same shape.scripts/— a new script is in the routing script table, answers--helpon a bare interpreter, and its argument table matches every command the docs tell a reader to run.tests/— a new script is added toconftest.SCRIPT_FILESor declared uncovered with a reason intests/cli/test_cli_coverage.py; a fixed defect has a test that fails without it.evidence/anddocs/tool-verification/— a capability claim moved in both, and the measurement record quotes the command it rests on.README.mdandREADME.zh-CN.md— the two stay in step.docs/tool-verification/FINDINGS.md— a defect found by the repository's own tools is recorded with its symptom, root cause, how it surfaced, and the check that now catches it.- Documentation only — no behaviour changed, and the gates above still pass.
Readiness declaration (human owner only)
An agent does not fill this section in. Leave it blank; the reviewer completes it.
- The change belongs in this repository rather than in a fork or a downstream project.
- The boundary of what was not exercised is stated, not implied: every route that needs a debugger, a driver, a kernel component, a hypervisor, test signing or a second machine is named as not run here.
- The serialized evidence is committed, and nothing in it carries target identity or a machine-specific path.
- The commit is ready to be fast-forwarded onto
main.