/map — Literature-Thesis Mapping Skill

SkillDev tools

Show or update the mapping between literature and thesis chapters — which sources support which arguments. Use for tracking coverage.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the /map — Literature-Thesis Mapping Skill skill

What this skill tells your AI

The instructions your AI receives, as published by yha9806/academic-writing-toolkit in .claude/skills/map/SKILL.md and read by ahel’s review.

Purpose

Build and display a mapping matrix showing which literature sources support which thesis chapters. Identify coverage gaps where chapters lack sufficient source support.

Trigger Words

This skill activates on: map, show mapping, coverage, which sources, /map.

Workflow

  1. Scan all notes files in literature/reading_notes/ using Glob (*_NOTES.md). For each file, extract:

    • Author and title (from the # Reading Notes: heading)
    • Status field value
    • Relevance field value
    • All rows from the ## Thesis Connections table
  2. Scan chapter files in chapters/ to get the list of chapters and their section headings.

  3. Build the mapping matrix. Rows are sources (sorted alphabetically by author), columns are chapters (Ch1 through Ch8 or however many exist).

    • Mark each cell with the connection type if a mapping exists (e.g., supports, challenges, extends).
    • Leave cells empty if no connection.
  4. Identify coverage gaps. Flag any chapter that has fewer than 3 mapped sources as "under-covered".

  5. Add the progress dashboard. Count chapter words deterministically with node .claude/skills/map/scripts/count-words.mjs --base-dir . --json (never estimate word counts by reading), compare against the per-chapter targets in CLAUDE.md, and count notes files by Status value (reading / completed / integrated).

  6. Output the mapping and dashboard.

Output Format

## Literature-Thesis Mapping -- {YYYY-MM-DD}

### Matrix

| Source | Status | Ch1 | Ch2 | Ch3 | Ch4 | Ch5 | Ch6 | Ch7 | Ch8 |
|--------|--------|-----|-----|-----|-----|-----|-----|-----|-----|
| Smith (2024) | integrated | | supports | supports | | | | | |
| Jones (2021) | integrated | extends | supports | supports | extends | | | | |
| Lee (2019) | completed | | | supports | | | challenges | | challenges |

### Coverage Summary

| Chapter | Mapped Sources | Status |
|---------|---------------|--------|
| Ch1 | {N} | OK / Under-covered |
| Ch2 | {N} | OK / Under-covered |

### Under-covered Chapters

{List chapters with < 3 sources, with suggestions for which completed-but-not-yet-mapped notes might fill the gap.}

Saving the Matrix

If the user says "save" or "export mapping", write the matrix to literature/mapping_matrix.md using Edit (if the file exists) or Write (if creating new). Include a timestamp header.

Gap Threshold

  • Under-covered: fewer than 3 mapped sources per chapter.
  • This threshold can be adjusted if the user specifies a different minimum.

Constraints

  1. Read-only by default. Only modify files if the user explicitly asks to save the matrix.
  2. No emoji in output.
  3. No hardcoded chapter count. Detect chapters dynamically from the chapters/ directory.
  4. Source names use the format {Author} ({Year}) for readability.
  5. Connection types are derived from the Connection Type column in notes files. If a notes file lacks the table or fails the contract lint (npm --prefix guards run lint:notes -- {file} when guards/ is present), list it under "Unparseable notes files" instead of inferring cells — a broken file must surface as an error, never as a guessed mapping.
  6. Word counts come from the bundled counter, never from model estimation. It counts whitespace-delimited words, including Markdown tokens, as the former wc -w instruction did; continuous Chinese text is not counted character by character.

Signals

GitHub stars
38
Forks
7
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
map-yha9806
Source
github.com/yha9806/academic-writing-toolkit