docs(upstream): record the unslop lane in the cursor/plugins attribution table - #3094
Conversation
…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 finished @kyle-sexton's task in 2m 17s —— View job Code review complete
ScopeSingle file, +1/-0: What I checkedThis 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:
I did not independently re-run FindingsNone. 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 |
|
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 finished @kyle-sexton's task in 3m 14s —— View job CI code review complete
ScopeSingle file, +1/-0 vs What changed since the last review on this PRThe last commit ("date the unslop derivation, not the row") inserted one clause into the row:
I independently checked this addition against the repo rather than trusting it:
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 I did not independently re-run FindingsNone. 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. |
…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.
No linked issue.
Summary
docs/upstream/cursor-pstack.mdcalls itself the "Single source of truth for everything in thismarketplace derived from cursor/plugins … and specifically its
pstack/skills/collection", and its·r·echeck trigger is "a change to any
pstack/skills/<name>/SKILL.mdnamed in the attribution tablebelow".
unslopis a member of that collection, andplugins/ai-slopis derived from it (#3031,ai-slop0.2.0) — but the table had no
unsloprow. So the single-source-of-truth claim was not true, andupstream drift in
pstack/skills/unslop/SKILL.mdwould have gone undetected, because the triggeronly reaches rows the table names. Before this change the file mentioned
ai-sloporunsloponlyin passing, inside the
technical-writingrow.One row added. Nothing else changed.
Fix
An
unsloprow in the attribution table, in the same shape and voice as the existing eight, withRelation: Absorbed (skill omitted)—ai-slop:auditalready owned the axis over aWikipedia-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 againstthe 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
mainwith no revision recorded — the catalog and the rewriteguide both cite an unpinned
blob/mainURL, and the catalog's own four-part drift record covers theWikipedia source page only. So the file's
main@60c641e4pin is this row's baseline for the nextdiff, not the state it was audited at. It also dates the derivation explicitly (
ai-slop0.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-writingandblast-radiusrows onmain, including a paragraphin
arena— "Adaptation notes, corrected on verification" — that retracts two earlier overstatementsabout 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:
#3069's correction text survives verbatim at HEAD. Note that
silent-revert-canary.ymlrunspost-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/pluginsat the pin:reference/catalog.mdrule-chatbot-artifactsIMPORTANT;rule-filler-phrases,rule-stacked-hedgingSUGGESTIONv1: rubric; zero hits indetect.shv1: recorded-only; absent fromdetect.sh's registry, and the rubric layer is defined as thev1: rubricentriesutilize/leverage/facilitatein the shipped default vocabularyDEFAULT_VOCABcatalog.mdandai-slop's CHANGELOGplugins/ai-slop/— all five citations areblob/main, so the row neither overstates nor understatesRelationbyte-identical to sibling usagebro+show-me-your-work, which have decision sections without rowsmarkdownlint-cli2,typos, editorconfigRelated
ai-slop0.2.0 integration this row documents.docs/upstream/cursor-pstack.mdand its attribution table.main; its corrections are preserved through this merge.Known remaining gap, not closed here
show-me-your-workis also apstack/skills/member with shipped derivatives in this marketplace —plugins/implementation0.15.0 (four rules absorbed intoimplement-dispatch'sDEVIATIONS.md) andplugins/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.
brocorrectly needs no row, havingabsorbed nothing.