From 81f3b997e5e3c42aab615693632dfbeab673cd7b Mon Sep 17 00:00:00 2001 From: tikankika Date: Tue, 7 Jul 2026 08:10:25 +0200 Subject: [PATCH] chore(release): 0.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cut the Unreleased section as 0.6.0 (minor: find_context gained seven searchable content types and recursive Material/ scanning — additive public schema changes). Added the post-polish merges to the release notes (EXAMPLES_POLICY #23, js-yaml 5 upgrade #25). Bumped version in package.json, README badge and footer, and CLAUDE.md; de-numbered the drifted test count in CLAUDE.md to match the README decision. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 4 +++- CLAUDE.md | 8 ++++---- README.md | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 749ad32..9a95835 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,11 @@ All notable changes to Teaching Suite are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/), and the project uses [Semantic Versioning](https://semver.org/). -## [Unreleased] +## [0.6.0] - 2026-07-07 ### Added +- **EXAMPLES_POLICY.md.** A single documented answer to "are these examples real?" — no. All example, illustrative and test data in the repository is fabricated; the repository keeps one worked example (`examples/kurs101_reflektion/`) and no new examples are added (#23). - **Process-name guard (CI test).** `tests/process-name-guard.test.ts` asserts a one-directional contract — every `load_methodology` process name referenced in the public docs (`README.md`, `docs/TEACHER_GUIDE.md`, and the whole `methodology/` tree) exists in the tool's `z.enum`. It reads two structured sources (the `load_methodology(...)` calls and the methodology table's `Process` column) so a renamed or removed process can no longer leave a published doc pointing teachers at a process the tool rejects. Same family as `tests/content-types.test.ts`; no runtime change to `load_methodology`. - **README — "Part of a teaching-and-assessment ecosystem" section.** A shared cross-suite block (edusafe-pipeline, Teaching Suite, QuestionForge, Assessment Suite) describing the deliberate data boundary and how the tools fit over one teaching cycle. Mirrored verbatim across the three suite READMEs; sibling repositories are named without links until they are public. - **README — a plain-language "What is Teaching Suite?" opening** so a newcomer grasps the tool within the first lines, before the architecture and jargon. @@ -16,6 +17,7 @@ All notable changes to Teaching Suite are documented here. The format follows ### Changed +- **js-yaml upgraded 4.2.0 → 5.2.1 (major).** The only code change required was the renamed dump option (`quotingType` → `quoteStyle`) in `format_captured_session`; output is unchanged. All `yaml.load` call sites were verified against v5's stricter behaviour (throws on empty input — every site is guarded), and YAML dates continue to load as strings under both `JSON_SCHEMA` and the new `CORE_SCHEMA` default (#25). - **`find_context` searches every content type `intelligent_save` can write (3c).** The search-side `content_types` enum is now derived from the shared content-type registry (`src/utils/content-types.ts`) instead of a separate hand-maintained list, so the seven types that could be saved but never searched by name — `deep_analysis`, `material`, `lesson_summary`, `student_summary`, `content`, `recap`, `auto_log` — are now searchable. This is an additive public schema change (`find_context` input grows by 7 types). The drift guard in `tests/content-types.test.ts` now asserts the search enum equals the registry, so the 27/20 divergence cannot silently return. (The deferred consolidation of default-status, validation rules and event mapping into registry columns is intentionally **not** in this batch — they are internal to `intelligent_save` with no drifting reader.) - **`find_context` scans `Material/` recursively.** Material is the teacher's hand-sorted tree (`Material/Klart`, `Material/Övningar`, …); a flat scan hid everything below the top level. A new `RECURSIVE_SEARCH_DIRS` marks Material for whole-subtree scanning, which also subsumes `Material/Student_Summaries/` (`student_summary`'s write dir). Directory-based type fallback now resolves most-specific-first, so a frontmatter-less file under `Material/Student_Summaries` is typed `student_summary` and anything else under `Material` is typed `material`. Only `.md` files are read (first 2 KB), and symlinks are never followed. - **README — methodology framed honestly as a draft.** Dropped the "v3.0 (current)" label; the named frameworks (Klafki, Wiggins & McTighe, Schön, Black & Wiliam, Biesta) are now described as named but not yet worked through to the depth a 1.0 would need, with the methodology published deliberately to invite critique. The product version (0.5.0) is the single readiness signal (#8). diff --git a/CLAUDE.md b/CLAUDE.md index 516cd22..690b19d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ Teaching Suite is an MCP (Model Context Protocol) server that scaffolds guided p **Philosophy:** Process scaffolding, not automation. The teacher thinks, MCP structures. -**Version:** 0.5.0 +**Version:** 0.6.0 ## Architecture @@ -77,7 +77,7 @@ teaching-suite/ ├── docs/ │ └── decisions/ # Architecture Decision Records (ADRs) │ -├── tests/ # 642 tests (23 files) +├── tests/ # Test suite (Vitest) │ ├── CLAUDE.md # This file └── package.json @@ -232,7 +232,7 @@ All file operations require a `--workspace` flag at server startup: ```bash npm install # Install dependencies npm run build # Build TypeScript -npm test # Run tests (642 tests) +npm test # Run the full test suite npm start # Start MCP server ``` @@ -280,4 +280,4 @@ When to use session capture tools: --- -*Last updated: 2026-06-21* +*Last updated: 2026-07-07* diff --git a/README.md b/README.md index aab9f53..a9dc3c3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Teaching Suite -[![Version](https://img.shields.io/badge/version-0.5.0-blue.svg)](CHANGELOG.md) +[![Version](https://img.shields.io/badge/version-0.6.0-blue.svg)](CHANGELOG.md) [![License: PolyForm Noncommercial 1.0.0](https://img.shields.io/badge/License-PolyForm%20Noncommercial%201.0.0-lightgrey.svg)](LICENSE) [![Node.js 18+](https://img.shields.io/badge/node.js-18+-green.svg)](https://nodejs.org/) @@ -292,4 +292,4 @@ The real privacy guarantees are the `--workspace` lockdown and the absence of ne --- -*Version 0.5.0* +*Version 0.6.0* diff --git a/package-lock.json b/package-lock.json index 9845ad9..5b6993b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "teaching-suite", - "version": "0.5.0", + "version": "0.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "teaching-suite", - "version": "0.5.0", + "version": "0.6.0", "license": "PolyForm-Noncommercial-1.0.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.29.0", diff --git a/package.json b/package.json index f730d16..3cc5db6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "teaching-suite", "private": true, - "version": "0.5.0", + "version": "0.6.0", "description": "MCP server for teacher workflow support", "type": "module", "main": "dist/index.js",