Digest Index Generator

VerifiedSafe

Scans digest files and regenerates digests/README.md as a newest-first Markdown index table with dates, types, active sources, and themes.

Sby Skills Guide Bot
DocumentationBeginner
9/13/2026
Claude CodeCodexCursor
#markdown-index#table-of-contents#digest#file-scanning#automation

Recommended for

Automated summary

Scans the digest files under `digests/` and fully rebuilds `digests/README.md` as a Markdown table sorted newest-first.

Strengths

  • Regenerates the index from scratch each run, so deleted or renamed digests never leave stale rows behind
  • Uses `git ls-files --cached --others --exclude-standard` so gitignored files are skipped automatically
  • Spells out the extraction rules precisely: date range from the H1 title, type inferred from the filename prefix, and active vs. placeholder-only sources
  • Handles the empty case by still writing a README with a "_No digests yet._" note instead of a malformed table

Limitations

  • Assumes a fixed repo layout and naming convention (the `full-lab-digest-`, `sams-`, `grace-` style prefixes) specific to this project
  • Notable themes are capped at roughly 20 words, so the index is a pointer, not a replacement for reading the digests
  • Only triggers on explicit index-related requests, so vague refresh asks may not match
When to use it

Use it after digests are added, edited, or removed so the folder's table of contents stays accurate.

When not to use it

Don't use it to write a new digest or to hand-patch a single line of the existing README.

Security analysis

Safe
Quality score92/100

The skill only lists tracked/untracked markdown files with git ls-files, reads digest files, and overwrites a single README.md index within the repository. It performs no destructive operations, network calls, secret handling, or execution of downloaded/obfuscated code.

No concerns found

How this analysis is made

Examples

Rebuild the index
Regenerate digests/README.md from the current digest files.
Refresh after deleting a digest
I removed an old digest — update the digest index so it no longer shows up.
Check the table of contents
Generate the digest index table with dates, types, and active sources, sorted newest first.

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

  1. 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.json is not a .md file so it won't appear, but never include it regardless.

    If the glob returns nothing, still generate a README.md with the header and an empty-state note ("No digests yet.") instead of a table.

  2. 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 the YYYY-MM-DD date 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.md with 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.
    • 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 & Connections and ## 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, write none.
    • Notable themes — if the file contains a ## Cross-Notebook Patterns section (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 —.

  3. 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.

  4. 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.

  5. Report to the user how many digests were indexed and confirm digests/README.md was regenerated.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/digest-index-generator-mtz9jqfz/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/digest-index-generator-mtz9jqfz' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/digest-index-generator-mtz9jqfz/download' --output '.skill-downloads/digest-index-generator-mtz9jqfz/SKILL.md.part' && mv '.skill-downloads/digest-index-generator-mtz9jqfz/SKILL.md.part' '.skill-downloads/digest-index-generator-mtz9jqfz/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/digest-index-generator-mtz9jqfz/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills