kit/plugins/social-media-tools/skills/write-guide/SKILL.md
Writes developer guides on any project topic. Covers rules, tools, resources, plans, and changes for any reader. Use when the user asks to write, explain, or deep-dive a project topic as a guide.
npx skillsauth add shawn-sandy/agentics write-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write a long-form developer guide that explains any project topic in depth — systems, rules,
concepts, tools, resources, plans, changes, or saved memories — for internal teammates or external
contributors alike. The output is a single Markdown file in <plansDirectory>/guides/, assembled
from a section library to fit the topic and written in a strict tone. Five archetypes (system
explainer, rule deep-dive, how-to/tutorial, concept explainer, change recap) offer non-binding
starting shapes.
This is a writing skill with a verification spine: every external URL, file path, and quoted fact is checked against its source before it lands in the doc. A guide that ships an unverified claim is a defect, not a draft.
guides/ subfolder inside the configured plansDirectory (e.g.
docs/plans/guides/), named in verb-target kebab-case — e.g. explain-memory-recall.md,
review-bot-loop-discipline.md, never guide.md.${CLAUDE_PLUGIN_ROOT}/skills/write-guide/references/skeleton.md — sections chosen, ordered,
and blended to fit the topic.Invoke when the user says any of:
Do not invoke for these — redirect instead:
README.md directly; do not produce a docs/ guide.share-blog skill instead.internal-comms skill instead.plan-agent:documenting-plans.If the request is ambiguous between a guide and one of the above, ask before drafting.
Read all three before drafting. They are the authoritative spec for structure, voice, and the style models — do not reconstruct them from memory:
${CLAUDE_PLUGIN_ROOT}/skills/write-guide/references/skeleton.md — the section library: twelve documented section intents and devices to assemble a guide from. Pick what the topic needs.${CLAUDE_PLUGIN_ROOT}/skills/write-guide/references/tone-rules.md — tone rules and the mandatory discipline rules, each expanded with a worked example.${CLAUDE_PLUGIN_ROOT}/skills/write-guide/references/exemplars.md — five archetypes (system-explainer, rule-deep-dive, how-to, concept-explainer, change-recap), each a non-binding starting point, plus the picker for choosing one.Follow these steps in order.
Clarify. If the topic, the intended audience, or the save location is ambiguous, use
AskUserQuestion with up to 3 batched questions. Skip this step entirely when the request is
self-evident — do not add friction to a well-specified ask.
Source. Gather facts, in this priority order. Stop when you have enough to fill the sections the topic needs; do not over-collect.
Read them in full.git log, git show, git blame for the story of why something exists.Grep/Glob for related symbols, configs, call sites.WebFetch only, verified URLs only (see discipline rule 1).Structure. Map what you gathered onto the section library. Decide per section whether it genuinely applies. Omit the ones that do not — never emit an empty stub or a section padded with filler to look complete.
Select a starting archetype. Pick the closest of the five archetypes in exemplars.md as a
starting point, then assemble the body from the section library to fit the topic — add, drop,
reorder, or blend sections freely. The archetype is a starting shape, not a contract; deviate
whenever the topic demands it.
Verify externals. Fan out WebFetch calls in parallel for every external URL you intend to
cite. Confirm each resolves (HTTP 200) and paste the canonical destination, not a redirector.
Verify on-disk. Read or Grep every file path, function name, line number, and
frontmatter field before you cite it. A path that 404s or a function that was renamed is a
defect.
Write. Draft the doc applying every tone rule. Where a library section appears, use its device as the library prescribes: a bold thesis opening the rule/thesis section, an italic-blockquote diagnostic question opening decision criteria, paired do / do-NOT in the operational script, numbered carve-outs in boundaries.
Cross-link. Point upward to canonical external docs and sideways to sibling internal docs
and relevant config files. Label per-user paths (~/.claude/...) and memory wikilinks
([[name]]) as per-user, not in this repo, whenever they appear (discipline rule 6).
Name. Choose a verb-target kebab-case filename that names the topic. Reject generic names
like guide.md, doc.md, notes.md.
Save. Resolve the target directory in order: (1) <plansDirectory>/guides/ if
plansDirectory is configured — read it via Claude Code's settings precedence (project-local
.claude/settings.local.json → project .claude/settings.json → global
~/.claude/settings.json); (2) docs/guides/ if that directory exists; (3) docs/ at the
repo root as a last fallback. Create the guides/ subfolder if it does not exist. Honor an
explicit user-specified path above all other resolution rules.
Confirm. Return the saved file as a clickable Markdown link plus a one-paragraph summary of what the doc covers, which archetype it started from, and how the shape deviated (if it did).
Whatever shape the body takes, every guide carries the same spine: a provenance callout
(> **Origin.** or > **Status.**) up front, a body assembled from the section library, a closing
Quick reference (ASCII), and a Cross-references list — held to the six discipline rules below. The
enforced contract is this spine plus the depth bar (at least one verbatim-quoted primary source and
at least one worked example per guide) — never any fixed section sequence.
These are enforced, not advisory. A guide that breaks one is incomplete.
WebFetch before pasting. If a URL redirects, paste the
canonical destination — never the redirector.Read
or Grep before citing it.docs/ file may be read by external
contributors who clone the repo and have no access to your ~/.claude/. Linking to per-user
paths or [[memory wikilinks]] without the "per-user, not in this repo" disclaimer is a defect.
When the guide is explicitly for an external audience, omit per-user paths entirely.Confirm all of the following before returning the file:
verb-target kebab-case, not generic.> **Origin.** (or > **Status.**) callout.WebFetch-verified this session.Read or Grep-confirmed this session.development
Checks whether the branch's PR is ready and merges it when green. Runs the readiness gate, lint, and an approval prompt. Use when the user asks "merge?" or if a PR is ready to merge.
development
Implements a plan file that already exists. Walks its steps, ticks the spec, re-renders, and runs the completion gates. Use when asked to implement an existing plan.
development
Audits and optimizes CLAUDE.md project memory files. Checks adherence to Claude Code best practices and produces actionable fixes. Use when the user asks to audit, optimize, or diagnose a CLAUDE.md.
development
Converts an HTML artifact or Markdown file into a draft post for a static site. Scopes CSS to keep interactive blocks alive and escapes prose for MDX. Use when asked to turn an artifact into a post.