Best for
- A repository carries its own generators, task-runner tasks, or creation scripts, and an agent has been observed producing a generic component / module / package instead of running them. Also on an explicit ask — "write…
event4u-app/agent-config/src/skills/playbook-authoring/SKILL.md
Use when a repo has its own generators, scripts or turbo tasks and an agent reaches for a generic skill instead — derive a Playbook context (ADR-244) from the real config, graded by the tree.
Decision brief
A shipped skill is a generic answer to a generic question. A playbook is this repository's answer, and it outranks the shipped skill whenever both match — because it carries decisions the repository already made (file layout, barrel exports, test co-location, the project's own n…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/playbook-authoring"Inspect the Agent Skill "playbook-authoring" from https://github.com/event4u-app/agent-config/blob/6a5670b7881a676c0da90d2afb950298087c4ccb/src/skills/playbook-authoring/SKILL.md at commit 6a5670b7881a676c0da90d2afb950298087c4ccb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Derive, and write nothing yet. Enumerate the sources in the scope table below and list one candidate per repeated procedure, each with its grade — nothing written. - Source of truth: the repository's own task declarations — see the scope table below for which of them this rel…
Review the “The Iron Law” section in the pinned source before continuing.
A repository carries its own generators, task-runner tasks, or creation scripts, and an agent has been observed producing a generic component / module / package instead of running them. Also on an explicit ask — "write playbooks for this repo", "why does the agent not use our ge…
A deriveplaybooks script implements the enumeration above in this package's own source tree. It is deterministic and makes no model call: it prints one line per proposal with its grade, and ⚠️ … grade=observed is a signal to go look rather than a warning to dismiss.
A playbook is ecosystem-neutral: a Python monorepo's nox/invoke sessions, a Go repo's make targets, a Rust workspace's just recipes and a PHP repo's console commands are all repeated procedures a playbook can encode, and the artefact class does not care which. What varies is whe…
Permission review
The documentation asks the agent to create, modify, or delete local files.
them. Also on an explicit ask — *"write playbooks for this repo"*, *"why does the agent notThe documentation asks the agent to read local files, directories, or repositories.
**Write, then read the written file.** Write each surviving candidate, then open it.The documentation asks the agent to create, modify, or delete local files.
**Write, then read the written file.** Write each surviving candidate, then open it.The documentation asks the agent to read local files, directories, or repositories.
| Turborepo task declarations | yes — read from the task file |The documentation asks the agent to run terminal commands or scripts.
Do NOT invoke a wrapper script when it points at a generator — invoke the generator.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 9 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
A shipped skill is a generic answer to a generic question. A playbook is this repository's answer, and it outranks the shipped skill whenever both match — because it carries decisions the repository already made (file layout, barrel exports, test co-location, the project's own naming) that no generic skill can know.
This skill derives playbooks from the repository's own configuration. It is the procedure
half of standards-from-config's Class-A rule: the config is the standard, so a
playbook step is only trustworthy when the thing it invokes was seen in the tree.
NEVER WRITE A `configured` STEP FOR A GENERATOR YOU DID NOT SEE IN THE TREE.
RESOLVE EVERY `invokes` ID TO A FILE OR A DECLARED TASK, OR GRADE IT `observed`.
INVOKE WHAT THE WRAPPER POINTS AT, NEVER THE WRAPPER.
A KIND THIS RELEASE CANNOT RESOLVE IS REPORTED, NEVER GUESSED AT.
A repository carries its own generators, task-runner tasks, or creation scripts, and an agent has been observed producing a generic component / module / package instead of running them. Also on an explicit ask — "write playbooks for this repo", "why does the agent not use our generator".
observed ones. An unresolved id means go
look at the tree before deciding what it means.
configured proposal's source_of_truth points at a file you opened.grade matches what step 2 established, and a
configured file has no step without an invokes entry.invokes ids are what the Phase-3 check
resolves; a playbook whose ids you cannot name is not finished.
invokes list is non-empty, and each id can be
run by hand in the repository.A derive_playbooks script implements the enumeration above in this package's own source
tree. It is deterministic and makes no model call: it prints one line per proposal with its
grade, and ⚠️ … grade=observed is a signal to go look rather than a warning to dismiss.
It is not exposed as a consumer command. A consumer install receives this skill and not that script, so in a consumer repository the procedure above is carried out by hand against the grading rules below — which is why those rules, not the script, are the substance of this skill. Saying so is the point: a skill that told a consumer to run a command they do not have would fail on their first attempt.
Either way, read every proposal before writing: the derivation finds candidates, and whether a repeated procedure deserves a playbook is a judgement it does not make.
A playbook is ecosystem-neutral: a Python monorepo's nox/invoke sessions, a Go
repo's make targets, a Rust workspace's just recipes and a PHP repo's console commands
are all repeated procedures a playbook can encode, and the artefact class does not care
which. What varies is whether a deterministic reader can resolve an invoked id without
running a consumer binary — the constraint that decides this release's set, per
ADR-244.
| Declared where | Resolvable without a binary? |
|---|---|
| a Node manifest's script map (root and each workspace) | yes — read from the manifest |
| Turborepo task declarations | yes — read from the task file |
| Turborepo generator templates, by the registered name rather than the filename | yes — read from the config |
| Nx generators | no — the list comes from nx list |
| Plop generators | no — the list comes from plop --help |
| Make / just / nox / invoke / console targets in other ecosystems | not yet read — no reader written; the artefact class covers them |
The no rows are a decision, not an omission: their discovery requires running a binary the
consumer owns, and the Phase-3 staleness check must run without one. A repo carrying either
is reported on stdout, so its maintainer sees the gap rather than receiving a silently
partial set. The last row is honest scope: nothing reads those yet, and a playbook for them
is written by hand against this skill's grading rules.
A script like "new:component": "turbo gen component" is a pointer, not a procedure. A
playbook that invoked new:component would keep passing the staleness check after the
generator is renamed, because the script still exists — the exact drift Phase 3 gates.
The derivation therefore unwraps a thin wrapper and records what it points at, and the
source_of_truth line on each step names where the id was resolved.
configured — every step's id resolved to something in the tree, and each step cites
where. The reader may follow it without checking.observed — at least one id did not resolve. The steps are a hypothesis to
confirm, and the file says which id failed. Downgrading is the honest outcome; writing
the stronger claim and hoping is the failure this skill exists to prevent.A repository's answer to "where does new code of this kind go" is a playbook
once it has been confirmed, graded like any other: configured when every
cited id resolved, observed when one did not.
The awkward case is the one worth writing down. A public surface version and
an implementation generation are independent axes — a v1 controller can
carry the current internal architecture while a v2 one is half-migrated and
abandoned. So the canonical answer for a scope is frequently "the
older-looking lane", and that is exactly the answer nobody records because it
reads as a mistake. ADR-248 holds the evidence order that produces it: a live
decision record, then an executable architecture test, then a shared abstraction
in maintained code, then current tests and contracts, then several recent
analogous implementations, then migration docs, then git history, and names and
paths last.
Two bounds, both deliberate:
scope.task, scope, grade,
invokes.observed ones unmentioned reads stronger than
it is.nx, plop) rather than dropping it."new:component": "turbo gen component"
is a pointer. A playbook invoking new:component survives the generator being renamed —
the script still exists — so the staleness check stays green over a broken procedure.component inside the file; reading the filename yields turbo gen config, which
nobody can run.observed reads like a lesser configured and is not. It means an id did not
resolve. Shipping it unread is shipping a procedure nobody verified.build and test are
one command each; the derivation deliberately proposes nothing for them.grade: configured for an id you did not resolve in the tree.configured grade this release cannot resolve — report the
gap; that is the decision, not a shortfall to paper over.--write a proposal set you have not read.standards-from-config — the Class-A rule this applies to procedure rather than to style.context-document — the contexts machinery a playbook reuses as its sixth type.command-writing — the numbered-step shape the body follows.Frequently asked questions
A shipped skill is a generic answer to a generic question. A playbook is this repository's answer, and it outranks the shipped skill whenever both match — because it carries decisions the repository already made (file layout, barrel exports, test co-location, the project's own n…
The source record exposes this install command: npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/playbook-authoring". Inspect the command and pinned source before running it.
Static rules flagged write-files, read-files, exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing