Skip to content

A tracker reference in code is refused by a set of its own, and a documentation line naming a record is reported under one id - #205

Merged
HackingGate merged 1 commit into
mainfrom
tracker-references-in-code-are-a-set-of-their-own-and-a-docs-line-is-reported-once
Sep 20, 2026
Merged

HackingGate merged 1 commit into
mainfrom
tracker-references-in-code-are-a-set-of-their-own-and-a-docs-line-is-reported-once

Conversation

@HackingGate

Copy link
Copy Markdown
Owner

The 1.17.0 release took the documentation glob off no-task-tracker-references
and let it read every tracked file, in every repository inheriting
process-residue, with no diff in any of them. Two consumers under one
superproject measured the cost, 27 findings on a pointer bump and 276 across
source, packaging and scripts on a commit that touched none of the reported
lines, and both shadowed the rule with a docs-only copy under the same id; a
third disabled it in every policy it has. Each was a consumer choosing between
a rule that refuses every commit and no rule at all, because a scope is not
something [inherit] lets a repository choose: it takes sets whole and disables
rules by id.

The docs glob is back on no-task-tracker-references, and the every-file scope
is a new bundled set, code-residue, carrying one rule,
no-task-tracker-references-in-code, with the same expression and an exclude
list that names the three documentation globs beside the test and fixture
exclusions the docs rule already had. A set is the opt-in unit, which is why
the code scope is a set and not a second rule inside process-residue; its
header carries the measurement above and says who takes it, a tree whose
comments already cite durable contracts. A line is under exactly one of the
two rules whichever set a repository inherits, and the corpus proves that with
both sets loaded: a Markdown line is reported once under the docs id and a
Rust line once under the code id.

Inside process-residue, no-process-history-references had two arms the
tracker rule also matched, the tracker URL and the word issue or pr before a
hash number, so a documentation line in either form was reported twice under
two ids, and the workspace policy that noticed disabled one of the rules. Both
arms are dropped; the history rule keeps the narrative form alone. The
capitalised forms, Issue and PR before a hash number, had been caught only by
the history rule's case-insensitive arm, since the tracker rule's prose-word
arm reads lowercase words only, so the tracker rule now carries a
case-insensitive arm for those two words; every line the history rule refused
before is refused by exactly one of the two rules after, and the corpus holds
a sample for each.

This repository takes code-residue itself, having been clean under the
every-file scope since it shipped. Until the release that carries the set is
the one installed, a shim built from an earlier release fails closed on this
policy, which is the same skew comment-facts was taken through.

Closes #195

@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 33 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 97ef39f2-01f0-43e4-bed4-7950247b61c9

📥 Commits

Reviewing files that changed from the base of the PR and between 48077f3 and 5c3569a.

📒 Files selected for processing (7)
  • docs/REFERENCE.md
  • policy/base/code-residue.toml
  • policy/base/process-residue.toml
  • policy/base/sets.lock.json
  • policy/principles.toml
  • src/config.rs
  • tests/base_set_corpus.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

codecov-commenter commented Sep 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.74%. Comparing base (48077f3) to head (5c3569a).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #205   +/-   ##
=======================================
  Coverage   93.74%   93.74%           
=======================================
  Files          44       44           
  Lines       17796    17796           
=======================================
  Hits        16683    16683           
  Misses       1113     1113           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…umentation line naming a record is reported under one id

The 1.17.0 release took the documentation glob off no-task-tracker-references
and let it read every tracked file, in every repository inheriting
process-residue, with no diff in any of them. Two consumers under one
superproject measured the cost, 27 findings on a pointer bump and 276 across
source, packaging and scripts on a commit that touched none of the reported
lines, and both shadowed the rule with a docs-only copy under the same id; a
third disabled it in every policy it has. Each was a consumer choosing between
a rule that refuses every commit and no rule at all, because a scope is not
something [inherit] lets a repository choose: it takes sets whole and disables
rules by id.

The docs glob is back on no-task-tracker-references, and the every-file scope
is a new bundled set, code-residue, carrying one rule,
no-task-tracker-references-in-code, with the same expression and an exclude
list that names the three documentation globs beside the test and fixture
exclusions the docs rule already had. A set is the opt-in unit, which is why
the code scope is a set and not a second rule inside process-residue; its
header carries the measurement above and says who takes it, a tree whose
comments already cite durable contracts. A line is under exactly one of the
two rules whichever set a repository inherits, and the corpus proves that with
both sets loaded: a Markdown line is reported once under the docs id and a
Rust line once under the code id.

Inside process-residue, no-process-history-references had two arms the
tracker rule also matched, the tracker URL and the word issue or pr before a
hash number, so a documentation line in either form was reported twice under
two ids, and the workspace policy that noticed disabled one of the rules. Both
arms are dropped; the history rule keeps the narrative form alone. The
capitalised forms, Issue and PR before a hash number, had been caught only by
the history rule's case-insensitive arm, since the tracker rule's prose-word
arm reads lowercase words only, so the tracker rule now carries a
case-insensitive arm for those two words; every line the history rule refused
before is refused by exactly one of the two rules after, and the corpus holds
a sample for each.

This repository takes code-residue itself, having been clean under the
every-file scope since it shipped. Until the release that carries the set is
the one installed, a shim built from an earlier release fails closed on this
policy, which is the same skew comment-facts was taken through.

Closes #195
@HackingGate
HackingGate force-pushed the tracker-references-in-code-are-a-set-of-their-own-and-a-docs-line-is-reported-once branch from 26201e2 to 5c3569a Compare September 20, 2026 07:21
@HackingGate
HackingGate merged commit ff7d99f into main Sep 20, 2026
11 checks passed
@HackingGate
HackingGate deleted the tracker-references-in-code-are-a-set-of-their-own-and-a-docs-line-is-reported-once branch September 20, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants