Chalk Labs
Need help deploying write-content?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/inhouseseo-write-content
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, writing, marketing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/write-content
What's inside
- Skill name
write-content- Description
- Use when writing a complete SEO article. Includes the full anti-AI-slop ruleset (banned vocabulary, banned phrases, banned structural patterns) and voice rules. The agent researches the SERP itself if needed — no keyword data exports required.
- License
- Apache-2.0
- Instructions
- 177 lines in SKILL.md · view on GitHub
Files (35)
- SKILL.md
- anti-slop-ruleset.md · references/
- content-types-overview.md · references/
- alternatives-page.md · references/content-types/
- buying-guide.md · references/content-types/
- case-study.md · references/content-types/
- category-page.md · references/content-types/
- comparison.md · references/content-types/
- definition.md · references/content-types/
- faq-page.md · references/content-types/
- glossary-page.md · references/content-types/
- how-to.md · references/content-types/
- integration-page.md · references/content-types/
- landing-page.md · references/content-types/
- listicle.md · references/content-types/
- location-page.md · references/content-types/
- news-article.md · references/content-types/
- pillar-page.md · references/content-types/
- product-page.md · references/content-types/
- programmatic-page.md · references/content-types/
- service-page.md · references/content-types/
- statistics-page.md · references/content-types/
- eeat-signal-embedding.md · references/
- fact-checking.md · references/
- geo-optimization.md · references/
- human-input-framework.md · references/
- information-gain-writing.md · references/
- intent-matching.md · references/
- navboost-engagement.md · references/
- quality-scoring.md · references/
- seo-optimization-layer.md · references/
- serp-driven-writing.md · references/
- structured-data-snippets.md · references/
- voice-injection-playbook.md · references/
- writing-pipeline.md · references/
SKILL.md (first lines)
# Write Content
Writes a complete SEO-optimized article. Four phases: research → content type decision → knowledge extraction → write. Includes the full anti-AI-slop ruleset and the voice rules that make the output sound like a practitioner, not a press release.
## Input
- **Topic or target keyword** (required)
- *(Optional)* An existing content brief — skip the research phase if provided
- *(Optional)* Expert interview output from the `expert-interview` skill
If no topic is given, ask for one before proceeding.
## Business context persistence
Business context (audience, tone, language, brand voice, examples) shapes every article. Don't re-ask these questions every session.
**First use**: ask 4-5 questions and save the answers somewhere persistent in your agent's environment. Use the safest default first:
- **Claude Code**: `~/.claude/projects/<path>/memory/business-context.md` is the recommended default. Do NOT write to `./CLAUDE.md` unless the user explicitly asks for it — `CLAUDE.md` is the user's project instructions file and appending unsolicited content to it can surprise them on every subsequent agent turn.
- **Claude Desktop / Claude.ai**: save to a Project's context or a pinned note.
- **Cursor**: `.cursor/rules/business-context.md`.
- **Any other agent**: `seo-context.md` in the working directory.
Always confirm the write location with the user before saving. If any of these are unavailable or the user objects, fall back to re-asking the questions each session.
**Every use after that**: load that file first. If missing, ask where the user saved it or re-ask the questions.
Questions on first use:
- What does the business do, and who is it for?
- What's the brand's tone of voice? (Professional / Casual / Technical / Authoritative / Conversational)
- What language should content be written in?
- What topics should NEVER appear? (compliance, competitor mentions, etc.)
- Who are the 2-3 main competitors?
## Phase 1: Research
If a content brief wasn't provided, Google the topic and read the top 5 results. Note: what formats are ranking, what angles exist, what gaps you see. 3-5 bullet points, not a full brief.
Skip this phase entirely if a brief or prior conversation context already contains SERP analysis.
## Phase 2: Content Type Decision
Based on what's ranking, pick a content type: how-to, definition/explainer, comparison (X vs Y), listicle/roundup, product review, case study, pillar/ultimate guide, FAQ, landing page, service page, news/trend analysis.
State it plainly:
"The top results for [keyword] are all [format]. I'll write a [content type] with [key structural element]. Sound good, or did you have something else in mind?"
Wait for confirmation. If the user already asked for the article in one go, or there's nobody to respond (autonomous run), state your choice with a one-line reason and keep going.
Load `references/content-types-overview.md` for the decision table covering all 23 content types. Then load the specific template from `references/content-types/<type>.md` (e.g., `references/content-types/how-to.md`) for H1/H2 structure, schema, featured snippet format, CTA placement, word count targets. The 19 content types bundled as full templates: how-to, definition, comparison, listicle, pillar-page, faq-page, landing-page, service-page, case-study, statistics-page, news-article, glossary-page, alternatives-page, buying-guide, product-page, category-page, integration-page, location-page, programmatic-page. For the 4 types covered only by the overview table (thought-leadership, product-reviews, pricing-pages, about-pages), those live under `eeat-audit/references/content-types/` because the E-E-A-T bar for them is the load-bearing factor.
## Phase 3: Knowledge Extraction
Ask 2-3 quick questions to extract unique knowledge the user has. Pick from:
- "What do most people get wrong about [topic]?"
- "Can you give me a specific example — a client, a project, a number?"
- "What surprised you when you actually did this?"
- "Who should NOT follow this advice, and why?"
Ask one at a time. Keep it quick.
If the user can't or won't answer — autonomous run, or they skip the questions — write from Phase 1 research alone and note in the delivery where first-party input would lift the article.
**Adapt style**:
- Newer/smaller site, less SEO-savvy user: conversational, explain why each question matters
- Established site, experienced user: fast, direct, no hand-holding
## Phase 4: Write the Article
**Length**: Do not target a specific word count. Match the depth of top-ranking content from Phase 1. Length follows intent and competition — never pad to hit a number.
Produce the complete article in clean markdown. Follow ALL of these rules:
### Voice and Stance
- Write like a practitioner talking to a peer. Not a textbook, not a press release.
- Take clear positions. "We tested this and X works better than Y" beats "both X and Y have merits."
- Use "you" and "I/we" — write to one person, not an audience.
- Include specific numbers, names, dates. Never "many companies" — always "[Company] in [year]."
- Specifics must be real: pulled from the Phase 1 research, the interview answers, or the business context. Never invent a number, name, study, or citation — an invented specific is worse than a generic sentence. No real one available? Ask, or cut the claim.
- Weave in interview answers as first-person experience. Preserve phrasing where it sounds natural.
- Use contractions: "doesn't" not "does not."
- Show thinking changing: "At first I thought this was a branding problem — turns out it was pricing all along." Self-correction is a human signal.
- Anchor in real context — reference current events, industry shifts, or cultural touchstones where relevant.
### Rhythm and Structure
- Vary sentence length dramatically. Mix 5-word punches with 30-word complexes. Never 3+ consecutive sentences of similar length.
- Vary paragraph length. One-sentence paragraphs are fine. So are 6-sentence ones.
- Use fragments for emphasis. Start sentences with "And" or "But" when natural.
- Include parenthetical asides and brief tangents — humans do this, AI doesn't.
- Shift registers. After a technical explanation, drop into a casual aside. Uniform register = AI tell.
- Break the topic-sentence-support pattern. Start some paragraphs with an example, a question, or a statement that only makes sense after reading on.
- Cover sections asymmetrically. Spend 500 words on the interesting part and 50 on the boring-but-necessary one.
- Don't summarize at the end of sections unless genuinely complex (3+ subsections).
### Show, Don't Just State
- Don't state facts. Show them through brief scenarios. Instead of "page speed affects rankings" — "You click a search result. Three seconds pass. Still loading. You hit back. Google tracked every millisecond."
- For claims backed by experience, narrate the moment: what was tried, what happened, what surprised you.
### Anti-Slop Rules
**NEVER use these words** — highest-signal AI tells:
delve, landscape (metaphorical), testament, leverage, utilize, robust, seamless, furthermore, moreover, additionally, pivotal, multifaceted, harness, embark, navigate (metaphorical), showcase, streamline, paramount, culminate, spearhead, commence, endeavor, vibrant, innovative, comprehensive (as adjective).
**NEVER use these phrases:**
"It's worth noting", "In today's [anything]", "Let's dive in", "In conclusion", "plays a crucial/vital/pivotal role", "It goes without saying", "In the realm of".
**Avoid these structural patterns:**
- Rule-of-three groupings (use 2 or 4 items instead)
- Synonym cycling (repeat the right word rather than finding alternatives)
- Copula avoidance ("serves as" — just say "is")
- Em-dash chains (max 1-2 per 1000 words)
- Binary contrasts ("it's not X, it's Y" — just make the argument)
- Participial tack-ons ("...highlighting the importance of X" — delete or make a separate sentence)
- Clustering of: however, notably, essentially, that said, arguably — fine individually, but 3+ in one article flags AI
### Content Type Structure
- **How-to**: 40-60 word quick answer first (featured snippet target), then numbered steps, each step = one action with "what goes wrong"From inhouseseo/superseo-skills, Apache-2.0.
More from inhouseseo/superseo-skills
- 0.761score
content-brief
inhouseseo
Use when planning a new article.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
eeat-audit
inhouseseo
Use when auditing a page for E-E-A-T signals.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
expert-interview
inhouseseo
Use when extracting first-party expertise from a subject-matter expert before writing content.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
featured-snippet-optimizer
inhouseseo
Use when you want to win a featured snippet for a keyword you already rank for.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
improve-content
inhouseseo
Use when rewriting or refreshing an existing page that's underperforming.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
keyword-deep-dive
inhouseseo
Use when planning to rank for a specific keyword.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
linkbuilding
inhouseseo
Use when planning link acquisition.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
page-audit
inhouseseo
Use when auditing a specific page's SEO performance, content quality, and competitive position.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
semantic-gap-analysis
inhouseseo
Use when a page ranks for a keyword but isn't in the top 3 and you want to know exactly what's missing.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
topic-cluster-planning
inhouseseo
Use when planning a topic cluster (hub + spokes) for a new content area.
SkillBFreshness: B★ 366Claude Code +9
Signals
- Stars
- 366
- Forks
- 45
- Open issues
- 1
- Last commit (this folder)
- Sep 3, 2026 (1 month ago)
- Last release
- Sep 3, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/inhouseseo/superseo-skills
- Website
- inhouseseo.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from inhouseseo
- 0.761score
content-brief
inhouseseo
Use when planning a new article.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
eeat-audit
inhouseseo
Use when auditing a page for E-E-A-T signals.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
expert-interview
inhouseseo
Use when extracting first-party expertise from a subject-matter expert before writing content.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
featured-snippet-optimizer
inhouseseo
Use when you want to win a featured snippet for a keyword you already rank for.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
improve-content
inhouseseo
Use when rewriting or refreshing an existing page that's underperforming.
SkillBFreshness: B★ 366Claude Code +9 - 0.761score
keyword-deep-dive
inhouseseo
Use when planning to rank for a specific keyword.
SkillBFreshness: B★ 366Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get write-content running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
write-content skill. Agent Mart. https://agentmart.dev/skills/inhouseseo-write-content (last updated 2026-10-24)