Skip to content

docs(docs-hygiene): reword write-for-humans away from pstack technical-writing #9780

Closed as not planned

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/docs-hygiene/skills/write-for-humans/SKILL.md cursor/plugins@12d587dfb2 pstack/skills/technical-writing/SKILL.md section-by-section paraphrase: four layers, three rules, Diataxis compass, mode table, no-mixing list, rhythm, UI-strings exclusion

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.

Done when

  • gh api -H 'Accept: application/vnd.github.raw' 'repos/cursor/plugins/contents/pstack/skills/technical-writing/SKILL.md?ref=12d587dfb2' > /tmp/upstream-docs-hygiene-0.md then node plugins/attribution/skills/audit/scripts/fingerprint.mjs compare --local plugins/docs-hygiene/skills/write-for-humans/SKILL.md --source /tmp/upstream-docs-hygiene-0.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: Medium
    Uncertainty: Knowable
    Flags: none

    Understood: confirm with the fingerprint compare tool whether write-for-humans/SKILL.md still overlaps the upstream pstack technical-writing skill. If it does, reword it in this repository's own structure and examples, keep every directive and eval expectation, and make sure docs/upstream/cursor-pstack.md has a credit row. If the check doesn't fire, change nothing and note that in the PR. The done-when items are clear. Nothing is missing. I found no likely duplicates beyond the parent #7052.

    Automated triage, applied by the lanes App.

  3. added
    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.
    and 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.
    on Oct 24, 2026
  5. melodic-automation-lanes commented on Oct 24, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue run that agent-ready started ended over 3 hours ago with no report and no pull request. work-unblock removed and added agent-ready back to start a fresh run on main's workflow files. It does this once per version of those files, so if this run fails the same way, a person looks at it.

  6. added
    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
  7. 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 says to confirm each finding with fingerprint.mjs compare against the upstream file before rewriting anything. This run cannot fetch the upstream file: gh api and the node script cannot be run (Bash allows only the named wrappers), and raw.githubusercontent.com/github.com are not among the allowed web hosts. Without the comparison, the finding cannot be confirmed or cleared, so nothing was changed.

    What the run says it did not do:

    • Fetch upstream cursor/plugins12d587dfb2 pstack/skills/technical-writing/SKILL.md and run fingerprint.mjs compare on plugins/docs-hygiene/skills/write-for-humans/SKILL.md: gh api, node and the upstream host are unavailable in this lane
    • Rewrite of the write-for-humans passages, credit row check on docs/upstream/cursor-pstack.md, and before/after longest_span_words and containment table for the PR body: depend on the comparison

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

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

  8. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor

    Closing as not planned: the copy check this issue's Fix starts with does not fire, and its rule for that case is "record that ... and change nothing".

    Evidence, run 2026-10-25 against main at 5e70951: fingerprint.mjs compare --local plugins/docs-hygiene/skills/write-for-humans/SKILL.md --source <cursor/plugins@12d587dfb2:pstack/skills/technical-writing/SKILL.md, fetched raw> returned {"fired":false,"rule":"containment>=0.3||span>=15","longest_span_words":0,"containment":0,"jaccard":0}.

    The upstream source already has a credit row in docs/upstream/cursor-pstack.md, so the Fix's other condition holds too.

    The issue lane could not do this itself: its run stopped because it cannot run node or gh (lane outcome on #9786, run 40213739706).

    Reopen it if a later check finds a structural copy the word-run compare does not measure.

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

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: lowNice-to-have, cosmetic, or speculative; opportunistic.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.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions