Skip to content

no-task-tracker-references reports every hit no-process-history-references already refuses, and since 1.17.0 it reads every file, so consumers disable it #195

Description

@HackingGate

What consumers do with the rule

Across a fleet of about 90 policy files, 14 list no-task-tracker-references
in inherit.disabled_rules and 3 more shadow it with a same-id copy that
restates the pattern to narrow files.exclude. The comments give three
recurring reasons. The first is duplication, from a workspace policy:

# Disabled because no-process-history-references, inherited from the
# same set, already refuses every linking form this one does ... and
# running both reports each hit twice.

The second is the 1.17.0 widening. Two consumers under one superproject:

# uphold 1.17.0 widened no-task-tracker-references from Markdown, reST
# and plain text to every file in the tree ... the first run under the
# wider glob reported 27 of them on a pointer bump that touched none.

and a sibling counted 276 across src/, packaging and scripts on a commit
that touched none of them. Both kept the rule as a docs-only copy.

The third is a superproject whose source comments cite an issue as the
place a measurement lives; it disables both rules in 9 policy files with
the same sentence: "An issue reference in this tree is an evidence anchor
rather than tracker state leaking into prose."

Why

policy/base/process-residue.toml line 119 onward: no-task-tracker-references
has files.include = ["."] and no files.glob since commit 0f79c26 (#158,
shipped in 1.17.0), which removed files.glob = ["*.md", "*.rst", "*.txt"].
no-process-history-references at line 134 still carries that glob. The
two overlap on the github.com/<owner>/<repo>/(issues|pull)/N URL and on
issue #N, which the tracker rule's prose-word arm also matches, so a
Markdown line in either form is reported twice under two ids. The
workspace comment overstates the overlap (the history rule does not match a
bare #N), but the double report on the shared forms is real. PR #192 adds a separator arm to the bare-number alternation, which widens the
rule again over every source file the 1.17.0 glob change admitted.

What would close it

Split by scope: keep no-task-tracker-references on the docs glob it had
before 1.17.0 and ship the every-file scope as a second id a consumer opts
into, or the reverse with the docs id as the opt-in. And de-duplicate
against no-process-history-references so a line both patterns match is
reported once, naming both ids. Each of the 14 disables was a consumer
choosing between a rule that refuses every commit and no rule at all.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions