Claude Cursor Skill

map

Show literature-to-chapter coverage and the writing progress dashboard — which sources support which chapters, and word counts against targets.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download yha9806-academic-writing-toolkit-.claude_skills_map-184e482.zip · 2 KB
Part of yha9806/academic-writing-toolkit — 21 skills

Install

skills CLI npx skills add https://github.com/yha9806/academic-writing-toolkit/tree/main/.claude/skills/map
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install yha9806-academic-writing-toolkit@llmmart
Git git clone https://github.com/yha9806/academic-writing-toolkit.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole yha9806/academic-writing-toolkit collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

/map — Literature-Thesis Mapping Skill

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 (notes-lint.mjs, the command /note names in its step 7), 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.
Files (academic-writing-toolkit)
  • scripts
    • count-words.mjs 2 KB · in bundle
  • SKILL.md 3.7 KB
    ---
    name: map
    description: Show literature-to-chapter coverage and the writing progress dashboard — which sources support which chapters, and word counts against targets.
    allowed-tools: Read, Glob, Grep, Edit, Write, Bash(node *)
    ---
    
    # /map — Literature-Thesis Mapping Skill
    
    ## 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 (`notes-lint.mjs`, the command `/note` names in its step 7), 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.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related