Skip to content

feat(plugins): sync mattpocock/skills v1.2 learnings across five lanes - #2082

Merged
kyle-sexton merged 8 commits into
mainfrom
feat/pocock-skills-v12-sync
Aug 9, 2026
Merged

feat(plugins): sync mattpocock/skills v1.2 learnings across five lanes#2082
kyle-sexton merged 8 commits into
mainfrom
feat/pocock-skills-v12-sync

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

No linked issue

Summary

Syncs the learnings from mattpocock/skills v1.2 (HEAD v1.2.3 @ 84fdeff) into this marketplace across five lanes on one branch: provenance SSOT + verified 35-skill map, owned-skill behavior deltas, two new-skill ports (discipline:wait-what, wizard:generate), and the infra-subset verdicts.

Fix

  • Lane 1 — landed docs/upstream/mattpocock-skills.md (single provenance SSOT, in-skill provenance stripped) plus the verified upstream↔ours map under docs/topics/pocock-skills-v12-sync/.
  • Lane 2 — adopted the vetted owned-skill deltas (M6–M9, M11, M12) across planning, architecture, debugging, testing, and session-flow, each with semver bump + CHANGELOG.
  • Lane 3 — ported wait-what as a declared non-corrector species in discipline (0.11.0), with a documented naming-exception entry in docs/PLUGIN-PHILOSOPHY.md.
  • Lane 4 — ported wizard as a NEW single-capability plugin (wizard 0.1.0, /wizard:generate, name locked via a 5-generator/3-judge blind naming tournament). The shipped template.sh is a hardened variant: human read/approval of authored stages before chmod +x, https-only open_url with pre-dispatch URL print, /dev/tty fail-closed prompts, chmod 600 + gitignore assertion + temp-file trap on .env writes, explicit --repo and empty-value refusal on gh writes, key-name validation, quoted/escaped env values, and an honest secrets-and-model-context statement (scoping reads key names only from a live .env). A docs/MIGRATION-PLAYBOOK.md acceptance record documents the deliberate break of the statusline-shim no-templating precedent with its load-bearing conditions.
  • Lane 5 — infra verdicts (user-delegated vetting + adversarial verifier): adopted the shareable-HTML logic substrate into prototype:pressure-test (0.4.0); rejected the branch-capture half, version-sync script, and docs-site "It's working if" sections; recorded two event-triggered TRACK strands; corrected the SSOT triage row to a Derived structured port.

Verification

  • Every lane's changes were validated by a fresh-context verifier subagent before commit (Lane 4: 25/25 items PASS; Lane 5: 12/12 PASS; lanes 1–3 gated in their own sessions).
  • Gates green per lane: check-skill.sh (wait-what, generate, pressure-test), check-skill-portability.sh, markdownlint-cli2 (repo config), check-changelog-parity.sh (--check, --check-bump, --check-order), typos, claude plugin validate --strict ., catalog/cheat-sheet drift checks, bash -n + shellcheck (0 findings) + a functional smoke suite on wizard's template.sh.
  • Contract surfaces (skill frontmatter, plugin manifests, marketplace entry) written against officially fetched current docs per the fresh-docs mandate, URLs cited in the lane records in docs/topics/pocock-skills-v12-sync/PLAN.md.

Related

  • docs/topics/pocock-skills-v12-sync/PLAN.md — the five-lane Brief, per-lane closure records, and resolved decision log (Q1–Q27).
  • docs/upstream/mattpocock-skills.md — provenance SSOT with attribution rows, rejections, and event-triggered TRACK records.
  • Upstream: https://github.com/mattpocock/skills v1.2.3 @ 84fdeff.

kyle-sexton and others added 5 commits August 8, 2026 15:54
Lane 1 of the pocock-skills-v12-sync effort (Brief in
docs/topics/pocock-skills-v12-sync/PLAN.md):

- Add docs/upstream/mattpocock-skills.md — the single source of truth for
  all material derived from mattpocock/skills: per-skill attribution table
  (including the previously unrecorded work-items triage/decompose phrasing
  influence), an observable recheck trigger, the last-audited upstream ref
  (v1.2.3 @ 84fdeff), and harness findings (upstream #693, the Codex
  sidecar hidden-skill gotcha).
- Promote the verified 35-skill upstream<->ours map and the v1.2 research
  summary into docs/topics/pocock-skills-v12-sync/.
- Strip upstream-provenance bookkeeping from planning questionnaire and
  wayfind SKILL.md bodies (agent-facing noise; the questionnaire line had
  also gone stale — upstream to-questionnaire graduated in v1.2.0). The
  SSOT and plugin CHANGELOG carry credit now. Planning plugin 0.28.2.
- Annotate the ai-adoption-ladder sandcastle research doc with a v1.2
  staleness note (writing-great-skills -> writing-for-agents rename,
  six skill removals, current star count).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Close Lane 2 of the pocock-skills-v12-sync plan: each of M6 M7 M8 M9 M11
M12 adopted, rejected, or tracked, driven by six fresh-context vetting
agents per the lane interview's mandate. Outcomes recorded in
docs/upstream/mattpocock-skills.md; per-plugin CHANGELOGs carry detail.

- planning 0.29.0: interview gains opt-in emoji anchors
  (use_emoji_question_markers userConfig, default off; fresh-docs
  verified against the current plugins-reference userConfig schema);
  wayfind gains the parallel research burn-down exception and the
  no-fog chart bail-out. Rejected: one-question-at-a-time opt-out
  (consumer CLAUDE.md is the native seam), "decision ticket" term
  (parity as "decision item"), research/<name> branch (two-lane
  branch-naming prohibition).
- architecture 0.4.3: improve's deepening Phase 1 opens with the YAGNI
  scoping filter (named direction, else commit-history hot spots);
  precomputed recent commits widened 10 -> 20.
- debugging 0.5.0: debug gains a standing secret-redaction guard; the
  no-loop escape hatch asks for a redacted artifact.
- testing 0.4.0: diagnose gains a Redact section, tagged debug logs
  ([DEBUG-a4f2]) in investigation, and a remove-tagged-logs step at the
  loop's green gate.
- session-flow 0.18.1: the continuation router's continue question
  gains the zone-gated primary-source criterion; the rest of upstream's
  phase-boundaries tree audited at parity or rejected (~150k smart-zone
  figure is folklore; context-guard bands unchanged).
- M6 questionnaire re-audit closed with no delta (upstream graduation
  was a 100%-similarity rename; ours is a superset).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ne 3)

Lane 3 of the pocock-skills-v12-sync plan: Q9 resolved by the lane
interview (rounds 4-6) with agent-gathered evidence and a naming
tournament; the user locked PORT.

- New skill `discipline:wait-what` — one-shot, user-invoked-only
  communication repair (disable-model-invocation: true is load-bearing:
  only the human can detect that a message did not land). Body stays
  deliberately small: re-pitch with the missing context, ASD-STE100
  Simplified Technical English (inline five-word gloss), and the
  project's ubiquitous language read from the nearest glossary per the
  consumer's own convention, degrading silently when none exists.
- Declared as a non-corrector species beside sweep-all; no
  discipline-batch tier, so sweeps never fire it. discipline
  0.10.1 -> 0.11.0 + CHANGELOG; README species table + skill section.
- Name kept upstream: sixth entry on the PLUGIN-PHILOSOPHY naming
  exception list (utterance-is-mechanism + upstream muscle-memory
  parity; tournament record in PLAN.md Lane 3).
- SSOT row in docs/upstream/mattpocock-skills.md carries provenance and
  the X-thread evidence that the same instruction failed as passive
  CLAUDE.md and as an output style (on-demand is the working shape);
  map row 24 updated with the corrected adjacency (explain/clarify
  third cell).
- Fresh docs fetched for the skills frontmatter surface; skill-quality
  gate PASS; markdownlint 0 issues; portability check clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ne 4)

Lane 4 of the pocock-skills-v12-sync plan: Q10 resolved by the lane
interview; the user locked PORT, hardened, as a new single-capability
plugin.

- New plugin `wizard` 0.1.0, one skill `generate` (/wizard:generate,
  leaf named via naming tournament; grammar-clean, no naming-exception
  entry). Model-invoked with upstream's non-trigger fence kept ("Don't
  invoke this for steps the agent can perform itself").
- Hardened template.sh (the gating outcome of a completed security
  review, all conditions shipped): mandatory human read-and-approve of
  the full STAGES block before chmod +x; https-only open_url with the
  URL printed before dispatch (closes a Windows UNC/NTLM leak via
  explorer.exe); /dev/tty fail-closed prompts retiring a verified
  multi-line-paste confirm bypass and pause's EOF fail-open; quoted
  0600 .env writes + gitignore pre-flight assert + trap-cleaned atomic
  temp; repo-resolved/confirmed --repo-explicit gh writes with stderr
  surfaced into SKIPPED and empty values refused; key-name validation
  in every helper; readline on non-secret asks (upstream #741 fixed
  where safe); set_var via --body-file - (stdin, never argv).
- Scoping honesty fix: step 1 reads .env.example/README/workflows fully
  but takes key NAMES only from a live .env, never values; the skill
  states the secrets-and-context property honestly.
- Fresh-context static trace delegated in the skill's verify step per
  the fresh-eyes rules; bash -n/shellcheck stay deterministic gates.
- Records: SSOT attribution row + open-evaluations update, map row 18,
  PLAN.md Q10/lane-4 closure, MIGRATION-PLAYBOOK ACCEPT record for the
  model-generated-executable surface (deliberately breaks the
  statusline-shim no-templating precedent, mitigations recorded).
- Marketplace entry + regenerated CATALOG and skill cheat sheet.
- Gates: bash -n + shellcheck clean; skill-quality check PASS (0 warn);
  portability gate clean (gh sites declared portability-ok); typos and
  markdownlint clean; claude plugin validate + --strict catalog pass;
  functional smoke of the library helpers; fresh-context verifier
  subagent returned 25/25 PASS (its two non-blocking findings fixed:
  explorer.exe spurious warning, gitignore check now pre-flight).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ts (lane 5)

M10 SPLIT: adopt the shareable-HTML logic shell into prototype:pressure-test as an
audience-routed substrate (TUI default; self-contained HTML demo for non-developer
drivers or no-terminal handoffs, under explore-directions' CSP/ephemeral-temp/
synthetic-data/discard-after-capture constraint set); reject the throwaway-branch
"primary source" capture half (two-lane violation; contradicts delete-when-done).
prototype 0.4.0; provenance: mattpocock/skills v1.2.3 @ 84fdeff LOGIC.md.
M13: reject writing-for-agents/SKILL-MECHANICS bulk at parity or stronger; track two
strands on event triggers (leading-words+negation, cross-linked to the
interview-batch-rounds deferral; invocation-reach invariant).
M14: reject version-sync script (changesets/npm pipeline tool; check-changelog-parity.sh
stronger; marketplace.json carries no version keys).
M15: reject .out-of-scope/ KB as already-adopted (work-items 0.6.0 ledger is a superset)
and correct the SSOT triage row to Derived (structured port); no work-items behavior change.
M16: reject "It's working if" sections (docs-site decoration); reopen condition recorded
in the rejection, not a TRACK row.
Close the SSOT open-evaluations sentence; resolve Q11 and record the Lane 5 closure in
the topic plan; regenerate the skill cheat-sheet for the pressure-test summary change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cursor

cursor Bot commented Aug 9, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@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: f727d19c4c

ℹ️ 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/wizard/skills/generate/template.sh Outdated
Comment thread plugins/wizard/skills/generate/template.sh
…2-sync

# Conflicts:
#	plugins/architecture/CHANGELOG.md
#	plugins/discipline/.claude-plugin/plugin.json
#	plugins/discipline/CHANGELOG.md
#	plugins/planning/.claude-plugin/plugin.json
#	plugins/planning/CHANGELOG.md
#	plugins/prototype/CHANGELOG.md
#	plugins/session-flow/.claude-plugin/plugin.json
#	plugins/session-flow/CHANGELOG.md
#	plugins/testing/.claude-plugin/plugin.json
#	plugins/testing/CHANGELOG.md
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

Warning

Automated review did not complete — this is an infrastructure failure, not a review verdict.

Treat any Claude comment on this PR (including a placeholder like "I'll analyze this and get back to you") as incomplete, not "no findings."

Re-run the job to retry the review. A new push does not re-trigger this lane.
An automatic retry may already have run — it is skipped when a partial review could duplicate comments, or when the failure class needs an operator (auth).

@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

…er the generate leaf

- Graduate the durable audit record: docs/topics/pocock-skills-v12-sync/his-ours-map.md
  moves to docs/upstream/mattpocock-skills-v12-map.md (the SSOT already links it); delete
  PLAN.md and RESEARCH.md from the slice — decisions live in the SSOT, PLUGIN-PHILOSOPHY,
  and MIGRATION-PLAYBOOK records, and the slice history stays in git (contract-slice
  prune gate).
- Register the generate leaf collision (ai-briefing,wizard) with grounds
  (skill-leaf-name gate).
- Track template.sh executable (shebang exec-bit gate).
- Add the missing blank lines at the discipline CHANGELOG merge seam (markdownlint).

security-review failed on a transient API 429; this push retries it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

Two Codex review findings on template.sh, both verified locally:

- set_var used `gh variable set --body-file -`, a flag that does not exist —
  every authenticated variable write would have failed before reaching the
  API. gh reads the value from standard input when --body is omitted
  (verified against gh 2.96.0 --help), so pipe the value with no body flag.
- /dev/tty prompts did not drain buffered paste: `value\ny\n` pasted into an
  ask prompt left `y` in the tty buffer, silently answering the next confirm
  gate. New _drain_tty discards pending lines at the top of pause and
  confirm, so a gate only consumes a line typed at it.

bash -n + shellcheck clean; drain semantics reproduced in a scripted check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@github-actions github-actions Bot deleted a comment from claude Bot Aug 9, 2026
@claude

claude Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 1s —— View job


I'll analyze this and get back to you.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

Warning

Automated security review did not complete — this is an infrastructure failure, not a review verdict.

Treat any Claude comment on this PR (including a placeholder like "I'll analyze this and get back to you") as incomplete, not "no findings."

The check is red on purpose. It certifies that a security pass ran, and this one did not complete, so it cannot report success. Where this check is required, merging is blocked until a review actually finishes.

Re-running the job, or pushing a new commit, will retry the review. An automatic retry may already have run — it is skipped when a partial review could duplicate comments, or when the failure class needs an operator.

Re-running does NOT help for every class:

  • rate-limit that persists across re-runs, or auth — the credential or usage budget needs an operator; retrying will not clear it.
  • a run that exhausted its turn budget ("subtype":"error_max_turns" above) will exhaust it again. As the PR author, split the change into smaller PRs; raising --max-turns is a change to the caller workflow, not something you can set on this PR.

@kyle-sexton
kyle-sexton merged commit 03a827f into main Aug 9, 2026
33 of 35 checks passed
@kyle-sexton
kyle-sexton deleted the feat/pocock-skills-v12-sync branch August 9, 2026 12:16
kyle-sexton pushed a commit that referenced this pull request Aug 21, 2026
An independent audit re-checked every claim in the two upstream SSOT documents
against the actual repo state, with three fresh-context verifiers re-testing each
discrepancy and one candidate finding refuted and dropped. Nine survived.

aihero-shipping-course.md:
- Lane Y said the marketplace-wide glossary was deferred. docs/GLOSSARY.md landed
  2026-08-20 (#3062) and already defines `phase boundary`. Corrected to record the
  promotion, with `item` and `checkpoint` staying reference-local.
- Lane D said the container close-out review "is structurally larger than a mode
  addition". #3027 is closed: it landed as exactly that — a tenth quality-gate
  lens — with all four broken mechanisms resolved in-file.
- Lane D C12 claimed the branch-scoped spec lens filled the dangling consumer in
  decompose and ship. It did not: that consumer was container-scoped, work-items'
  own changelog says so, and #3027's close-out mode filled it. The quoted phrase
  is also gone from both skills, surviving only in changelog history.
- C23 cited `.agents/` trigger text. Verified against mattpocock/skills@068b6e0:
  `.agents/` holds five files and none carries a domain-modeling trigger. The
  real source is domain-modeling/SKILL.md:3, from PR #848 — so the Lane X row,
  which scoped all of C21-C23 to #878/#880, is corrected too.

mattpocock-skills.md:
- `to-tickets` was recorded as "Influence (vocabulary)", which understated it AND
  disagreed with the v12 map's own PARTIAL grade. Four of Lane B's five adopted
  candidates are mechanics, not phrasing; only "work the frontier" is vocabulary.

mattpocock-skills-v12-map.md — four rows contradicted by landed work:
- row 2 called the two-axis parallel-subagent structure "Omitted"; self.md:17 IS
  that structure, differing only in calling it a lens rather than an axis.
- row 13 called the tdd seam discipline "Not ported"; it landed at plan/SKILL.md:96
  with two deliberate divergences.
- row 14 called to-spec "Not ported"; C3 and C4 both landed in decompose.
- the invocation-reach rule was recorded as having "no such stated invariant in
  our repo"; it is a named section in the invocation-mode convention doc, and the
  sibling SSOT already recorded it CONFIRMED — the two docs contradicted.
- drift findings 1 and 2 cite questionnaire/SKILL.md:48-50. That file is 45 lines
  and greps clean; the text was removed in #2082 BEFORE the map was written. Both
  marked discharged rather than left reading present-tense.

Also fixes a divergence the audit surfaced as a side effect: `phase boundary` had
TWO definitions — docs/GLOSSARY.md's and execution-shape.md's — one of them in a
file claiming repo-wide authority. execution-shape.md now cedes the definition and
keeps only the seam-specific relation to `checkpoint`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CnzwTKoTa6xNY7iyEzMYpm
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.

1 participant