agentleFS
hyparamhyparam/hypaware/.claude/skills/llp-grill/SKILL.md

llp-grill

Skill16 starsChanged 3 months agoMITView on GitHub

Grilling session that stress-tests a plan against the project's LLP corpus (Specs, Decisions, Principles) and Systems vocabulary, then captures crystallised decisions inline by updating, creating, superseding, or tombstoning LLP documents and flagging where code will need @ref annotations. Use when the user wants to challenge a plan against documented LLP decisions before writing code.

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask the questions one at a time, waiting for feedback on each question before continuing.

    line 10
  2. Distinctive:

    If a question can be answered by exploring the codebase or reading an LLP, do that instead of asking.

    line 12
  3. Distinctive:

    Before grilling, build a map of the existing design rationale.

    line 22
  4. Very specific:

    If the project also has a CONTEXT.md glossary, treat it as the term authority alongside the Systems vocabulary.

    line 27
  5. Very specific:

    If there is no llp/ tree yet, this is the wrong skill: point the user at /llp-init or /llp-init-retrofit first, then grill.

    line 29
  6. Distinctive:

    When the plan contradicts an Active LLP (a Spec's "must", a Decision's chosen option, a Principle's "always/never"), call it out …

    line 35
  7. Very specific:

    When the user states how something works, check whether the code agrees.

    line 51
  8. Distinctive:

    Keep each captured LLP edit scoped to the decision: stable heading anchors, tight prose, no implementation dumps.

    line 65
  9. Very specific:

    Validate: After the session, run /ref-check to confirm no @ref was orphaned and every new section anchor resolves.

    line 70

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
<what-to-do>

Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.

Ask the questions one at a time, waiting for feedback on each question before continuing.

If a question can be answered by exploring the codebase or reading an LLP, do that instead of asking.

This is the LLP-aware variant of grill-with-docs: the documents you challenge against and update are the numbered LLP documents under llp/, not a CONTEXT.md glossary and docs/adr/ tree.

</what-to-do><supporting-info>

LLP awareness

Before grilling, build a map of the existing design rationale.

  • Find the llp/ tree. Read the root document (LLP 0000, **Role:** Root) for the project overview, the subsystem map, and the Systems vocabulary.
  • Identify the Active LLPs whose **Systems:** tags overlap what the plan touches. Read them: these are the decisions the plan has to live with or consciously overturn.
  • Note status. Only Active LLPs are current guidance. If the plan revives something Superseded or Tombstoned (under llp/tombstones/), surface that explicitly: it may be a sign the decision was already considered and rejected.
  • If the project also has a CONTEXT.md glossary, treat it as the term authority alongside the Systems vocabulary.

If there is no llp/ tree yet, this is the wrong skill: point the user at /llp-init or /llp-init-retrofit first, then grill.

During the session

Challenge against existing decisions

When the plan contradicts an Active LLP (a Spec's "must", a Decision's chosen option, a Principle's "always/never"), call it out immediately and force the choice:

"LLP 0014#queryable-sinks says queryability is a property of the writer/destination pair, but your plan assumes any S3 sink is queryable. Either the plan changes, or LLP 0014 does, which?"

Cite the LLP number and section anchor so the conflict is precise. A plan that silently diverges from an Active LLP is the exact failure LLP exists to prevent: the next agent reads the LLP, writes code to it, and contradicts your plan.

Sharpen terminology against the Systems vocabulary

When the plan uses a term that conflicts with the project's established language, stop and resolve it. Keep Systems names consistent: don't let the plan introduce Auth when the corpus says Authentication, or coin a new system name for something an existing tag already covers. If a new System is genuinely needed, name it and note that LLP 0000's vocabulary must be updated.

Discuss concrete scenarios

Stress-test domain relationships with specific scenarios that probe edge cases and force precision about the boundaries between concepts. Invent the awkward case and make the user commit to how it behaves.

Cross-reference with code and existing @refs

When the user states how something works, check whether the code agrees. If the relevant code already carries @ref annotations, follow them to the cited LLP section and check the plan still satisfies that rationale. Surface contradictions:

"src/sinks/driver.js is annotated @ref LLP 0014#export-contract [implements], which says sinks ack per-batch. Your plan acks per-row, which breaks the referenced contract."

Capture decisions inline: into the LLP corpus

When a decision crystallises, dispose of it right there. Don't batch. Unlike ADRs, LLP documents are living (you edit, supersede, and delete freely), so the bar to capture is lower, but the discipline is to put each decision in the right place. Use the disposition tree in DECISION-DISPOSITION.md:

  • Refines an existing Active LLP → edit that LLP in place.
  • A new non-obvious decision → create a new LLP. Use the next available number and the NNNN-slug.type.md convention with a full metadata header (follow /llp-create). Pick the Type deliberately (Decision vs Spec vs Principle).
  • Overrides an Active LLP → update the LLP to the new decision. If the old framing still has migration value, mark it Superseded and write the replacement; otherwise just edit.
  • Retires guidance entirely → move the LLP to llp/tombstones/ with **Status:** Tombstoned.
  • An implementation constraint, not a standalone decision → don't write an LLP. Note it as an @ref to add when the code lands, pointing at the LLP section that explains the constraint.

Keep each captured LLP edit scoped to the decision: stable heading anchors, tight prose, no implementation dumps.

Keep the corpus honest

  • Co-evolve. LLP edits should land with the code change that motivates them, not in a separate doc-only commit. If the plan won't be implemented immediately, it's fine to capture the decision now and let the @refs follow with the code.
  • Validate. After the session, run /ref-check to confirm no @ref was orphaned and every new section anchor resolves.
  • Don't over-document. Apply LLP 0000's bar: capture a decision when an agent might otherwise "simplify" the code in a way that breaks the intent. Skip the obvious.
</supporting-info>

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.