docs-index-keeper · git:20260903.188b1ce · 2026-09-03 · sha256 2247263835dc4f61

docs-index-keeper git:20260903.188b1ceA

Immutable. This exact content never changes and is served at /api/v1/blob/2247263835dc4f61.

---
name: docs-index-keeper
description: >
  Keep a repository's Markdown docs index in sync with the files that actually exist, by installing
  and running docs-index-keeper in a pre-commit hook, in CI, or as a one-off sweep. Use when the
  user says "the docs index is stale", "update the docs index", "add a docs index check to CI",
  "our doc links are out of date", or when new docs were added without being linked anywhere.
license: MIT
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires shell access and Node.js 18+ when installing from npm.
metadata:
  targets: [_source-only]
  author: Oleg Koval
  package: docs-index-keeper
  tags:
    - docs
    - markdown
    - documentation
    - pre-commit
    - ci
    - index
---
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->

# docs-index-keeper

Use this skill when a repository keeps docs under `docs/` and needs a Markdown index table updated automatically as docs are added or changed.

## Trigger phrases

- keep a docs index up to date
- auto-update `docs/README.md`
- add a pre-commit hook for docs indexing
- enforce docs index freshness in CI
- add a specific `docs/*.md` file into a Markdown index table

## Workflow

1. Confirm the repo has a docs directory and an index table such as `| Doc | Purpose |`.
2. Install the package if it is not already present:

```bash
npm install -D docs-index-keeper
```

3. Initialize the hook:

```bash
npx docs-index-keeper init
```

4. For CI enforcement, run:

```bash
npx docs-index-keeper check
```

5. For one-off staged maintenance, run:

```bash
npx docs-index-keeper update
```

## Notes

- `update` operates on staged Markdown files.
- `check` exits non-zero when the index is missing entries for staged docs.
- Purpose text comes from the first Markdown heading when available.
- New rows are inserted before an archive sentinel row when present.