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
8 changes: 4 additions & 4 deletions .STATUS
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
status: Active
progress: 100
next: Post-v2.18.1 — rich-exam v1 grading-line gap (backlog #13); rich-exam v2 examark QTI (backlog #11)
target: v2.18.1Maintenance (dep CVE patch→0 vulns, ESLint gate+cleanup, \printanswers short-answer fix, timing de-flake)
milestone: v2.18.1 release via PR (dev→main) 2026-06-12 | 33 commands | 38 tutorials | 3,405 tests (3,268 Jest + 137 node:test) | 143 suites
last_session: 2026-06-12 - spec-status cleanup + PR #107 review/merge + v2.18.1 release pipeline (Session 92)
next: Homebrew tap auto-update VALIDATED (App 2874502 + HOMEBREW_TAP_APP_ID/PRIVATE_KEY secrets set; workflow_dispatch smoke test green, App-authored tap PR #118 merged) — only residual: confirm de750f5 forwarding rides dev→main on the NEXT real release (release events run from main's copy); then rich-exam v1 grading-line gap (backlog #13); rich-exam v2 examark QTI (backlog #11)
target: v2.19.0scaffolded-math-tutorial teaching skill (18th) + skills surfaced in the hub (/scholar:hub skills, discoverSkills) + skill_count macro + df-conflation closure-audit guardrail; Missing-Effect adversarial-review release (#2)
milestone: v2.19.0 release via PR (dev→main) 2026-06-13 | 33 commands | 18 skills | 38 tutorials | 3,411 tests (3,268 Jest + 143 node:test) | 144 suites
last_session: 2026-06-12 (Session 94) - Homebrew tap-auth ACTIVATED + validated end-to-end: created GitHub App "Data-Wise Homebrew Automation" (ID 2874502), set HOMEBREW_TAP_APP_ID + HOMEBREW_TAP_APP_PRIVATE_KEY secrets, proved via workflow_dispatch smoke test (App-authored tap PR #118 merged — also fixed stale manifest.json scholar 2.17.0→2.18.1). Debug gotcha: "JWT could not be decoded" = wrong/revoked private key (secret had old 2026-05-12 .pem; valid was 2026-06-12) — isolated with a local openssl+curl /app test. Also: root-caused `brew upgrade scholar` block to upstream Homebrew 6.0.1-28 build-sandbox regression (commit 080ffb3d1b "deny all of $HOME"), shipped tap bin.mkpath fix (PR #117, all 8 source-built formulae) + scholar upgraded to 2.18.1 via brew (pin-to-6.0.1 workaround, then unpinned). Prior: Session 93 post-v2.18.1 cleanup (de750f5, 4dd2afc, spec v5)
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)
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.18.1",
"version": "2.19.0",
"description": "Academic workflows for research and teaching - literature management, manuscript writing, simulation design, and course material generation",
"author": {
"name": "Data-Wise"
Expand Down
6 changes: 6 additions & 0 deletions .github/markdown-link-check-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@
{
"pattern": "^https://aspredicted.org"
},
{
"pattern": "^https://www.imsglobal.org"
},
{
"pattern": "^https://opensource.org/licenses"
},
{
"pattern": "%7B%7B"
},
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/homebrew-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,10 @@ jobs:
command_count: '33'
skill_count: '17'
secrets:
# Preferred: GitHub App token (no expiry). The reusable workflow uses the
# App path when both app_id and app_private_key are non-empty, else falls
# back to tap_token (a PAT, which expires). Add HOMEBREW_TAP_APP_ID and
# HOMEBREW_TAP_APP_PRIVATE_KEY repo secrets to activate the App path.
app_id: ${{ secrets.HOMEBREW_TAP_APP_ID }}
app_private_key: ${{ secrets.HOMEBREW_TAP_APP_PRIVATE_KEY }}
tap_token: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ 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.19.0] — 2026-06-13

### Added

- **`scaffolded-math-tutorial` teaching skill** — a reusable methodology for turning a paper, proof, or formula into a college-algebra-floor self-study course (four pillars, the Terminology Closure Audit, self-explanation + faded worked examples, dual HTML/PDF Quarto). Brings the skill count to **18** under a new **Teaching** category.
- **Skills surfaced in the hub** — `/scholar:hub skills` lists auto-activating skills by category, and the overview gains a SKILLS block. The discovery engine adds `discoverSkills()` / `getSkillStats()` / `getSkillsByCategory()` (scanning `skills/**/SKILL.md`), with 7 new node:test cases — zero changes to the command-scan path or cache.
- **`skill_count` macro** in `mkdocs.yml`, synced by `scripts/version-sync.js` and consumed by `docs/skills.md`.
- `docs/WHATS-NEW-v2.19.0.md`; a `/scholar:hub skills` row in the Reference Card and the hub tutorial.

### Changed

- `scaffolded-math-tutorial` gains a 4th Terminology-Closure-Audit rule — **one symbol, one meaning; flag context-dependent forms** — guarding against attaching one definition of a symbol (e.g. a degrees-of-freedom that differs between a pooled-$t$ and a pooled-LRT reference) to a reference that needs a different form.

### Fixed

- `markdown-link-check`: ignore `imsglobal.org` and `opensource.org/licenses` — valid external links that intermittently return Status 0 / 403 to the checker and flaked the docs CI.

## [2.18.1] — 2026-06-12

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

---

[2.19.0]: https://github.com/Data-Wise/scholar/compare/v2.18.1...v2.19.0
[2.18.1]: https://github.com/Data-Wise/scholar/compare/v2.18.0...v2.18.1
[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
Expand Down
8 changes: 4 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ 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.18.1 released 2026-06-12)
- **Research:** 14 commands, 17 skills
### Current State (v2.19.0 released 2026-06-13)
- **Research:** 14 commands, 18 skills (4 mathematical + 5 implementation + 3 writing + 5 research + 1 teaching)
- **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,405 (3,268 Jest + 137 node:test), 143 suites
- **Tests:** 3,411 (3,268 Jest + 143 node:test), 144 suites
- **Tutorials:** 38 (research-namespace coverage ~100%, teaching-namespace 100%; indexed at `docs/tutorials/index.md`)
- **Docs:** MkDocs site on GitHub Pages — https://Data-Wise.github.io/scholar/
- **Integration:** Works with flow-cli for workflow automation
- **Release:** https://github.com/Data-Wise/scholar/releases/tag/v2.18.1maintenance: dep CVE patch (0 vulns), ESLint gate, `\printanswers` short-answer fix, timing de-flake
- **Release:** https://github.com/Data-Wise/scholar/releases/tag/v2.19.0`scaffolded-math-tutorial` teaching skill (18th); skills surfaced in the hub (`/scholar:hub skills` + discovery `discoverSkills`); `skill_count` macro; df-conflation closure-audit guardrail; markdown-link-check flake fixes
- **Active branch:** `dev` (clean)
- **Next:** rich-exam v1 grading-line gap (`.STATUS` backlog #13); rich-exam v2 examark QTI (backlog #11)

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
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.18.1-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v2.18.1)
[![Tests](https://img.shields.io/badge/tests-3,405%20passing-brightgreen.svg)](https://github.com/Data-Wise/scholar)
[![Version](https://img.shields.io/badge/version-2.19.0-blue.svg)](https://github.com/Data-Wise/scholar/releases/tag/v2.19.0)
[![Tests](https://img.shields.io/badge/tests-3,411%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 Expand Up @@ -113,7 +113,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,405 unit tests (100% passing)
- `tests/teaching/` - 3,411 unit tests (100% passing)

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

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

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

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

### Using in Claude Code CLI
Expand Down
2 changes: 1 addition & 1 deletion docs/API-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ render_macros: false

# Scholar Plugin - API Reference

> **Version:** 2.18.1
> **Version:** 2.19.0
> **Last Updated:** 2026-03-04
> **Audience:** Plugin developers and contributors
>
Expand Down
2 changes: 2 additions & 0 deletions docs/REFCARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,11 @@
| `/scholar:hub` | Browse all commands | `/scholar:hub` |
| `/scholar:hub` | Drill into category | `/scholar:hub research` |
| `/scholar:hub` | Command detail | `/scholar:hub exam` |
| `/scholar:hub` | List skills | `/scholar:hub skills` |
| `/scholar:hub` | Quick reference card | `/scholar:hub quick` |

- **NEW in v2.7.0:** `/scholar:hub` for command discovery with smart context detection
- **NEW:** `/scholar:hub skills` lists the 18 auto-activating skills grouped by category

---

Expand Down
4 changes: 2 additions & 2 deletions docs/TEACHING-WORKFLOWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ render_macros: false

# Scholar Teaching Workflows

> **Version:** 2.18.1
> **Version:** 2.19.0
> **Last Updated:** 2026-02-09
> **Audience:** Educators using Scholar for course material generation
>
Expand Down Expand Up @@ -958,5 +958,5 @@ Regenerate with new settings.
---

**Last updated:** 2026-02-09
**Version:** 2.18.1
**Version:** 2.19.0
**Contribute your workflows:** [GitHub Issues](https://github.com/Data-Wise/scholar/issues)
1 change: 0 additions & 1 deletion docs/WHATS-NEW-v2.18.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,4 @@ The generated `.qmd` compiles with `quarto render exam.qmd --to pdf` using `lual
## Related

- [Spec: Rich Exam Format](specs/SPEC-2026-05-12-rich-exam-format.md)
- [ORCHESTRATE: exam-rich-latex](https://github.com/Data-Wise/scholar/blob/feature/exam-rich-latex/ORCHESTRATE-exam-rich-latex.md)
- [CHANGELOG v2.18.0](https://github.com/Data-Wise/scholar/blob/main/CHANGELOG.md#2180--2026-05-12)
37 changes: 37 additions & 0 deletions docs/WHATS-NEW-v2.19.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# What's New in v2.19.0

**Status:** In development (targets v2.19.0)

This release adds a new teaching skill and makes **all** skills discoverable from the hub.

## scaffolded-math-tutorial skill

A new auto-activating skill for turning a paper, proof, or formula into a **self-study course** a motivated reader (college-algebra floor) can learn from alone. It encodes a proven methodology:

- **Four pillars** — zero undefined jargon + a running glossary; prerequisite primers taught before use; self-explanation + faded worked examples as the backbone (quizzing as a supplement); and a per-section teaching scaffold (objectives → worked instance → recap).
- **The Terminology Closure Audit** — the enforceable version of "define every term": a compound-term rule, a no-forward-reference (closure) rule, and a mandated final audit pass.
- **Dual HTML/PDF Quarto** output with folded-answer checkpoints.

It brings the skill count to **18** and adds a new **Teaching** category to the [Skills Reference](skills.md). Background and the learning-science basis live in the skill's `reference/pedagogy.md`.

## Skills in the hub

The hub now surfaces **skills** alongside commands:

```bash
/scholar:hub # overview now includes a SKILLS block (per-category counts)
/scholar:hub skills # all auto-activating skills, grouped by category, with inline help
```

Under the hood, the discovery engine gained `discoverSkills()` / `getSkillStats()` / `getSkillsByCategory()`, scanning `skills/**/SKILL.md`. The change is additive — the command-scan path and cache are untouched, so there is no behavior change for existing commands.

Unlike commands, skills are **not invoked** — they activate automatically when your conversation matches their description.

## Docs & tooling

- New **Teaching** category in the [Skills Reference](skills.md); the [Reference Card](REFCARD.md) lists `/scholar:hub skills`; the [hub tutorial](tutorials/getting-started-with-hub.md) shows how to list skills.
- A `skill_count` macro is now tracked in `mkdocs.yml` and synced by `scripts/version-sync.js`, so the skill total stays consistent across docs.

## Notes

- Skills are not command-count-gated; CI's "≥15 skills" floor still holds.
4 changes: 2 additions & 2 deletions docs/help/FAQ-teaching.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
render_macros: false
---

# Teaching FAQ - Scholar v2.18.1
# Teaching FAQ - Scholar v2.19.0

> **Quick answers to common questions about Scholar's teaching commands**

Expand Down Expand Up @@ -1768,4 +1768,4 @@ See [Migration Guide](../MIGRATION-v2.2.0.md).

---

**Last Updated:** 2026-05-12 for Scholar v2.18.1
**Last Updated:** 2026-05-12 for Scholar v2.19.0
12 changes: 6 additions & 6 deletions docs/help/TROUBLESHOOTING-teaching.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ render_macros: false
# Troubleshooting Guide - Scholar Teaching Commands

> **Quick Fixes for Common Issues**
> Version: 2.18.1 | Last Updated: 2026-05-12
> Version: 2.19.0 | Last Updated: 2026-05-12

---

Expand Down Expand Up @@ -38,7 +38,7 @@ scholar --version
**Expected output:**

```
Scholar v2.18.1
Scholar v2.19.0
```

**If not found:**
Expand Down Expand Up @@ -574,7 +574,7 @@ claude plugin install scholar

```bash
# Check version
scholar --version # Should be 2.18.1+
scholar --version # Should be 2.19.0+

# Update if older
brew upgrade scholar
Expand Down Expand Up @@ -2642,7 +2642,7 @@ head -40 exam.tex # YAML preamble should match what's in the .qmd
| `! Class exam Error` | `exam` class not installed | Install `texlive-latex-extra` (Linux) or `mactex-extra` (macOS) |
| `! Undefined control sequence \printanswers` | Trying to render answer key without `exam` class | Same fix — install `texlive-latex-extra` |
| `Quarto not found` | Quarto CLI missing | Install Quarto 1.4+ from <https://quarto.org/docs/get-started/> |
| Bracket table shows `NaN` rows | Invalid df pair supplied (`df1: 0`, etc.) | Both `df1` and `df2` must be finite integers ≥ 1; Scholar v2.18.1+ throws on invalid input |
| Bracket table shows `NaN` rows | Invalid df pair supplied (`df1: 0`, etc.) | Both `df1` and `df2` must be finite integers ≥ 1; Scholar v2.19.0+ throws on invalid input |

**Step 1: Verify the YAML preamble**

Expand Down Expand Up @@ -3379,7 +3379,7 @@ If custom prompts are complex, use refine:

**Solution:**

1. File was generated before provenance tracking (requires Scholar v2.18.1+)
1. File was generated before provenance tracking (requires Scholar v2.19.0+)
2. File was not generated by Scholar (e.g., manually created)
3. Frontmatter was modified and metadata comments were removed
4. Re-generate the file with current Scholar version to add provenance
Expand Down Expand Up @@ -4315,4 +4315,4 @@ Visit: https://console.anthropic.com/account/billing/usage

**Questions? Spotted an issue?** Open a GitHub issue: https://github.com/Data-Wise/scholar/issues

**Last Updated:** 2026-05-12 for Scholar v2.18.1
**Last Updated:** 2026-05-12 for Scholar v2.19.0
19 changes: 18 additions & 1 deletion docs/skills.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# Scholar Skills Reference

> **Version {{ scholar.version }}** - 17 A-grade auto-activating skills for statistical research and methods development
> **Version {{ scholar.version }}** - {{ scholar.skill_count }} A-grade auto-activating skills for statistical research, methods development, and teaching

## Skill Categories

- **[Mathematical](#mathematical-skills)** (4 skills)
- **[Implementation](#implementation-skills)** (5 skills)
- **[Writing](#writing-skills)** (3 skills)
- **[Research](#research-skills)** (5 skills)
- **[Teaching](#teaching-skills)** (1 skill)

## Mathematical Skills

Expand Down Expand Up @@ -238,6 +239,22 @@ Sensitivity analysis design.

**Activates on:** "sensitivity", "robustness", "assumptions"

## Teaching Skills

### scaffolded-math-tutorial

Self-study math/stats tutorials that teach formulas and derivations from the ground up — a
motivated reader (college-algebra floor) can learn from the document alone.

**Expertise:**

- College-algebra-floor scaffolding (prerequisite primers taught before use)
- The Terminology Closure Audit (zero undefined jargon; no forward references)
- Self-explanation + faded worked examples as the backbone (quizzing as supplement)
- Folded-answer checkpoints; dual HTML (folded) / PDF (open) Quarto rendering

**Activates on:** "tutorial", "teach me the math", "explain this derivation", "scaffold a proof"

## Usage Examples

### Automatic Activation
Expand Down
8 changes: 8 additions & 0 deletions docs/tutorials/getting-started-with-hub.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,14 @@ Tip: You're in a teaching project. Try /teaching:exam or /scholar:hub for all co

Look for `[AI]` markers in the overview, or drill into a command to check for `--instructions / -i` in its Options section.

### "What skills do I have?"

```bash
/scholar:hub skills # All auto-activating skills, grouped by category
```

Skills aren't invoked like commands -- they activate automatically when your conversation matches their description. See the [Skills Reference](../skills.md) for the full list.

### "I'm new -- where do I start?"

```bash
Expand Down
2 changes: 1 addition & 1 deletion docs/workflows/research/latex-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -1031,7 +1031,7 @@ Week 4: Advanced automation (Makefiles, CI/CD)

---

**Document Version:** v2.18.1
**Document Version:** v2.19.0
**Last Updated:** 2026-02-01
**Word Count:** ~7,500
**Example Scripts:** 15+
2 changes: 1 addition & 1 deletion docs/workflows/research/literature-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -1249,7 +1249,7 @@ After completing literature review:

---

**Document Version:** v2.18.1
**Document Version:** v2.19.0
**Last Updated:** 2026-02-01
**Word Count:** ~9,500
**Time to Complete:** 2-4 weeks for systematic review
2 changes: 1 addition & 1 deletion docs/workflows/research/manuscript-writing.md
Original file line number Diff line number Diff line change
Expand Up @@ -1813,7 +1813,7 @@ pandoc manuscript.md --bibliography references.bib -o manuscript.pdf

---

**Document Version:** 2.18.1
**Document Version:** 2.19.0
**Last Updated:** 2026-02-04
**Author:** Data-Wise Team
**Status:** Complete
Expand Down
14 changes: 8 additions & 6 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,18 @@ extra_css:

extra:
scholar:
version: "2.18.1"
prev_version: "2.18.0"
release_date: "2026-06-12"
test_count: "3,405"
version: "2.19.0"
prev_version: "2.18.1"
release_date: "2026-06-13"
test_count: "3,411"
jest_count: "3,268"
node_test_count: "137"
node_test_count: "143"
command_count: 33
teaching_commands: 18
research_commands: 14
skill_count: 18
hub_commands: 1
suite_count: 143
suite_count: 144

markdown_extensions:
- pymdownx.highlight:
Expand Down Expand Up @@ -238,6 +239,7 @@ nav:
- Phase 0 Foundation: architecture/PHASE-0-FOUNDATION.md

- Release Notes:
- What's New in v2.19.0: WHATS-NEW-v2.19.0.md
- What's New in v2.18.0: WHATS-NEW-v2.18.0.md
- What's New in v2.17.0: WHATS-NEW-v2.17.0.md
- What's New in v2.16.0: WHATS-NEW-v2.16.0.md
Expand Down
Loading
Loading