refactor(plugin)!: ship as a Claude Code plugin, one dir link per harness

Skills move to skills/<name>/SKILL.md and the repo gains both manifests, so
it is now a marketplace hosting exactly one plugin whose root is the repo
root (source: "."). Claude Code installs it from git; no symlinks involved.

Why: install.sh wired the library into every consuming repo as an ABSOLUTE
symlink to $CHECKOUT_DIR. The checkout moved three times, most recently when
local-dev@1966d5a dropped the embedded .skills/ copy, and nothing migrated
the links — 243 dangling links across 12 repos, hidden from git by the
**/.claude/skills/ ignore rule. Worse, ~/dev spans two path roots
(/Users/mathias on the iCloud-shared Macs, /home/mathias on koala), so an
absolute link stored there is broken on one side by construction. Re-running
the installer cannot fix that; only removing the mechanism can.

install.sh keeps the harnesses with no plugin system and drops from 42 links
per harness to one directory link, via the convergent ~/.agents/skills
convention that Pi and OpenCode both read:

  ~/.agents/skills          -> $CHECKOUT_DIR/skills
  ~/.config/crush/skills    -> ~/.agents/skills
  ~/.config/opencode/skills -> ~/.agents/skills

wire_claude_repo is deleted outright rather than gated behind a flag — on a
mixed-root fleet it cannot be made correct. Antigravity and Vibe targets go
too; both unused. CHECKOUT_DIR keeps its host-local default deliberately:
pointing it into ~/dev would put a git working tree inside iCloud with two
concurrent writers.

Taskfile drops five near-identical wiring loops (they had already drifted)
and delegates to install.sh. `task check` gains frontmatter validation, a
stray-root-entry gate, and manifest/tag version parity — the loose
secret-hygiene.md sat unloadable for months because nothing checked layout.

Verified: claude plugin validate . passes clean; a probe skill loaded as
skills:zzprobe through --plugin-dir; task check green at 42 skills.

Refs: #23
Bump-Type: minor

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeAp5LTscnz2W7Ubt4eJ6m
This commit is contained in:
2026-08-23 14:29:51 +02:00
co-authored by Claude Opus 5
parent 21be3ea245
commit 56a947b2a0
88 changed files with 182 additions and 253 deletions
+147
View File
@@ -0,0 +1,147 @@
---
name: grill-me
description: Critically interrogates plans, ideas, and proposals to make them sharper, more robust, and better grounded — with the explicit goal of producing a meaningfully better plan by the end. Use this skill whenever the user wants to stress-test a plan, prepare for hard questions, check if an idea is ready to act on, validate a hypothesis, or explicitly asks to be challenged, questioned, or grilled. Also trigger when a conversation has been exploring an idea for a while and it's time to converge — use this skill to check if the idea is actually ready. Trigger phrases include "grill me", "challenge this", "poke holes", "am I missing something", "is this ready", "stress-test this", "devil's advocate", "what am I not seeing".
---
# Grill-Me
A structured interrogation skill that pressure-tests plans and ideas before they become commitments. The goal is not to kill ideas — it's to produce a **demonstrably better plan** than the one that walked in.
## When to use each mode
Three interrogation modes. Pick based on context:
**Mode 1 — Quick Poke** (idea is early, user wants light pressure)
3–5 sharp questions, each with a proposal. Fast. No structure overhead. Good for early Diamond 1 conversations.
**Mode 2 — Full Grill** (idea is approaching commitment, user wants thorough interrogation)
Structured pass through all lenses below. Ends with a Plan Delta. Good for end of Diamond 1 or before starting a project.
**Mode 3 — Pre-mortem** (a plan exists and is about to be executed)
Assume it failed. Work backwards. What went wrong? Good for Diamond 2 → Deliver transitions.
Read the context to pick the right mode. If unsure, ask: "Quick poke or full grill?"
---
## Always bring a proposal
When a question requires input or a decision, don't just ask — bring a recommendation:
> "What's the smallest version that validates the hypothesis? I'd suggest starting with just the ntfy URL-push channel (Phase 1), because it gives you real usage data before investing in the automated sync. Does that match your intuition?"
The format: sharp question → "I'd suggest [X]" → one-sentence reasoning → quick confirmation ask.
This respects the user's time, models good thinking, and makes it easier to say "yes, agreed" than to construct an answer from scratch. If you genuinely have no strong opinion, say so explicitly — but that should be rare.
---
## Full Grill — interrogation lenses
Run through each lens. Skip lenses that clearly don't apply, but say so explicitly ("Skipping competitive lens — this is internal tooling"). For each question that requires a decision, include a proposal.
### 1. Hypothesis clarity
- Can the core claim be stated as: "We believe [X] will produce [Y], measurable by [Z]"?
- Is Y falsifiable? Could an experiment prove this wrong?
- Is Z actually measurable with available tools, or is it hand-wavy?
### 2. Assumptions audit
- List the top 3 assumptions the plan depends on.
- Which assumption, if wrong, kills the whole thing?
- Has any assumption been validated, or are they all untested?
### 3. Futures resilience (Double Diamond + Futures Thinking lens)
- Name 2–3 plausible alternative futures (not just the one assumed).
- Does the plan still make sense in each of them?
- What's the earliest signal that one of those other futures is manifesting?
### 4. Scope and reversibility
- What is explicitly out of scope? (Unstated scope is a risk.)
- Which decisions in this plan are irreversible?
- What's the smallest version of this that would still validate the hypothesis?
### 5. Cost and effort reality check
- What's the most expensive part? Time, money, attention?
- Is there a simpler path to the same learning?
- What does "good enough" look like vs "perfect"?
### 6. Failure modes
- What's the most likely way this fails? (Not catastrophically — just quietly doesn't work.)
- What's the most catastrophic failure mode, even if unlikely?
- Is there a canary — an early signal that things are going wrong?
### 7. Who and why
- Who benefits if this succeeds?
- Who is harmed, blocked, or ignored?
- Is there someone who should be consulted who hasn't been?
### 8. Next action clarity
- Is the next step concrete enough that it could be handed to an agent or a person with no further explanation?
- Is there a single person (or agent) responsible for it?
- What would stop it from happening this week?
---
## Pre-mortem mode
Set the scene: "It's [6 months / 1 year] from now. This project has failed. Not dramatically — it just quietly didn't deliver. Walk me through what happened."
Then probe:
- Was it a wrong assumption, a scope problem, or an execution problem?
- Was there a moment where a different decision would have changed the outcome?
- What should we do differently before we start?
Include a proposal for each finding: "To prevent this, I'd suggest [X]."
---
## Output format
**Quick Poke:** Questions numbered, each followed by a proposal. No preamble. Uncomfortable is fine.
**Full Grill:** One section per lens. Each section: 1–2 sentences of framing + 2–3 sharp questions + proposals where relevant. End with:
- "The three things most worth resolving before moving forward are: [X, Y, Z]."
- A **Plan Delta** section (see below).
**Pre-mortem:** Narrative first (2–3 sentences setting the failure scene), then structured findings with proposals, then "three things to do differently".
---
## Plan Delta — mandatory at the end of Full Grill and Pre-mortem
The grill is not done when the questions have been asked. It's done when the plan is **demonstrably stronger**. At minimum:
- At least one weak assumption has been named and either validated or explicitly accepted as a known risk
- The hypothesis is sharper and more falsifiable than when we started
- Something has changed: a scope reduction, a clearer metric, a reordered phase, a dropped assumption
If the plan hasn't changed at all after a Full Grill, something went wrong — the questions weren't sharp enough or the answers weren't pushed hard enough.
End every Full Grill and Pre-mortem with:
> **Plan delta**
> Before: [one sentence on the original plan]
> After: [one sentence on what concretely changed]
> Still open: [1–2 unresolved questions and how/when they'll be resolved]
---
## Tone guidance
The grill should feel like a smart, trusted colleague who genuinely wants the plan to succeed — not a critic looking for reasons to say no. Questions should be sharp but not hostile. If something is clearly solid, say so briefly before moving on.
Don't soften questions with preambles. "Have you considered that..." is weaker than "What happens if...". Prefer the latter.
If the plan is actually good, say so: "Lenses 1–4 look solid. The real open questions are in lenses 5 and 6."
---
## Integration with Double Diamond
This skill maps to the **convergence moments** in the Double Diamond workflow:
- **End of Diamond 1 (Define):** Use Full Grill to check if the hypothesis is ready to become a project. The three convergence criteria (falsifiable hypothesis, measurable success criterion, futures-resilient) come directly from lenses 1 and 3.
- **End of Diamond 2 (Deliver):** Use Pre-mortem before promoting to pre-prod.
- **Mid-Diamond 2 (Develop):** Use Quick Poke when an agent's experiment result is ambiguous and you're deciding whether to continue or pivot.
The skill does NOT replace human judgment at convergence points — it sharpens the plan so that judgment is better informed.