The written house style for founder-skills SKILL.md and README.md files — the style the repo practiced but never wrote down, extracted from the golden four (market-validation, build-options, ecosystem-planning, fable-org-audit): frontmatter rules, trigger-rich descriptions, Phase/Step skeletons, the recurring closer tables, honesty and Tests sections, the README template, and a conformance checklist. Use when a founder-skills maintainer says "does this skill match the founder-skills house style", "review this founder-skills SKILL.md", "write the description/frontmatter for a new skill in this repo", "which skills can I copy from", "style-check this founder-skills plugin", or before editing any SKILL.md or plugin README in this repo. If you are NOT working inside founder-skills, load the public skill-style-guide plugin instead — it is the generic, calibrate-to-your-own-golden-set version.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
The written house style for founder-skills SKILL.md and README.md files — the style the repo practiced but never wrote down, extracted from the golden four (market-validation, build-options, ecosystem-planning, fable-org-audit): frontmatter rules, trigger-rich descriptions, Phase/Step skeletons, the recurring closer tables, honesty and Tests sections, the README template, and a conformance checklist. Use when a founder-skills maintainer says "does this skill match the founder-skills house style", "review this founder-skills SKILL.md", "write the description/frontmatter for a new skill in this repo", "which skills can I copy from", "style-check this founder-skills plugin", or before editing any SKILL.md or plugin README in this repo. If you are NOT working inside founder-skills, load the public skill-style-guide plugin instead — it is the generic, calibrate-to-your-own-golden-set version.
fs-skill-style-guide — the founder-skills house style
Announce at start: "Using fs-skill-style-guide to style-check against the golden four."
This is the style contract every SKILL.md and plugin README in
founder-skills must satisfy. It was extracted 2026-07-02 by reading all 12 plugins; nothing here
is aspiration — every rule is verified against files that exist in the repo today. When this guide
and a shipped skill disagree, the golden four win (they are the reference implementation).
When NOT to use this skill
Your actual job
Load instead
Directory layout, plugin.json, marketplace registration, what files a plugin needs
fs-plugin-anatomy
The end-to-end workflow of adding a new skill (add-skill.sh etc.)
fs-skill-authoring
The binding doctrine (no-oversell, sanitization gate, source traceability)
fs-doctrine-and-honesty
Getting/approving permission to change anything (spec → plan → commits)
fs-change-control
Orienting in the repo at all
fs-orientation
This skill covers only what the prose and structure of a SKILL.md / README.md must look like.
Fine as secondary examples for their conventions (Announce, dot digraphs, Common Mistakes). prd/tasks joined this tier 2026-07-02 — rewritten in place to house style (campaign Phase 2, all 9 acceptance criteria verified); before that they were never-copy off-style imports (ledger entry 5).
NEVER copy
tufte-viz
Nonconforming frontmatter: uses YAML literal block | instead of folded >-, numbered-list description instead of "Use when …" utterances.
Rule 1 — Frontmatter
Exactly two YAML fields: name and description. Nothing else — no version, no author,
no tools, no model. Multi-line descriptions use the YAML folded scalar >-:
---name:my-skilldescription:>-
<Job statement, one or two sentences: what running this produces.> Use when the
user asks "<literal utterance 1>", "<literal utterance 2>", "<literal utterance 3>",
or <a situational trigger, e.g. "after running `market-validation`">.
---
name matches the skill's directory name exactly (kebab-case).
Never | (literal block — that is the tufte-viz mistake), never a one-line double-quoted
string for anything longer than ~1 line (that is the prd/tasks import style).
Rule 2 — The description is a trigger surface
The description is what the model reads to decide whether to load the skill. Two mandatory parts,
in order:
The job first — what the skill does end-to-end, concrete deliverables named
(e.g. market-validation: "scope questions → … → a cited evidence pack → a Tufte HTML deck").
Then triggers — "Use when …" and/or "Triggers on:" followed by literal quoted utterances
a user would actually type: "is there a market for X", "audit this org", "set effort".
3–6 utterances; include at least one situational (non-verbal) trigger where it applies
("or after running market-validation", "or a scheduled pre-demo / weekly org check").
Bad: "Helps with market research." Good: open plugins/market-validation/SKILL.md lines 3–8.
Rule 3 — Body skeleton (pick the matching one)
Imperative second person throughout ("Ask the user…", "Launch the bundled workflow…"). The body is
a runbook the model executes, not documentation about one.
A. Pipeline/chain skill (has phases with artifacts flowing between them — market-validation,
build-options):
# Title
<1-3 line summary; name the worked example it was generalized from.>
## Before you start ← cost/time in tokens+agents, Workflow opt-in note, honesty pointer## Phase 0 — Scope/Frame ← AskUserQuestion batch## Phase 1 — <verb> ← usually the Workflow launch, fenced call with <skill-dir>/ path## Phase 2..N — <verb> ← each phase names its input artifact and output artifact## Deliverables ← flat list of files; "Surface them to the user (SendUserFile)."## Known limitations (keep your honesty consistent)## Tests ← required if the skill ships executable assets## References ← bullet list of references/ files, one-line purpose each
B. Audit/orchestration skill (invokes Agent()/judges — fable-org-audit, fable-repo-audit):
# Title## Overview ← what it is, what it is NOT ("Distinct from `/sibling` …")## When to Use ← bulleted situations## <thecoremodel> ← e.g. "The Eight Dimensions" table + grading scale 🟢🟡🔴⚫## Step 1 — Invoke … ← fenced Agent({model:"fable", prompt:`…`}) block, prompt verbatim## Step 2 — Surface and act## Output Location## Quick Reference ← grade/decision table## Common Mistakes ← two-column table: Mistake | Fix## Related Skills ← slash-named siblings, one line each on the difference## References
Numbered Phases for chain skills, numbered Steps for orchestration/planning skills
(ecosystem-planning uses "The process (9 steps)"). Never unnumbered wall-of-prose procedure.
Rule 4 — Recurring sections and who carries them
Verified distribution as of 2026-07-02 (grep -rl over plugins/*/SKILL.md):
Section
Required when
Currently in
**Announce at start:** "…" one quoted line
Calibration/planning skills that set session state or run long
effort, session-start, ecosystem-planning
## Known limitations (keep your honesty consistent)
Skill makes any claim that is unproven — use that exact heading
When a skill routes work between models, use the house vocabulary exactly (source: effort,
session-start, fable-orchestrated-feature-dev; doctrine home: fs-doctrine-and-honesty):
Fable 5 plans and reviews and NEVER writes implementation code.
Opus 4.8 implements complex work; Sonnet 4.6 implements standard work.
"external executor" is the generic term for the token-exhausted fallback (a cheaper Claude
session, Haiku 4.5, or a third-party plan-runner). Name specific third-party tools only as
"such as Codex", never as a dependency.
The tier is set once via /effort or /session-start and persisted in
~/.claude/session-context.md — skills read it, they don't re-ask.
Model IDs are volatile facts: date-stamp them and expect fs-freshness-watch to sweep them.
Rule 6 — AskUserQuestion convention
Show the question set as a literal fenced block (header / question / options with label +
description), exactly as effort does — not a paraphrase.
Batch related questions into ONE AskUserQuestion call ("one call, three questions").
The recommended option comes first, labeled (Recommended) — optionally with a reason:
"Ample — Opus 4.8 (Recommended for new work)".
Ask only scope-shaping questions, "not preferences with obvious defaults" (ecosystem-planning §3).
Rule 7 — Chaining and handoffs
Refer to sibling skills by slash name: `/market-validation` → `/build-options` → `/prd` → `/tasks`.
Handoffs pass file paths or JSON artifacts, never inline content (build-options Phase 4 hands
prd a description built from fields of decision-data.json; ecosystem-planning hands
~/.claude/plans/ecosystem-<name>.md to fable-orchestrated-feature-dev).
One canonical data file per pipeline ("the single source of truth"): deck-data.json,
decision-data.json. Downstream tools read it; humans don't retype it.
Each chain-adjacent skill states explicitly what it is distinct from and links the sibling.
Rule 8 — Paths and commands
Inside a skill, all bundled files are relative: references/…, assets/…, tests/….
Runnable commands use the <skill-dir>/ placeholder:
python3 <skill-dir>/assets/build_matrix.py decision-data.json --out <out-dir> --pdf.
Never a /home/<user> absolute path in anything shipped under plugins/ (sanitization gate —
see fs-doctrine-and-honesty). ~/.claude/… paths are allowed only when they ARE the mechanism
(session-context.md, audit memory files).
Commands must be copy-paste runnable; if a dependency may be missing, say what happens
(build_deck.py: "else PPTX_SKIPPED") and give the venv one-liner. Note (2026-07-02): the host
is PEP-668 — bare python3 -m pytest fails; test commands and their working forms live in
fs-toolchain-and-tests.
Rule 9 — Honesty in prose (style-level; doctrine in fs-doctrine-and-honesty)
Unproven executable paths carry the standing admission verbatim: "syntax-checked only — its
first real invocation is its proving run."
Emitted-artifact claims are scoped: "shape-valid; loading is the sink's to verify" — never claim
a specific platform integration "works today" without having run it.
Cost/time claims cite a real measured run ("the reference run was ~1.5M tokens, ~38 agents,
~50 min"), never a round invented number.
Directional numbers are labeled directional ("scores are directional, not precise").
Rule 10 — Worked examples under references/
Every generalized skill preserves the concrete run it was generalized from, under references/:
example-shiftmate/ (market-validation + build-options share the fictional ShiftMate),
worked-example-robot-md.md (ecosystem-planning), worked-example-platatlas.md (fable-org-audit).
The body links it in sentence one or two ("Generalized from the ShiftMate run (see
references/example-shiftmate/)") and the manual seams say "mirror the golden example closely".
Worked examples must be sanitized (fictional or approved-public names only).
Rule 11 — Length
House norm 78–233 lines for a SKILL.md (verified 2026-07-02 via wc -l: build-options 78 …
fable-loop-design 233; the golden four are 78/117/172/227). Under ~78 usually means missing
honesty/Tests/References sections; over ~233 means content that belongs in references/. tasks
at 480 is the counterexample, not a precedent. Push detail down: SKILL.md is the runbook,
references/ holds the method docs, schemas, and worked examples.
Rule 12 — Per-plugin README.md (marketing-facing)
These six ## sections, in this order, are mandatory (verified present in order in all 15
plugin READMEs 2026-07-02; heading set verified against build-options/README.md). Five plugins
(effort, fable-orchestrated-feature-dev, fable-org-audit, fable-repo-audit, tasks) legitimately
insert ONE extra topical section — e.g. ## Make it recurring, ## Related API primitives —
between "What it will ask you" and "Cost"; that is allowed, but more than one insert is not
the norm:
# <name> — <one-linehookasaquestionorpromise>## Before you install ← cost warning, non-negotiable disciplines, what kind of skill this is## What it will ask you ← the AskUserQuestion batch, enumerated## What it produces ← bulleted artifact list with filenames## Cost ← tokens + wall-clock, plus how to scope it down## 60-second first run ← the slash command + a 2-3 sentence "answer, approve, come back to"## Built on ← table: Anthropic primitive | Role here | Docs link
"Built on" links must be official Anthropic URLs, live-verified the session you write them
(doctrine — see fs-doctrine-and-honesty; last repo-wide verification 2026-06-11, now stale).
Conformance checklist
Run this before proposing any new/edited skill (and route the change itself through
fs-change-control — style conformance never substitutes for change control):
Frontmatter has exactly name + description; multi-line description uses >-
name == directory name
Description = job first, then "Use when …" with ≥3 literal quoted utterances
Body is imperative second person, numbered Phases or Steps
Cost/time stated up front if the run is heavy (tokens, agents, minutes — measured, not invented)
AskUserQuestion shown as literal fenced block, batched, (Recommended) first
All bundled paths relative; runnable commands use <skill-dir>/; no /home/<user> paths
Model routing (if any) uses house vocabulary; Fable never writes implementation code
Sibling skills slash-named; handoffs pass file paths/JSON, never inline content
Executable assets ⇒ ## Tests with exact commands
Unproven claims ⇒ ## Known limitations (keep your honesty consistent) + "syntax-checked only" where true
Worked example under references/, linked early, sanitized
Ends with ## References bullet list (or an explicit worked-example pointer)
78–233 lines; overflow moved to references/
README (if plugin is public) has the six sections in order; Built-on links live-verified this session
Zero style borrowed from prd, tasks, or tufte-viz
References
plugins/market-validation/SKILL.md, plugins/build-options/SKILL.md — golden chain-skill shape.
plugins/ecosystem-planning/SKILL.md, plugins/fable-org-audit/SKILL.md — golden planning/audit shape.
plugins/build-options/README.md — cleanest instance of the six-section README template.
Provenance and maintenance
Extracted 2026-07-02 from repo HEAD 2e4c9dd by reading all 12 plugins/*/SKILL.md + READMEs.
Re-verify before trusting (run from the repo root):
Volatile facts to re-check on drift sweeps (fs-freshness-watch): model names (Opus 4.8 /
Sonnet 4.6 / Fable 5 / Haiku 4.5, current as of 2026-07-02), the 78–233 line norm, the prd/tasks
off-style status (a house-style rewrite is operator-licensed — if executed, move them out of the
never-copy table), and the six-section README claim if any plugin is added.