markdown
Author or restructure a Markdown document to the house standard, and regenerate its Table of Contents and section numbers with the bundled scripts.
Skill by tforster
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/tforster-markdown
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: documents
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
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/markdown
What's inside
- Skill name
markdown- Description
- Author or restructure a Markdown document to the house standard, and regenerate its Table of Contents and section numbers with the bundled scripts. Use when creating a new .md file, adding or reordering sections in an existing one, or when a document's ToC or section numbers have gone stale. Do not hand-calculate section numbers or anchor slugs — run the scripts.
- License
- MIT
- Metadata
- author: tforster · version: 1.0
- Instructions
- 166 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (4)
- SKILL.md
- number-sections.js · scripts/
- parse-headings.js · scripts/
- update-toc.js · scripts/
SKILL.md (first lines)
# Markdown Authoring Skill <!-- omit in toc -->
The standing constraints live in `rules/markdown.md` and always apply. This skill covers the mechanics: document structure, the regeneration scripts, and the reference tables.
## Table of Contents <!-- omit in toc -->
- [1. Regenerating the ToC and Section Numbers](#1-regenerating-the-toc-and-section-numbers)
- [2. Document Skeleton](#2-document-skeleton)
- [3. Code Fence Languages](#3-code-fence-languages)
- [4. Callouts and Tables](#4-callouts-and-tables)
- [5. Anti-Duplication](#5-anti-duplication)
- [6. Verify](#6-verify)
## 1. Regenerating the ToC and Section Numbers
**Never work these out by hand.** Renumbering sections and recomputing anchor slugs is deterministic, and doing it in your head is slow and error-prone. Two scripts do it:
```bash
node ${CLAUDE_SKILL_DIR}/scripts/number-sections.js docs/how-to/deploy.md
node ${CLAUDE_SKILL_DIR}/scripts/update-toc.js docs/how-to/deploy.md
```
> [!IMPORTANT]
>
> Order matters. `number-sections.js` runs first, because anchor slugs include the section number — `## 2. Code Blocks` anchors to `#2-code-blocks`. Running the ToC update first produces links that break the moment sections are renumbered.
> [!WARNING]
>
> Each script prints exactly one line per file — `numbered`/`updated`, `unchanged`, or `skipped`. **Silence means the script did not run.** Never report a document as clean on the basis of no output; check that you got a line per file first.
Both accept multiple files, are idempotent, and print `unchanged` when there is nothing to do, so re-running after every edit is free:
```bash
S=${CLAUDE_SKILL_DIR}/scripts
node $S/number-sections.js docs/**/*.md && node $S/update-toc.js docs/**/*.md
```
What they do:
| Script | Behaviour |
| :--- | :--- |
| `number-sections.js` | Numbers `##` as `1.`, `2.`, … and `###`+ as `1.1.`, `1.1.1.` — a trailing dot at every depth, matching the Markdown All in One extension. Strips existing numbers first, so it never double-prefixes. |
| `update-toc.js` | Rebuilds the bullet list under the `## Table of Contents` heading, indented two spaces per level, with GitHub-compatible anchors. |
Both skip headings inside fenced code blocks, and both skip any heading carrying `<!-- omit in toc -->` — which is how the title and the ToC heading stay unnumbered and unlisted. `update-toc.js` replaces only the list itself, so an intro paragraph or callout sitting between the ToC and the first section survives.
`update-toc.js` exits non-zero and reports `skipped` if the document has no `## Table of Contents <!-- omit in toc -->` heading. Add the heading, then re-run — short documents without a ToC simply do not need this script.
## 2. Document Skeleton
Start every document from this shape:
```markdown
# Document Title <!-- omit in toc -->
One or two sentences on what this document is for.
## Table of Contents <!-- omit in toc -->
- [1. First Section](#1-first-section)
## 1. First Section
Content.
### 1.1. A Subsection
More content.
[← Back to Documentation Home](../README.md)
```
Write the headings and content first, leave the ToC list empty, then run the two scripts to fill it in.
Both the title and the `## Table of Contents` heading carry `<!-- omit in toc -->`: the title because it is the document, not a section of it; the ToC because it is navigation, not content.
For documents under `docs/`, the Diátaxis category also determines the template and folder — see the `diataxis-documentation` skill.
## 3. Code Fence Languages
Every fence takes a language identifier. When in doubt use `text` rather than leaving it bare.
| Content | Identifier |
| :--- | :--- |
| JavaScript | `javascript` or `js` |
| TypeScript | `typescript` or `ts` |
| PHP | `php` |
| SQL | `sql` |
| Shell/Bash | `bash` or `shell` |
| YAML | `yaml` or `yml` |
| JSON | `json` |
| HTML | `html` |
| CSS | `css` |
| Markdown content | `markdown` or `md` |
| Plain text, prompts, pseudo-code | `text` |
## 4. Callouts and Tables
Use GitHub Flavoured callouts for anything that interrupts the reader. Put an empty `>` line between the marker and the text:
```markdown
> [!NOTE]
>
> Useful information.
> [!TIP]
>
> Helpful suggestion.
> [!WARNING]
>
> Something that could go wrong.
> [!IMPORTANT]
>
> Critical information.
```
The empty line makes the marker and the text separate paragraphs. Without it they are one paragraph joined by a soft line break, and a formatter set to unwrap prose (oxfmt or Prettier with `proseWrap: "never"`) folds them into `> [!NOTE] Useful information.`, which GitHub no longer renders as a callout. GitHub renders both forms the same.From tforster/agents0, MIT.
More from tforster/agents0
- 0.570score
jira
tforster
Create, read, update and query Jira issues via the Atlassian Cloud REST API v3.
SkillAFreshness: AClaude Code +9 - 0.570score
timetracker
tforster
Build paste-ready time-tracker entries -- date, ticket and title, up to 5 bullets of work done -- from the user's Jira and Paca activity, GitHub activity and…
SkillAFreshness: AClaude Code +9 - 0.570score
business-rule-extraction
tforster
Reverse-engineers business rules out of a legacy monolith codebase (PHP, SQL, JS, PHTML, MD, INI, or any other source type present, not a fixed list) into a…
SkillAFreshness: AClaude Code +9 - 0.565score
arc42-architecture
tforster
Produce an Arc42 architecture document for a software system.
SkillAFreshness: AClaude Code +9 - 0.565score
diataxis-documentation
tforster
Write a new Diátaxis-compliant documentation file from scratch.
SkillAFreshness: AClaude Code +9 - 0.565score
tracker
tforster
Work stories in the project's issue tracker through one five-operation contract (next, get, comment, transition, create).
SkillAFreshness: AClaude Code +9 - 0.565score
cloudformation
tforster
Author, validate, and deploy AWS CloudFormation templates using this repo's IaC conventions — ProjectPrefix/Environment parameters, the cloudformation/ folder…
SkillAFreshness: AClaude Code +9 - 0.565score
github
tforster
Read and write GitHub issues, pull requests, workflows, runs, releases, and labels using the GitHub CLI (gh).
SkillAFreshness: AClaude Code +9 - 0.565score
subgroup
Vic Peters
Work a seed of live content by joining both sides of its split fully and in alternation until integration emerges and novelty exhausts — functional…
SkillAFreshness: AClaude Code +9 - 0.560score
software-erasure
tforster
Apply the erasure operation to software artifacts: architecture documents, ADRs, interface contracts, API specs, PR descriptions, system designs, code…
SkillAFreshness: AClaude Code +9 - 0.559score
shell
tforster
House rules for shell scripts and shell configuration.
SkillAFreshness: AClaude Code +9 - 0.559score
web-ui
tforster
House rules for HTML, CSS and Handlebars templates.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/tforster/agents0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tforster
- 0.570score
timetracker
tforster
Build paste-ready time-tracker entries -- date, ticket and title, up to 5 bullets of work done -- from the user's Jira and Paca activity, GitHub activity and…
SkillAFreshness: AClaude Code +9 - 0.570score
business-rule-extraction
tforster
Reverse-engineers business rules out of a legacy monolith codebase (PHP, SQL, JS, PHTML, MD, INI, or any other source type present, not a fixed list) into a…
SkillAFreshness: AClaude Code +9 - 0.570score
jira
tforster
Create, read, update and query Jira issues via the Atlassian Cloud REST API v3.
SkillAFreshness: AClaude Code +9 - 0.565score
diataxis-documentation
tforster
Write a new Diátaxis-compliant documentation file from scratch.
SkillAFreshness: AClaude Code +9 - 0.565score
tracker
tforster
Work stories in the project's issue tracker through one five-operation contract (next, get, comment, transition, create).
SkillAFreshness: AClaude Code +9 - 0.565score
arc42-architecture
tforster
Produce an Arc42 architecture document for a software system.
SkillAFreshness: AClaude Code +9
Cite this page
markdown skill. Agent Mart. https://agentmart.dev/skills/tforster-markdown (last updated 2026-10-24)