Digest Index Skill
Trigger this skill when the user asks to update the digest index, generate the digest index, regenerate digests/README.md, or otherwise refresh the index/table of contents of the digests/ directory.
What this skill does
Scans every digest file in digests/ and regenerates digests/README.md as a single Markdown table, sorted newest-first, that serves as an index of every digest ever produced. Each row lists the digest's date (or date range), its type, which sources had activity, and a brief note on the notable cross-notebook themes.
This index is always regenerated from scratch. Never append to or edit the existing digests/README.md incrementally — read the current digest files, rebuild the whole table, and overwrite the file completely. This keeps the index correct even when digests are deleted, renamed, or edited.
Steps
-
List the digest files. From the repository root, list the Markdown digests to index:
git ls-files --cached --others --exclude-standard 'digests/*.md'This lists tracked files plus untracked-but-not-ignored files, and automatically excludes anything gitignored. Then drop two entries from the result:
digests/README.md(the index itself — never index the index)digests/.digest-state.jsonis not a.mdfile so it won't appear, but never include it regardless.
If the glob returns nothing, still generate a
README.mdwith the header and an empty-state note ("No digests yet.") instead of a table. -
Parse each remaining file. Read each file and extract four things:
-
Date / date range — read it from the H1 title line, which looks like
# <Something> — <start> to <end>and may carry a(N days)suffix (e.g.# Full Lab Digest — 2026-07-27 to 2026-07-30 (4 days)). Record the range as<start> to <end>. If the title has a single "Week of" date or a lone date, record that. If no parseable date appears in the title, fall back to theYYYY-MM-DDdate embedded in the filename. -
Type — infer from the filename:
- starts with
full-lab-digest-→ full-lab-digest - starts with
weekly-lab-digest-→ weekly-lab-digest - starts with
tumbling-oysters-→ tumbling-oysters (single source) - starts with
ariana-→ ariana-notebook (single source) - starts with
sams-→ sams-notebook (single source) - starts with
grace-→ grace-notebook (single source) - starts with
wordpress-→ wordpress (single source) - a bare
YYYY-MM-DD.mdwith no prefix → weekly-lab-digest (these are the WordPress-only weekly digests) - anything else → derive a sensible type from the filename prefix and note it.
- starts with
-
Sources with activity — which notebooks actually had new posts in this digest:
- Full digests are organized into
## <Source>sections. A source "had activity" if its section contains real post content; it did not if the section body is only a placeholder such as_No new posts…_or_No posts…_. When tallying sources, ignore the non-source sections## Cross-Notebook Patterns & Connectionsand## Literature Connections. - Single-source digests cover exactly one source; mark it active if the file contains any posts.
- Report sources using these short labels:
Tumbling Oysters,Ariana Huffmyer,Sam White,Grace Crandall,WordPress. Join multiple with commas. If none had activity, writenone.
- Full digests are organized into
-
Notable themes — if the file contains a
## Cross-Notebook Patternssection (heading may read## Cross-Notebook Patterns & Connections), read the bolded theme leads under it (the- **…**items, typically under### Shared Themes) and write a brief one-line note (roughly ≤ 20 words) capturing the standout connection(s). If there is no such section, write—.
-
-
Sort newest-first. Order rows by the end date of the range descending (for single-date entries use that date). Break ties by the date embedded in the filename, then filename, descending, so same-day digests stay grouped.
-
Write
digests/README.md, overwriting it entirely, with this structure:# Digest Index > Auto-generated by the `digest-index` skill. Regenerated from scratch — do not edit by hand. | Date | Type | Sources with activity | Notable themes | |------|------|-----------------------|----------------| | 2026-07-28 to 2026-08-03 (7 days) | full-lab-digest | Sam White, Grace Crandall, WordPress | Sea-star GO-enrichment pipelines span Grace's and WordPress notebooks | | … | … | … | … |Escape any
|characters that appear inside a cell's text as\|so the table stays valid. Keep the theme note concise — this is an index, not a summary. -
Report to the user how many digests were indexed and confirm
digests/README.mdwas regenerated.
API Documentation Generator
Documentation
Automatically generates OpenAPI/Swagger API documentation.
Technical Writer
Documentation
Writes clear technical documentation following top style guides.
Move documentation files with git history and alias
Documentation
Automates moving documentation files while preserving git history, injecting Hugo aliases, verifying moves, and updating internal links.