Skip to content

docs(review): reword quality-gate downstream context and the code-reviewer smell list #9782

Open

Description

@kyle-sexton

Parent: #7052 (owner decision 2026-10-13: one PR per plugin).

Problem

A copy check during #7009 flagged text in this plugin that shares word runs or one-to-one structure with an upstream source. The repository's rule is our own words, with credit only on docs/upstream/ pages. Line numbers from the filing are stale; locate the passage by the finding.

Local file Upstream (repo@sha, path) Finding
plugins/review/skills/quality-gate/context/downstream.md cursor/plugins@12d587dfb2 pstack/skills/blast-radius/SKILL.md 7-9 word runs; same risks/cleared field order
plugins/review/agents/code-reviewer.md mattpocock/skills@24fe0ef skills/engineering/code-review/SKILL.md the same 12-smell selection in nearly the same order

Fix

Confirm each finding with fingerprint.mjs compare first. If it does not fire, record that in the PR and change nothing. If it fires, rewrite the passage in a new structure with this repository's own examples, keeping every directive and eval expectation. Make sure the upstream source has a credit row on docs/upstream/cursor-pstack.md and the mattpocock-skills page.

Done when

  • gh api -H 'Accept: application/vnd.github.raw' 'repos/cursor/plugins/contents/pstack/skills/blast-radius/SKILL.md?ref=12d587dfb2' > /tmp/upstream-review-0.md then node plugins/attribution/skills/audit/scripts/fingerprint.mjs compare --local plugins/review/skills/quality-gate/context/downstream.md --source /tmp/upstream-review-0.md | jq .separation.fired prints false.
  • gh api -H 'Accept: application/vnd.github.raw' 'repos/mattpocock/skills/contents/skills/engineering/code-review/SKILL.md?ref=24fe0ef' > /tmp/upstream-review-1.md then node plugins/attribution/skills/audit/scripts/fingerprint.mjs compare --local plugins/review/agents/code-reviewer.md --source /tmp/upstream-review-1.md | jq .separation.fired prints false.
  • The PR body lists each passage with its before and after longest_span_words and containment.
  • scripts/check-changelog-fragments.sh passes.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 24, 2026
  2. github-actions commented on Oct 24, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Small
    Complexity: Low
    Uncertainty: Knowable
    Flags: none

    Understood: a copy check found that two files in the review plugin (the quality-gate downstream context and the code-reviewer agent) overlap with upstream text. The task is to confirm each finding with the fingerprint compare, then reword each passage in its own structure and examples if it fires. It also asks for credit rows on the upstream pages and the before/after metrics in the PR body. The scope is clear and nothing is missing. Fetching the upstream sources may need network access that the issue lane lacks. I found no likely duplicates beyond the parent #7052.

    Automated triage, applied by the lanes App.

  3. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 24, 2026
  4. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 24, 2026
  5. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped partway through this issue and needs a person.

    Why, in the run's own words:

    The issue requires confirming each finding with fingerprint.mjs compare against the upstream files (cursor/plugins12d587dfb2 and mattpocock/skills24fe0ef) before any edit, and says to change nothing if the check does not fire. This run cannot fetch those files: web reads are limited to code.claude.com, platform.claude.com, docs.anthropic.com, docs.github.com, nodejs.org and docs.python.org, and Bash runs only the named wrappers, so neither gh api nor node fingerprint.mjs can run. Rewriting without the confirmation would guess, so nothing was changed. Re-run where the upstream files can be fetched and the fingerprint script can run.

    What the run says it did not do:

    • fingerprint.mjs compare for downstream.md against the cursor/plugins upstream: upstream file not fetchable and node script not runnable in this lane
    • fingerprint.mjs compare for code-reviewer.md against the mattpocock/skills upstream: same reason
    • Rewrite of the two passages and before/after longest_span_words and containment figures for the PR body
    • Credit rows on docs/upstream/cursor-pstack.md and the mattpocock-skills page were not checked

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/40113254133

    To retry, remove needs-human and add agent-ready again.

  6. added
    host-runNeeds a host or attended run; the host runner takes it, not a person or the issue lane.
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 27, 2026
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

    host-runNeeds a host or attended run; the host runner takes it, not a person or the issue lane.priority: lowNice-to-have, cosmetic, or speculative; opportunistic.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions