Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 61 additions & 6 deletions .STATUS
Original file line number Diff line number Diff line change
@@ -1,14 +1,69 @@
status: Active
progress: 100
next: Create release PR (dev → main) for v2.18.0
target: v2.18.0 — Rich Exam LaTeX Format (merged to dev, ready for release)
milestone: v2.18.0 merged to dev 2026-05-12 | 33 commands | 3,400 tests
last_session: 2026-05-12 - PR #103 review + 6 fixes + merge to dev (Session 90)
complexity: Medium
next: v2.18.1 maintenance window — npm audit fix, ESLint cleanup, \printanswers short-answer wrapping
target: v2.18.0 — Rich Exam LaTeX Format (RELEASED 2026-05-13)
milestone: v2.18.0 released 2026-05-13 via PR #104 | 33 commands | 38 tutorials | 3,400 tests | 143 suites
last_session: 2026-05-13 - v2.18.0 release pipeline + site sync + tutorial expansion (Session 91)
complexity: Low
risk_level: Low
dependencies: Claude API, js-yaml, ajv, ajv-keywords, ajv-formats, Quarto, flow-cli, R/Rscript (runtime), examark (Canvas QTI), jstat (F-distribution)
worktree: none

# Future Suggestions (v2.18.1 maintenance window)

**High-confidence quick wins (each ~30 min, all known issues from v2.18.0 release notes):**

1. **`npm audit fix`** — patches 4 transitive-dep vulnerabilities:
- ajv (moderate, ReDoS via `$data`)
- fast-uri (high, path traversal + host confusion)
- fast-xml-parser (high, DoS via entity expansion)
- minimatch (high, ReDoS in glob matching)
2. **ESLint cleanup** — 20 unused-var/unused-arg errors in pre-existing files. Run `npm run lint:fix` then manually rename intentional placeholders to `_options` / `_args`. ESLint is not currently gated in CI — consider adding it.
3. **`\printanswers` short-answer toggle** — wrap `LaTeXFormatter.formatShortAnswer()` output in `\begin{solution}…\end{solution}` so the rich-LaTeX answer-key PDF actually differs from the student PDF for short-answer-only exams. Per-question solution visibility was on the v2.19.0 roadmap but is a clean 1-method fix.

**Medium-effort doc consolidation:**

4. **Single-source `teaching_style.exam` block** — currently documented in both `docs/CONFIGURATION.md` and `docs/tutorials/teaching/configuration.md` (different prose, same source-of-truth). Pick one as canonical and link the other.
5. **Remove `render_macros: false` from FAQ pages** — replace BibTeX `{{…}}` examples with `{% raw %}` blocks so `{{ scholar.command_count }}` macros can render naturally instead of being hard-coded.
6. **README → discovery-engine sync** — README's command list is hand-maintained and drifted (caught in Session 91: 31→33, 15→18). Consider generating that section from `src/discovery/index.js TEACHING_SUBCATEGORY_MAP`.

**Larger v2.19.0 candidates:**

7. **Custom Tutorial Generator** — add `/teaching:tutorial` to round out the teaching namespace (parallel to `/teaching:exam`, `/teaching:slides`)
8. **Hub flag-discovery: filter UX** — `/scholar:hub` could accept a flag-search arg (e.g. `/scholar:hub --has -i` to find all AI-capable commands)
9. **arxiv search dedicated tutorial** — currently covered indirectly by `first-literature-search.md`; could promote to standalone

# Session 91 Summary (2026-05-13)

**Branch:** main @ 3ffe29f (released) · dev @ 2e8fb2a | **Tests:** 3,400 | **Tutorials:** 38

**Completed (v2.18.0 release pipeline + extensive doc expansion):**
- PR #104 created (dev → main, 9 commits, 2,560 doc additions)
- Merged to main via `--admin` (link-checker status-0 flake bypass per CLAUDE.md memory)
- GitHub Release v2.18.0 published with full notes
- Homebrew Release workflow auto-fired
- All 5 main-branch CI workflows triggered; Scholar CI + Docs Deploy green; Doc Validation hit the recurring status-0 link-check flake (non-blocking)

**Doc expansion during the post-merge window:**
- +8 new tutorials in 2 parallel agent batches (research namespace: doi, method-scout, lit-gap, hypothesis, manuscript:results, manuscript:proof, simulation:analysis; teaching: canvas-lms-export)
- +1 BibTeX management tutorial (combined `bib:add` + `bib:search`)
- +1 Tutorials index page (orientation: audience + difficulty groupings)
- +1 Rich Exam LaTeX tutorial (v2.18.0 walkthrough)
- ADHD-friendliness Phase 1 (75→83, Grade C→B): TL;DR boxes on 5 top-level docs, emoji Level markers on 24 tutorials, mobile mermaid-overflow CSS
- Help-doc audit: fixed 3 `/teaching:fix` references (non-existent command), removed 3 literal macro leaks, refreshed dates, added 5 Q&A entries
- hub.md drift fix: `15 → 18` teaching commands + 3 missing entries (preflight, canvas, validate-r)
- Full site sync: OUTPUT-FORMATS-GUIDE, USER-GUIDE, TEACHING-WORKFLOWS, TEACHING-COMMANDS-API/REFERENCE, commands.md, CONFIGURATION (teaching_style.exam block), API-REFERENCE (ExamRichLatexFormatter section), README count drift fixes
- New architecture-diagram section: Rich Exam LaTeX Pipeline (Section 10)
- New API-Reference sections: PromptLoader Version Helpers, ExamRichLatexFormatter

**Coverage delta:**
- Tutorials: 30 → 38 (+8)
- Research-tutorial dedicated coverage: 50% → ~100%
- Teaching-tutorial dedicated coverage: 94% → 100%
- ADHD score: 75 → 83 (Grade C → B)

**Pipeline commits (8 doc-only since feature merge):** 87d8363 a6aa795 0f97f54 a5a18dc fb6ba4f d91ca8e b654f0f 2e8fb2a

# Session 90 Summary (2026-05-12)

**Branch:** dev (PR #103 merged at 686bc93) | **Tests:** 3,400 (3,263 Jest + 137 node:test), 143 suites
Expand Down Expand Up @@ -322,7 +377,7 @@ worktree: none

| Version | Date | Highlights |
|---------|------|-----------|
| v2.18.0 | 2026-05-12 | Rich exam LaTeX format: --format exam-rich-latex, F-critical bracket table (jstat), s-value calibration, interaction-aware language, 3,400 tests |
| v2.18.0 | 2026-05-13 | Rich exam LaTeX format: --format exam-rich-latex, F-critical bracket table (jstat), s-value calibration, interaction-aware language, +8 tutorials (38 total), ADHD 75→83, 3,400 tests |
| v2.17.0 | 2026-03-04 | Canvas enhancements: pre-flight validation, shared canvas-preflight.js helper, exam --format canvas, SCHOLAR_VERSION fix, 3,340 tests |
| v2.16.0 | 2026-02-27 | Canvas QTI pipeline: /teaching:canvas, QMD parser, 10 question types, image bundling, examark integration, 3,302 tests |
| v2.15.0 | 2026-02-23 | Insights-driven enhancements: /teaching:preflight, validate-pipeline, send-output, CI merge-conflict guard, 3,092 tests |
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ A comprehensive Claude Code plugin for academic workflows combining research and

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/version-2.18.0-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v2.18.0)
[![Tests](https://img.shields.io/badge/tests-3400%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)
[![Tests](https://img.shields.io/badge/tests-3,400%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)
[![Scholar CI](https://github.com/Data-Wise/scholar/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Data-Wise/scholar/actions/workflows/ci.yml?query=branch%3Amain)
[![Docs Deploy](https://github.com/Data-Wise/scholar/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/Data-Wise/scholar/actions/workflows/docs.yml?query=branch%3Amain)

---

Expand Down
42 changes: 25 additions & 17 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# Scholar Plugin

> **Academic workflows for research and teaching** - Literature management, manuscript writing, simulation studies, course material generation, and 17 A-grade research skills
>

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/version-{{ scholar.version }}-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v{{ scholar.version }})
[![Tests](https://img.shields.io/badge/tests-{{ scholar.test_count }}%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)
[![Scholar CI](https://github.com/Data-Wise/scholar/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Data-Wise/scholar/actions/workflows/ci.yml?query=branch%3Amain)
[![Docs Deploy](https://github.com/Data-Wise/scholar/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/Data-Wise/scholar/actions/workflows/docs.yml?query=branch%3Amain)

> **📌 TL;DR - 30 Second Version**
>
> **What:** A Claude Code plugin for academic workflows — {{ scholar.command_count }} commands across teaching (exams, slides, syllabi, Canvas QTI) and research (arXiv, BibTeX, DOI, manuscript drafting).
Expand All @@ -16,10 +22,6 @@

A comprehensive Claude Code plugin for academic workflows combining research and teaching. Features unified Plugin + MCP architecture with {{ scholar.command_count }} slash commands and research skills.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/version-{{ scholar.version }}-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v{{ scholar.version }})
[![Tests](https://img.shields.io/badge/tests-{{ scholar.test_count }}%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)

---

> **💡 ⚡ Quick Start - Get Up and Running in 2 Minutes**
Expand Down Expand Up @@ -335,32 +337,38 @@ claude plugin list | grep scholar

**Release Date:** {{ scholar.release_date }}

### Canvas QTI Export (v2.16.0)
### Rich Exam LaTeX Format (v{{ scholar.version }})

- **`/teaching:canvas`:** Convert QMD exam files to Canvas LMS QTI format via examark CLI
- **10 question types:** MC, MA, TF, Short Answer, Numeric, Essay, Matching, FMB, FIB, Upload — auto-detected from QMD content
- **Full pipeline:** QMD parser → type detector → ExamarkFormatter → examark CLI → `.qti.zip`
- **Validation:** `--validate` flag runs examark dry-run, `--emulate` simulates Canvas import behavior
- **Documentation:** API reference, pipeline guide, troubleshooting table, Canvas integration tutorial
- **`--format exam-rich-latex`:** New output format for `/teaching:exam` — produces a Quarto `.qmd` using the LaTeX `exam` document class with evidence-based reporting policy ($s$-values, compatibility intervals), F-critical bracket table, $s$-value calibration table, and interaction-aware language for factorial designs
- **F-critical bracket table:** `jstat`-backed (`^1.9.6`), auto-generated from `exam_metadata.df_pairs` at 2-decimal precision; dedupes, sorts, and validates input
- **$s$-value calibration:** Static Greenland/Rafi table (0–13.3 bits with $p$-value anchors) embedded in the front matter
- **Interaction-aware reframing:** Preserves `$…$` / `\(…\)` math regions byte-for-byte; idempotent; reframes `question.text`, `parts[].prompt`, and rubrics for factorial designs with interaction terms
- **New `PromptLoader.checkMinScholarVersion()`:** Correct semantics for `min_scholar_version` (errors when Scholar < min, otherwise compatible). Distinct from `checkVersion()` which has prompt-version semantics.
- **Tutorials:** 30 → 38 across teaching + research (both namespaces now ~100% covered); new orientation index at [`docs/tutorials/index.md`](tutorials/index.md)
- **ADHD-friendliness:** 75/100 → 83/100 (Grade C → B) via TL;DR boxes, emoji Level markers (🟢/🔵/🔴) on tutorials, mobile mermaid-overflow CSS
- **See:** [Rich Exam LaTeX tutorial](tutorials/teaching/rich-exam-format.md) · [Architecture §10](ARCHITECTURE-DIAGRAMS.md#10-rich-exam-latex-pipeline-v2180) · [What's New v2.18.0](WHATS-NEW-v2.18.0.md)

### Previous Releases

- **v2.15.0** — Insights-driven: `/teaching:preflight` (6 health checks), R validation pipeline (`--validate` flag on 4 commands), email integration (`--send` on 5 commands)
- **v2.17.0** — Canvas enhancements: pre-flight validation, shared `canvas-preflight.js` helper, `/teaching:exam --format canvas`, SCHOLAR_VERSION fix
- **v2.16.0** — Canvas QTI pipeline: `/teaching:canvas`, QMD parser, 10 question types, image bundling, examark integration
- **v2.15.0** — Insights-driven: `/teaching:preflight` (6 health checks), R validation pipeline, email integration
- **v2.14.0** — R code validator: `/teaching:validate-r`, per-chunk reporting, static lint, CI-friendly
- **v2.13.0** — Solution key generator: `/teaching:solution`, QMD parser, `--send` email, md/qmd/json formats
- **v2.12.0** — Hub flag discovery: `[AI]` markers, option counts, full Options display, `extractFlags()` engine
- **v2.11.0** — Custom instructions: `--instructions` / `-i` flag on 8 commands, InstructionMerger engine
- **v2.10.0** — Maintenance sprint: ESLint 10, Jest 30, glob 13, security fixes, Node >=20.19
- **v2.12.0** — Hub flag discovery: `[AI]` markers, option counts, full Options display
- **v2.11.0** — Custom instructions: `--instructions` / `-i` flag on 8 commands
- **v2.10.0** — Maintenance sprint: ESLint 10, Jest 30, glob 13, Node >=20.19

### 📊 Stats

| Metric | v2.3.0 | v{{ scholar.version }} | Change |
| ------------------- | ------ | ------ | -------------- |
| Commands | 22 | {{ scholar.command_count }} | +11 |
| Tests | 1,391 | {{ scholar.test_count }} | +1,911 (+137%) |
| Tutorials | 7 | 38 | +31 (~5x) |
| Tests | 1,391 | {{ scholar.test_count }} | +2,009 (+144%) |
| Documentation Pages | 45 | 230+ | +185 |

**See release notes:** [v2.16.0](WHATS-NEW-v2.16.0.md) | [v2.15.0](WHATS-NEW-v2.15.0.md) | [v2.14.0](WHATS-NEW-v2.14.0.md) | [v2.13.0](WHATS-NEW-v2.13.0.md) | [v2.12.0](WHATS-NEW-v2.12.0.md) | [v2.11.0](WHATS-NEW-v2.11.0.md) | [v2.9.0](WHATS-NEW-v2.9.0.md) | [v2.8.0](WHATS-NEW-v2.8.0.md) | [v2.7.0](WHATS-NEW-v2.7.0.md) | [v2.6.0](WHATS-NEW-v2.6.0.md) | [v2.5.0](WHATS-NEW-v2.5.0.md) | [v2.4.0](WHATS-NEW-v2.4.0.md)
**See release notes:** [v2.18.0](WHATS-NEW-v2.18.0.md) | [v2.17.0](WHATS-NEW-v2.17.0.md) | [v2.16.0](WHATS-NEW-v2.16.0.md) | [v2.15.0](WHATS-NEW-v2.15.0.md) | [v2.14.0](WHATS-NEW-v2.14.0.md) | [v2.13.0](WHATS-NEW-v2.13.0.md) | [v2.12.0](WHATS-NEW-v2.12.0.md) | [v2.11.0](WHATS-NEW-v2.11.0.md) | [v2.9.0](WHATS-NEW-v2.9.0.md) | [v2.8.0](WHATS-NEW-v2.8.0.md) | [v2.7.0](WHATS-NEW-v2.7.0.md) | [v2.6.0](WHATS-NEW-v2.6.0.md) | [v2.5.0](WHATS-NEW-v2.5.0.md) | [v2.4.0](WHATS-NEW-v2.4.0.md)

---

Expand Down
5 changes: 3 additions & 2 deletions scripts/version-sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,12 @@ function syncReadme(filePath) {
label: 'Badge release URL',
});

// Badge: tests-NNNN%20passing
// Badge: tests-NNNN%20passing — use comma-formatted count to match prose readability
// and stay in sync with mkdocs.yml extra.scholar.test_count (which uses commas).
if (testCount !== undefined) {
patterns.push({
regex: /(tests-)\d[\d,]*(%20passing)/,
replacement: `$1${testCount}$2`,
replacement: `$1${formatCount(testCount)}$2`,
label: 'Badge test count',
});
}
Expand Down
Loading