Commit Graph
124 Commits
Author SHA1 Message Date
github-actions[bot] c45c5a4835 chore: version skills 2026-08-20 10:35:32 +00:00
remote-box 85f83d3fde grilling: separate questions in a round with an HR
Multi-question rounds ran straight into each other with no visual
break. Fold the horizontal rule (---) directly into the round
template so consecutive questions are shown as distinct blocks; the
template demonstrates the separator, so no extra prose instruction
is needed.
2026-08-20 10:34:29 +00:00
Claude Sonnet 5 4f289474ba chore: add changeset for YAML front-matter fix
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 13:04:09 +00:00
Remote Box AgentandClaude Sonnet 5 e6e957797d Add changeset, revert CHANGELOG.md, and steer future writing away from em-dashes
CHANGELOG.md is changeset-generated; hand-editing its historical prose
was out of scope, so it's back to main's version. Added a patch changeset
describing the em-dash removal instead, and a line in CLAUDE.md/AGENTS.md
so future prose in this repo doesn't reintroduce them.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 10:03:37 +00:00
Remote Box AgentandClaude Sonnet 5 321658273c Remove all em-dashes from the repo
Every em-dash across docs, skill files, scripts, and JSON/YAML metadata
was rewritten by hand (commas, colons, periods, parentheses, conjunctions)
rather than mechanically substituted, so sentences still read naturally.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 10:03:37 +00:00
remote-boxandClaude Sonnet 5 594f0f8318 Add changeset for wait-what CONTEXT-MAP.md fix
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 09:45:14 +00:00
Remote Box Agent 1dab98299c Stop skills from calling other user-invoked skills
Five skills (to-spec, wayfinder, to-tickets, triage, code-review) told
the agent to call the Skill tool on setup-matt-pocock-skills as a
missing-config precondition. It's user-invoked, so per
.agents/invocation.md no other skill — user- or model-invoked — can
ever reach it that way. PR #878 turned the old soft "/skill"-style
prose into a literal "Call the Skill tool with ..." instruction
without checking invocation type, which made this fire more reliably
in the wrong direction. Reworded all five as instructions to tell the
human to run it instead.

diagnosing-bugs had the same problem handing its post-mortem off to
improve-codebase-architecture, with no human anywhere in that loop to
catch the failed call. Removed the hand-off outright rather than
softening it, since it rarely fired in practice; Phase 6 is now
"Cleanup" only.

Added a carve-out to .agents/invocation.md's "Dependencies between
them" section — the section PR #878 introduced — so future
"call the Skill tool" instructions can't repeat this against a
user-invoked target.

Fixes #453.
2026-08-15 21:19:23 +00:00
Matt Pocock bb1c760d55 Merge pull request #878 from mattpocock/audit/skill-tool-invocation-terminology
Standardize cross-skill invocation on "call the Skill tool" phrasing
2026-08-15 22:01:36 +01:00
Claude e3e547b57d Add changeset; re-sync the two docs pages tied to this bug
CLAUDE.md requires a docs re-sync when a promoted skill's behaviour
changes, and a changeset for versioning. Full re-syncs of all ten
touched skills' docs pages would be disproportionate for a wording-only
change to internal invocation instructions, but two pages specifically
document the exact reliability problem this phrasing targets — the
"most reported problem" FAQ on grill-with-docs's page, and the matching
"rough edge" FAQ on grilling's page, plus a stale literal quote of
grill-me's SKILL.md body. Updated those three spots to reflect the new
mechanism without overclaiming the bug is fully fixed, and added a
changeset summarizing the change across all ten affected skills.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-15 20:55:23 +00:00
remote-box d419977fe0 chore: add changeset for grilling em-dash removal 2026-08-15 20:50:05 +00:00
Claude 54bc6b6040 domain-modeling: drop the "another skill needs to maintain" caveat
Every skill that delegates to domain-modeling (grill-with-docs,
wayfinder, improve-codebase-architecture, triage) already invokes
/domain-modeling explicitly by name, so the description never needed
to carry that branch — it's the invoking skill's job to say so, not
this one's to anticipate it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 08:34:35 +00:00
Claude e12e7ec6a7 domain-modeling: reword terminology trigger to "discussing codebase terminology"
"Pin down domain terminology or a ubiquitous language" was stiff and
leaned on DDD jargon. Swap it for the plainer, more naturally-phrased
"discussing codebase terminology".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 08:21:20 +00:00
Claude f02e2ed362 chore: add changeset for domain-modeling trigger update
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 08:14:55 +00:00
github-actions[bot] 30204e66cb chore: version skills 2026-08-06 14:04:48 +00:00
Matt Pocock 113087c684 Merge pull request #783 from mattpocock/wizard-no-time-estimate
refactor(wizard): remove the minutes estimate
2026-08-06 15:04:32 +01:00
Matt PocockandClaude Opus 5 cb7db0eeb6 refactor(wizard): cut the no-ops about time estimates
Telling the agent not to give minutes, in a template that has no
minutes, pays load to say nothing — and naming the banned behaviour
makes it more available, not less. The absence does the work.

- SKILL.md: drop the "never give a time estimate" paragraph and the
  "stage takes no duration" note; the example stage already shows it.
- template.sh: drop the two comments about not printing minutes.
- docs: drop the sentence about there being no estimate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 14:56:50 +01:00
Matt PocockandClaude Opus 5 c0fd1e973e refactor(wizard): remove the minutes estimate
The wizard always told the human how many minutes the procedure would
take and how many were left. The number was invented at authoring time
and never true, so it is gone.

- template.sh: drop TOTAL_MINUTES and _MINUTES_ELAPSED, the "about N
  minutes" banner line, and the "(~N min left)" stage suffix. stage()
  takes a name only; progress is a stage count.
- SKILL.md: state the rule — no minutes in the script, in stage
  headers, or in what the agent tells the user.
- docs: the Stages section counts stages, not minutes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 14:48:55 +01:00
Matt Pocock bb8fdc3fd1 Merge pull request #779 from mattpocock/fix/diagnosing-bugs-redact-secrets
fix: make diagnosing-bugs redact secrets
2026-08-06 14:14:29 +01:00
Matt PocockandClaude Opus 5 c0d69015e0 fix: cut the added prose back to the bare instruction
The first pass replaced Claude Code's tool names with an explanation of
what the harness should supply. "Your harness's subagent mechanism" is a
wordy restatement of "subagent", and the note about which agent type to
pick is a no-op — the agent picks a capable one by default.

Say only what changes behaviour: "spawn 3+ sub-agents in parallel". In
code-review the sentence goes entirely, because its heading already
carries the instruction.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 14:12:30 +01:00
Matt PocockandClaude Opus 5 14bfbbd865 fix: make subagent dispatch harness-neutral
Three skills named Claude Code's `Agent` tool and its `general-purpose`
and `Explore` agent types directly. The repo installs across Claude Code,
Codex, and other Agent-Skills harnesses, none of which share that tool or
those type names, so the instruction was unfollowable outside Claude Code.

Each site now describes the shape of the dispatch — parallel subagents,
and what capability each one needs — and leaves the mechanism to the
harness.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 13:58:35 +01:00
Matt PocockandClaude Opus 5 bda79a3c3c fix: trim the Redact section to prose
Drop the curl exemplar and the enumerated secret and artifact lists —
the model does not need to be told what a secret looks like. Three
sentences carry the same rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 09:17:31 +01:00
Matt PocockandClaude Opus 5 efce423018 fix: make diagnosing-bugs redact secrets
A Snyk audit (W007, HIGH) flagged the skill for insecure credential
handling: it tells the agent to "paste the invocation and its output",
builds curl loops, and collects artifacts — three paths by which a live
token can end up reproduced in the agent's response.

Add a Redact section making redaction the first move on each, and point
the two call sites at it. Warn in the HITL template that `capture`
prints its value back to the terminal, where the agent reads it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 09:15:46 +01:00
github-actions[bot] cdef59f6e3 chore: version skills 2026-08-05 18:09:40 +00:00
Matt PocockandClaude Opus 5 4aaccb58d4 fix: make writing-for-agents model-invokable in Codex
The rename from writing-great-skills moved agents/openai.yaml without
updating it. Codex filters a skill out of the model-visible skills list
when policy.allow_implicit_invocation is false, so the description could
not trigger the skill — only an explicit $writing-for-agents mention.
Drop the policy block (implicit invocation defaults to true) and correct
the stale display_name and short_description. Move the skill into the
Model-invoked list in both READMEs, where the frontmatter already put it.

Closes mattpocock/skills#748

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 16:53:54 +01:00
github-actions[bot] 2a71dcfc12 chore: version skills 2026-08-05 12:36:29 +00:00
Matt PocockandClaude Opus 5 77d207ef03 chore: condense changesets and drop docs-only entries
Removes the five docs-page-only changesets (quickstart drop, grill-me pass,
four-section spine, rewrite-to-standard, writing-for-agents pass) — the
changelog reports on the shipped skills, not on the site pages.

Merges the clusters that describe one change each: ask-matt routing,
the grilling round-by-round rework, prototype, wayfinder, wizard and
writing-for-agents. 27 changesets become 15.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 13:07:04 +01:00
Matt PocockandClaude Opus 5 61accb0e66 skill: make wizard model-invoked
The agent can now reach for wizard the moment it hits a step only a
human can perform, instead of writing numbered instructions into the
chat. Typing /wizard is unaffected — model-invocation only adds the
agent's reach.

The description is rewritten as the pointer that decides when it fires:
a short statement of the artifact, four trigger branches, and an
explicit non-trigger for steps the agent can perform itself.

Behaviour is unchanged — same name, same template.sh, same four process
steps, same stage-list confirmation, which now doubles as the proposal
when the agent fires it mid-build.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 13:02:28 +01:00
Matt PocockandClaude Opus 5 cd926f4518 docs: rewrite the ask-matt page, and add the changeset
ask-matt is written last, against the final state of the other 21 pages.
It stays a node rather than redrawing the graph the skill itself holds.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:49:27 +01:00
Matt Pocock 111e05eda6 Merge pull request #760 from mattpocock/docs-wait-what-dead-prose
docs: drop the fire-extinguisher metaphor from wait-what
2026-08-05 12:13:32 +01:00
Matt Pocock d1782d8524 Merge pull request #759 from mattpocock/docs-page-structure
docs: make Common questions and It's working if part of the page standard
2026-08-05 12:03:16 +01:00
Matt PocockandClaude Opus 5 a0c6bbd635 docs: drop the fire-extinguisher metaphor from wait-what
Rewrite the extinguisher/sprinkler framing as plain prose across the
docs page, the changeset and the ask-matt router line.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:02:32 +01:00
Matt PocockandClaude Opus 5 b442590419 docs: make Common questions and It's working if part of the page standard
An audit of all 25 docs pages found the two sections that carry the most
weight are the two the standard treated as optional. Only grill-me has a
Common questions section. Twelve pages have no It's working if, and
several that do use it for compliance checks on the skill's internals
rather than for signals the reader can see.

writing-docs.md now names the four-section spine, gates Common questions
on evidence -- the personal wiki where it exists on the machine, this
repo's issues, and CHANGELOG.md -- and raises the It's working if bar to
"checkable without opening SKILL.md". CLAUDE.md names the four sections
in the pointer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:01:41 +01:00
Matt PocockandClaude Opus 5 0208cbc093 docs: drop the forced code-review neighbour from where-it-fits
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:55:49 +01:00
Matt PocockandClaude Opus 5 3babdf52d1 docs: rewrite the writing-for-agents page around what people get wrong
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:49:31 +01:00
Matt Pocock a3065f1b7b docs: rewrite the grill-me page around what people get wrong
The old page explained the mechanism and stopped. It answered none of
the questions people actually ask: which grilling skill to reach for,
how many questions is normal, what to do with a question talking can't
settle, whether to clear context before to-spec.

Keep the mechanism short and spend the page on judgement instead:
three-way sibling routing keyed on what you have in front of you; a
section naming passivity as the main failure mode; grillable vs
ungrillable as the move for questions that need a prototype; an
"It's working if" list; and a "Common questions" section answering the
six highest-volume ones. Say plainly to leave plan mode off.

Sourced from user questions across X, Discord and YouTube.
2026-08-05 11:24:09 +01:00
Matt Pocock 3314257466 docs: drop the Quickstart block from all 25 pages
aihero.dev renders an install widget above every skill page. Each page
then repeated the same commands in its body, and the two copies had
drifted: the widget uses the current `npx skills@latest ...` wording
while the hand-written blocks mostly carried the older bare `npx skills
...`. Pages showed the right command and a stale one together.

Delete the block from all 25 pages and record the rule in
.agents/writing-docs.md: install wording belongs to the site, not the
page. The template no longer carries a Quickstart, and
.agents/install-block.md notes that docs pages are not one of its
consumers.
2026-08-05 11:22:19 +01:00
Matt Pocock c64fa7ecf6 Merge pull request #751 from mattpocock/worktree-t9-talk-normal
feat: add wait-what, the verbosity fire extinguisher
2026-08-05 11:16:10 +01:00
Matt PocockandClaude Opus 5 50777fcc09 feat: graduate wait-what into the productivity bucket
Moves the skill out of in-progress/ and ships it: bucket README,
top-level README, plugin.json, an ask-matt router entry, and a docs
page at docs/productivity/wait-what.md.

Productivity rather than engineering — it fires in any conversation
with an agent, code or not. The CONTEXT.md clause is an opportunistic
hook, not a prerequisite.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:11:54 +01:00
Matt PocockandClaude Opus 5 c66bdeeee0 chore: remove six unused skills and the personal bucket
Delete the four skills in deprecated/ — design-an-interface, qa,
request-refactor-plan, ubiquitous-language — each already absorbed by a
promoted skill. The bucket itself stays, now empty: a retired skill is
deleted, and the changeset that removes it names its replacement.

Delete edit-article and obsidian-vault along with the personal/ bucket.
obsidian-vault hardcoded a path to Matt's own vault and was
model-invocable, so any skills.sh user could have had it fire on them.

None of the six was in the plugin, but skills.sh serves every SKILL.md in
the repo, so all six were installable — hence the changeset.

Reframe in-progress/ from scratchpad to beta channel: public on purpose,
feedback wanted, not in the plugin, and installable one skill at a time
through skills.sh. Nothing there is deleted or graduated.

Drop qa from the two live docs that cited it as an issue-tracker skill.
ADR 0002 is left untouched — it records reasoning that was true when
decided.

Resolves mattpocock/personal-wiki#256

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:07:56 +01:00
Matt PocockandClaude Opus 5 006ca0546b refactor: loosen wait-what's re-pitch scope to a bare demonstrative
"Re-pitch that last message" pinned the correction to one message.
"Re-pitch that" leaves the agent to judge how much of what it said
failed to land — and is shorter.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:07:06 +01:00
Matt PocockandClaude Opus 5 355fa7420b feat: add wait-what, the verbosity fire extinguisher
A three-line, user-invoked skill in in-progress/. Fire it when the
agent's last message doesn't land; it re-pitches that message with
the missing context, in ASD-STE100 Simplified Technical English,
using the ubiquitous language from CONTEXT.md.

The name is the mechanism. Concision skills fail by growing, so this
one is a single precise leading word and nothing else.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 10:57:02 +01:00
Matt Pocock f958fa17c1 Merge pull request #749 from mattpocock/worktree-t1-install-story
docs: tell one true install story (official marketplace)
2026-08-05 10:19:06 +01:00
Matt PocockandClaude Opus 5 fa1e3227fb feat: give ask-matt the phase boundary decision tree
Replaces the two-bullet `Crossing sessions` section with all five options
at a phase boundary — continue, /clear, /handoff, subagent, /compact —
and discloses the ordered tree into a new PHASE-BOUNDARIES.md.

Corrections that come with it:

- /handoff was oversold as the general bridge between context windows.
  It is narrow: a new harness, a new directory, a colleague, or a side
  task forked mid-phase. What it buys is portability.
- /compact is the default at the bottom of the tree, not the first reach.
- Continue and subagent were missing branches entirely.

Context hygiene's escape hatch now says /compact rather than /handoff,
and the smart zone figure moves from ~120k to ~150k tokens.

Resolves the T5 grilling ticket on the v1.2 release map.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 10:10:33 +01:00
Matt PocockandClaude Opus 5 c474642895 docs: tell one true install story (official marketplace)
mattpocock-skills is now listed in Claude Code's official marketplace,
so the own-marketplace route is superseded. The queued changeset still
documented it, and changeset bodies ship verbatim into CHANGELOG.md —
the release would have published a superseded install route as its
headline.

- Rewrite .changeset/ship-as-claude-plugin.md around
  `claude plugins install mattpocock-skills`.
- Add .agents/install-block.md as the single source for install
  wording, so the docs pass has one true thing to copy.
- Point .agents/writing-docs.md and CLAUDE.md at it.
- Note the official listing in ADR 0002, and record that it reads
  plugin.json directly and does not depend on marketplace.json.

.claude-plugin/marketplace.json is kept as a fallback for direct-repo
installs; nothing in CI or scripts references it.

Refs mattpocock/personal-wiki#250

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 09:57:57 +01:00
Matt PocockandClaude Opus 5 b3376f8d39 feat: graduate wizard into the engineering bucket
Move `wizard` out of in-progress into `engineering/` and wire it up as a
promoted skill: plugin.json entry, top-level + Engineering READMEs under
User-invoked, a docs page at docs/engineering/wizard.md, and a Standalone
route in ask-matt for the steps only a human can take.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 08:29:37 +01:00
Matt PocockandClaude Opus 5 a2f9333669 docs: finish the to-prd → to-spec rename in shipped text
Drop the "you may know this document as a PRD" hedge from to-spec and
the local tracker template, switch code-review to issue/spec, bring the
GitHub and GitLab tracker templates in line with the local one, and fix
research.md's dead skills-to-prd link.

CHANGELOG and existing changesets keep the old term where they document
the rename itself.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 17:37:30 +01:00
Matt PocockandClaude Opus 5 14b92236dd docs: describe grilling as round-by-round everywhere
The round-by-round rework left the wrappers and callers still promising
a one-question-at-a-time interview. Sync grill-me, grill-with-docs and
triage (docs + skill step), plus grilling's Codex short_description and
the loop-me draft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:37:09 +01:00
Matt PocockandClaude Opus 5 950dc79bb0 feat(grilling): bold the question title
The title now carries its own bold alongside the bold Q-number, so the
question line reads as a heading. Sync the docs page and changeset.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:33:07 +01:00
Matt PocockandClaude Opus 5 781efca60a feat(grilling): lead each question with a question-mark emoji
Prefix the numbered question line with  so questions and their ➡️
recommendations are both scannable. Sync the docs page and changeset.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:29:11 +01:00
Matt PocockandClaude Opus 5 4b2d9a8a8a docs(grilling): drop the Recommendation label from the question format
The recommendation now stands alone on its arrow line. Sync the docs
page and changeset to match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:28:33 +01:00