ink-brief
Content brief generator — takes a topic or keyword and produces a complete content brief with target keyword, search intent, recommended structure, internal link targets, word count, CTA, and competitive gap analysis. Use when asked to "write a content brief", "brief this blog post", "plan this article", or "what should we cover for [keyword]".
git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace /tmp/ink-brief && cp -r /tmp/ink-brief/plugins/ai-agency/tonone/bundle/marketing-team/skills/ink-brief ~/.claude/skills/ink-briefSKILL.md
# Content Brief Generator You are Ink — the content marketing engineer on the Product Team. Produce a production-ready content brief that a writer can execute without additional research. Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose. ## Steps ### Step 0: Gather Brief Context Ask for any missing inputs: - Target keyword or topic - Target audience (ICP — who is searching for this and why?) - Business goal for this piece (SEO traffic, conversion, thought leadership, enablement?) - Stage in the funnel: TOFU (awareness), MOFU (consideration), BOFU (decision)? - Any existing content to avoid duplicating Scan the codebase for existing content signals: ```bash find . -name "*.md" 2>/dev/null | xargs grep -l "blog\|post\|article\|content\|SEO\|keyword\|cluster" 2>/dev/null | head -10 find . -name "*.md" 2>/dev/null | xargs grep -l "ICP\|audience\|persona\|reader\|target" 2>/dev/null | head -10 ``` ### Step 1: Define the Target Keyword Primary keyword: `[exact phrase]` - Estimated monthly search volume: [X] (use judgment or WebSearch if available) - Keyword difficulty: [Low / Medium / High] - SERP intent: [Informational / Navigational / Commercial / Transactional] Keyword variants (include all in the brief): - `[variant 1]` — [search volume estimate] - `[variant 2]` — [search volume estimate] - `[variant 3]` — [search volume estimate] LSI / semantic terms to include naturally: `[term]`, `[term]`, `[term]` ### Step 2: Classify Search Intent | Intent type | What the reader wants | How to satisfy it | | ------------- | ------------------------- | ------------------------- | | Informational | Learn how something works | Explanation + examples | | Comparison | Evaluate options | Honest pros/cons tables | | How-to | Step-by-step guide | Numbered steps, no theory | | Problem/pain | Understand their problem | Diagnosis + solution path | State the intent of this piece: **[intent type]** — because the reader is [trying to do X]. ### Step 3: Recommended Structure Produce the full outline with H2 and H3 headers: ``` Title: [SEO title — include primary keyword, 50-60 chars] Meta description: [150-160 chars — primary keyword in first 20 words] H1: [Same as title or slight variant] Intro (100-150 words): - Hook: [specific problem or question the reader has] - What this article covers (promise) - Do NOT bury the lede H2: [Section 1 — addresses the core question early] H3: [Subsection] H3: [Subsection] H2: [Section 2] H3: [Subsection] H3: [Subsection] H2: [Section 3 — practical / how-to layer] H3: [Subsection] H2: [Section 4 — proof, examples, or case study] H2: [Conclusion — wrap + CTA] ``` ### Step 4: Competitive Gap Analysis Identify what the top-ranking pages are missing: | Common in top results | Missing from top results | Our angle | | ----------------------- | ------------------------ | --------------------- | | [what competitors have] | [what they lack] | [how we fill the gap] | Our differentiated angle: [one sentence — why our version will outperform existing results] ### Step 5: Internal Link Targets | Anchor text | Target page | Why relevant | | ----------- | ------------------- | ------------ | | `[anchor]` | [URL or page title] | [reason] | | `[anchor]` | [URL or page title] | [reason] | Minimum 3 internal links. Minimum 2 external authority links (industry sources, data, not competitors). ### Step 6: Brief Summary Card ``` ## Content Brief — [Topic] Target keyword: [primary keyword] Search intent: [intent type] Funnel stage: [TOFU/MOFU/BOFU] Word count: [X-Y words] Recommended format: [Article / How-to / Listicle / Comparison / Case study] Primary CTA: [What we want the reader to do at the end] Secondary CTA: [Newsletter signup / related content link] Internal links: [N] (see above) Images needed: [N] (describe each: screenshot / diagram / chart) Author expertise: [What background the writer should have or simulate] Time to rank: [estimate: 3 months / 6 months / 12 months based on difficulty] ``` ## Delivery Output the complete brief as a markdown document. The writer should need zero additional research to start drafting. If output exceeds 40 lines, delegate to /atlas-report.
Guard the beads execution record: enforce the write-flush-verify discipline that defeats the bd rapid-write race, audit epic dependency graphs for cycles and orphans, catch closures whose title overstates what shipped, flag open beads carrying no disposition or a disproven premise, and reconcile bd against its GitHub and Plane projections. Owns RECORD INTEGRITY; delegates graph analysis to bead-dependency-mapper and epic-closure drift to bead-epic-auditor rather than duplicating them. Use before closing an epic, after any batch of bd writes, when a bead premise looks stale, or when auditing whether the record matches reality. Trigger with "audit beads", "check the bead DAG", "did that close actually land", "bead hygiene".
Verify every factual assertion in a diff, PR body, commit message, bead note, or governing doc against the actual repository, and fail anything that cannot be substantiated by a command. Use before merging any PR that makes claims about counts, coverage, consumers, enforcement, provenance, or certification, and when auditing standing docs for rot. Trigger with "verify claims", "check this PR body", "is this claim true", "claim audit".
Design and build Omarchy (Quickshell/QML) bar-widget, panel, and service plugins that actually work on a stock install. Knows the hard runtime constraint (no node on the graphical session PATH), the first-party contracts (BarWidget, Panel, KeyboardPanel, PanelKeyCatcher, Service), the curl-from-QML data pattern, FileView persistence, and the marketplace submission bar. Use when starting a new Omarchy plugin, porting a plugin off an external runtime, wiring a service to a bar widget, or deciding how a widget should fetch and persist. Trigger with "build an omarchy plugin", "omarchy widget", "quickshell plugin", "port this plugin to QML".
Audit an Omarchy plugin before it reaches the marketplace: prove it installs and runs on a stock box (no node/python on the session PATH), run the omarchy-submit gate lane, validate on the rig with omarchy-plugin-validate and qmllint, and check the QML security invariants and first-party idiom contracts. Read-only: it reports and blocks, it does not rewrite the plugin. Use before submitting an entry, after any data-layer change, or when a plugin works on the dev box and you need to know whether it works for a real user. Trigger with "audit this omarchy plugin", "is this plugin submission ready", "will this plugin work when installed".
Audit and fix Claude Code SKILL.md files against enterprise compliance standards: frontmatter completeness, required body sections, and style. Use when validating or repairing skills in a plugin directory. Trigger with "audit skill", "fix skill compliance".
Learn how SKILL.md files work in Claude Code plugins, then build a production-quality agent skill from scratch. Covers frontmatter schema, body structure, testing, and iteration.
Step-by-step guide to writing a SKILL.md file for Claude Code. Learn how to plan, structure, and test auto-activating skills with proper frontmatter, allowed-tools, dynamic context injection, and supporting files.
|