Agent skill

Docs Writer

by strands-agents in strands-agents/harness-sdk

Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk.

Apache-2.0Auto-check passedDevelopment

Install Docs Writer

skills CLI
$ npx skills add strands-agents/harness-sdk --skill docs-writer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install strands-agents/harness-sdk docs-writer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/docs-writer .claude/skills/docs-writer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
docs-writer
GitHub stars
8.7k
Token cost
~2k tokens
SKILL.md length
1,015 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
Apache-2.0

At a glance

Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk.

  • Works in 7 steps: Load voice context → Outline → Draft → …
  • Writing new doc pages
  • SKILL.md covers Inputs, Process, Output and Git workflow, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Docs Writer is an agent skill from strands-agents/harness-sdk. Draft or rewrite Strands Agents documentation pages. Use when writing new doc pages, rewriting pages that failed audit, drafting sections for existing pages, or writing blog posts and release notes about Strands. Also triggers on "write a doc", "draft a page", "rewrite the quickstart", "add a tutorial for X", "document this feature".

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Blog and article writing and Changelog and release notes. The repository describes itself as: Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. The licence is Apache-2.0.

When your agent uses it

  • Writing new doc pages
  • Rewriting pages that failed audit
  • Drafting sections for existing pages
  • Writing blog posts and release notes about Strands

Example prompts

  • “write a doc”
  • “draft a page”
  • “rewrite the quickstart”
  • “/docs-writer”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Load voice context
  2. Outline
  3. Draft
  4. Constrain
  5. Authenticate
  6. Metadata
  7. Run docs-reviewer

What it can do on your machine

Read from SKILL.md and the folder at commit e519d67. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Docs Writer loads about 2k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,015 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from strands-agents/harness-sdk at commit e519d67, republished under its Apache-2.0 licence (© strands-agents). 1,015 words, ~1,990 tokens.

Download SKILL.mdSave it as .claude/skills/docs-writer/SKILL.md (or your agent's skills folder).
name
docs-writer
description
Draft or rewrite Strands Agents documentation pages. Use when writing new doc pages, rewriting pages that failed audit, drafting sections for existing pages, or writing blog posts and release notes about Strands. Also triggers on "write a doc", "draft a page", "rewrite the quickstart", "add a tutorial for X", "document this feature".

Documentation Writer

Draft or rewrite Strands Agents documentation following the five-layer voice stack.

Inputs

  • Content type: tutorial, howto, reference, explanation, blog (required)
  • Topic: What this page covers (required)
  • Target file: Path in docs repo where this will live (if known)
  • Existing content: Current page to rewrite (if rewriting)
  • Context (optional): Community signals, GitHub issues, or positioning themes motivating this work

Process

Step 1: Load voice context

Read these files before writing anything:

  1. ../../references/voice-guide.md (the full voice stack)
  2. ../../references/terminology.md (canonical terms)

If rewriting, read the current published page as a baseline.

Step 2: Outline

Produce an outline where each item is the question that section answers.

  • Tutorial: step-by-step journey toward a working result
  • How-to: prerequisites, steps, expected result
  • Reference: API surface (classes, methods, parameters)
  • Explanation: problem, design choice, tradeoffs, implications

Each section answers one question. No mixed-type sections. Review for scope creep.

Step 3: Draft

Write each section following the outline.

  • First sentence of every section describes the developer's goal (framing layer)
  • Use the tone appropriate for this content type (register layer)
  • Code examples: runnable with real Strands imports and realistic values
  • For agent responses, label non-deterministic output following the patterns in voice-guide.md under "Documenting non-deterministic behavior" (typical output as a comment under the code; capability language for tool selection).
  • Comments explain intent, not mechanics
  • One concept per code block
  • Match snippet length to the complexity of what's being demonstrated. Bias toward brevity. If setup machinery dwarfs the feature being shown, the snippet is overweight.
  • Snippets must be copy-paste-runnable: imports present, variables defined, no missing context.
  • Prefer prose over a snippet for trivial API surface. A single property, a single method call, or a one-line config change is often clearer as inline backtick code in a sentence than as a dedicated code block. Reach for a snippet when the shape, ordering, or interaction between calls carries the lesson.
  • Diagrams use ```mermaid fences (flowchart, sequence, etc.). Never use ASCII art or box-drawing characters for diagrams. The site renders mermaid natively.
Step 3b: Apply MDX formatting

Apply MDX formatting patterns from ../../references/mdx-authoring.md — especially Tabs/Tab syntax, the <Syntax> component for inline language-specific identifiers, snippet includes, and callout syntax (default to inline prose; callouts are rare).

When shared prose needs to reference a language-specific identifier (method name, parameter, class, etc.), use <Syntax py="..." ts="..." />. This keeps prose clean and adapts to the reader's language selection. Never spell out both variants manually in prose.

TypeScript code is never inlined in MDX. All TypeScript examples live in runnable .ts snippet files alongside the page and are included via --8<-- directives. Two files per page:

  • <page>_imports.ts — one named snippet region per example's import set. Every example gets its own imports snippet so the rendered block is self-contained.
  • <page>.ts — body snippets scoped in blocks.

In the MDX, each TypeScript code fence contains two --8<-- includes (imports + body) inside a single fence so it renders as one copy-pasteable block. Every example must include its imports — a body-only include that omits the import line produces a snippet that isn't runnable.

Read ../../references/mdx-authoring.md ("Snippet Inclusion" and "TypeScript Snippet Scoping") for the full specification. Look at any existing page with TypeScript tabs in the same directory for the concrete file layout.

Python code may be inlined directly in the MDX since Python files in the docs tree don't go through a type-checker.

Show full SKILL.md (464 more words)Show less
Step 4: Constrain

Check the type-aware constraint overrides table in the voice guide first. The content type determines which rules are strict vs relaxed.

Then self-check against hard constraints:

  • No banned phrases (AI tells, hype words)
  • No em-dashes
  • No emoji
  • Active voice (unless reference type, per overrides table)
  • No hedging on facts (softened for explanation tradeoff discussions)
  • Terminology matches the lock file
  • Code examples are contextually complete (imports present, runnable)
  • Code examples use proper backtick formatting
  • All prose outside a <Tab> is language-neutral. No Python or TypeScript parameter names, no language-specific syntax (e.g. preserve_context=False or preserveContext: false). Describe the concept in plain English; the code inside each tab shows the language-specific spelling.
  • Headings describe the concept, never the API. No parameter names or syntax in headings.
  • Never name the language inside its own tab. The reader selected the tab; they already know.
Step 4b: Verify code accuracy

Follow the verification procedure in ../../references/code-verification.md.

Do not skip this step. Plausible-but-wrong code examples erode developer trust faster than missing documentation.

Step 5: Authenticate

Review the draft for machine-generated feel:

  • Break structural sameness (vary section openings, use fragments, vary length)
  • Add visible editorial judgment (name rejected alternatives, state opinions)
  • Cut aggressively (first drafts are always too long)
  • Replace "you could use X or Y" with a recommendation
Step 6: Metadata

Add frontmatter following the schema documented in ../../references/mdx-authoring.md ("Frontmatter Schema"). At minimum:

yaml
---
title: "[title]"
description: "[140-160 char description for SEO]"
---

Add optional fields (languages, community, experimental, integrationType, category, redirectFrom, tags, sourceLinks) only when applicable. Don't add fields the schema doesn't validate — Zod silently strips unknown keys at build time.

Step 7: Run docs-reviewer

Run the docs-reviewer skill on the completed draft. Address any findings before presenting the draft.

Output

Present the completed draft as:

  1. The full page content
  2. A brief note on voice choices made (register, key editorial decisions)
  3. Any open questions for PM review (terminology, scope, accuracy concerns)

Git workflow

Follow the git workflow described in the repo's AGENTS.md and CONTRIBUTING.md.

What this skill does NOT do

  • Auto-commit without human review
  • Generate reference docs from code (separate auto-generation concern)
  • Publish or deploy docs

Gotchas

  • Never inline TypeScript in MDX. TypeScript examples live in sibling .ts snippet files and are included via --8<-- directives. Inlined TypeScript fails review. See Step 3b and mdx-authoring.md.
  • Always verify code against SDK source. The most common failure mode is plausible imports that don't exist or parameters with wrong names.
  • Terminology lock is strict. "Hook" not "callback." "Plugin" not "middleware." "Tool" not "function." Check before drafting.
  • The constraint overrides table relaxes different rules per content type. Don't apply tutorial constraints to reference pages.
  • Tabs syntax in MDX is finicky. Match the exact pattern from mdx-authoring.md or builds will break.
  • Cut aggressively. First drafts are always 30-50% too long. The authenticity pass is where most quality comes from.

© strands-agents, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/docs-writer of strands-agents/harness-sdk.

Open the folder on GitHubat commit e519d67

Compare with similar skills

Docs Writer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Docs Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Docs Writer this skillstrands-agents/harness-sdk8.7k—~2kAutomated safety check: PassApache-2.0
Noodle Releasewilfredinni/noodle363—~2kAutomated safety check: PassApache-2.0
Changelogcloudposse/atmos1.4k—~2.7kAutomated safety check: PassApache-2.0
Release Announcementpaperclipai/paperclip99k—~1.7kAutomated safety check: PassMIT
Avoid AI Writingwshobson/agents40k—~1.9kAutomated safety check: PassMIT
Pull Requestcloudposse/atmos1.4k—~3.5kAutomated safety check: PassApache-2.0

Similar skills

  • Noodle Release

    wilfredinni/noodle

    Prepare a versioned Noodle release by updating package.json, inspecting changes since the latest tag, auditing every repository-maintained skill, synchronizing affected README, AGENTS.md, tests…

    363 GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Changelog

    cloudposse/atmos

    Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.

    1.4k GitHub stars~2.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Announcement

    paperclipai/paperclip

    Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.

    99k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Avoid AI Writing

    wshobson/agents

    Audit and rewrite prose so it stops reading as machine-generated.

    40k GitHub stars~1.9k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Pull Request

    cloudposse/atmos

    PR workflow: pick the right semver label (no-release / patch / minor / major), decide when to add a changelog blog post, when to update the roadmap, and how to do each correctly.

    1.4k GitHub stars~3.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Talking Head Video

    gooseworks-ai/goose-skills

    Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts).

    1.2k GitHub starsUsed in 1 repo~8.4k tokens
    DevelopmentAuto-check: notes

More from strands-agents/harness-sdk

All 14 skills in this repo
  • Docs Audit

    strands-agents/harness-sdk

    Assess a published or in-progress documentation page for quality, accuracy, and voice compliance.

    8.7k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Docs Planner

    strands-agents/harness-sdk

    Identify documentation gaps and prioritize the docs backlog.

    8.7k GitHub stars~821 tokensUpdated yesterday
    Auto-check passed
  • Docs Reviewer

    strands-agents/harness-sdk

    Review documentation drafts for voice consistency, structure, and terminology before PR submission.

    8.7k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • PR Create

    strands-agents/harness-sdk

    Creates a GitHub pull request using the gh CLI. An agent skill from strands-agents/harness-sdk.

    8.7k GitHub stars~593 tokensUpdated yesterday
    Auto-check passed
  • PR Feedback

    strands-agents/harness-sdk

    Fetches PR review feedback and inline comments, categorizes them, and presents options to the user.

    8.7k GitHub stars~675 tokensUpdated yesterday
    Auto-check passed
  • PR Writer

    strands-agents/harness-sdk

    Generates pull request titles and descriptions. An agent skill from strands-agents/harness-sdk.

    8.7k GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed

Questions about Docs Writer

What does Docs Writer do?

Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk. Docs Writer is an agent skill from strands-agents/harness-sdk. Draft or rewrite Strands Agents documentation pages.

When should I use Docs Writer?

Docs Writer fits situations like: writing new doc pages; rewriting pages that failed audit; drafting sections for existing pages; writing blog posts and release notes about Strands.

How do I install Docs Writer in Claude Code?

Run `npx skills add strands-agents/harness-sdk --skill docs-writer -a claude-code`. Or copy the skill folder (.agents/skills/docs-writer in strands-agents/harness-sdk) into .claude/skills/docs-writer in your project. Claude Code loads it when a task matches its description.

How do I install Docs Writer in Codex?

Run `npx skills add strands-agents/harness-sdk --skill docs-writer -a codex`. Or copy the skill folder (.agents/skills/docs-writer in strands-agents/harness-sdk) into .agents/skills/docs-writer in your project. Codex loads it when a task matches its description.

Can I use Docs Writer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add strands-agents/harness-sdk --skill docs-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/docs-writer, .gemini/skills/docs-writer, .github/skills/docs-writer and .opencode/skills/docs-writer in your project.

What does Docs Writer need to run?

SKILL.md names no scripts, command-line tools or credentials: Docs Writer is instructions for the agent only. Our summary lists: Python 3.

Does Docs Writer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Docs Writer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Docs Writer use?

Docs Writer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Docs Writer use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Docs Writer?

Skills that share tags, products or a category with Docs Writer: Noodle Release (wilfredinni/noodle, 363 stars), Changelog (cloudposse/atmos, 1.4k stars), Release Announcement (paperclipai/paperclip, 99k stars) and Avoid AI Writing (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Docs Writer?

strands-agents (a GitHub organization) maintains it in strands-agents/harness-sdk, which has 8,731 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.

Source: strands-agents/harness-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.