This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 0626d59e1cc4448ff8cc6825fd3ade86325eef71 Author: Stephen Mallette <[email protected]> AuthorDate: Fri Oct 9 15:44:19 2026 -0400 Treat tinker-review coverage numbers as a lower bound Coverage gaps count only tests the static call graph can see, so code tested through the graph API or Gherkin shows as untested. The playbook no longer reports the count as a finding. Assisted-by: Claude Code:claude-opus-5-5 --- .skills/tinker-review/playbooks/general.md | 8 ++++++-- .skills/tinker-review/scripts/patterns/coverage-gaps.js | 5 +++++ .skills/tinker-review/scripts/patterns/orphans.js | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.skills/tinker-review/playbooks/general.md b/.skills/tinker-review/playbooks/general.md index d044c93a67..f55d59b668 100644 --- a/.skills/tinker-review/playbooks/general.md +++ b/.skills/tinker-review/playbooks/general.md @@ -91,8 +91,12 @@ SKILL.md step 4 for how it is briefed and isolated. It never gets the beads: the author's recorded reasoning is as much inside knowledge as the source code. ## Interpret -- `checks.coverageGaps` / `checks.orphans` — missing tests on changed code; a - test-quality concern, weighed alongside the Inspect smells. +- `checks.coverageGaps` / `checks.orphans` — a lower bound from the static call + graph, not a coverage measurement: code tested through GraphFactory, the graph + API, a strategy or the Gherkin suite counts as untested. Never report the count + as a finding. Name a gap only after reading the test tree and finding no test + that reaches the changed behavior, directly or indirectly; then weigh it as a + test-quality concern alongside the Inspect smells. - `functionalTest` observations (if testing ran) — a failing or surprising result is a finding graded by severity; a documented-but-unusable feature is blocking. Adversarial gaps the subagent found (unclear errors, silent wrong answers) are diff --git a/.skills/tinker-review/scripts/patterns/coverage-gaps.js b/.skills/tinker-review/scripts/patterns/coverage-gaps.js index 7cbd763665..7070c81fc9 100644 --- a/.skills/tinker-review/scripts/patterns/coverage-gaps.js +++ b/.skills/tinker-review/scripts/patterns/coverage-gaps.js @@ -39,6 +39,11 @@ import { changedMeaningful } from "../graph/change-levels.js"; * @property {number} linesEnd * * @typedef {Object} CoverageGapResult + * A lower bound on test coverage, not a measurement: a `tests` edge exists only + * where a test calls the function by name in the static call graph. Code reached + * through GraphFactory, the Structure/Traversal API, a strategy or the Gherkin + * suite is tested but listed here as uncovered, so a long list for such code is + * expected and is never a finding on its own. * @property {UncoveredFunction[]} uncovered changed functions with no incoming `tests` edge * @property {number} totalChanged changed functions considered * @property {number} totalCovered changed functions that do have a test diff --git a/.skills/tinker-review/scripts/patterns/orphans.js b/.skills/tinker-review/scripts/patterns/orphans.js index 15bf96b07c..e7797efc43 100644 --- a/.skills/tinker-review/scripts/patterns/orphans.js +++ b/.skills/tinker-review/scripts/patterns/orphans.js @@ -43,6 +43,9 @@ import { changedAny } from "../graph/change-levels.js"; * @property {string} missingEdge the expected relationship that is absent (e.g. "in:tests") * * @typedef {Object} OrphanResult + * For `expectedEdge: "tests"` this has the same blind spot as CoverageGapResult: + * only name-resolved static calls from tests count, so code tested indirectly + * (through GraphFactory, the graph API, Gherkin) shows as orphaned. * @property {Orphan[]} orphaned vertices missing the expected relationship * @property {number} totalChecked vertices examined * @property {number} totalOrphaned orphaned.length
