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": "idstack",
"version": "3.6.0.0",
"version": "3.7.0.0",
"description": "Evidence-based instructional design pipeline. 11 skills backed by peer-reviewed research across 11 domains. Analyze, design, build, review, and export courses with every recommendation citing its evidence tier.",
"author": {
"name": "Philippos Savvides",
Expand Down
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,52 @@
# Changelog

## v3.7.0.0 (2026-10-09)

idstack now writes the English text that it shows to a person in the ASD-STE100 Simplified Technical English rules. This includes skill chat, reports, the course dashboard, CLI messages and the Chrome extension. A new script, `bin/idstack-ste-check`, finds some of the rule problems, and each skill runs it on the files that it writes for a person. This release also fixes how skills find idstack's own scripts. Before, a skill could run the scripts of an old copy of idstack. The Chrome extension is now version 1.2.0.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the checker coverage statement

When /idstack:course-export builds an LMS package, the skill explicitly says that its HTML, XML, and quiz files receive no file check (skills/course-export/SKILL.md.tmpl:149), and this changelog entry later excludes export-package files on line 18. Therefore, saying that every skill runs the checker on the files it writes for people overstates the validation coverage and could cause users to treat unchecked exported text as validated; limit this claim to the specific report, dashboard, and course-content outputs that are actually checked.

Useful? React with 👍 / 👎.


To update: `cd` into your idstack clone, then `git pull && ./setup`. The Chrome Web Store updates the extension on its own once 1.2.0 is published there. A clone that you do not update still runs the 3.6 skills, which have no check step. If a check step prints `STE_CHECK_MISSING: <path>`, the idstack at that path has no checker. The cause is often an older idstack. If the path is empty, idstack did not find its install.

### Added — a writing standard (ASD-STE100)

- **The rules and a word list are in `templates/preamble.md`.** They are between the `ste-core` markers, and all 11 skills get them through the preamble. The word list has 47 rows that idstack selected. The repo holds a short summary of the rules in idstack's own words. It does not hold the ASD-STE100 standard or its dictionary, and ASD does not endorse idstack.
- **`bin/idstack-ste-check` finds some of the problems that a script can find.** In a numbered step, it finds a sentence of more than 20 words. In a paragraph or a list item, it finds a sentence of more than 25 words. In an HTML or Markdown paragraph, it finds more than 6 sentences. It also finds a semicolon, a contraction, a "has been" verb and a word from the word list. In HTML, it finds a quotation or code element that has no end tag.
- **The checker does not find all rule problems.** In HTML and Markdown, it does not check the length of headings and labels. It does not find the passive voice, "-ing" verbs, commands in descriptions or long noun clusters, so the rules tell the model to apply those. Exit code 0 means no problems, 1 means problems, and 2 means an error or no text to examine.
- **Each skill runs the checker on the report, dashboard or course files that it writes for a person.** If the checker finds problems, the skill writes those sentences again. At each check step, the skill runs the checker a maximum of three times. `/idstack:learn` and the content check of `/idstack:course-export` only show the problems.
- **A check step reports why it did not run.** It prints `STE_CHECK_UNAVAILABLE` if python3 is not installed. It prints `STE_CHECK_MISSING: <path>` if the idstack install at that path has no checker, and the skill then tells you the path. If the path is empty, the skill tells you that idstack did not find its install. If the checker shows an error, the skill continues and tells you which file the checker did not examine. smoke-test fails if a skill template has fewer check steps than it must have.
- **The CLI messages follow the rules.** The messages that `./setup`, `bin/idstack-doctor`, `bin/idstack-status` and the other `bin/` scripts write are in ASD-STE100. The error messages of the Python argparse module are not. No exit code of `./setup`, `bin/idstack-doctor` or `bin/idstack-status` changed. The verdicts `READY TO EXPORT` and `NOT-READY` and the labels `PROBLEM`, `WARNING` and `NOTE` did not change. Some message lines have new words, for example "Suggested next:" is now "Recommended next:".
- **The Chrome extension follows the rules.** Its side panel, error messages, demo audits and dossier export are in ASD-STE100, and both of its model prompts include the rules. The extension is now version 1.2.0, and its side-panel badge reads v1.2.
- **The checker does not read all text.** It does not read chat text, AskUserQuestion text or the summary that a sub-agent returns. It does not read the prose in `.idstack/project.json`, the model output of the extension or the files in an export package. Only the rules control those texts, and the preamble and its copy in the extension hold the rules. The rules apply to English text, and a skill skips the rules and the checker for a conversation or a course in another language. This release does not rewrite `README.md`, `PRIVACY.md` or the landing page in ASD-STE100.

### Changed — names and wording that you see

- **A recommendation in a description now reads "idstack recommends that you ..." or "You can ...".** In a list of steps or in Top recommendations, it is a command. The fixed chat text of `/idstack:assessment-design`, `/idstack:course-import`, `/idstack:learning-objectives` and `/idstack:needs-analysis` no longer uses "Consider". The report label "Consider" is now "Recommendation", and the checker finds "consider", "may", "should" and "suggest".
- **Five side-panel buttons have new names.** **Audit Entire Course** is now **Audit Full Course**, and **Clear Dossier** is now **Remove All from Dossier**. **Download Compiled .md** is now **Download Dossier .md**, **Audit Another Page** is now **Audit a Different Page**, and **Retry Audit** is now **Try Again**.
- **Other side-panel labels have new wording.** **Improved Draft** is now **Recommended Draft**, **Evidence-Based Findings** is now **Findings with Evidence**, and the error heading **Audit Encountered an Issue** is now **Audit Error**.
- **The two tiers of `/idstack:accessibility-review` have new names.** "Must Fix" is now "Necessary changes", and "Should Improve" is now "Recommended changes".
- **The rubric levels of `/idstack:course-builder` have new names.** "Developing (C)" is now "Satisfactory (C)", and "Beginning (D/F)" is now "Unsatisfactory (D/F)". The course content that the skill writes for learners also follows the rules, and the skill runs the checker on `.idstack/course-content`.
- **README.md and PRIVACY.md show the new names.**

### Fixed — skills could run an old copy of idstack's scripts

- **Claude Code writes the plugin path into skill text only where it finds the exact text `${CLAUDE_PLUGIN_ROOT}`.** It never sets that variable in the shell of the Bash tool. The resolve chain used `${CLAUDE_PLUGIN_ROOT:-}`, so Claude Code never replaced it. Each `$_IDSTACK/bin/...` call then used `IDSTACK_HOME` if you set it. If you did not, it used the newest directory in `~/.claude/plugins/cache/idstack/idstack`, or no directory if that folder did not exist. All six copies of the chain now use the exact text.
- **If you installed with `./setup`, Claude Code loads the plugin from your clone.** Its plugin cache can still hold the version from the day that you installed, and a skill then ran the scripts of that older version. A marketplace on GitHub that is named `idstack` usually found the right copy, because its newest cache directory is the installed version. You do not need to remove an old cache folder.
- **A check step that finds no `bin/idstack-ste-check` now says so.** It prints `STE_CHECK_MISSING` with the path of the install that it used. Without this fix, the new check steps use the cached copy, and an older copy has no checker.
- **In a plugin run, the plugin path now comes before `IDSTACK_HOME`.** The documented order is the same, but before, the first entry was always empty, so `IDSTACK_HOME` won. If you set `IDSTACK_HOME` to a development checkout, you can load that checkout with `--plugin-dir` instead.

### Fixed — wrong folders, wrong verdicts and wrong tiers

- **A first run put the report in `.idstack/exports/untitled-course/`.** `/idstack:needs-analysis` and `/idstack:course-import` read `project_name` from the manifest before they wrote it. Each later skill then wrote to `.idstack/exports/<course-slug>/`. Once that folder existed, `bin/idstack-status` listed only that folder and stopped listing the first report.
- **Both skills now take the folder name from the course title of the session.** If the model leaves the title placeholder in the command, the command prints `PROJECT_NAME_NOT_SET` and stops before it makes a folder. A report that an earlier version put in `untitled-course` stays there, because this release does not move it.
- **`/idstack:course-export` waited for a verdict that the script no longer prints.** It waited for `ISSUES`, and `bin/idstack-status --readiness` has printed `NOT-READY` since v3.1.0.0. The skill now reads `NOT-READY`.
- **Four skills cited two papers by Sweller at the wrong tier.** `/idstack:needs-analysis`, `/idstack:course-builder`, `/idstack:course-quality-review` and `/idstack:learning-objectives` cited `[CogLoad-19]` as T1, and the first two also cited `[CogLoad-4]` as T1. `evidence/references.md` files both papers as T5, and the skills now cite them as T5. Findings that cite these papers now show T5 in reports. One citation in `/idstack:course-builder` had its two tiers in the wrong order, and it is corrected. The expertise-fit line of `/idstack:needs-analysis` now says to cite the papers at their tier in `evidence/references.md`.

### For contributors

- **`test/check-citation-tiers.py` compares each `[Code-N] [Tn]` citation with `evidence/references.md`.** It reads the skill templates, `templates/`, `README.md` and the landing page, and smoke-test runs it. It also finds a citation with commas between the codes and a citation that one line break splits. `test/test-citation-tiers.py` tests these forms.
- **The rendered landing test survives a slow Chrome start.** Chrome picks its own port, and the test waits 30 seconds for it. If Chrome stops, the test fails at once and shows the exit code and the last output. The test also waits for the page to parse before it measures. Before, a fixed wait of 320 ms sometimes measured a page that was not complete.
- **Lockstep tests keep the copies of the rules the same.** `test/test-ste-rules.mjs` fails when `extension/shared/ste-rules.js` differs from the preamble. smoke-test fails when a copy of the resolve chain gives `CLAUDE_PLUGIN_ROOT` a default. It also runs the checker on the report templates and on the fixed text of the extension.
- **smoke-test now has 405 assertions, and the mutation suite has 142 cases.** `CLAUDE.md` describes the writing standard, the checker, the lockstep tests and the new tests. `CONTRIBUTING.md` describes the standard, the check step and the citation-tier tests.

## v3.6.0.0 (2026-09-24)

Adds an optional Consensus evidence engine to the skills and the Chrome extension, and hardens the extension after a code review of v3.5.0.0. The extension no longer asks for access to every website, refuses Canvas pages that show student records, reads every page of a course's assignments, and its privacy notes now say what is sent to Google and to Consensus. The extension is now version 1.1.0 and needs Chrome 116 or later.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# idstack

> **Status: beta (v3.6.0.0).** Skills work end-to-end and ship behind a versioned plugin, but expect rough edges and breaking changes between minor versions while we shake out the rest of the workflow with real instructional designers. See [CHANGELOG.md](CHANGELOG.md) for what's new in the current release. [Tell us what's broken or missing.](https://forms.gle/6LDgDD1M6WWyYvME8)
> **Status: beta (v3.7.0.0).** Skills work end-to-end and ship behind a versioned plugin, but expect rough edges and breaking changes between minor versions while we shake out the rest of the workflow with real instructional designers. See [CHANGELOG.md](CHANGELOG.md) for what's new in the current release. [Tell us what's broken or missing.](https://forms.gle/6LDgDD1M6WWyYvME8)

Decades of research say elaborated feedback improves learning. Cognitive load theory has been replicated for 30 years. Constructive alignment measurably raises grades. The evidence is strong, but most course design tools don't make it easy to apply.

Expand Down
6 changes: 6 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ What's coming next for idstack. Priorities are shaped by user feedback. [Tell us

## Just shipped

### ASD-STE100 writing standard & a fix for finding idstack's scripts (v3.7.0.0)
- **idstack writes the English text that it shows to a person in ASD-STE100.** This includes skill chat, reports, the course dashboard, CLI messages and the Chrome extension. `bin/idstack-ste-check` finds some of the problems, and each skill runs it on each report, dashboard or course file that it writes for a person. ASD does not endorse idstack.
- **Skills find the plugin that Claude Code loaded.** Before, a skill could run the scripts of an old copy of idstack. If an install has no checker, the check step now says so and gives the path.
- **The first report of `/idstack:needs-analysis` or `/idstack:course-import` goes in the right folder.** `/idstack:needs-analysis` and `/idstack:course-import` took the folder name from a manifest that did not exist yet.
- **The Chrome extension is version 1.2.0.** Its fixed text is in ASD-STE100, and five buttons have new names, for example **Audit Full Course** and **Remove All from Dossier**.

### Consensus evidence checks & Chrome extension hardening (v3.6.0.0)
- **An optional Consensus evidence engine, on your own API key.** `bin/idstack-consensus` looks up and caches claims. `/idstack:course-quality-review`, `/idstack:assessment-design`, and `/idstack:red-team` check their findings with it before writing them, and correct four known neuromyths with or without a key.
- **The Chrome extension (1.1.0) reads only the tab you point it at.** It no longer asks for access to every website, refuses Canvas pages that show student records, and reads every page of a course's assignments.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.6.0.0
3.7.0.0
11 changes: 9 additions & 2 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"url": "https://idstack.org",
"applicationCategory": "EducationalApplication",
"operatingSystem": "macOS, Linux, Windows (WSL or Git Bash)",
"softwareVersion": "3.6.0.0",
"softwareVersion": "3.7.0.0",
"datePublished": "2026-04-20",
"offers": {
"@type": "Offer",
Expand Down Expand Up @@ -1030,7 +1030,7 @@
<span class="dot" aria-hidden="true"></span>
<span>MIT</span>
<span class="dot" aria-hidden="true"></span>
<span>v3.6.0.0 · Claude Code &amp; Chrome Extension</span>
<span>v3.7.0.0 · Claude Code &amp; Chrome Extension</span>
</p>
<h1 id="hero-title">Evidence-based instructional design with peer-reviewed citations.</h1>
<p class="lede">108 peer-reviewed studies across 11 research domains. Every recommendation includes its evidence tier: <span class="tier tier-1">T1</span> meta-analyses and RCTs through <span class="tier tier-5">T5</span> expert opinion. Runs in Claude Code and as a native Chrome Extension.</p>
Expand Down Expand Up @@ -1318,6 +1318,13 @@ <h3>Claude Code Plugin</h3>
<h2 id="whatsnew-title">Recent Updates &amp; Release Notes</h2>
</header>

<article class="release-card">
<p class="release-meta">October 9, 2026 · v3.7.0.0</p>
<h3>Simplified Technical English output &amp; a fix for finding idstack's scripts.</h3>
<p>idstack now writes the English text that it shows to a person in the ASD-STE100 Simplified Technical English rules. This includes skill chat, reports, the course dashboard and the Chrome extension. A new script, <code>bin/idstack-ste-check</code>, finds some of the rule problems. Each skill runs it on each report, dashboard or course file that it writes for a person. ASD does not endorse idstack.</p>
<p>This release also fixes how skills find idstack's own scripts. Before, a skill could run the scripts of an old copy of idstack. The first report of <code>/idstack:needs-analysis</code> or <code>/idstack:course-import</code> now goes in the right folder. The Chrome extension is now version 1.2.0, and five buttons have new names, for example <strong>Audit Full Course</strong> and <strong>Remove All from Dossier</strong>.</p>
</article>

<article class="release-card">
<p class="release-meta">September 24, 2026 · v3.6.0.0</p>
<h3>Consensus evidence checks &amp; a hardened Chrome extension.</h3>
Expand Down
Loading