Commit Graph

78 Commits

Author SHA1 Message Date
Matt Pocock
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 Pocock
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
86b07d15da docs: write the pages in neutral third person
The docs pages carried 36 attributed opinions — "Matt's own answer",
"his position is", quoted replies from the author. A page is a
technical document about a skill, so the substance of each finding
stays and the attribution goes: "the fix is a direct instruction: …",
"the split comes down to session count".

Quotes from *users* stay, anonymous as they already were — those are
evidence about the skill in the wild rather than the author's view.

Records the rule in .agents/writing-docs.md so new pages don't
reintroduce it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 16:56:48 +01:00
Matt Pocock
3a3f210aec Merge remote-tracking branch 'origin/main' into dictionary-links
# Conflicts:
#	docs/engineering/wizard.md
2026-08-05 13:33:54 +01:00
Matt Pocock
16bab00f34 docs: link first use of AI Coding Dictionary terms
Every docs page now links the first occurrence of each AI Coding
Dictionary term to its entry on aihero.dev. 202 links across 25 pages,
one link per term per page. Prose is unchanged — only links added.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 13:16:01 +01:00
Matt Pocock
394f484389 docs: drop the human-in-the-loop lecture from the wizard page
The intro spent a paragraph arguing when not to use the skill. Replace it
with what the skill actually is: the agent writes the script, you run it.
Cut the agent-browser question and the closing guard for the same reason,
and plain up the densest sentences.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 13:10:09 +01:00
Matt Pocock
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 Pocock
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
8a475c438d fix: correct stale claims in the router and the READMEs
Coherence pass over the rewritten docs set. The recurring defect was a
refactor whose removals landed and whose replacements did not.

- tdd: restore the pointer to /codebase-design that the v1.0 changelog
  and ask-matt both claim exists. The inline deep-module notes were
  deleted then; nothing replaced them.
- ask-matt: /grilling and /resolving-merge-conflicts were missing from
  the router entirely. Split grill-me from grill-with-docs on the
  working directory rather than on whether the subject is code.
- READMEs: wayfinder maps decision tickets, not investigation tickets;
  the diagnosing-bugs loop starts by building a loop that goes red;
  improve-codebase-architecture is a survey, not a rescue; grilling
  resolves a design tree and is the primitive behind five skills.
- Drop the /implement reliability claim from the implement and tdd
  pages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:48:02 +01:00
Matt Pocock
c33ce1c187 docs: rewrite the remaining 18 pages to the four-section standard
One agent per page, each rewriting from its SKILL.md up and running its
own evidence hunt across the wiki, the issue tracker and the unreleased
changesets. Question counts track the evidence: wayfinder earns ten,
resolving-merge-conflicts earns three.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:41:23 +01:00
Matt Pocock
14780a1f8d docs: act on pilot feedback — branch tables, wayfinder, deader prose
Encode a new rule in writing-docs.md: a multi-way branch goes in a table
or a list, never a paragraph the reader has to read in full.

- to-spec: trigger becomes a table; stop implying the tracker must be
  remote, since local markdown is supported out of the box.
- prototype: wayfinder is the largest consumer (prototype is one of its
  four decision-ticket types); the ask-matt handoff round trip is
  demoted to one line.
- handoff: trigger becomes a table; dead prose throughout.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:34:54 +01:00
Matt Pocock
799c27334a docs: rewrite the handoff page around what it is actually for
The old page read as session resumption, which is why people skip the
skill. Leads with portability rather than compression, names branching
as the use that gets missed, and is honest that /compact wins most
phase boundaries. Nine observed questions, compact-vs-clear-vs-handoff
first.
2026-08-05 12:25:09 +01:00
Matt Pocock
610001d6fe docs: rewrite the prototype page around what people get wrong
The old page still said the prototype gets deleted and the logic branch
builds a terminal app; both changed. Leads with throwaway-as-a-writing-
constraint, carries the primary-source branch rule, and answers the two
behaviour changes plus the recommend-by-name failure (#384).
2026-08-05 12:24:42 +01:00
Matt Pocock
fd10de97d6 docs: rewrite the to-spec page around what people get wrong
Leads with the defining constraint — it synthesises, it does not
interview — and carries nine observed questions: the to-prd rename, the
ready-for-agent rough edge (#606), why not skip the spec, what to feed
it after a wayfinder map, and the refactor-shaped-work limitation.
2026-08-05 12:24:26 +01:00
Matt Pocock
3fc7d6ec57 docs: stop listing grill-with-docs and domain-modeling as alternatives
grill-with-docs is a shim that runs grilling using domain-modeling, so
the two are one route, not two.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:11:30 +01:00
Matt Pocock
52f202e712 docs: simplify the wait-what page
Short sentences, no em-dash chains, same six sections and same facts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:07:27 +01:00
Matt Pocock
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 Pocock
d2d6c93b7c Merge pull request #758 from mattpocock/docs-wfa-rewrite
docs: rewrite the writing-for-agents page around what people get wrong
2026-08-05 11:59:08 +01:00
Matt Pocock
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 Pocock
b0bae9921e docs: widen the scope line to any doc an agent reads
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:54:15 +01:00
Matt Pocock
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
71eb50346f docs: remove the source link from every skills page
Every docs page opened with a [Source](github.com/...) link, and
.agents/writing-docs.md told agents to add one to each new page.
Remove the line from all 25 pages, rewrite the one inline use in
ask-matt.md, and drop the rule from the page template, the fixed
frame list, and the "Done when" list so the links do not come back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 11:37:40 +01:00
Matt Pocock
f4dd5e4976 docs: reframe grill-me as a portable standalone, not a chain step
The page described grill-me as operating on an existing plan and sitting
at the front of the build chain. Both are wrong. It takes a loose idea,
not a plan, and it is a productivity skill rather than an engineering
one: stateless, so it needs no repo and does not assume the subject is
software at all.

Routing now keys on portability rather than on whether a codebase
exists, and Where it fits names it a standalone that runs anywhere on
anything. Handing off to to-spec is presented as an option for when the
idea turns out to be software, not as the purpose of the skill.
2026-08-05 11:31:18 +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
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 Pocock
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 Pocock
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 Pocock
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 Pocock
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 Pocock
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 Pocock
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 Pocock
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
Matt Pocock
a557705dcb docs(grilling): pin the question format and document it
Add the fixed per-question shape (numbered title, body, recommendation
line) to grilling's SKILL.md, sync the docs page, and add a changeset.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 12:26:31 +01:00
Matt Pocock
d4e8664be2 feat(writing-for-agents): add the cache leading word for environment truth
Single source of truth now reaches past the document into the environment.
package.json scripts, config files, directory layout and --help output are
authoritative already, so a doc restating them is a cache of a lookup that
earns its load only when the lookup is expensive.

Co-authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 12:16:51 +01:00
Matt Pocock
ad5ee1e12f feat: graduate to-questionnaire into the productivity bucket
Move `to-questionnaire` out of in-progress into `productivity/` and wire
it up as a promoted skill: plugin.json entry, top-level + Productivity
READMEs under User-invoked, a docs page at
docs/productivity/to-questionnaire.md, and a Standalone route in
ask-matt framing it as the inverse of /grill-me.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 09:59:33 +01:00
Matt Pocock
17f22a371b feat!: rename writing-great-skills to writing-for-agents and restructure
The reference now covers any document an agent consumes — skills,
AGENTS.md/CLAUDE.md, docs reached by a pointer. GLOSSARY.md merged into
SKILL.md as a dedup (Avoid-lists and the standalone Predictability
definition pruned); skill-only mechanics disclosed to SKILL-MECHANICS.md;
the skill is now model-invoked. Clean rename, no alias.

Spec: mattpocock/personal-wiki#187 · ships via mattpocock/personal-wiki#193

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 15:29:58 +01:00
Matt Pocock
9c32629965 feat(prototype): logic branch produces a shareable HTML demo
Reshape the logic branch from a terminal app into a single
self-contained HTML file a non-developer can drive: a labelled
state panel, free-play buttons, and tabbed guided walkthroughs
(scenarios) with the ordered buttons to press underneath each.
The portable pure-logic module still lifts into the real code;
the HTML shell is the throwaway primary source.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 10:50:17 +01:00
Matt Pocock
b8fd9afa42 feat(grilling): round-by-round frontier interview
Rework grilling from one-question-at-a-time to asking the whole
frontier each round, with background sub-agents for fact-finding so
research never blocks the round. Fold the batch-grill-me experiment
into grilling and delete it. Re-sync the docs page, including how to
opt back into one-at-a-time via global CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 13:12:55 +01:00
Matt Pocock
04fee67571 Merge pull request #533 from mattpocock/yagni-scope-improve-architecture
improve-codebase-architecture: scope the scan to where change is landing (YAGNI)
2026-07-13 11:27:15 +01:00
Matt Pocock
33dfc9b28f Merge pull request #538 from mattpocock/wayfinder/research-subagents
wayfinder: burn research tickets down with subagents
2026-07-13 11:18:20 +01:00
Matt Pocock
3bb587fa5c Rename "design tree" → "decision tree" across skills and docs
Align the remaining callers and docs pages with grilling's body, which now
says "decision tree".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 11:13:55 +01:00
Matt Pocock
2602257241 feat(wayfinder): burn research tickets down with subagents
Research stays a real ticket type — it's a shared blocker downstream
decisions hang on, which the frontier's blocking edges exist to render.
What changes is resolution: because research is AFK, charting doesn't
stop and read. After creating the tickets, the charting session fires a
/research subagent for each research ticket to burn it down in parallel,
capturing findings on a throwaway research/<name> branch with a context
pointer.

Charting's "fire the research subagents" step owns how research is
handled; the Ticket Types bullet just names the resolver, and the
one-ticket-per-session rule carries the research exception.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 11:10:46 +01:00
Matt Pocock
45afd8074a improve-codebase-architecture: scope the scan to where change is landing (YAGNI)
Before scanning, decide where to look. If the user named a direction, take
it; otherwise read the last ~20 commit messages to bias exploration toward
actively-developed paths. A deepening opportunity in code nobody touches is a
refactor you'll never cash in — leverage only pays off where you keep editing.

Syncs the docs page and adds a changeset.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 11:01:18 +01:00
Matt Pocock
7d694b7ae9 Name the wayfinder unit a "decision ticket"
People kept reading a wayfinder ticket as an ordinary implementation
ticket — a slice of a build to execute — when wayfinder uses them as
decision tickets: questions whose resolution is a decision.

Introduce "decision ticket" as a light leading word: the skill
description and its opening line name it (and say what makes it one),
and the ask-matt / engineering README blurbs and the docs page match,
while "ticket" stays the everyday word once the term is established.
Record "Decision ticket" in CONTEXT.md so the "avoid: ticket" domain
rule no longer contradicts wayfinder's deliberate use of the word.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 10:50:29 +01:00
Matt Pocock
2ee14df19c Merge pull request #488 from mattpocock/prototype-primary-secondary-source
prototype: keep the prototype as a primary source
2026-07-10 11:45:42 +01:00
Matt Pocock
19c50d50fd fix(to-tickets): remove stray </content> tag from skill and docs
The final line of to-tickets/SKILL.md carried a stray `</content>`
closing tag with no matching opening tag — a packaging/serialization
artifact from the planning-skills refactor (386d4ff), not valid skill
content. The same stray tag had leaked into the generated landing
docs for to-tickets and to-spec. Strip it from all three.

Fixes #495

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 09:45:20 +01:00
Matt Pocock
371b9c9c94 prototype: capture the prototype, don't dispose of it
Reframe the artifact handling as capturing the prototype somewhere out
of main — a throwaway branch — with a context pointer to it left on the
implementation issue, instead of "disposing" of it. The main branch
still keeps only the validated decision.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 09:39:52 +01:00
Matt Pocock
44eed54518 refactor: friendlier setup flow + one-file-per-ticket local tracker
Rework /setup-matt-pocock-skills to ask fewer, friendlier questions and
align the local-markdown issue tracker with the current spec.

- Triage labels: asked only when the `triage` skill is installed, and then
  as a single recommended-yes question ("keep the default triage labels?")
  instead of an override interrogation. When triage isn't installed, the
  section and docs/agents/triage-labels.md are skipped.
- External PRs as a request surface: no longer a setup question. The
  GitHub/GitLab templates still carry the flag, defaulted off; flip it in
  docs/agents/issue-tracker.md later.
- Domain docs: default to single-context without asking; multi-context is
  only offered when the repo shows monorepo signals.
- Local-markdown tickets: one file per ticket under
  .scratch/<feature>/issues/<NN>-<slug>.md, never a single combined
  tickets.md. /to-tickets, ask-matt, and the local template now agree, and
  the spec file is spec.md (not PRD.md) to match /to-spec.
- Re-sync docs pages for setup-matt-pocock-skills and to-tickets; changeset.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 09:37:25 +01:00
Matt Pocock
cdec9f6eb2 prototype: simplify to single primary-source idea; dedup branch files
Drop the secondary-source label — the actionable distinction is just
that the prototype is a primary source to retain on a throwaway branch.
Collapse the re-descriptions in LOGIC/UI so they point to SKILL for the
disposal concept and add only branch-specific nuance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 14:57:48 +01:00