Skip to content

docs(upstream): record the unslop lane in the cursor/plugins attribution table - #3094

Merged
kyle-sexton merged 3 commits into
mainfrom
claude/pstack-unslop-attribution-row
Aug 21, 2026
Merged

docs(upstream): record the unslop lane in the cursor/plugins attribution table#3094
kyle-sexton merged 3 commits into
mainfrom
claude/pstack-unslop-attribution-row

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

No linked issue.

Summary

docs/upstream/cursor-pstack.md calls itself the "Single source of truth for everything in this
marketplace derived from cursor/plugins … and specifically its pstack/skills/ collection", and its
·r·echeck trigger is "a change to any pstack/skills/<name>/SKILL.md named in the attribution table
below
".

unslop is a member of that collection, and plugins/ai-slop is derived from it (#3031, ai-slop
0.2.0) — but the table had no unslop row. So the single-source-of-truth claim was not true, and
upstream drift in pstack/skills/unslop/SKILL.md would have gone undetected, because the trigger
only reaches rows the table names. Before this change the file mentioned ai-slop or unslop only
in passing, inside the technical-writing row.

One row added. Nothing else changed.

Fix

An unslop row in the attribution table, in the same shape and voice as the existing eight, with
Relation: Absorbed (skill omitted)ai-slop:audit already owned the axis over a
Wikipedia-derived tell inventory and already shipped the detect-then-guarded-fix flow, so the port
landed as entries in an existing catalog rather than as a new skill.

The row records what was taken (three script rules, four rubric tells, the plain-word vocabulary
trio, and the fix-time half that became reference/rewrite-guide.md), what was deduplicated against
the Wikipedia inventory via the catalog's overlap map, and what was rejected with its reason —
Name-dropping as out of scope for general prose, the general half of Generic conclusions, abstract
metaphor nouns as a script rule (calibration measured "substrate" in 114 legitimate technical uses on
this corpus), and one adding-soul bullet.

It also records what it is not. The row states plainly that this verdict was formed at
integration time against upstream main with no revision recorded — the catalog and the rewrite
guide both cite an unpinned blob/main URL, and the catalog's own four-part drift record covers the
Wikipedia source page only. So the file's main@60c641e4 pin is this row's baseline for the next
diff, not the state it was audited at
. It also dates the derivation explicitly (ai-slop 0.2.0,
2026-08-19) rather than letting this file's git history imply the row's own creation date.

This head is a conflicted merge, resolved by hand — please check that first

The branch was opened 29 commits behind and conflicted in the very file it edits. #3069 had
rewritten the arena, technical-writing and blast-radius rows on main, including a paragraph
in arena — "Adaptation notes, corrected on verification" — that retracts two earlier overstatements
about upstream's isolation: frontmatter and its judge instruction.

Resolved by taking main's three rewritten rows verbatim and appending only the new row. Taking
the branch's stale side would have silently reverted someone else's correction, which is the worst
outcome available here and the thing worth reviewing first.

Verified rather than asserted, against the merge's own second parent:

$ git diff --numstat e5015213..HEAD          # whole repo
1	0	docs/upstream/cursor-pstack.md          # one insertion, zero deletions

per-row sha256, arena / technical-writing / blast-radius:
  e5015213  b74b44c3d4d995a2  16f99c48a1801206  4de853aa1196780f
  HEAD      b74b44c3d4d995a2  16f99c48a1801206  4de853aa1196780f

#3069's correction text survives verbatim at HEAD. Note that silent-revert-canary.yml runs
post-merge and never inspects a PR, so nothing automated would have caught a revert here.

Verification

Every factual claim in the row was checked against the repo, and the upstream-side claims against
cursor/plugins at the pin:

Check Result
All 12 named rule ids exist in reference/catalog.md present
Tier claims vs the detector-findings crosswalk rule-chatbot-artifacts IMPORTANT; rule-filler-phrases, rule-stacked-hedging SUGGESTION
The four rubric tells are rubric, not script all four v1: rubric; zero hits in detect.sh
The three "dormant" rules are dormant in both layers all v1: recorded-only; absent from detect.sh's registry, and the rubric layer is defined as the v1: rubric entries
utilize / leverage / facilitate in the shipped default vocabulary present in DEFAULT_VOCAB
Substitution guardrail as quoted "Never parentheses, never en dashes, never a spaced hyphen"
The 114-uses calibration figure catalog.md and ai-slop's CHANGELOG
Overlap map says "catalogued by" rather than "covered by" present
Overlap-map completeness upstream ships 31 numbered patterns; 8 absorbed by the 7 new rules, 23 accounted for by map rows (8 + 23 = 31)
Upstream-side spot checks at the pin description ends "Must always apply"; six adding-soul bullets, five survive; #20 and #22 separate upstream, merged here
Pin disclaimer accurate in both directions no revision pin exists anywhere in plugins/ai-slop/ — all five citations are blob/main, so the row neither overstates nor understates
Table integrity 9 contiguous rows, 4 columns, Relation byte-identical to sibling usage
"All ten lanes are decided" still holds ten = 8 table rows + bro + show-me-your-work, which have decision sections without rows
markdownlint-cli2, typos, editorconfig clean

Related

Known remaining gap, not closed here

show-me-your-work is also a pstack/skills/ member with shipped derivatives in this marketplace —
plugins/implementation 0.15.0 (four rules absorbed into implement-dispatch's DEVIATIONS.md) and
plugins/claude-ops (the formula-injection guard) — and it likewise has no attribution row, so the
·r·echeck trigger does not reach it either. That is a pre-existing second instance of the same gap,
neither created nor worsened here; it is tracked as a follow-up. bro correctly needs no row, having
absorbed nothing.

claude added 2 commits August 21, 2026 13:13
…ion table

`docs/upstream/cursor-pstack.md` claims to be the single source of truth for
everything in this marketplace derived from cursor/plugins' `pstack/skills/`
collection, and its recheck trigger fires only on a change to a
`pstack/skills/<name>/SKILL.md` **named in the attribution table**. `unslop` is
a member of that collection and `ai-slop` 0.2.0 (#3031) is derived from it, but
the table carried no `unslop` row — so the SSOT claim was false and drift in
`pstack/skills/unslop/SKILL.md` would have gone undetected.

One row, grounded in what is actually in the repo: the seven catalog entries the
Wikipedia inventory did not already carry, the plain-word trio in the shipped
vocabulary default, and `reference/rewrite-guide.md` as the home for the
upstream file's fix-time half; against the overlap map's deduplication, the
Name-dropping and Generic-conclusions exclusions, the calibration measurement
that kept abstract metaphor nouns out of the script layer, and the one
adding-soul bullet that did not survive.

The row says on its face that it was NOT audited at this file's
`main@60c641e4` pin: the verdict was formed at integration time against an
unpinned upstream `main`, and the catalog's own four-part drift record covers
the Wikipedia source page only. The pin is the row's baseline for the next
diff, not a claim about the state it was audited at.

Not one of the port's ten lanes and it does not claim to be — `ai-slop` 0.2.0
landed before this file existed, so "All ten lanes are decided" is unchanged.
Docs-only, outside `plugins/`: no version bump and no plugin CHANGELOG entry.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AqwX2njhiLMWGrMg3QNt4g
…attribution-row

# Conflicts:
#	docs/upstream/cursor-pstack.md
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 2m 17s —— View job


Code review complete

  • Gather context (PR diff, CLAUDE.md, code-review skill criteria)
  • Apply skip gate — no skip; single-row table addition to a "source of truth" doc has real review surface (factual accuracy of every claim)
  • Review changed file(s) against criteria
  • Post findings

Scope

Single file, +1/-0: docs/upstream/cursor-pstack.md — one new row added to the attribution table for unslop.

What I checked

This lane reviews for correctness and alignment with repo conventions. Since the change is prose making factual claims about other files in the repo, I independently re-ran the PR's own verification table against the current tree rather than trusting the author's claims:

Claim Independently verified
All 12 rule ids (rule-chatbot-artifacts, rule-filler-phrases, rule-stacked-hedging, rule-false-ranges, rule-colon-crutch, rule-abstract-metaphor-jargon, rule-mechanism-free-claims, rule-canned-notability, rule-challenges-conclusion, rule-bold-overuse, rule-inline-header-lists, rule-title-case) exist in reference/catalog.md ✅ confirmed present
Tiers in the crosswalk: rule-chatbot-artifacts → IMPORTANT; rule-filler-phrases, rule-stacked-hedging → SUGGESTION ✅ matches docs/conventions/detector-findings/README.md:231-233 exactly
utilize / leverage / facilitate in the shipped default AI-vocabulary ✅ present in scripts/detect.sh's DEFAULT_VOCAB
Substitution-guardrail quote ("never parentheses, never en dashes, never a spaced hyphen") ✅ verbatim in reference/rewrite-guide.md:17-18
The 114-uses calibration figure for "substrate" ✅ present in both catalog.md:94 and CHANGELOG.md:198
Overlap map wording "catalogued by" (not "covered by") ✅ confirmed at catalog.md:699
Table integrity — row/column count ✅ 9 data rows total, every row (header through the new unslop row) has exactly 5 `
Every relative link in the new row (catalog.md, rewrite-guide.md, CHANGELOG.md, detector-findings/README.md) ✅ all four paths exist
ai-slop 0.2.0 referenced in the row exists in the changelog CHANGELOG.md:188 ## [0.2.0]
No pre-existing unslop/ai-slop mentions elsewhere in the file conflict with the new row ✅ only the pre-existing technical-writing row and the new row reference it, no contradiction

I did not independently re-run markdownlint-cli2 (not available in this sandbox without network access), so that specific line of the author's verification table is author-claimed and unverified by me — everything else in the table above I re-derived from the repo directly rather than restating the author's claim.

Findings

None. Every factual claim in the new row checks out against the current tree, the row's column count and format match the other eight rows exactly, and the "not audited at the pin above" caveat is consistent with the file's actual main@60c641e4 pin (docs/upstream/cursor-pstack.md:9) and the trigger it clarifies (docs/upstream/cursor-pstack.md:12-14). No correctness, maintainability, or convention issues found.
· branch claude/pstack-unslop-attribution-row

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count.

The row discloses that its verdict was not formed at the file's upstream pin.
It should be equally precise about when the derivation happened: this file
delegates *when* to its own git history, which for a row added today would
read 2026-08-21, while the port landed at ai-slop 0.2.0 on 2026-08-19 per
reference/catalog.md's second-pass calibration record.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 3m 14s —— View job


CI code review complete

  • Gather context (PR diff, CLAUDE.md, /review:code-review skill criteria)
  • Apply skip gate — no skip; single-row table addition to a "source of truth" doc has real review surface (factual accuracy of every claim)
  • Review changed file(s) against criteria
  • Post findings

Scope

Single file, +1/-0 vs origin/main: docs/upstream/cursor-pstack.md. This head (785537c) is one commit past the head this lane already reviewed (10f74e9), so this pass re-checks the whole row and focuses verification on what that last commit actually changed.

What changed since the last review on this PR

The last commit ("date the unslop derivation, not the row") inserted one clause into the row:

— derived at ai-slop 0.2.0 on 2026-08-19 (reference/catalog.md, "Second pass"), so this file's git history dates the row, not the derivation —

I independently checked this addition against the repo rather than trusting it:

Claim Independently verified
reference/catalog.md records a "Second pass" dated 2026-08-19 for the Cursor additions plugins/ai-slop/skills/audit/reference/catalog.md:87 — "Second pass, 2026-08-19, for the Cursor additions, against the same corpus:"
The row's own commit history postdates that derivation (so citing git history as the derivation date would be wrong) git log --date=short on this file: the row was added/amended 2026-08-21 (526f02e, 785537c), three days after the 2026-08-19 derivation date it now cites explicitly instead
"not one of the ten lanes decided below" is consistent with the file's own count ✅ the pre-existing ## Not adopted section's closing line ("All ten lanes are decided.", cursor-pstack.md:372) is unchanged by this PR and counts the table's 8 pre-existing rows plus bro and show-me-your-work (decided in prose only) = 10; the new unslop row is explicitly an 11th, out-of-band addition, and doesn't require bumping that count since it says so itself

All of the other claims in the row (rule ids, tiers, vocabulary, the 114-uses figure, the overlap-map wording, link targets) are unchanged from the version already verified in this lane's prior pass on 10f74e9, and remain correct.

I did not independently re-run markdownlint-cli2 — not available in this sandbox (network access to fetch/run it is blocked here) — so that line of the author's own verification table is author-claimed and unverified by me.

Findings

None. The added clause is accurate, well-cited, and resolves a real gap the author flagged in the PR description (the file's git-history date and the actual derivation date would otherwise have been conflated). No correctness, maintainability, or convention issues found.
· branch claude/pstack-unslop-attribution-row

@kyle-sexton
kyle-sexton merged commit 71022e7 into main Aug 21, 2026
52 checks passed
@kyle-sexton
kyle-sexton deleted the claude/pstack-unslop-attribution-row branch August 21, 2026 13:59
kyle-sexton added a commit that referenced this pull request Aug 21, 2026
…ution table's last gap (#3103)

The attribution table's recheck trigger fires only on skills it names, so a
member with shipped derivatives and no row is invisible to it. show-me-your-work
had derivatives in two plugins — four deviation-log rules in implement-dispatch,
and the formula-injection guard in claude-ops:audit-install-state, stricter than
upstream's — and no row.

This is the second and last instance of the gap #3094 closed for unslop. The
table is now complete by enumeration: nine pstack members have derived surfaces
here and all nine are named; none of the upstream collection's other skills has
one.

Unlike the unslop row, this verdict was formed at the file's pin — 228a2b1
introduced both plugin changelog entries and this file's main@60c641e4 together
— and the row says so rather than inheriting a caveat that does not apply. A
fresh diff of upstream at that pin shows no drift outstanding.

"All ten lanes are decided" is unchanged and still true: this lane was already
one of the ten, and now carries a row as well as a section.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants