writing-docs

writing-docs is a skill for Claude Code, Codex from olimorris/codecompanion.nvim. It costs 23 tokens per session (2,109 once invoked), scanned A, original, Apache-2.0.

A writing guide for creating and editing CodeCompanion.nvim documentation. It sets rules for structure, tone, wording, and the command used to regenerate Neovim help files.

In plain words
What is it for?
Use it when changing pages in `doc/`, including writing descriptions, usage pages, configuration pages, and guides.
Why use it?
It keeps documentation consistent and makes sure generated help files stay in sync with edited pages.

Skill for Claude CodeCodex

Which agent this was written for is unclear — built for cline. Also seen: mentions Claude Code; mentions Codex; built for cline.

Good fit Use it when changing pages in doc/, including writing descriptions, usage pages, configuration pages, and guides.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/olimorris/codecompanion.nvim/writing-docs
About the project

CodeCompanion.nvim is a Neovim plugin that connects the editor to large language models and coding agents. Neovim users employ it for chat, inline code changes, refactoring, reviews, workflows, and integrations through protocols such as ACP and MCP. Catalogue add-ons provide instructions for using the plugin.

olimorris/codecompanion.nvim · 6,897 stars · on GitHub · codecompanion.olimorris.dev

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add olimorris/codecompanion.nvim --skill writing-docs
Clone the repo
git clone --depth 1 https://github.com/olimorris/codecompanion.nvim

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for writing-docs

README.md
[![agentmods](https://agentmods.dev/badge/skills/olimorris/codecompanion.nvim/writing-docs/github.svg)](https://agentmods.dev/skills/olimorris/codecompanion.nvim/writing-docs)
Your own site
<a href="https://agentmods.dev/skills/olimorris/codecompanion.nvim/writing-docs"><img src="https://agentmods.dev/badge/skills/olimorris/codecompanion.nvim/writing-docs/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for writing-docs

Your own site · 80×15
<a href="https://agentmods.dev/skills/olimorris/codecompanion.nvim/writing-docs"><img src="https://agentmods.dev/badge/skills/olimorris/codecompanion.nvim/writing-docs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 23 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,109 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00023 $0.02109
Opus 5.5 $0.00009 $0.00844
Sonnet 5.5 $0.00005 $0.00422
Haiku 4.5 $0.00002 $0.00211

Measured today against content hash 416a8826f002, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

writing-docs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.codecompanion/skills/writing-docs/SKILL.md · 147 lines

How it starts

The opening of the file, as written. The whole thing — 147 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Writing Docs

Write CodeCompanion.nvim's docs following the Microsoft Writing Style Guide with the overrides below. Run make docs after changing any page to regenerate the vimdoc.

Voice and Tone

  • Write like you speak: friendly, direct and human, aimed at Neovim users. Avoid jargon where a familiar word works.
  • Lead with what matters most. Front-load keywords so readers can scan.
  • Say what happens, including the edge cases: "Optional arguments can be left blank, and cancelling at any point adds nothing".
  • Be brief. Cut filler words, unnecessary adverbs and phrases like "you can", "there is" and "there are" where they add nothing. Prefer one-word verbs ("try", not "attempt to").
  • Avoid marketing language and hedging: no "simply", "powerful", "awesome", "seamless" or "journey".
  • Start with the content. Don't open with "This guide is intended to help you..." or close with "This is useful for...".

Page Structure

  • Frontmatter description: one sentence, what the page lets you do.
  • The # title is "Using X" for usage pages, "Configuring X" for configuration pages and "Extending with X" for extending pages. Guides take a task title: "Running Local Models", "Choosing an Adapter".
  • Open with one to three sentences: what the feature is, then how CodeCompanion does it. If the feature solves a problem, name the problem in a sentence first.
  • ## then ### is the ceiling. For a sub-point under ###, use a bold line (**Images**) instead of a deeper heading.
  • Section names are short nouns or gerunds: "Directories", "Groups", "Autoload", "Editing and Deleting".
  • End with a "Limitations" section when there are any, stated honestly.

Code First

The rhythm is a one-line lead-in ending in a colon, then the code block:

Skills are enabled by default. To disable them:

```lua
require("codecompanion").setup({
  skills = {
    opts = {
      chat = {
        enabled = false,
      },
    },
  },
})
```
  • Lead-ins: "This can be configured with:", "You can override this with:", "To set an adapter:".
  • Always wrap config examples in the full require("codecompanion").setup({ ... }) nesting, so they can be pasted as-is.
  • Use realistic values, not foo or bar.
  • Inline comments list the allowed values or the unit, nothing more: -- Can be "default", "telescope", "fzf_lua", "mini_pick" or "snacks", -- milliseconds.
  • Use ::: code-group for alternatives (Static and Conditional, Markdown and Lua) rather than two blocks with prose between them.
  • Ex commands go in a bare fenced block with no language.
  • Let the snippet speak for itself. Only add a sentence after it for behaviour the code can't show: "A directory further down the list takes precedence if skills of the same name clash".

Read the full file on GitHub · 147 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 147 lines · 23 tokens per session scan A 416a8826f002

Subscribe to this mod's changes

writing-docs is a skill published in the GitHub repository olimorris/codecompanion.nvim (6,897 stars, last pushed today), licensed Apache-2.0. It adds 23 tokens to every session and 2,109 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-17.

Related

Other skills, from other repositories

lynkr

Universal LLM gateway with intelligent routing, Graphify code intelligence, Distill compression, routing telemetry, Code Mode, and 12+ provider support. 60-80% cost reduction for Claude Code, Cursor, and Codex.

Fast-Editor/Lynkr · 50 tokens

session-rag-eval

Run and debug Chatbox session attachment RAG model evaluation with synthetic and real long-file fixtures.

chatboxai/chatbox · 25 tokens

storyboard-core

Use NodeTool storyboard, entity-casting, rendering, and timeline-assembly tools for video production or debugging their contracts.

nodetool-ai/nodetool · 28 tokens

timeline-edit-ops

Reference for editing a NodeTool timeline that already exists with edittimeline ops — animateclip roles and presets, the easing grammar, per-word/character stagger, setclipparams limits, document-only fields (styleTracks, textAnimator, animationLinks, layout, camera2d, motionBlur, repeater), groups, transitions, masks…

nodetool-ai/nodetool · 163 tokens

native-game-reference

Field reference for native game documents: scripts, lifecycle hooks, events, tags and props, 2D visuals, particles, lighting, effects, 3D rendering, physics layers, audio mix, animation graphs, input bindings, HUD widgets, performance and editor panels. Load after native-game when an edit needs one of these fields.

nodetool-ai/nodetool · 71 tokens

sandbox-timeline

Author a motion-graphics timeline as code — scenes, layout containers, motion primitives and transitions, saved in one call.

nodetool-ai/nodetool · 27 tokens