$npx -y skills add yha9806/academic-writing-toolkit --skill progressShow reading and writing progress dashboard — how many sources read, chapters completed, word counts, and coverage gaps.
| 1 | # /progress — Progress Dashboard Skill |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | Display a comprehensive dashboard of reading and writing progress: source counts by status, chapter word counts versus targets, and coverage gaps. Use to get a quick overview of the thesis project state. |
| 6 | |
| 7 | ## Trigger Words |
| 8 | |
| 9 | This skill activates on: `progress`, `dashboard`, `status`, `how far`, `/progress`. |
| 10 | |
| 11 | ## Workflow |
| 12 | |
| 13 | 1. **Count reading notes by status.** Scan all `*_NOTES.md` files in `literature/reading_notes/` using Glob. For each file, extract the `Status` field and tally counts for `reading`, `completed`, and `integrated`. |
| 14 | |
| 15 | 2. **Count chapter word counts.** For each file in `chapters/`, count words (split on whitespace, exclude Markdown syntax markers like `#`, `|`, `---`). Compare against target word counts if a configuration file or chapter metadata specifies them. If no target is specified, use 5,000 words per chapter as the default. |
| 16 | |
| 17 | 3. **Calculate coverage per chapter.** Use the same logic as `/map` -- count how many sources are mapped to each chapter via the `Relevance` and `Thesis Connections` fields in notes files. |
| 18 | |
| 19 | 4. **Output the dashboard.** |
| 20 | |
| 21 | ## Output Format |
| 22 | |
| 23 | ``` |
| 24 | ## Progress Dashboard -- {YYYY-MM-DD} |
| 25 | |
| 26 | ### Reading: {completed + integrated}/{total} sources completed |
| 27 | |
| 28 | | Status | Count | |
| 29 | |--------|-------| |
| 30 | | Reading | {N} | |
| 31 | | Completed | {N} | |
| 32 | | Integrated | {N} | |
| 33 | | **Total** | **{N}** | |
| 34 | |
| 35 | ### Writing: {total_words}/{target_words} words ({pct}%) |
| 36 | |
| 37 | | Chapter | Title | Words | Target | % | Status | |
| 38 | |---------|-------|-------|--------|---|--------| |
| 39 | | Ch1 | {title} | {N} | {N} | {N}% | Draft / Complete / Over target | |
| 40 | | Ch2 | {title} | {N} | {N} | {N}% | Draft / Complete / Over target | |
| 41 | | ... | | | | | | |
| 42 | | **Total** | | **{N}** | **{N}** | **{N}%** | | |
| 43 | |
| 44 | ### Coverage Gaps |
| 45 | |
| 46 | | Chapter | Mapped Sources | Minimum | Status | |
| 47 | |---------|---------------|---------|--------| |
| 48 | | Ch1 | {N} | 3 | OK / Under-covered | |
| 49 | |
| 50 | ### Alerts |
| 51 | |
| 52 | - {Any chapters over 150% of target word count} |
| 53 | - {Any chapters with 0 mapped sources} |
| 54 | - {Any notes files stuck in "reading" status for more than indicated period} |
| 55 | ``` |
| 56 | |
| 57 | ## Chapter Status Logic |
| 58 | |
| 59 | - **Draft**: word count is below 50% of target. |
| 60 | - **In progress**: word count is between 50% and 100% of target. |
| 61 | - **Complete**: word count is between 100% and 150% of target. |
| 62 | - **Over target**: word count exceeds 150% of target. |
| 63 | |
| 64 | ## Constraints |
| 65 | |
| 66 | 1. **Read-only.** This skill never modifies any files. |
| 67 | 2. **No emoji** in output. |
| 68 | 3. **No hardcoded chapter list.** Detect chapters dynamically from the `chapters/` directory. |
| 69 | 4. **Word counting** should exclude front matter (YAML blocks), Markdown table delimiters (`|---|`), and horizontal rules (`---`). |
| 70 | 5. **If no notes files exist**, display the reading section with all zeros and a note that no reading notes have been created yet. |