Skip to content

fix: land the pstack port's post-merge verification findings across eight plugins - #3069

Merged
kyle-sexton merged 6 commits into
mainfrom
claude/plugin-skills-sdlc-jkujin
Aug 21, 2026
Merged

fix: land the pstack port's post-merge verification findings across eight plugins#3069
kyle-sexton merged 6 commits into
mainfrom
claude/plugin-skills-sdlc-jkujin

Conversation

@kyle-sexton

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

Copy link
Copy Markdown
Contributor

No linked issue

Summary

A fresh-context verification pass ran over #3065 after it merged and found defects in what that PR shipped: 12 in the eight plugins it touched, 12 in the provenance record, and 1 wrong count inside a released changelog entry. Two of the twelve are behavioural — a completion gate that reverses its own skill's first instruction, and a cite into another plugin's private files. The rest are unresolvable pointers, a schema field with no writer, an eval that cannot fail for the reason it claims to test, and claims in docs/upstream/cursor-pstack.md that do not survive checking against the pinned upstream.

Two more adversarial verifiers then ran over this PR's own first commit, one of them reaching the live upstream. They found eight further defects in work this PR introduced, plus one from a Codex review. All nine are fixed and described below.

Every plugin whose shipped text changed takes a patch bump with its own ### Fixed entry. #3065's release entries describe what #3065 shipped and cannot be retrofitted to describe corrections made after it merged.

Fix

The two behavioural defects in #3065

docs-hygiene:write-for-humans graded against the wrong standard (0.18.2). The skill's first instruction is to resolve the consuming project's own style guide before applying anything bundled — that re-posture is the port, and it is what PLUGIN-PHILOSOPHY.md:198-202's two-lane rule demands. But 0.18.0 shipped the seven-question self-check unconditionally, and four of those seven restate a bundled layer (1 is Diátaxis, 2 and 3 are ASD-STE100, 5 is Global English's ambiguity set). A run that followed the skill to its end would resolve a project's declared Microsoft guide, write against it, then grade the result against the bundled standards and rewrite it to conform. That is a lane-1 hardcode wearing lane-2 clothing, and it falsifies two of the skill's six evals. The gate is split, not switched off wholesale — see below for why the first attempt was wrong.

review:quality-gate downstream cited into another plugin's private files (0.26.2). Its "say plainly what is unverified" step path-cited the playbooks plugin's fable-5 skill inside that skill's own context/ directory, which the encapsulation contract makes private. Now /playbooks:fable-5 verification — the chapter argument is load-bearing, see below.

The rest of #3065's defects

Plugin Bump Defect
architecture 0.6.2 graft-record: was added to the candidate schema and no step wrote it — the Handoff step named status and agreed-shape and stopped. A field nothing fills is always empty, so the left-behind half of a graft survived nowhere. Handoff now fills it; the research file's "travels into agreed-shape" named the wrong field and is replaced.
discovery 0.16.2 Two routes back to the code-shape exclusion the skill is built around: "test names" listed as source-control evidence (a test name is a symbol, not someone writing down a reason), and a gotcha calling a named constant plus a convention "a hypothesis at best", colliding with Speculative's own Competing hypotheses output section. Separately a body-vs-eval gap on the neighbouring rule — the version-control-behaviour ceiling said "never Direct" while the eval graded "never Direct or Supported". Plus an eval whose target behaviour was indistinguishable from correct behaviour: it told the model not to check the tracker but never stipulated one existed, and the category is presence-gated, so a bare checkout's correct output was graded a failure. Plus a link-target normalization to the fleet's ${CLAUDE_PLUGIN_ROOT} convention.
implementation 0.15.2 "the same grounding rule the loop lanes apply" — an unresolvable pointer for a consumer who installs implementation alone. Now names work-items:work-loop and source-control:babysit-loop.
prototype 0.9.2 explore-directions step 6 restated the shared capture discipline in its pre-0.9.0 form — "record which variant won and why" — directly above the bullets that delete the losing variants irreversibly.
session-flow 0.32.2 Both retro skills "handed" an accepted skill candidate to /playbooks:skill-authoring, which takes no arguments and performs no actions. Handing it a candidate resolves to nothing, so the destination 0.32.0 set out to give did not exist. Both now read it for the doctrine and draft against it.
testing 0.7.2 "Prefer no new test to a bad one" is the upstream cursor/plugins tdd cost branch (cursor/plugins@60c641e4 pstack/skills/tdd/SKILL.md). Cited inline as (upstream cursor/plugins tdd). /tdd:principles contains neither the phrase nor the six triggers.

One declared in-place correction to a released body

scripts/check-changelog-parity.sh sanctions corrections inside an already-released version section when the correcting PR names each edit in its body and in the new release entry. Exactly one qualifies, and it is the only removed changelog line in the whole diff: architecture 0.6.0 said "the five-part schema was pinned in three places"; commit 228a2b19 changed the count in exactly two spots. Corrected in place; heading untouched.

Nothing else was edited in place. Three blocks initially drafted as appends into released ### Added sections were lifted back out and re-homed under the new patch entries, because attributing post-release work to a released version misleads anyone reading the changelog to learn what that version contains.

Concurrent-bump resolutions — #3067, #3068, #3070

Main bumped these plugins three separate times while this branch was open, and each time it claimed a number this branch had already taken.

The third one is worth recording, because it was invisible to the usual check. git merge-tree reported zero conflict markers: each side had edited a different region of each file, so a clean-looking merge would have produced eight changelogs in which two different releases share one heading. That is precisely the corruption --check-preserved exists to catch. The real merge surfaced nine conflicts once the bodies collided. In every case main's heading and body are untouched and this branch's entry moves up; no release is folded, relabelled, or dropped.

One of those nine was semantic rather than numeric. #3070 respelled retro/context/session.md's route as "Hand it off by invoking /playbooks:skill-authoring via the Skill tool" — which reintroduces the exact claim this PR fixes, since that skill takes no arguments and performs no actions. Both changes are kept: the invocation still names the Skill tool (it is invoked in order to be read), but it reads the doctrine and drafts against it rather than handing anything over. The sibling running-retro is deliberately not aligned to match — #3070's own entry says it left that list alone because it sits under "Offer routing — never auto-apply", so the asymmetry is intentional and is now recorded in the 0.32.2 entry.

The provenance record — 12 corrections

docs/upstream/cursor-pstack.md carried twelve claims that did not survive checking against cursor/plugins@60c641e4:

  1. A judge instruction reported as an unconditional must; upstream says "Prefer a different model family from the parent's" and must appears zero times in that file.
  2. "upstream spawns candidates under isolation: worktree" — the word never appears upstream. Its mechanism is a per-candidate output path, which is why this fleet's three recorded isolation: rejections were not in conflict with it.
  3. The arena omission's grounds now rest on the Rule of Three alone.
  4. The technical-writing row credited our third always-rule to upstream's above-the-layers trio; it comes from upstream's separate word-list and anti-jargon paragraphs.
    5–7. Three non-verbatim quotes: debugging:debug phase 5, upstream's tdd description, and the above-the-layers rule text.
  5. ai-slop's catalog path — reference/catalog.mdskills/audit/reference/catalog.md.
  6. A bare context/spec.md — the real file is review/skills/quality-gate/context/spec.md, and review/context/ holds no spec.md, so the short form pointed nowhere.
  7. "four always-listed descriptions" → six, now named individually.
  8. "bro is seven lines, two of them body" → one.
  9. "Five of its six operating principles" → upstream states two separate six-item lists, and across both, every item but one ("no shortcut by code-reading") restates historiographical source criticism and IC analytic tradecraft.

An independent verifier re-checked 1, 2, 11 and 12 against the live upstream files and confirmed each verbatim.

Convention record

docs/conventions/upstream-drift 1.6.0 adds the adopter row for write-for-humans' source records. Three carry a publication-event trigger; Google's is a page-content divergence, because that guide is a continuously-edited site with no edition to pin. The contract admits either shape, and the row says which record uses which.

Defects in this PR's own diff, found and fixed

Two fresh-context verifiers ran over commit b1bf09c6 with the rationale withheld; a Codex review ran alongside.

  1. The new write-for-humans gate contradicted itself — "the seven below do not apply" under a declared guide, then "the three rules above apply either way", when questions 4, 6 and 7 are those three rules. Now split per question: four stand down, three always apply.
  2. An undescribed compression pass rode along in that same file — nine hunks the changelog never mentioned, three of them lossy (a bullet lost "of a published standard"; two gotchas lost their actionable half; one lost the "only" whose placement the skill's own ambiguity rule governs). The worked example lost "(and ambiguity)" from a fix that is an ambiguity fix, and misquoted its own Before block. Reverted to main, with only the two described fixes re-applied.
  3. interface-design.md named two destinations for one record. Replaced rather than annotated.
  4. explore-directions step 6 was still short a clause — it dropped "what the discarded parts held that the graft deliberately left behind" while the changelog claimed the widened form.
  5. The bare /playbooks:fable-5 cite (Codex). That skill's argument-hint and Arguments paragraph make a bare invocation arm its entire operating doctrine as standing session instructions for the rest of the run. Now /playbooks:fable-5 verification.
  6. The discovery umbrella overcounted — "three routes back to the code-shape exclusion" when the third is the version-control-behaviour ceiling, which the same skill says explicitly is not code shape.
  7. A link-target normalization was undescribed. The change is right and stays; the changelog now names it.
  8. The review entry spelled the private path the fix removed. Described rather than spelled.
  9. The upstream-drift adopter row generalized from three records to four. Corrected.

One Codex finding was accepted after a primary-source check reversed an earlier decline. Its claim that /tdd:principles contains neither the phrase nor the six triggers is correct. That skill's nearest sentence is Khorikov's "It's better to not write a test at all than to write a bad test" in testable-architecture-khorikov.md — the 2×2 / Humble Object chapter, which this port used as grounds to reject upstream's five-item bad-test definition as already owned. The phrase and the six triggers come from upstream tdd ("Prefer no new test over a bad test", plus the identical trigger list), which cursor-pstack.md:34 already recorded as Taken. The original cite therefore contradicted this PR's own provenance document. Now (upstream cursor/plugins tdd).

Verification

Every gate re-run locally at the branch tip against the current base (69b3584), all green:

  • check-changelog-parity — all four modes. --check-bump: each of the eight version changes has its own new entry and is strictly greater than the base's. --check-preserved: 9 changed changelogs, 322 headings compared, none dropped — including every heading fix(work-items): harden the tracker seam's lease and generator paths, and reconcile the upstream SSOTs #3067, feat(review): route producer-owned findings to the producer's own fix skill (0.26.0) #3068 and docs(plugins): normalize operative cross-skill chains to explicit Skill-tool phrasing #3070 added. --check-order: newest-first, no duplicates.
  • check-changed-skills — 9 skills checked, 0 failed.
  • validate-plugins (manifests + catalog, --strict), validate-plugin-contracts (48 setup skills, 2823 files).
  • check-skill-portability, check-skill-count-claims, check-skill-leaf-names, check-cross-plugin-source-drift, check-plugin-manifest-presence, check-orphaned-fixtures, check-silent-skips, check-fleet-audit-doc-grammar, check-lane-coverage, check-contract-clause-coverage, check-contract-slice-prune, check-stale-base-overlap.
  • markdownlint-cli2 over every tracked markdown file — 0 issues.
  • Eval sets: all evals.json validate against the bundled schema, 0 failures. check-evals-quality returns PASS with advisory warnings fleet-wide (the WARN tier never fails the step); the two suites this PR touches carry 0 warnings. An earlier revision said "PASS, 0 warnings" without that distinction — a verifier caught the overstatement.
  • No executable file is touched anywhere in this PR — the diff is markdown, eight plugin.json version bumps, and one evals.json — so the plugin test suite cannot be affected by it.

Related

@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 21, 2026 06:05
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 51s —— View job


Security review

  • Gather context (PR diff via gh pr diff 3069)
  • Apply skip gate check
  • Review changed files for security-relevant surface
  • Report findings

Skip gate: triggered (condition 2 — no security-relevant surface).

All 31 changed files are documentation-only: CHANGELOG.md entries, plugin.json version bumps, SKILL.md / context/*.md / research/*.md prose edits, and one evals.json prompt/expectation tweak. There is no executable code, no GitHub Actions workflow, no script, no auth/access-control logic, and no input-handling surface anywhere in the diff — it's corrective prose (attribution fixes, broken cross-plugin references, an unwritten schema field, wording precision) across eight plugins plus the docs/upstream/cursor-pstack.md provenance record.

Per the skip gate in /review:security-review, this stops here with nothing else posted: no vulnerabilities, injection surfaces, credential handling, or Actions security findings apply to this change set.

@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 4m 38s —— View job


CI Code Review

  • Gather context (PR diff, CLAUDE.md, review skill instructions)
  • Apply skip gate — no skip; PR is open, non-draft, and has a real review surface
  • Review changed files for correctness / maintainability
  • Verify a sample of the PR's factual/provenance claims against the actual tree
  • Post final summary (no inline findings — see below)

Scope note: per /review:code-review's criteria, this lane covers correctness and maintainability; this PR is documentation/skill-instruction-only (no application code), so "correctness" here means internal consistency of the shipped prose (do the cross-references resolve, do the fixed skill bodies match what their evals/changelogs claim, do citations respect the encapsulation contract).

Findings

No blocking findings. I checked the eight behavioral/content fixes against their stated defects and the files they touch, and spot-verified several of the more checkable provenance claims in docs/upstream/cursor-pstack.md:

  • docs-hygiene:write-for-humans (0.18.1) — the self-check now gates on the resolved standard (SKILL.md:151-156), and this now matches evals 1 and 4 in evals/evals.json (unchanged in this PR — the two evals already required "does NOT silently impose" the bundled layers, so the bug was in SKILL.md contradicting them, not in the evals).
  • review:quality-gate downstream (0.25.1) — now cites /playbooks:fable-5 by slash invocation rather than playbooks/fable-5/context/verification.md; confirmed that path is in fact under a skills/<x>/context/ directory (private) and that fable-5 is user-invocable: true.
  • architecture (0.6.1) — confirmed graft-record: in the candidate schema (deepening.md:81) is now filled by the Handoff step (deepening.md:112), and that evals/evals.json (unchanged) pins the six-part design result in exactly two places (lines 52 and 57), matching the corrected "two places" count.
  • discovery (0.16.1) — the SKILL.md behavioral-ceiling wording now matches eval 5's "never Direct or Supported" expectation, and eval 6's prompt/expected_output were both updated together so the tracker-presence-gate ambiguity is resolved.
  • Cross-plugin provenance claim — spot-checked the cursor-pstack.md claim that "impact" is prose-loaded in six named always-listed skill descriptions (ai-slop:audit, architecture:improve, claude-ops:changelog, docs-hygiene:rename-references, improvement:find, work-items:work); all six SKILL.md frontmatter descriptions do contain the word, and no others do among files I checked.
  • debug phase 5 quote fix — the corrected quote ("that itself is the finding") is a verbatim match to plugins/debugging/skills/debug/SKILL.md:144.
  • Khorikov attribution (testing 0.7.1)/tdd:principles' reference material does carry a sourced version of the claim ("It's better to not write a test at all than to write a bad test." — reference/testable-architecture-khorikov.md:33), so the attribution added in testing:write is accurate.

One low-signal observation, not filed as a blocking finding: plugins/discovery/skills/trace-intent/SKILL.md's Scope-section link target changed from a relative path to a literal ${CLAUDE_PLUGIN_ROOT}/... href (diff). This matches the established convention used elsewhere in the fleet (e.g. toolchain, review:setup), so it's a legitimate consistency fix rather than a defect — but it isn't called out in the discovery 0.16.1 changelog entry, which only lists the three code-shape-exclusion routes. Not worth blocking on given the PR's stated verification already ran check-changelog-parity --check-preserved clean; flagging only for awareness.

I did not attempt to re-verify the upstream cursor/plugins@60c641e4 claims (no network access to that repo from this sandbox) — those are author-claimed per the PR body's own verification section, not independently confirmed here beyond the internal-repo cross-references above.

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

Last security-reviewed head: bb876a4755d75a319760887222c7e2b3acef0688. On the next push, the relevance gate compares only the commits since this SHA; delete this comment to force a full re-review.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b1bf09c652

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread plugins/review/skills/quality-gate/context/downstream.md Outdated
Comment thread plugins/testing/skills/write/context/write.md Outdated
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

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

@kyle-sexton
kyle-sexton disabled auto-merge August 21, 2026 06:12
kyle-sexton pushed a commit that referenced this pull request Aug 21, 2026
Codex review on #3069 caught that the encapsulation fix traded one defect for
another. Citing `/playbooks:fable-5` bare is a supported handle, but that
skill's own argument contract makes a bare invocation arm its entire operating
doctrine as standing session instructions for the remainder of the session;
only a chapter-name argument reads one chapter. `downstream` mode reaches for a
single formula — "assessed, not verified because Y" — and must not re-posture
the session that follows it.

Now cites `/playbooks:fable-5 verification`, and says why the argument is
load-bearing so a later editor does not trim it back to bare.

Verified against plugins/playbooks/skills/fable-5/SKILL.md's own Arguments
paragraph and its `argument-hint: "[full | <chapter>]"` frontmatter, and
against context/verification.md existing as a real chapter. The review 0.25.1
entry carries the same reasoning; no version bump, since 0.25.1 has not
shipped.

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

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 43s —— View job


Security review

  • Gather context (PR diff at HEAD 58a7d55)
  • Apply skip gate check
  • Review changed files for security-relevant surface
  • Report findings

Skip gate: triggered (condition 2 — no security-relevant surface).

This run's incremental scope is the diff since the last-reviewed head (b1bf09c) per the canary comment: b1bf09c...58a7d55. That commit touches exactly two files:

  • plugins/review/CHANGELOG.md — expanded prose in the 0.25.1 ### Fixed entry
  • plugins/review/skills/quality-gate/context/downstream.md — changes the cited invocation from bare /playbooks:fable-5 to /playbooks:fable-5 verification, per the reviewer feedback that a bare invocation would arm that playbook's full standing doctrine for the session rather than reading one chapter

Both are documentation/skill-instruction prose. No executable code, no GitHub Actions workflow, no script, no auth/access-control logic, and no input-handling surface. If anything, the change tightens a citation to avoid an unintended broad side effect (arming another plugin's full session doctrine) — a correctness improvement, not a new risk.

Per the skip gate in /review:security-review, this stops here with nothing else posted: no vulnerabilities, injection surfaces, credential handling, or Actions security findings apply to this change.

kyle-sexton pushed a commit that referenced this pull request Aug 21, 2026
….16.1

The CI code review on #3069 caught an undescribed change riding along in the
diff: `trace-intent`'s Scope-section link to `reference/parent-contract.md` was
switched from a relative href to the `${CLAUDE_PLUGIN_ROOT}` token, and the
0.16.1 entry listed only the three code-shape-exclusion routes.

The change itself is right and stays. `explore`, `research` and `research-deep`
all cite that same file with the token on both sides of the link, and the fleet
runs 179 token-href sites to 29 relative ones; `trace-intent` was the outlier.
Two spellings of one reference across sibling skills is the divergence
`discipline:reuse-or-replace` exists to catch, and the relative form is the one
that breaks first — it resolves from the file's own location rather than from
the installed plugin root.

An undescribed edit in a changelog-bearing diff is a defect whether or not the
edit is correct, so the entry now names it.

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

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 58s —— View job


CI Code Review

  • Gather context (PR diff via git diff origin/main...HEAD, CLAUDE.md, /review:code-review skill instructions)
  • Apply skip gate — no skip; PR is open, non-draft, real review surface
  • Review changed files for correctness / maintainability
  • Verify the two post-review-round fixes (58a7d55, 4ef962d) landed correctly
  • Spot-check cross-file consistency of the remaining behavioral fixes
  • Post final summary (no inline findings)

Findings

No blocking findings. This lane already reviewed the PR once at b1bf09c; this pass focuses on what changed since — two follow-up commits responding to the Codex review round — plus a broader consistency sweep across the rest of the diff.

Both post-review fixes are correct:

  • review:quality-gate downstream (58a7d55) — Codex flagged that citing bare /playbooks:fable-5 would arm that playbook's entire standing doctrine for the session, when downstream mode only needs one formula from its verification chapter. The fix now reads /playbooks:fable-5 verification (downstream.md:117), which I confirmed against plugins/playbooks/skills/fable-5/SKILL.md's own Arguments paragraph and argument-hint: "[full | <chapter>]" — a chapter-name argument reads only that chapter rather than arming the bare-invocation doctrine. Correct fix, and a strictly better outcome than the private-path cite it originally replaced.
  • testing:write Khorikov attribution (cbcef09, unchanged from the earlier round) — Codex's claim that the rule doesn't appear in /tdd:principles' Khorikov references doesn't hold: plugins/tdd/skills/principles/reference/testable-architecture-khorikov.md:33 carries the verbatim source ("It's better to not write a test at all than to write a bad test."), inside that skill's own reference/ directory, which plugins/tdd/skills/principles/SKILL.md:54 names as an authoritative source. The author's rebuttal is correct; no change needed.
  • discovery changelog gap (4ef962d) — the CI review's prior low-signal observation (the trace-intent link-token change wasn't described in the 0.16.1 entry) is now closed: plugins/discovery/CHANGELOG.md names the normalization explicitly.

Consistency sweep across the rest of the diff (all confirmed against the actual files, not just the PR body's claims):

  • architecture 0.6.1 — graft-record: is now filled by the Handoff step (deepening.md:112), and interface-design.md points back at that step as the field's destination.
  • discovery 0.16.1 — all three code-shape-exclusion routes (test names removed from source-control evidence, the named-constant gotcha rewritten to state it's not evidence at all, the Direct/Supported ceiling wording) match the eval expectations they were falsifying.
  • prototype 0.9.1 — explore-directions step 6 now records losing variants and reasons before the irreversible-deletion bullets, matching the widened 0.9.0 capture discipline instead of contradicting it.
  • session-flow 0.32.1 — both retro skills now correctly describe /playbooks:skill-authoring as a knowledge surface with no arguments/actions (verified against that skill's own frontmatter and body), replacing the "hand it to" phrasing that implied a destination that doesn't exist.
  • docs-hygiene 0.18.1 — the self-check now gates on the resolved standard, and the new adopter row in docs/conventions/upstream-drift correctly points at write-for-humans/reference/sources.md, which does contain all four claimed four-part records (Diátaxis, Google dev-doc style, ASD-STE100, Global English).
  • Version bumps: all eight plugin.json files (architecture 0.6.1, discovery 0.16.1, docs-hygiene 0.18.1, implementation 0.15.1, prototype 0.9.1, review 0.25.1, session-flow 0.32.1, testing 0.7.1) match the PR body's table exactly, each with its own ### Fixed changelog entry rather than a retrofit into the 0.x.0 entries.

I did not attempt to re-verify the docs/upstream/cursor-pstack.md claims against cursor/plugins@60c641e4 — no network access to that repo from this environment, so those remain author-claimed per the PR's own verification section, consistent with the prior round's scope note.

@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

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


CI Code Review

  • Gather context (PR diff, CLAUDE.md, /review:code-review skill instructions)
  • Apply skip gate — no skip; new commit landed since the last review round
  • Review changed files for correctness / maintainability
  • Verify the newest commit's claims against the actual tree
  • Post final summary (no inline findings)

Scope of this pass

This lane has already reviewed the PR twice (at b1bf09c and 4ef962d). One new commit landed since: f346886 — "fix: close the defects two fresh-context verifiers found in this PR's own diff", a self-correction round closing 8 defects the PR author found in the PR's own prior state. This review covers only that commit's 11 changed files; nothing else changed.

Findings

No blocking findings. I traced each of the eight described fixes back to the actual files rather than trusting the commit message:

  • write-for-humans self-check contradiction (SKILL.md:152-156) — confirmed the old text really did contradict itself ("seven below do not apply" one line before "three rules above apply either way", where questions 4/6/7 restate those three rules). The new split (Q1/2/3/5 stand down under a declared guide, Q4/6/7 always apply) checks out against the four-layer table (SKILL.md:31-36) and reference/sentence-rules.md's Address/Load/Ambiguity sections — Q1 is Diátaxis (mode), Q2/Q3 map to Load's command/one-instruction rules, Q5 is verbatim Ambiguity language ("only" placement, "it" reference, dropped verbs), and Q4/Q6/Q7 map onto the "Three rules that survive a declared guide" section one-for-one.
  • Undescribed lossy compression pass — spot-checked the worked example: the Before block reads "If exceeded" (capital I), and the restored fix-explanation text now says "If exceeded" gets a subject, matching. The restored Gotchas/does NOT do bullets read as complete clauses again rather than truncated ones.
  • interface-design.md two-destinations bug (interface-design.md:74-77) — the old "travels into agreed-shape" sentence (contradicting the same paragraph's "a sibling of agreed-shape, not part of it") is gone, replaced rather than merely annotated.
  • explore-directions step 6 missing clause (SKILL.md:227-231) — now carries "what the discarded parts held that the graft deliberately left behind", which is a verbatim match to plugins/prototype/context/discipline.md:53-55's shared-discipline wording.
  • cursor-pstack.md dead pathcontext/spec.md is now review/skills/quality-gate/context/spec.md; confirmed that file exists and review/context/ does not carry a spec.md.
  • upstream-drift adopter-row overgeneralization — now correctly distinguishes the three publication-event source records (STE, Global English, Diátaxis) from Google's page-content-divergence record, consistent with the contract's admission of either shape.
  • discovery "three routes" miscount — now correctly split into two code-shape-exclusion routes plus a separately-described body/eval derivability gap on the neighbouring (explicitly non-code-shape) version-control-behaviour rule.
  • review 0.25.1 entry leaking the private path — the changelog now describes the path instead of spelling it, avoiding re-introducing the private cite it just removed from the skill body.

No plugin manifests, evals, or other shipped-behavior files changed in this commit — it's changelog/skill-body prose only, and every claim I checked matches the file it describes.

@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 51s —— View job


Security review

  • Gather context (PR diff at HEAD f346886)
  • Apply skip gate check
  • Review changed files for security-relevant surface
  • Report findings

Skip gate: triggered (condition 2 — no security-relevant surface).

This run's incremental scope is the diff since the last-reviewed head (58a7d55) per the canary comment, covering the two follow-up commits 4ef962d and f346886. Together they touch 11 files, all documentation/skill-instruction prose:

  • docs/conventions/upstream-drift/CHANGELOG.md, README.md
  • docs/upstream/cursor-pstack.md
  • plugins/architecture/CHANGELOG.md, plugins/architecture/skills/improve/research/deepening/interface-design.md
  • plugins/discovery/CHANGELOG.md
  • plugins/docs-hygiene/CHANGELOG.md, plugins/docs-hygiene/skills/write-for-humans/SKILL.md
  • plugins/prototype/CHANGELOG.md, plugins/prototype/skills/explore-directions/SKILL.md
  • plugins/review/CHANGELOG.md

I read every diff hunk directly (not just the stat). All changes are prose corrections: fixing a self-contradicting gate description in write-for-humans, correcting the graft-record field destination language in interface-design.md, adding a missing clause to explore-directions step 6, and changelog/provenance-record wording fixes. No executable code, no GitHub Actions workflow, no script, no auth/access-control logic, and no input-handling surface anywhere in this incremental diff.

Per the skip gate in /review:security-review, this stops here with nothing else posted: no vulnerabilities, injection surfaces, credential handling, or Actions security findings apply to this change.

@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 21, 2026 07:19
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 19s —— View job


Security review

  • Gather context (PR diff at HEAD 8f4eda6, base origin/main)
  • Apply skip gate check
  • Review changed files for security-relevant surface
  • Report findings

Skip gate: triggered (condition 3 — this head already has a successful security review that still applies).

The event that triggered this run is the merge commit 8f4eda6 ("Merge remote-tracking branch 'origin/main' into claude/plugin-skills-sdlc-jkujin"), which pulls in an unrelated already-merged PR (#3067, commit 2e87353). I compared the actual PR content two ways:

  • git diff origin/main...HEAD (the real PR diff) matches the 31 files / +252/-64 already described in the PR body — nothing new.
  • git diff f346886..8f4eda6 scoped to every skill/context/doc file this PR touches (plugins/{architecture,discovery,docs-hygiene,implementation,prototype,review,session-flow,testing}/skills/**, docs/upstream/cursor-pstack.md, docs/conventions/upstream-drift/**) — zero content diff. f346886 was the head at the last security review pass (recorded in the canary comment history above).

The only textual change anywhere since that last review is mechanical: plugins/review/.claude-plugin/plugin.json moved 0.25.10.25.2, and the corresponding CHANGELOG.md entry shifted under a new ## [0.25.2] heading with byte-identical body text — because origin/main independently claimed version 0.25.1 for the review plugin via the unrelated #3067 merge, so this branch's own patch renumbered on top of it. No skill body, context file, eval, or provenance-doc prose changed.

This is documentation/skill-instruction content only, as in every prior pass on this PR. No executable code, no GitHub Actions workflow, no script, no auth/access-control logic, and no input-handling surface. Per the skip gate in /review:security-review, this stops here with nothing else posted: no vulnerabilities, injection surfaces, credential handling, or Actions security findings apply to this change.

@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 37s —— View job


CI Code Review

  • Gather context (PR diff via git diff origin/main...HEAD, prior review history, /review:code-review skill instructions)
  • Apply skip gate
  • Report outcome

Skip gate: triggered (condition 4 — this head already has a successful review from this lane that still applies)

This lane has now reviewed the PR's own content three times, most recently at f346886 (posted 06:29 UTC), covering all nine self-correction fixes in that commit. The only new commit since then is 8f4eda6, a merge of origin/main into this branch to pick up an unrelated, already-merged PR (2e87353, #3067work-items/review tracker-seam work).

I confirmed the merge introduced no new content to this PR's own diff:

  • git diff origin/main...HEAD at the new head still touches exactly the same 31 files with the same +252/-64 stat reported in the PR description — matching the changed_files list for this event byte-for-byte.
  • Diffing every one of this PR's own files between f346886 and 8f4eda6 directly (git diff f346886 HEAD -- <all 30 PR-owned paths outside plugins/review>) returns empty — no content changed.
  • plugins/review/skills/quality-gate/context/downstream.md and plugins/review/CHANGELOG.md's 0.25.1 entry (this PR's own content) are likewise byte-identical to what was reviewed at f346886.
  • The only diffs the merge brought into plugins/review/ are the unrelated 0.25.2 version bump and close-out.md addition from fix(work-items): harden the tracker seam's lease and generator paths, and reconcile the upstream SSOTs #3067 — already present on origin/main before this merge, so they don't appear in origin/main...HEAD and are not this PR's content.

Since nothing in the PR's actual diff changed, the prior review at f346886 — which verified all eight #3065 corrections, all nine self-correction fixes, and the two post-review-round fixes at 58a7d55/4ef962d against the actual files rather than the commit messages — still applies. No new findings to add.

@kyle-sexton
kyle-sexton disabled auto-merge August 21, 2026 07:36
@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 21, 2026 07:36
claude and others added 5 commits August 21, 2026 07:50
…ight plugins

A fresh-context verification pass over #3065 after it merged found twenty-four
defects in what that PR shipped — twelve across the eight plugins it touched,
twelve in the provenance record. Two are behavioural — a completion gate that
reverses its own skill's first instruction, and a cite into another plugin's
private files — and the rest are unresolvable pointers, a schema field with no
writer, an eval that cannot fail for the reason it claims to test, and factual
errors in the provenance record.

Every plugin whose shipped text changed takes a patch bump with its own
`### Fixed` entry, because #3065's release entries describe what #3065 shipped
and cannot be retrofitted to describe corrections made after it merged.

Behavioural fixes:

- docs-hygiene 0.18.1 — `write-for-humans`' seven-question self-check ran
  unconditionally, so a run that reached the end graded a project's README
  against the bundled Diátaxis/STE/Global-English set *after* resolving that
  project's own declared guide, and rewrote it to conform. That reverses the
  skill's first instruction and falsifies two of its six evals. The gate now
  checks against whichever standard was resolved. "Three rules above the
  layers" becomes "Three rules that survive a declared guide" and says why.
- review 0.25.1 — `downstream` mode pointed at
  `playbooks/fable-5/context/verification.md`, a path the encapsulation
  contract makes private. Now cited as `/playbooks:fable-5`'s verification
  chapter, the only supported handle.
- session-flow 0.32.1 — both retro skills "handed" a skill candidate to
  `/playbooks:skill-authoring`, which takes no arguments and performs no
  actions. They now read it for the doctrine and draft against it.
- architecture 0.6.1 — `graft-record:` was added to the candidate schema but
  no step wrote it. The Handoff step now fills it, and the research file points
  at that step instead of naming `agreed-shape` as the destination.
- discovery 0.16.1 — three routes back to the code-shape exclusion the skill
  is built around: "test names" as source-control evidence, a gotcha that read
  as licensing `Speculative` for code shape, and a behavioural ceiling the body
  stated more narrowly than the eval graded. Plus an eval whose target
  behaviour was indistinguishable from correct behaviour in a bare checkout.
- prototype 0.9.1 — `explore-directions` step 6 restated the shared capture
  discipline in its pre-0.9.0 form, immediately above the irreversible
  deletions.
- implementation 0.15.1 — "the loop lanes" now names
  `work-items:work-loop` and `source-control:babysit-loop`.
- testing 0.7.1 — "Prefer no new test to a bad one" now carries its
  attribution: (Khorikov, via `/tdd:principles`).

Declared in-place correction inside a released body, per the changelog
contract's sanctioned form (heading untouched, edit named here and in the
changelog): architecture 0.6.0's "the five-part schema was pinned in three
places" said three; the eval pins it in two.

Provenance record — `docs/upstream/cursor-pstack.md` carried twelve claims
that did not survive checking against the pinned upstream, including a
`must` the upstream states as `Prefer`, an `isolation: worktree` the upstream
never mentions, a miscited `arena` precedent, three non-verbatim quotes, two
wrong file paths, and four wrong counts. All corrected against
`main@60c641e4`.

`docs/conventions/upstream-drift` 1.6.0 adds the adopter row for
`write-for-humans`' source records — four four-part records over Diátaxis,
Google developer documentation style, ASD-STE100 and Global English, each
triggered by a publication event rather than a fetch divergence.

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

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
Codex review on #3069 caught that the encapsulation fix traded one defect for
another. Citing `/playbooks:fable-5` bare is a supported handle, but that
skill's own argument contract makes a bare invocation arm its entire operating
doctrine as standing session instructions for the remainder of the session;
only a chapter-name argument reads one chapter. `downstream` mode reaches for a
single formula — "assessed, not verified because Y" — and must not re-posture
the session that follows it.

Now cites `/playbooks:fable-5 verification`, and says why the argument is
load-bearing so a later editor does not trim it back to bare.

Verified against plugins/playbooks/skills/fable-5/SKILL.md's own Arguments
paragraph and its `argument-hint: "[full | <chapter>]"` frontmatter, and
against context/verification.md existing as a real chapter. The review 0.25.1
entry carries the same reasoning; no version bump, since 0.25.1 has not
shipped.

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

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
….16.1

The CI code review on #3069 caught an undescribed change riding along in the
diff: `trace-intent`'s Scope-section link to `reference/parent-contract.md` was
switched from a relative href to the `${CLAUDE_PLUGIN_ROOT}` token, and the
0.16.1 entry listed only the three code-shape-exclusion routes.

The change itself is right and stays. `explore`, `research` and `research-deep`
all cite that same file with the token on both sides of the link, and the fleet
runs 179 token-href sites to 29 relative ones; `trace-intent` was the outlier.
Two spellings of one reference across sibling skills is the divergence
`discipline:reuse-or-replace` exists to catch, and the relative form is the one
that breaks first — it resolves from the file's own location rather than from
the installed plugin root.

An undescribed edit in a changelog-bearing diff is a defect whether or not the
edit is correct, so the entry now names it.

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

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
… own diff

Two adversarial verifiers ran over `b1bf09c6` with the rationale withheld — one
on the changelog restructure, one on every factual claim in the PR body, the
second reaching the live upstream at `cursor/plugins@60c641e4`. Between them
they found eight defects in work this PR introduced. All eight are closed here.

Shipped text:

- **`write-for-humans`' new gate contradicted itself.** It said "the seven below
  do not apply" under a declared project guide and, one line later, "the three
  rules above apply either way" — but questions 4, 6 and 7 ARE those three
  rules. A run under a project guide was told to skip and to apply them at once.
  The gate now says which four questions come from the bundled layers and stand
  down, and which three apply whichever standard was resolved. The 0.18.1 entry
  carried the same false premise ("every one of its questions restates a bundled
  layer") and is corrected with the per-question breakdown.

- **An undescribed compression pass rode along in that same file** — nine hunks
  the changelog never mentioned, three of them lossy: the "does NOT do" bullet
  lost "of a published standard" and "the source records"; two gotchas lost
  their actionable half; one lost the "only" whose placement the skill's own
  ambiguity rule governs. The worked example lost "(and ambiguity)" from a fix
  that IS an ambiguity fix, and misquoted its own Before block as "if exceeded"
  where the block reads "If exceeded". Reverted to `origin/main` and the two
  described fixes re-applied on top, so the diff now matches its changelog.

- **`interface-design.md` named two destinations for one record.** The appended
  correction said `graft-record` is a sibling of `agreed-shape` while the
  sentence above it still said the record "travels into `agreed-shape`". That
  sentence is replaced rather than annotated.

- **`explore-directions` step 6 was still short a clause.** It carried the
  losers and the graft but dropped "what the discarded parts held that the graft
  deliberately left behind" — which the shared discipline argues is the
  highest-value half — while the changelog claimed the widened form.

Provenance and convention records:

- `docs/upstream/cursor-pstack.md` cited `context/spec.md` bare; the real file is
  `review/skills/quality-gate/context/spec.md`, and `review/context/` holds no
  `spec.md` at all, so the short form pointed nowhere.

- The `upstream-drift` adopter row flattened all four `write-for-humans` source
  records to "a publication-event trigger rather than a fetch divergence". Three
  are publication events; Google's is a page-content divergence, because that
  guide is a continuously-edited site with no edition to pin. The contract admits
  either shape — the row now says which record uses which instead of
  generalizing from three to four.

Changelog accuracy:

- The `discovery` 0.16.1 umbrella said "three routes back to the code-shape
  exclusion". Two are; the third is the version-control-behaviour ceiling, which
  the same skill says explicitly is NOT code shape. Split into its own bullet as
  what it is — a body-vs-eval derivability gap on the neighbouring rule.

- The `review` 0.25.1 entry spelled the private path the fix removed, leaving the
  cite standing in `plugins/review/` after the skill body dropped it. Described
  rather than spelled.

Gates at this tip against `origin/main`: markdownlint over all 1253 tracked
markdown files (0 issues), check-changed-skills 9/9, validate-plugins,
validate-plugin-contracts (48 setup skills, 2816 files), all four
changelog-parity modes, and the twelve standalone gates. No executable file is
touched anywhere in this PR, so the plugin test suite cannot be affected by it.

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

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
…d:principles

Codex review on #3069 said the new (Khorikov, via /tdd:principles) parenthetical
points at a skill that does not contain the rule. Checked against primary sources
rather than taking either side on report:

- cursor/plugins@60c641e4 pstack/skills/tdd/SKILL.md states "Prefer no new test
  over a bad test" and lists the six impracticality triggers. That is the file
  docs/upstream/cursor-pstack.md records as the cost-branch source.
- plugins/tdd/skills/principles/ and its routed Khorikov files contain neither
  the phrase nor the triggers. The nearest sentence is Khorikov's "It's better
  to not write a test at all than to write a bad test" in
  testable-architecture-khorikov.md (the 2x2 / Humble Object chapter), which
  this port used as grounds to reject upstream's five-item bad-test definition
  as already owned — a different rule.

The inline cite is now (upstream cursor/plugins tdd). 0.7.1 has not shipped, so
the entry is rewritten in place rather than patched with a further bump.

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
@cursor
cursor Bot force-pushed the claude/plugin-skills-sdlc-jkujin branch from 8f4eda6 to 34f483a Compare August 21, 2026 07:51
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cursor[bot]'s task in 2m 4s —— View job


CI Code Review

  • Gather context (git diff origin/main...HEAD at head 34f483a, prior review history, /review:code-review skill instructions)
  • Apply skip gate — no skip; branch history was rebased/squashed to 5 commits since the last review round, so no prior comment covers this exact head
  • Review changed files for correctness / maintainability
  • Verify factual/provenance claims against the actual tree
  • Post final summary (no inline findings)

Note on scope

This lane previously reviewed this PR three times against an earlier, messier commit history (b1bf09c, 4ef962d, f346886, 8f4eda6). None of those SHAs are reachable from the current head — the branch was rebased into the 5 clean commits the PR description's "Total Commits: 5" reflects. git diff origin/main...HEAD still matches the PR body's stated 31 files / +256/-64 exactly, so this is the same intended change set, just repackaged. Skip-gate condition 4 ("this head already has a successful review that still applies") doesn't literally apply to an unseen SHA, so I re-verified rather than skip.

Findings

No blocking findings. I re-traced every claim in the PR body and prior review rounds against the actual files at this head, and specifically scrutinized the one commit that's substantively new relative to what was reviewed before:

  • testing:write attribution rewrite (34f483a, new since the last review round). This reverses the author's earlier "not taking this" reply to the Codex finding on the same line — on further primary-source checking, the attribution is now (upstream cursor/plugins tdd) instead of (Khorikov, via /tdd:principles). Verified independently: docs/upstream/cursor-pstack.md:34 already records "the cost branch" (the six impracticality triggers plus "prefer no new test to a bad one") as Taken from upstream tdd, separately from the Khorikov five-item bad-test definition which it records as Rejected ("already owned" by tdd:principles/testing:audit). plugins/testing/skills/write/context/write.md:134 now reads **Prefer no new test to a bad one** (upstream cursor/plugins \tdd`)`, and the 0.7.1 changelog entry is rewritten in place (correct, since 0.7.1 hasn't shipped — no double bump). This is a better-grounded fix than either the original claim or the Codex finding's own suggested correction.
  • review:quality-gate downstream fable-5 cite — confirmed /playbooks:fable-5 verification against plugins/playbooks/skills/fable-5/SKILL.md's argument-hint: "[full | <chapter>]" and its Arguments paragraph; a chapter argument reads only that chapter rather than arming the bare-invocation standing doctrine.
  • discovery 0.16.1 trace-intent link normalization — confirmed explore, research, and research-deep all cite reference/parent-contract.md with ${CLAUDE_PLUGIN_ROOT} on both link text and href; trace-intent was the one relative-href outlier and is now consistent. The 0.16.1 changelog now names this explicitly (it didn't in the version reviewed earlier).
  • write-for-humans self-check splitSKILL.md:152-156 now correctly partitions the seven questions: 4/6/7 always apply (matching the "Three rules that survive a declared guide" section), 1/2/3/5 stand down under a declared project guide (matching the bundled-layer table). No more self-contradiction.
  • architecture:improve graft-record fieldinterface-design.md no longer claims two destinations for one record; it correctly names graft-record as a sibling of agreed-shape, filled by the Handoff step in deepening.md.
  • prototype:explore-directions step 6 — now carries "what the discarded parts held that the graft deliberately left behind," matching the shared capture discipline it cites.
  • session-flow retro skills — both now correctly describe /playbooks:skill-authoring as a no-argument, no-action knowledge surface ("read... for the doctrine and draft against it") rather than a hand-off destination. Verified against plugins/playbooks/skills/skill-authoring/SKILL.md:12: "it takes no arguments and performs no actions" — verbatim match.
  • Version bumps / changelog parity — all eight plugin.json versions match their CHANGELOG.md ### Fixed entries 1:1, each new-version section added rather than retrofitted into a released section, consistent with the PR's stated check-changelog-parity results.

I did not re-run scripts/check-changelog-parity.sh or the other shell-based gates myself — this lane's allowed-tools only grants gh pr diff/view/comment/review, Read, Glob, Grep, not general script execution — so those remain author-claimed per the PR's own verification section, same as prior rounds. I did not attempt to re-verify the cursor/plugins@60c641e4 upstream claims beyond the one I checked above (no network access to that repo from this environment).

…sdlc-jkujin

# Conflicts:
#	plugins/architecture/CHANGELOG.md
#	plugins/discovery/CHANGELOG.md
#	plugins/docs-hygiene/CHANGELOG.md
#	plugins/implementation/CHANGELOG.md
#	plugins/prototype/CHANGELOG.md
#	plugins/review/CHANGELOG.md
#	plugins/session-flow/CHANGELOG.md
#	plugins/session-flow/skills/retro/context/session.md
#	plugins/testing/CHANGELOG.md
@claude

claude Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 1m 34s —— View job


Security review

Skip gate: triggered (condition 3 — this head already has a successful security review that still applies).

git diff origin/main...HEAD at this head still touches exactly the same 31 files with the same +265/-64 stat reported in the PR description — matching the changed_files list for this event.

This lane already reviewed the PR's own content three times (b1bf09c, 58a7d55/4ef962d combined pass, f346886), most recently confirming (at 8f4eda6) that a prior merge from origin/main brought in no new PR content. The only new commit since is bb876a4, another merge of origin/main into this branch (picking up #3070, an unrelated already-merged PR that respells cross-skill invocations to explicit Skill-tool phrasing).

I confirmed the merge introduced no new content to this PR's own diff:

  • Diffed every one of this PR's 31 files directly between the last-reviewed content commit (34f483a) and the new head (bb876a4). The only changes are mechanical version-renumbering: architecture 0.6.10.6.2, discovery 0.16.10.16.2, docs-hygiene 0.18.10.18.2, implementation 0.15.10.15.2, prototype 0.9.10.9.2, review 0.26.10.26.2, session-flow 0.32.10.32.2, testing 0.7.10.7.2 — each because origin/main independently claimed the prior patch number for that plugin via docs(plugins): normalize operative cross-skill chains to explicit Skill-tool phrasing #3070's own ### Changed entry, so this branch's entry renumbered on top of it, same pattern as the earlier review 0.25.1→0.25.2 renumbering already reviewed.
  • Every ### Fixed body this PR authored (the eight behavioral corrections, the provenance-record fixes, the nine self-correction fixes from the prior rounds) is byte-identical across the diff — only the version heading and the newly-appended sibling ### Changed section beneath it changed.
  • No skill body, context file, eval, or manifest content this PR itself wrote was touched by the merge.

Since nothing in the PR's actual authored content changed, the prior review findings still apply. This remains documentation/skill-instruction content only, as in every prior pass on this PR: no executable code, no GitHub Actions workflow, no script, no auth/access-control logic, and no input-handling surface. Per the skip gate in /review:security-review, this stops here with nothing else posted: no vulnerabilities, injection surfaces, credential handling, or Actions security findings apply to this change.

@kyle-sexton
kyle-sexton merged commit 3815796 into main Aug 21, 2026
51 checks passed
@kyle-sexton
kyle-sexton deleted the claude/plugin-skills-sdlc-jkujin branch August 21, 2026 08:13
kyle-sexton pushed a commit that referenced this pull request Aug 21, 2026
PR #3069 claimed 0.39.8 for an unrelated change ("Cross-skill chains name
the Skill tool") while this branch was open, so the adapter-fix entry moves
up to 0.39.9 and sits above it. Manifest and CHANGELOG both.

Verified after resolving: no conflict markers anywhere, changelog parity and
--check-bump origin/main both pass, markdownlint clean, version sections in
descending order, and every change on this branch survived the merge —
type=issues and the stdin accumulation in gitea/list-items.sh, the root
issueLabels walk in linear/create-item.sh, and the /orgs labels merge in
gitea/create-item.sh. Full suite sweep clean across every adapter,
conformance binding, lib and the generator.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
kyle-sexton added a commit that referenced this pull request Aug 21, 2026
…ion table (#3094)

The attribution table claimed to be the single source of truth for everything
this marketplace derived from cursor/plugins' pstack/skills collection, and its
recheck trigger only reaches rows the table names — but unslop, from which
plugins/ai-slop is derived, had no row. Drift in that upstream skill would have
gone undetected.

One row added, recording what was taken, what was deduplicated against the
Wikipedia inventory, and what was rejected with its reason. It also states what
it is not: the verdict was formed at integration time against an unpinned
upstream main, so the file's pin is this row's baseline for the next diff rather
than the state it was audited at, and the derivation is dated 2026-08-19 rather
than left to this file's git history.

The head resolved a conflict with #3069, which had rewritten three rows on main
including a correction retracting two earlier overstatements. Main's rows were
taken verbatim; the diff against main is one insertion and zero deletions.

show-me-your-work remains a second, pre-existing instance of the same gap and is
tracked separately.
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.

3 participants