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
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": "sage-instructor",
"version": "1.7.0",
"version": "1.7.1",
"description": "Adaptive programming instructor — structured courses with discovery-first teaching, AskUserQuestion interactions, progress tracking, and pluggable curricula. Powered by the Three Axes Framework.",
"author": {
"name": "Lux Solari",
Expand Down
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
# Changelog

## [1.7.0] — 2026-07-02
## [1.7.1] — 2026-07-02

### Fixed
- **`scripts/check_framework_drift.py` crashed on Windows exactly when it
had something real to show.** Discovered while doing a fourth documentation
pass over the upstream `three-axes-framework` repo: editing that repo's
`SKILL.md` (a command-naming fix, unrelated to this project) caused genuine
drift, and running the drift checker to confirm it crashed with
`UnicodeEncodeError` trying to print the diff — Windows consoles default
stdout to the system codepage (e.g. `cp1252`), which can't encode
characters like the "↓" in SKILL.md's tier diagram. Forced UTF-8 output via
`sys.stdout.reconfigure(encoding="utf-8")` at the top of `main()`. Verified
against the actual pending drift: the script now prints the diff correctly,
and the upstream change turned out to be cosmetic (command-name formatting,
not a conceptual framework change) — accepted as the new baseline via
`--update-snapshot` rather than requiring a `philosophy.md` edit.

### Added
- **`three-axes-framework` declared as a `plugin.json` dependency.** Claude
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Sage Instructor

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Version](https://img.shields.io/badge/version-1.7.0-informational.svg)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-1.7.1-informational.svg)](CHANGELOG.md)

A Claude Code plugin that turns Claude into **Sage** — an adaptive programming instructor that teaches through structured courses with discovery-first pedagogy, interactive exercises, and progress tracking.

Expand Down
6 changes: 6 additions & 0 deletions scripts/check_framework_drift.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ def fetch_upstream() -> str:


def main() -> int:
# Windows consoles default stdout to the system codepage (e.g. cp1252),
# which can't encode characters like "↓" in SKILL.md's tier diagram --
# crashing exactly when there's a real diff to show. Force UTF-8 output
# regardless of platform/terminal default.
sys.stdout.reconfigure(encoding="utf-8")

update_snapshot = "--update-snapshot" in sys.argv

try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Tier 1 — Persistent Profile (baseline, cross-session)
↓ overridden by

Tier 2 — Session Commands (ephemeral, current session only)
~/.claude/three-axes-session.json written by /three-axes mode and /three-axes set
~/.claude/three-axes-session.json written by /three-axes-mode and /three-axes-set
Cleared on startup, preserved across compact/resume

↓ overridden by
Expand Down
Loading