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
49 changes: 43 additions & 6 deletions .STATUS
Original file line number Diff line number Diff line change
@@ -1,14 +1,50 @@
status: Active
progress: 100
next: Start v2.18.0 planning — post-release maintenance or next feature
target: v2.17.0 — Canvas Enhancements & Bug Fixes (released)
milestone: v2.17.0 released 2026-03-04 | 33 commands | 3,340 tests
last_session: 2026-03-04 - v2.17.0 release (Session 88)
complexity: Low
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
risk_level: Low
dependencies: Claude API, js-yaml, ajv, ajv-keywords, ajv-formats, Quarto, flow-cli, R/Rscript (runtime), examark (Canvas QTI)
dependencies: Claude API, js-yaml, ajv, ajv-keywords, ajv-formats, Quarto, flow-cli, R/Rscript (runtime), examark (Canvas QTI), jstat (F-distribution)
worktree: none

# Session 90 Summary (2026-05-12)

**Branch:** dev (PR #103 merged at 686bc93) | **Tests:** 3,400 (3,263 Jest + 137 node:test), 143 suites

**Completed (PR #103 code review + fixes + merge):**
- Code review of PR #103 (rich exam LaTeX, +2322/-44, 5 milestones) — identified 6 issues
- Fix 1: Replaced stateful /g-regex .test() with startsWith() in interaction-aware-pass.js
- Fix 2: Added input validation to bracket-table-generator.js (throws on invalid df pairs)
- Fix 3: Extended interaction-aware reframe to include question.rubric (essay/short-answer)
- Fix 4: YAML title escaping via JSON.stringify() instead of shallow quote-only replace
- Fix 5: Added PromptLoader.checkMinScholarVersion() with correct min-version semantics;
bridge now uses it instead of checkVersion() (which has prompt_version semantics).
Fixes pre-existing stat-545-prompt-discovery integration test failure.
- Fix 6: REFCARD ASCII version v2.16.0 → v2.18.0; mkdocs.yml counts refreshed to 3,400/143
- Added 11 new tests (6 checkMinScholarVersion + 2 rubric/YAML + 1 bracket validation + 2 misc)
- All 3,400 tests pass (3,263 Jest + 137 node:test, 8 skipped, 0 failures)
- Squash-merged to dev (commit 686bc93); remote branch deletion required manual cleanup

# Session 89 Summary (2026-05-12)

**Branch:** feature/exam-rich-latex | **Tests:** 3,360 (3,223 Jest + 137 node:test), 141 suites

**Completed (v2.18.0 Wave 5 — pre-PR release prep):**
- Bumped version 2.17.0 → 2.18.0 in package.json + .claude-plugin/plugin.json
- Updated mkdocs.yml extra.scholar block (version, prev_version, release_date 2026-05-12, test_count 3,360, jest_count 3,223, suite_count 141)
- Ran version-sync.js: 16 changes / 6 skips / 0 errors across docs and SCHOLAR_VERSION constant
- CHANGELOG.md: added [2.18.0] — 2026-05-12 section + link reference at bottom
- Created docs/WHATS-NEW-v2.18.0.md
- Added v2.18.0 entry to mkdocs.yml Release Notes nav
- Final test sweep confirmed counts (1 pre-existing unrelated failure in stat-545-prompt-discovery)

**v2.18.0 highlights (Waves 1-4, already committed):**
- New `--format exam-rich-latex` for /teaching:exam (LaTeX exam class, evidence-based policy)
- F-critical bracket table (jstat), s-value calibration table, interaction-aware language pass
- New exam template options: policy, aids_level, textbook_citation_prefix, interaction_aware_language

# Session 87 Summary (2026-03-04)

**Commits:** 6 on feature/canvas-enhancements | **PRs:** none yet | **Worktree:** created + ORCHESTRATE committed
Expand Down Expand Up @@ -286,6 +322,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.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
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "scholar",
"version": "2.17.0",
"version": "2.18.0",
"description": "Academic workflows for research and teaching - literature management, manuscript writing, simulation design, and course material generation",
"author": {
"name": "Data-Wise"
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,6 @@ src/discovery/cache.json
.claude/
test-output-lecture-e2e/
site/

# M4 rich-LaTeX validation artifacts (generated, do not commit)
out/m4-validation/
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.18.0] — 2026-05-12

### Added

- **Rich exam LaTeX format** — new `--format exam-rich-latex` for `/teaching:exam`. Emits a Quarto `.qmd` using the LaTeX `exam` document class with evidence-based reporting policy ($s$-values, compatibility intervals, no significance language), F-critical bracket table, $s$-value calibration table, Dean (2017) citation pattern, and interaction-aware language (reframes "main effects" to "marginal mean differences" in factorial designs containing interaction terms).
- `policy`, `aids_level`, `textbook_citation_prefix`, and `interaction_aware_language` options on the exam template (`src/teaching/templates/exam.json`) plus matching `teach-config.yml` `scholar.teaching_style.exam` override block.
- `jstat` runtime dependency (`^1.9.6`) for F-distribution critical-value computation in the bracket-table generator.
- New formatter helpers — `formatters/helpers/bracket-table-generator.js` (jstat-backed F* values, 2-decimal precision), `formatters/helpers/s-calibration-table.js` (static Greenland/Rafi $s$-value calibration), `formatters/helpers/interaction-aware-pass.js` (regex + AI-stub interaction-aware reframer).
- Validation harness — `tests/teaching/formatters/fixtures/stat-545-final-spring-2026.fixture.json` + `scripts/m4-validate-rich-format.js` for structural integrity and PDF compilation checks.

### Fixed

- `exam-rich-latex` formatter now correctly places LaTeX preamble in Quarto's `format.pdf.include-in-header.text:` YAML field rather than the document body, so `lualatex` compilation succeeds end-to-end.

---

## [2.17.0] — 2026-03-04

### Fixed
Expand Down Expand Up @@ -1349,6 +1365,7 @@ text.replace(/\$([^$]+)\$/g, (match, content) => {

---

[2.18.0]: https://github.com/Data-Wise/scholar/compare/v2.17.0...v2.18.0
[2.17.0]: https://github.com/Data-Wise/scholar/compare/v2.16.0...v2.17.0
[2.16.0]: https://github.com/Data-Wise/scholar/compare/v2.15.0...v2.16.0
[2.15.0]: https://github.com/Data-Wise/scholar/compare/v2.14.0...v2.15.0
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,14 @@ This file contains project-specific instructions for Claude Code when working on
### Overview
Scholar is a Claude Code plugin for academic workflows with research + teaching capabilities.

### Current State (v2.17.0 released; v2.17.0 in progress on feature/canvas-enhancements)
### Current State (v2.18.0 released; v2.17.0 in progress on feature/canvas-enhancements)
- **Research:** 14 commands, 17 skills
- **Teaching:** 18 commands (`/teaching:exam`, `/teaching:quiz`, `/teaching:slides`, `/teaching:assignment`, `/teaching:solution`, `/teaching:syllabus`, `/teaching:rubric`, `/teaching:feedback`, `/teaching:demo`, `/teaching:lecture`, `/teaching:validate`, `/teaching:validate-r`, `/teaching:diff`, `/teaching:sync`, `/teaching:migrate`, `/teaching:config`, `/teaching:preflight`, `/teaching:canvas`)
- **Hub:** 1 command (`/scholar:hub` — command discovery and navigation, with flag discovery)
- **Tests:** ~3,302 tests
- **Docs:** MkDocs site on GitHub Pages
- **Integration:** Works with flow-cli for workflow automation
- **Release:** https://github.com/Data-Wise/scholar/releases/tag/v2.17.0
- **Release:** https://github.com/Data-Wise/scholar/releases/tag/v2.18.0

### Key Directories

Expand Down
29 changes: 17 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
A comprehensive Claude Code plugin for academic workflows combining research and teaching. Features unified Plugin + MCP architecture with 33 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-2.17.0-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v2.17.0)
[![Tests](https://img.shields.io/badge/tests-3340%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)
[![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)

---

## Features

### 📚 31 Slash Commands
### 📚 33 Slash Commands

**Literature Management (4 commands)**
- `/arxiv <query>` - Search arXiv for papers (top-level command)
Expand All @@ -36,22 +36,25 @@ A comprehensive Claude Code plugin for academic workflows combining research and
- `/scholar:analysis-plan` - Create statistical analysis plans
- `/scholar:method-scout <problem>` - Scout statistical methods for research problems

**Teaching (15 commands)**
**Teaching (18 commands)**
- `/teaching:quiz <topic>` - Generate quiz questions with answer keys ✅
- `/teaching:exam <type>` - Create comprehensive exams with rubrics ✅
- `/teaching:exam <type>` - Create comprehensive exams with rubrics. NEW in v2.18.0: `--format exam-rich-latex` for evidence-based statistics exams
- `/teaching:assignment <topic>` - Create homework assignments with solutions ✅
- `/teaching:solution <file>` - Generate standalone solution keys from assignment files ✅ NEW
- `/teaching:solution <file>` - Generate standalone solution keys from assignment files ✅
- `/teaching:syllabus <course>` - Generate comprehensive course syllabus ✅
- `/teaching:slides <topic>` - Create lecture slides with examples ✅
- `/teaching:rubric <type>` - Generate detailed grading rubrics ✅
- `/teaching:feedback <assignment>` - Generate constructive student feedback ✅
- `/teaching:demo [path]` - Create demo course environment with sample materials ✅
- `/teaching:lecture <topic>` - Generate comprehensive lecture notes ✅
- `/teaching:validate <file>` - Validate YAML configuration files (multi-level) ✅
- `/teaching:validate-r <file>` - Validate R code chunks in `.qmd` files ✅
- `/teaching:diff <file>` - Compare YAML and JSON sync status ✅
- `/teaching:sync [options]` - Synchronize YAML to JSON ✅
- `/teaching:migrate` - Batch migrate YAML configs from v1 to v2 schema ✅
- `/teaching:config <subcommand>` - Manage prompts, config, and provenance ✅ NEW
- `/teaching:config <subcommand>` - Manage prompts, config, and provenance ✅
- `/teaching:preflight` - Pre-release health checks for Scholar projects ✅
- `/teaching:canvas <file>` - Convert exam files to Canvas QTI format ✅

**Command Discovery (1 command)**
- `/scholar:hub [argument]` - Browse all commands, drill into categories, get usage details ✅ NEW
Expand Down Expand Up @@ -108,7 +111,7 @@ This architecture eliminates IPC overhead by sharing core logic directly between
- `src/teaching/config/` - Configuration management
- `src/teaching/validators/` - Multi-layer validation (Schema + LaTeX + Completeness)
- `src/teaching/ai/` - AI content generation with retry logic
- `tests/teaching/` - 3,340 unit tests (100% passing)
- `tests/teaching/` - 3,400 unit tests (100% passing)

See [Phase 0 Architecture](docs/architecture/PHASE-0-FOUNDATION.md) for detailed documentation.

Expand Down Expand Up @@ -137,9 +140,9 @@ The Homebrew formula automatically:
- Makes it available in Claude Code CLI and Claude Desktop
- No additional configuration needed

**Latest version:** v2.17.0 (released 2026-02-09)
**Latest version:** v2.18.0 (released 2026-02-09)
- 33 commands (18 teaching + 14 research + 1 hub)
- 3,340 tests with 100% pass rate
- 3,400 tests with 100% pass rate
- Comprehensive documentation (95% coverage)

### Option 2: Manual Installation (Local Development)
Expand Down Expand Up @@ -193,7 +196,7 @@ cd ~/projects/dev-tools/scholar
- 33 commands present (18 teaching + 14 research + 1 hub)
- 17 skills present
- No hardcoded paths
- v2.17.0 verified
- v2.18.0 verified
```

### Using in Claude Code CLI
Expand Down Expand Up @@ -506,15 +509,17 @@ Create comprehensive exams with rubrics.
```bash
/teaching:exam midterm --questions 20 --duration 90
/teaching:exam final --topics "regression,ANOVA,hypothesis testing"
/teaching:exam stat-545-final --format exam-rich-latex --topics "two-way ANOVA"
```

**Options:**
- `--type TYPE` - midterm, final, practice, comprehensive
- `--questions N` - Number of questions
- `--duration N` - Duration in minutes
- `--topics "t1,t2"` - Specific topics to cover
- `--format FORMAT` - md (default), tex, qmd, canvas, json, exam-rich-latex *(v2.18.0)*

**Output:** JSON with questions, answer key, grading rubric
**Output:** JSON with questions, answer key, grading rubric. `exam-rich-latex` emits a Quarto `.qmd` using the LaTeX `exam` class with an evidence-based reporting policy, F-critical bracket table, and $s$-value calibration — see the [Rich Exam LaTeX tutorial](docs/tutorials/teaching/rich-exam-format.md).

---

Expand Down
Loading
Loading