Skip to content

chore(skills): sharper auto-trigger keywords for 5 mattpocock-* skills#157

Merged
dackclup merged 1 commit into
mainfrom
claude/skill-trigger-flip-mattpocock-oEdh
May 20, 2026
Merged

chore(skills): sharper auto-trigger keywords for 5 mattpocock-* skills#157
dackclup merged 1 commit into
mainfrom
claude/skill-trigger-flip-mattpocock-oEdh

Conversation

@dackclup
Copy link
Copy Markdown
Owner

Summary

Rewrite the YAML frontmatter description: line of 5 vendored mattpocock-* skills from the upstream Use when user wants ... pattern to an explicit TRIGGER when user explicitly says '<phrase>' pattern with 4-6 sharp keyword phrases plus a do NOT auto-fire on generic ... guardrail.

Motivation

The upstream phrasing is vague enough that auto-trigger could fire interactive workflows (e.g., grill-me's relentless interview, tdd's red-green-refactor enforcement) on conversations that merely mentioned the topic — producing high false-positive cost. The explicit-keyword pattern requires the user to opt in via specific phrases ("grill me", "TDD this", "PRD this") while still letting Claude auto-trigger when those phrases appear — splitting the difference between the original pure user-invocation and a fully proactive trigger.

Affected skills (5)

Skill Sharp keyword phrases
mattpocock-grill-me "grill me", "stress-test this plan", "be critical of this", "find holes in my plan", "interview me on this", "challenge this design"
mattpocock-tdd "use TDD", "red-green-refactor", "test-first", "write a failing test first", "TDD this"
mattpocock-to-prd "write a PRD", "turn this into a PRD", "PRD this", "product requirements doc for this", "spec this out as a PRD", "draft a PRD from this conversation"
mattpocock-to-issues "break this into issues", "file these as issues", "create tickets for this", "convert plan to issues", "open issues for each item", "split this PRD into issues"
mattpocock-write-a-skill "create a skill", "write a new skill", "build me a skill", "add a skill for X", "scaffold a skill" + note preferring skill-creator for project-internal skills

Vendor-sync hygiene

  • Body of every SKILL.md remains upstream-verbatim — only the frontmatter description: line changes
  • THIRD_PARTY_NOTICES.md gains a "Description divergence (2026-05-20)" subsection listing the 5 affected files + the merge-conflict resolution policy for the next vendor sync
  • Vendor-rules summary box ("Adds permissive LICENSE...") unchanged; description-only divergence does not require a license re-eval

Lockstep diff

Per CLAUDE.md "ship with every PR" rule:

What this PR is NOT

Test plan

  • All 5 description: lines rewritten with TRIGGER syntax
  • All 5 SKILL.md bodies unchanged (only YAML frontmatter description: modified — verifiable from per-file diff = +1/-1 lines)
  • THIRD_PARTY_NOTICES.md "Description divergence" subsection documents every affected file
  • CLAUDE.md + AGENTS.md lockstep note added
  • CI green (Python lint + frontend build — no Python / TS changes, both should be no-op)

🤖 Generated with Claude Code


Generated by Claude Code

@vercel
Copy link
Copy Markdown

vercel Bot commented May 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
quantrank Ready Ready Preview, Comment May 20, 2026 5:35pm

Rewrite the YAML frontmatter `description:` line for 5 vendored
mattpocock-* skills from the upstream "Use when user wants ..." pattern
to an explicit "TRIGGER when user explicitly says '<phrase>'" pattern
with 4-6 sharp keyword phrases plus a "do NOT auto-fire on generic ..."
guardrail.

Why: the upstream phrasing was vague enough that auto-trigger could
fire interactive workflows (grill-me's relentless interview, tdd's
red-green-refactor enforcement) on conversations that merely
*mentioned* the topic, producing high false-positive cost. The
explicit-keyword pattern requires the user to opt in via specific
phrases ("grill me", "TDD this", "PRD this") while still letting Claude
auto-trigger when those phrases appear — splitting the difference
between the original pure user-invocation and a fully proactive
trigger.

Affected skills (5):
- mattpocock-grill-me  — "grill me", "stress-test this plan",
                        "be critical of this", ...
- mattpocock-tdd       — "use TDD", "red-green-refactor",
                        "test-first", "write a failing test first", ...
- mattpocock-to-prd    — "write a PRD", "turn this into a PRD",
                        "PRD this", ...
- mattpocock-to-issues — "break this into issues", "file these
                        as issues", "create tickets for this", ...
- mattpocock-write-a-skill — "create a skill", "write a new skill",
                            "scaffold a skill", ... (plus a note to
                            prefer `skill-creator` for project-internal
                            skills)

Body of every SKILL.md remains upstream-verbatim — only the
frontmatter `description:` line changes. `THIRD_PARTY_NOTICES.md`
gains a "Description divergence" subsection cataloguing the 5
affected files plus the merge-conflict resolution policy for the
next vendor sync.

CLAUDE.md + AGENTS.md lockstep diff per the "ship with every PR" rule:
both files gain a brief "Skill-trigger-flip in flight" entry pointing
cross-tool agents at the THIRD_PARTY_NOTICES.md divergence section.
@dackclup dackclup force-pushed the claude/skill-trigger-flip-mattpocock-oEdh branch from 4c2b7bb to 66c63bc Compare May 20, 2026 17:34
@dackclup dackclup marked this pull request as ready for review May 20, 2026 17:43
@dackclup dackclup merged commit 85d2755 into main May 20, 2026
4 checks passed
@dackclup dackclup deleted the claude/skill-trigger-flip-mattpocock-oEdh branch May 20, 2026 17:43
dackclup pushed a commit that referenced this pull request May 20, 2026
New skill at `.claude/skills/vendor-sync/SKILL.md` codifies the
disciplined upstream-sync workflow for the 4 vendored third-party
sources: `mattpocock/skills`, `multica-ai/andrej-karpathy-skills`,
the Karpathy LLM Wiki gist, and `9arm-skills` (LICENSE PENDING).

Why now: PR #157 introduced description-divergence between local and
upstream for 5 mattpocock-* skills (sharper TRIGGER-style keywords vs
upstream's looser "Use when ..." pattern). Next vendor sync will hit
merge conflicts on those 5 description lines. THIRD_PARTY_NOTICES.md
already documents the divergence + resolution policy; this skill is
the workflow that enforces the policy at sync time, so the policy
doesn't rot before the first actual sync.

Skill covers:

1. Scope picking (one PR per upstream source — don't bundle)
2. Diff against last vendored SHA (recorded in THIRD_PARTY_NOTICES.md)
3. Change classification (apply verbatim vs invoke divergence policy
   vs license-stop)
4. Description-divergence resolution: "local sharpness wins on
   description; upstream wins on body" (5 affected mattpocock-*
   skills listed)
5. THIRD_PARTY_NOTICES.md update (Upstream commit SHA + Vendored date
   + Vendored skills enumeration)
6. Verification ladder (markdown-only, CI smoke-test)
7. CLAUDE.md + AGENTS.md lockstep entry
8. Draft PR template

Plus source-specific notes (Karpathy gist has no SHA — date-pin only;
9arm-skills sync = re-check upstream for LICENSE file).

CLAUDE.md + AGENTS.md lockstep diff: brief "Vendor-sync skill in
flight" entry; skill count bumped from 38 → 39.
dackclup added a commit that referenced this pull request May 20, 2026
New skill at `.claude/skills/vendor-sync/SKILL.md` codifies the
disciplined upstream-sync workflow for the 4 vendored third-party
sources: `mattpocock/skills`, `multica-ai/andrej-karpathy-skills`,
the Karpathy LLM Wiki gist, and `9arm-skills` (LICENSE PENDING).

Why now: PR #157 introduced description-divergence between local and
upstream for 5 mattpocock-* skills (sharper TRIGGER-style keywords vs
upstream's looser "Use when ..." pattern). Next vendor sync will hit
merge conflicts on those 5 description lines. THIRD_PARTY_NOTICES.md
already documents the divergence + resolution policy; this skill is
the workflow that enforces the policy at sync time, so the policy
doesn't rot before the first actual sync.

Skill covers:

1. Scope picking (one PR per upstream source — don't bundle)
2. Diff against last vendored SHA (recorded in THIRD_PARTY_NOTICES.md)
3. Change classification (apply verbatim vs invoke divergence policy
   vs license-stop)
4. Description-divergence resolution: "local sharpness wins on
   description; upstream wins on body" (5 affected mattpocock-*
   skills listed)
5. THIRD_PARTY_NOTICES.md update (Upstream commit SHA + Vendored date
   + Vendored skills enumeration)
6. Verification ladder (markdown-only, CI smoke-test)
7. CLAUDE.md + AGENTS.md lockstep entry
8. Draft PR template

Plus source-specific notes (Karpathy gist has no SHA — date-pin only;
9arm-skills sync = re-check upstream for LICENSE file).

CLAUDE.md + AGENTS.md lockstep diff: brief "Vendor-sync skill in
flight" entry; skill count bumped from 38 → 39.

Co-authored-by: Claude <noreply@anthropic.com>
dackclup pushed a commit that referenced this pull request May 25, 2026
Adds `grill-with-docs` from upstream mattpocock/skills repo
(skills/engineering/grill-with-docs/). Initially skipped at the
2026-05-20 base sync as "in-flux upstream"; added 2026-05-25 after
the skill stabilized + proved useful in PR2a scope-design (7-Q
interview session for issue #248 cross-source observability).

## Files (3 vendored verbatim + 2 doc updates)

- `.claude/skills/mattpocock-grill-with-docs/SKILL.md` — verbatim body
  with QuantRank adaptation note appended (multi-file CONTEXT analog
  + PHASE_STATUS_INFLIGHT.md as ADR analog)
- `.claude/skills/mattpocock-grill-with-docs/CONTEXT-FORMAT.md` — verbatim
- `.claude/skills/mattpocock-grill-with-docs/ADR-FORMAT.md` — verbatim
- `THIRD_PARTY_NOTICES.md` — vendored-skills 8 → 9; removed
  grill-with-docs from "Skipped" list; added rationale for the
  delayed-add timeline
- `CLAUDE.md` §Layout — skill count 43 → 44

## QuantRank adaptation (in SKILL.md trailer, no upstream divergence)

Upstream assumes single `CONTEXT.md` at repo root. QuantRank's
domain-language analog is multi-file: `CLAUDE.md` (stack, gotchas,
phase status), `docs/METHODOLOGY.md` (academic priors),
`SKILL.md` (Rules 1-18), `WORKFLOW.md` (per-phase tasks). The
skill's "update CONTEXT.md" instruction is interpreted as "update
the most-appropriate of those four files". ADRs land in
`PHASE_STATUS_INFLIGHT.md` (the project's existing decision-
recording surface) rather than `docs/adr/`.

## Description divergence

None. Upstream description preserved verbatim. PR #157's
"sharp keyword required" pattern not applied here because the
upstream description is already specific ("when user wants to
stress-test a plan against their project's language and documented
decisions"). Sharpen later if false-positive triggers surface.

## Test plan

- [x] Skill registers in skill list (verified via skill-loader reload)
- [x] All 3 files written cleanly
- [ ] First real-world test: PR2b scope-design session (will use
  `/grill-with-docs` instead of `/grill-me`, expecting auto-update
  of relevant doc instead of post-session manual write)

Scope NOTE: PR #256 was originally PR2a (Issue #248 cross-source
observability). This commit adds a SECONDARY scope (skill vendoring,
doc-only). Reviewer may choose to split into a separate follow-up PR;
all 3 vendor files + 2 doc updates are clearly separable from PR2a's
schema+compute changes.

https://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4
dackclup pushed a commit that referenced this pull request May 26, 2026
… milerdev)

New invocation-triggerable skill at
.claude/skills/good-code-bad-code-review/SKILL.md wrapping the
publicly-hosted catalog at https://good-code-bad-code.pages.dev/
— 18 language/framework tracks × 10 paired side-by-side good/bad
code-review examples (~180 total).

Posture: REFERENCE LINK ONLY — no content vendored. Skill body is
QuantRank-original index that catalogs the resource's structure
(track list + per-track topic list + URL pattern) and tells the
agent how to deep-link via WebFetch on demand at review-time.

QuantRank-relevant tracks (6): Python (compute/), TypeScript
(frontend/lib/types.ts), React (frontend/components/), Next.js
(frontend/app/), Tailwind CSS, Git workflow.

12 other tracks (PHP/Java/Go/Express/Django/FastAPI/SQL/Docker/
HTML/raw CSS/JavaScript/Node.js) explicitly listed as SKIP —
QuantRank doesn't use those stacks (static-export only, no DB,
no server-side runtime, TS exclusively).

Trigger conditions follow PR #157 sharp-keyword convention:
"is this idiomatic" / "is this Pythonic" / "is this good code" /
"review this function" / "any code-smells" / "ดู code นี้ดีมั้ย".
Complements (does NOT replace) quantrank-reviewer which owns
project invariants — Rules 1-18 / schema triple / annotate-before-
veto / tenacity. This skill covers generic-language idioms
orthogonally.

Hard constraints built into skill body:
- DO NOT vendor content (no declared upstream license)
- DO NOT block on WebFetch failure
- DO NOT override project invariants with generic idioms
- DO NOT fire on trivial diffs

Files (6):
- .claude/skills/good-code-bad-code-review/SKILL.md (new)
- THIRD_PARTY_NOTICES.md — reference-link posture + attribution
- CLAUDE.md / AGENTS.md / SKILL.md / PHASE_STATUS.md — skill count
  44 → 45 (4-doc lockstep)
- PHASE_STATUS_INFLIGHT.md — this PR's side-file entry

Quarterly maintenance gate: 2026-08-19 cohort audit — re-confirm
home page resolves; refresh track-list table on Miler rename/add;
update license posture if upstream declares one.

ZERO behavior change to compute / scoring / valuation / frontend
code. Skill-config + docs only.

https://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4
dackclup added a commit that referenced this pull request May 26, 2026
… milerdev paired good/bad examples) (#268)

New invocation-triggerable skill at
.claude/skills/good-code-bad-code-review/SKILL.md wrapping the
publicly-hosted catalog at https://good-code-bad-code.pages.dev/
— 18 language/framework tracks × 10 paired side-by-side good/bad
code-review examples (~180 total).

Posture: REFERENCE LINK ONLY — no content vendored. Skill body is
QuantRank-original index that catalogs the resource's structure
(track list + per-track topic list + URL pattern) and tells the
agent how to deep-link via WebFetch on demand at review-time.

QuantRank-relevant tracks (6): Python (compute/), TypeScript
(frontend/lib/types.ts), React (frontend/components/), Next.js
(frontend/app/), Tailwind CSS, Git workflow.

12 other tracks (PHP/Java/Go/Express/Django/FastAPI/SQL/Docker/
HTML/raw CSS/JavaScript/Node.js) explicitly listed as SKIP —
QuantRank doesn't use those stacks (static-export only, no DB,
no server-side runtime, TS exclusively).

Trigger conditions follow PR #157 sharp-keyword convention:
"is this idiomatic" / "is this Pythonic" / "is this good code" /
"review this function" / "any code-smells" / "ดู code นี้ดีมั้ย".
Complements (does NOT replace) quantrank-reviewer which owns
project invariants — Rules 1-18 / schema triple / annotate-before-
veto / tenacity. This skill covers generic-language idioms
orthogonally.

Hard constraints built into skill body:
- DO NOT vendor content (no declared upstream license)
- DO NOT block on WebFetch failure
- DO NOT override project invariants with generic idioms
- DO NOT fire on trivial diffs

Files (6):
- .claude/skills/good-code-bad-code-review/SKILL.md (new)
- THIRD_PARTY_NOTICES.md — reference-link posture + attribution
- CLAUDE.md / AGENTS.md / SKILL.md / PHASE_STATUS.md — skill count
  44 → 45 (4-doc lockstep)
- PHASE_STATUS_INFLIGHT.md — this PR's side-file entry

Quarterly maintenance gate: 2026-08-19 cohort audit — re-confirm
home page resolves; refresh track-list table on Miler rename/add;
update license posture if upstream declares one.

ZERO behavior change to compute / scoring / valuation / frontend
code. Skill-config + docs only.

https://claude.ai/code/session_01JwntEE4PNAXSMkZxRA9BB4

Co-authored-by: Claude <noreply@anthropic.com>
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