
Indexion Readme
- 5k installs
- 1 repo stars
- Updated July 20, 2026
- trkbt10/indexion-skills
indexion-readme is an agent skill that constructs project READMEs from templates, doc comments, doc.json config, and plan drift verification.
About
The indexion-readme skill covers README construction: scaffolding templates, generating per-package READMEs from doc comments, planning writing tasks, assembling a root README from docs/ and package READMEs via doc.json, and verifying edits with plan drift. Start by checking git diff for README.md symlinks, doc.json at the repo root or under .indexion/readme/, and .indexion.toml config. Greenfield projects run indexion doc init to create template.md and doc.json. Configure packages, root sections (static, toc, packages), and static prose in docs/intro.md. indexion doc readme --per-package generates non-overwriting API skeletons from KGF doc comments; hand-write Overview, Usage, Options, and Examples afterward. Assemble with indexion doc readme --config=doc.json or template placeholders. Optional indexion plan readme emits per-section writing tasks. After regeneration or hand edits, indexion plan drift confirms changes are purely additive with cosine similarity checks suitable for CI guards.
- doc init scaffolds .indexion/readme/template.md and doc.json for greenfield README assembly
- doc readme --per-package creates non-overwriting API skeletons from KGF doc comments per package
- doc.json root sections combine static docs/, table of contents, and package tables
- indexion plan drift verifies README edits are purely additive with CI vocab-threshold guards
- Known limitation: packages root section emits a table, not inline Overview or Usage expansion
Indexion Readme by the numbers
- 5,026 all-time installs (skills.sh)
- +6 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #79 of 1,879 Documentation skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
indexion-readme capabilities & compatibility
- Capabilities
- doc init template scaffold · per package readme generation · doc json root assembly · plan drift additive verification · template placeholder expansion
- Use cases
- documentation · project management
- Runs
- Runs locally
- Pricing
- Free
What indexion-readme says it does
Build project READMEs from templates, doc comments, hand-written prose, and per-package READMEs.
Generates `README.md` in each package directory that doesn't already have one. **Non-overwriting**
verify the change is purely additive (no silent deletions, no reflowing of unrelated sections):
npx skills add https://github.com/trkbt10/indexion-skills --skill indexion-readmeAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5k |
|---|---|
| repo stars | ★ 1 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 20, 2026 |
| Repository | trkbt10/indexion-skills ↗ |
How do I scaffold, generate, assemble, and verify a multi-package README without silent deletions or unintended per-package file sprawl?
Scaffold, generate, assemble, and verify project READMEs from doc.json config, templates, and per-package doc comments with indexion.
Who is it for?
Maintainers of multi-package CLI or library repos using indexion doc.json to assemble README.md from docs/ and package READMEs.
Skip if: Skip when evaluating existing documentation quality; use indexion-documentation instead, or when READMEs are fully hand-maintained without assembly.
When should I use this skill?
User initializes doc.json, generates per-package README skeletons, assembles root README, or verifies README edits with plan drift.
What you get
Assembled root README plus per-package READMEs with additive-only edits confirmed by plan drift cosine checks.
- doc.json config
- Per-package README.md files
- Assembled root README.md
By the numbers
- 7-step workflow from doc init through plan drift
- 3 root section types: static, toc, packages
Files
indexion readme — README Construction
Build project READMEs from templates, doc comments, hand-written prose, and per-package READMEs. This skill covers the construction side: scaffolding, generating, planning, assembling, and verifying. For evaluating existing documentation, see indexion-documentation.
Where things live
The conventions vary by project; check what actually exists before editing:
| Asset | Location patterns seen |
|---|---|
| Config | doc.json (repo root) or .indexion/readme/doc.json |
| Per-package template | docs/templates/readme.md (no SoT constant; declared via --template) |
| Static prose | docs/intro.md, docs/installation.md, docs/license.md, … |
| Per-package READMEs | cmd/<name>/README.md, src/<name>/README.md |
| Assembled root README | usually README.md. Some projects use a .mbt.md suffix so the file is also a MoonBit doctest module — when so, README.md is a symlink to README.mbt.md. |
.indexion.toml | [doc] config_path / per_package auto-load doc.json |
The first thing to check is git diff / ls -la for: a symlink on README.md, a doc.json (at root or under .indexion/readme/), and .indexion.toml. The presence of these tells you whether the README is hand-maintained, build-assembled, or a hybrid.
Workflow overview
doc init → .indexion/readme/template.md + doc.json (greenfield)
edit doc.json + docs/*.md → declare sources of truth
doc readme --per-package → cmd/<pkg>/README.md (API skeletons; non-overwriting)
hand-write each per-package README's Overview / Usage / Options / Examples
doc readme --config → assembled root README
plan drift <prev> <new> → verify the assembled output (or hand-edit) is purely additiveStep 1: Initialize (greenfield only)
indexion doc init <project-dir>Creates .indexion/readme/template.md + .indexion/readme/doc.json. Skip this step on a project that already has doc.json or .indexion.toml pointing at one.
Step 2: Configure doc.json
{
"$schema": "./schemas/doc-config.schema.json",
"version": "1.0",
"spec": "moonbit",
"output": { "format": "markdown", "filename": "README.md" },
"packages": [
{
"path": "cmd/<name>",
"title": "<command name>",
"include_in_root": true,
"sections": ["overview", "usage"]
}
// …one entry per package that should appear in the assembled root README
],
"root": {
"output": "README.md",
"sections": [
{ "type": "static", "file": "docs/intro.md" },
{ "type": "toc", "title": "Commands" },
{ "type": "packages", "filter": "cmd/**" },
{ "type": "static", "file": "docs/installation.md" },
{ "type": "static", "file": "docs/license.md" }
]
}
}Root section types:
static— include a markdown file verbatimtoc— insert a table-of-contents headingpackages— pull in entries from thepackagesarray, filtered by glob
Package fields:
include_in_root— whether to include in the assembled root READMEsections— README headings to extract; honored by per-package extraction
flows. Note that { "type": "packages" } in the root currently emits a table of package links, not the rich Overview/Usage expansion implied by per-package sections. See "Known limitation" below.
Step 3: Generate per-package READMEs
indexion doc readme --per-package src/ cmd/Generates README.md in each package directory that doesn't already have one. Non-overwriting — existing per-package READMEs are left alone.
The skeleton is API-only (extracted from /// doc comments via KGF). Treat it as a starting point and hand-write the prose sections (Overview, Usage, Options, Examples) afterwards.
# Single package to stdout
indexion doc readme src/kgf/lexer/
# Single package to a file
indexion doc readme -o=README.md src/kgf/lexer/Note on side effects: doc readme --template=<t> <paths...> (the template-based mode below) walks the given paths and auto-creates per-package READMEs for any package that lacks one — even without --per-package. If you run it on a broad path (cmd/, src/), expect new files in unrelated packages. Run with a narrow path or grep git status afterwards to clean up unintended creations.
Step 4: Write static content
Create docs/intro.md, docs/installation.md, etc. — whatever your root.sections references. These are the hand-written prose; the assembler pulls them in verbatim.
Step 5: Generate writing plans (optional)
indexion plan readme --template=docs/templates/readme.md --plans-dir=.indexion/plans src/Emits per-section writing tasks for manual or LLM-assisted authoring.
Step 6: Assemble the README
# Config-driven (preferred; doc.json controls layout and packages list)
indexion doc readme --config=doc.json
# Template-driven (alternative; {{include:…}} and {{packages}} placeholders)
indexion doc readme --template=docs/templates/readme.md -o=README.md cmd/The config path can live at repo root or under .indexion/readme/. With .indexion.toml's [doc] config_path = "…", the --config= flag becomes optional.
Step 7: Verify with plan drift
After regeneration or any hand-edit of the root README, verify the change is purely additive (no silent deletions, no reflowing of unrelated sections):
# Snapshot the previous version
git show HEAD:README.md > /tmp/README.before.md
# Compare against the new version
indexion plan drift --top=20 /tmp/README.before.md README.mdWhat to look for in the output:
Drift terms in /tmp/README.before.md (missing on the other side): (none)— nothing was removedDrift terms in README.md (missing on the other side): …— exactly the new vocabulary you intended to add (command names, new flags, new concepts)Cosine similaritynear 1.0 for a small additive change; substantially lower if you reshaped a section
For CI integration:
indexion plan drift --vocab-threshold=0.05 /tmp/README.before.md README.md
# exits 1 if cosine_distance > 0.05 — useful as a guard against accidental large rewritesThis same workflow applies to translated README pairs (README.md ↔ README-ja.md): cross-lingual drift detection works natively because vocab sub-tokenization delegates to the natural-language KGFs in kgfs/natural/.
Template syntax
The template file supports {{placeholder}} substitution:
| Placeholder | Expansion |
|---|---|
{{include:path}} | Contents of the file (relative to project root) |
{{packages}} | All discovered packages (filtered by CLI --include / --exclude) |
{{module_doc}} | Module-level documentation only |
.indexion.toml integration
[doc]
config_path = "doc.json" # auto-loads doc.json without --config
per_package = true # makes `doc readme <path>` default to --per-packageExplicit --config=… always takes priority.
Known limitation: packages root section produces a table, not rich expansion
The doc-config.schema.json permits sections: ["overview", "usage", …] on each packageEntry, but the current doc readme --config implementation does not expand those sections inline when emitting { "type": "packages" } in the root. The output is a markdown table of package links with empty descriptions.
Two practical consequences:
1. If the project's checked-in root README has rich per-command Overview / Usage paragraphs, they were not produced by doc readme --config as it stands now. They are hand-maintained. Diff doc readme --config -o=/tmp/regen.md against the checked-in README to see how much of it is hand-curated; very large diffs mean the README is mostly hand-maintained. 2. For new commands, you currently need to also hand-edit the rich section into the assembled README, in addition to adding the package entry to doc.json and writing the per-package README. Use the plan drift verification above to confirm the hand-edit only adds, never removes.
If you fix this limitation (so { "type": "packages" } honors per-entry sections), update this skill to remove this section.
Common pitfalls
"doc readme --per-package generated nothing"
- All packages already have READMEs. The command only creates new files,
never overwrites. Delete existing READMEs first to regenerate.
"doc readme --template … on `cmd/` created READMEs in packages I didn't touch"
- Template mode auto-generates missing per-package READMEs as a side effect.
Either pass a narrow path, or revert unintended creations from git status.
"Auto-generated per-package READMEs are just API listings"
- By design. Hand-write Overview, Usage, Options, Examples. For CLI commands,
the authoritative behavior comes from indexion <command> --help.
"My hand-edit to README.md will be wiped out by `doc readme --config`"
- It will if the assembler ever produces the rich shape (see "Known
limitation"). Until then, the assembler produces a strict subset (the table) and your hand-edits to the rich sections survive. Always run the plan drift cross-check to be sure.
"README.md edit destroyed unrelated sections"
- Run
plan drift HEAD:README.md README.mdand look at the "missing on the
other side" output for the previous version. If it lists anything other than (none), you removed content.
Related skills
How it compares
Use indexion-readme to build and assemble READMEs; switch to indexion-documentation when evaluating or scoring existing docs instead of constructing them.
FAQ
Does doc readme --per-package overwrite existing package READMEs?
No. It only creates README.md in package directories that lack one; existing per-package READMEs are left untouched.
How do I confirm a root README hand-edit did not delete content?
Run indexion plan drift comparing the previous README to the new file; missing drift terms should show (none) on the old side.
What is the known limitation of doc readme --config packages sections?
The packages root section emits a markdown table of package links, not inline Overview or Usage expansion from per-entry sections.
Is Indexion Readme safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.