agentleFS
kriegcloudkriegcloud/beep-effect/.claude/skills/grill-with-docs/SKILL.md

grill-with-docs

Skill78 starsChanged 6 days agoApache-2.0View on GitHub

Repo-native grilling session for beep-effect2 architecture work. Use when stress-testing a plan against the binding architecture standard, glossary, decision log, shared-kernel promotion records, and package topology before updating docs or implementation.

195 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use setup-matt-pocock-skills, decision-mapping and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • GoogleSkill

    setup-matt-pocock-skills

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

    Also in 185 projects that use this

  • FabienDehopreSkill

    decision-mapping

    Turn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time.

    Also in 9 projects that use this

  • LesaniSkill

    writing-beats

    Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.

    Also in 65 projects that use this

  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 42 projects that use this

  • simo97Skill

    migrate-to-shoehorn

    Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

    Also in 67 projects that use this

  • LesaniSkill

    writing-shape

    Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.

    Also in 63 projects that use this

  • +1 more from Lesani

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. 0 are common, 13 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 181 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run a /grilling session (frontier rounds, recommended answers, sub-agent fact-finding) over the plan, using the repo doctrine surfaces …

    line 8
  2. Distinctive:

    If a question can be answered by exploring the codebase or architecture docs, explore first instead of asking.

    line 10
  3. Distinctive:

    Treat this repo's architecture docs as target doctrine.

    line 12
  4. Distinctive:

    Use these surfaces instead:

    line 34
  5. Distinctive:

    When a plan touches a specific doctrine area, read the matching numbered doc before asking the next question:

    line 45
  6. Distinctive:

    Start by classifying the proposal:

    line 62
  7. Distinctive:

    Do public action errors, server-only port errors, driver/internal errors, and protocol failures die at the right boundaries?

    line 82
  8. Very specific:

    If the user says shared, ask whether they mean shared-kernel product semantics or domain-agnostic foundation substrate.

    line 89
  9. Very specific:

    If the user says provider, ask whether the target architecture calls it a repo-level driver.

    line 90
  10. Very specific:

    If the user says env, ask whether this should be a typed config contract and whether direct environment reads are being avoided.

    line 91
  11. Very specific:

    If the user says runtime layer, ask whether it is app-local composition or a God Layer smell.

    line 92
  12. Very specific:

    If the user says application error, ask whether it is a public action error, server-only port error, domain failure, internal driver …

    line 93
  13. Very specific:

    If the user says common, core, utils, or lib, route it through the specific-home-first table before accepting the home.

    line 94
  14. Distinctive:

    When the user proposes a boundary, test it against concrete repo scenarios:

    line 96
  15. Distinctive:

    When the user states how something works, check the repo before accepting it.

    line 107
  16. Distinctive:

    Prefer targeted reads and searches:

    line 109
  17. Distinctive:

    If code contradicts doctrine, say so plainly and classify the contradiction:

    line 117
  18. Distinctive:

    Update canonical docs as decisions crystallize, but only the surface that actually owns the decision:

    line 127
  19. Distinctive:

    Do not create generic context files or ADR directories for this repo.

    line 135
  20. Distinctive:

    Only propose a DECISIONS entry when all are true:

    line 139

“Common” is measured: kept by at least 6 in 10 of the 181 edited versions of this file we could read. “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>

Run a /grilling session (frontier rounds, recommended answers, sub-agent fact-finding) over the plan, using the repo doctrine surfaces below as this repo's domain model — challenge terms, cross-reference code, and update the owning doc as each decision crystallizes.

If a question can be answered by exploring the codebase or architecture docs, explore first instead of asking.

Treat this repo's architecture docs as target doctrine. If current code disagrees with the docs, surface the disagreement as possible drift unless the docs explicitly mark the rule as transitional compatibility or cleanup-on-touch.

Escalation path from /explore

This skill is where an /explore session goes when an exploration packet needs the operator (align questions, direction calls, shape reviews, definition-of-ready gaps); the explore session never stops there (ruling 2026-10-14). In that mode the packet's own DECISIONS.md is the decision surface: log each settled round there (Question / Answer / Rationale) and sync manifest openQuestions. Touch the architecture docs below only when a round changes architecture-wide doctrine. Keep running rounds and advancing the packet stages until it is graduated, parked, or killed; the guided closeout prompt comes after that.

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

Canonical docs

This repo does not use the generic CONTEXT.md plus ADR directory model for architecture grilling.

Use these surfaces instead:

  • standards/ARCHITECTURE.md - binding architecture constitution and default rule source.
  • standards/architecture/README.md - rationale packet index, transition notes, known unknowns.
  • standards/architecture/GLOSSARY.md - canonical architecture vocabulary.
  • standards/architecture/DECISIONS.md - dated architecture-wide decision log.
  • standards/architecture/02-shared-kernel.md - shared-kernel promotion record rules.
  • standards/architecture/13-onboarding-the-minimum-viable-slice.md - smallest legal slice and first cross-slice promotion.
  • Package README files - promotion records and package-local ownership policy.
  • packages/architecture-lab/* with apps/architecture-lab-proof - executable proof target for package shape, boundary subpaths, and strict port-to-action error translation.

When a plan touches a specific doctrine area, read the matching numbered doc before asking the next question:

  • slice topology and cross-slice imports: 01-hexagonal-vertical-slices.md
  • shared-kernel placement: 02-shared-kernel.md
  • external wrappers and repository implementations: 03-driver-boundaries.md
  • schema-first rich domain behavior: 04-rich-domain-model.md
  • Effect Layer ownership: 05-layer-composition.md
  • config/public/server/secrets/layer/test boundaries: 06-configuration-boundaries.md
  • foundation, drivers, tooling, and capability routing: 07-non-slice-families.md
  • testing boundaries: 08-testing.md
  • action, port, driver, and protocol error translation: 09-errors-across-boundaries.md
  • workflows, events, and cross-slice processes: 10-cross-slice-coordination.md
  • deprecation, versioning, and feature-flag retirement: 11-evolution-and-deprecation.md
  • tracing, logging, span names, and attributes: 12-observability.md

Grilling posture

Start by classifying the proposal:

  • Product behavior or product language -> owning slice first.
  • Product language deliberately shared by multiple slices -> shared/*, after the promotion gate.
  • External engines, SDKs, services, frameworks, or browser platform wrappers -> drivers/*.
  • Repo-owned domain-agnostic reusable substrate -> foundation/*, after the specific-home-first routing test.
  • Typed runtime/application settings -> slice or shared config package.
  • Product-agnostic UI primitives -> foundation/ui-system.
  • Browser/client product behavior -> slice client or ui.
  • App runtime wiring -> app entrypoint or app-local src/runtime/Layer.ts.

Then work the frontier in rounds per /grilling. Every question should materially change the plan, lock an assumption, or choose between meaningful tradeoffs. Provide your recommended answer.

Good first questions usually decide:

  • Which slice, shared-kernel package, driver, foundation family, or tooling package owns the meaning?
  • Is this target doctrine, transitional compatibility, cleanup-on-touch, forbidden in new work, or pending automation?
  • Does this need a new package, or can it fit the smallest legal slice/package set?
  • Is a shared export really deliberate cross-slice product language, or just reusable shape?
  • Is live Layer composition staying in server, client, or app-local runtime code rather than use-cases?
  • Do public action errors, server-only port errors, driver/internal errors, and protocol failures die at the right boundaries?
  • Can the slice be tested with only its own Layers plus shared test-kit and driver test Layers?

Challenge against doctrine

Challenge vague or conflicting language immediately:

  • If the user says shared, ask whether they mean shared-kernel product semantics or domain-agnostic foundation substrate.
  • If the user says provider, ask whether the target architecture calls it a repo-level driver.
  • If the user says env, ask whether this should be a typed config contract and whether direct environment reads are being avoided.
  • If the user says runtime layer, ask whether it is app-local composition or a God Layer smell.
  • If the user says application error, ask whether it is a public action error, server-only port error, domain failure, internal driver failure, or protocol failure.
  • If the user says common, core, utils, or lib, route it through the specific-home-first table before accepting the home.

When the user proposes a boundary, test it against concrete repo scenarios:

  • Can another slice import this without a direct cross-slice package dependency?
  • Can browser code import this without pulling server config, secrets, driver roots, or live Layers?
  • Can the owning slice be removed or rewritten without editing unrelated slices?
  • Would a trace tree mirror the architecture boundaries?
  • Would a test have to boot another slice or an app runtime Layer?
  • Would a future reader know the module's role from package path and role suffix?

Cross-reference with code

When the user states how something works, check the repo before accepting it.

Prefer targeted reads and searches:

  • root package, workspace, and export maps when package boundaries are involved
  • package README and package manifests when shared/foundation/driver/tooling placement is involved
  • role files and imports when topology or subpath safety is involved
  • packages/architecture-lab/* when strict architecture proof is relevant
  • existing tests when acceptance criteria or slice-isolation claims are involved

If code contradicts doctrine, say so plainly and classify the contradiction:

  • current drift from target doctrine
  • transitional compatibility allowed by the docs
  • cleanup-on-touch candidate
  • missing doc decision or glossary term
  • genuine doctrine gap that needs a decision-log update

Update docs inline

Update canonical docs as decisions crystallize, but only the surface that actually owns the decision:

  • New or changed architecture term -> standards/architecture/GLOSSARY.md; follow CONTEXT-FORMAT.md.
  • Architecture-wide doctrine change -> standards/architecture/DECISIONS.md; follow ADR-FORMAT.md.
  • Rule text or examples changing -> the relevant numbered architecture doc and, if binding, standards/ARCHITECTURE.md.
  • High-bar shared/* export -> package README promotion record; use the schema in 02-shared-kernel.md.
  • Package-local ownership, consumers, or routing policy -> the affected package README or agent guidance.

Do not create generic context files or ADR directories for this repo. If a proposed doc update does not fit one of the surfaces above, ask whether it is package-local guidance, architecture doctrine, or implementation notes.

Offer durable records sparingly

Only propose a DECISIONS entry when all are true:

  1. The decision changes architecture-wide doctrine or supersedes prior doctrine.
  2. It is hard enough to reverse that future maintainers need the rationale.
  3. It resolves a real tradeoff or a known-unknown from the architecture packet.

For high-bar shared exports, do not use DECISIONS as a substitute for promotion records. The package README record is the durable proof of deliberate shared coupling.

</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.