Skip to content

Commit b795d02

Browse files
authored
Merge pull request #68 from savvides/feat/claude-code-only
feat!: drop the Codex CLI target — idstack is Claude Code only (v3.4.0.0)
2 parents 2a9d7b1 + 6813532 commit b795d02

49 files changed

Lines changed: 733 additions & 14150 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "idstack",
3-
"version": "3.3.0.4",
3+
"version": "3.4.0.0",
44
"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.",
55
"author": {
66
"name": "Philippos Savvides",

AGENTS.md

Lines changed: 0 additions & 223 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,38 @@
11
# Changelog
22

3+
## v3.4.0.0 (2026-08-06)
4+
5+
idstack is a Claude Code plugin now, and only that. The OpenAI Codex CLI target that shipped in v2.5.0.0 is removed, and the Gemini CLI target that was planned is off the roadmap. Nothing about the 11 skills, the evidence base, the manifest schema, or the report contract changes.
6+
7+
To update: `cd` into your idstack clone, then `git pull && ./setup`. Restart Claude Code afterward — plugins load at session start.
8+
9+
### Removed — the second CLI target
10+
11+
- **Codex CLI is no longer supported.** `./setup` no longer detects `codex` on `PATH`, and the `--codex` / `--no-codex` flags are gone (passing either is now an unknown-argument error). `dist/codex/` is deleted, along with the repo-root `AGENTS.md` and `templates/agent-context.md`, the file it was generated from.
12+
- **If you had the Codex install, `./setup` will not clean it up** — it no longer knows those paths, and with `dist/codex/` deleted the symlinks it created now dangle. Remove them yourself:
13+
14+
```bash
15+
rm -f "${CODEX_HOME:-$HOME/.codex}"/skills/idstack-* "$HOME/.agents/plugins/idstack"
16+
```
17+
18+
For a `--local` install the same two live under the project: `./.codex/skills/idstack-*` and `./.agents/plugins/idstack`.
19+
- **Gemini CLI support is off the roadmap.** It was never implemented; the ROADMAP and TODOS entries planning it are removed.
20+
21+
### Changed
22+
23+
- **`bin/idstack-gen-skills` takes no `--target`.** One output layout, `skills/<name>/SKILL.md`. A caller passing `--target all` now exits 2 — `setup` and `test/mutation-test.sh` were updated.
24+
- **`$_IDSTACK` resolution dropped two paths.** `~/.agents/plugins/idstack` and `~/.agents/skills/idstack` existed only for the Codex install layout. The chain is now `CLAUDE_PLUGIN_ROOT`, `IDSTACK_HOME`, then the Claude Code marketplace cache. All five copies move together: the canonical snippet, the preamble's three inline blocks, and the longhand copy spliced from `templates/manifest-schema.md`.
25+
- **The preamble's Interaction Conventions no longer describe two hosts.** `AskUserQuestion`, `Agent`, and `Skill` are still named as concepts, and `Agent`'s inline fallback stays — it is genuinely absent from some skills' `allowed-tools`. What goes is the per-CLI translation rule that told the model to rewrite `/idstack:foo` as `$foo`. `/idstack:pipeline`'s degradation branch now prints `/idstack:<skill>` instructions and fires on a failed `Skill` call rather than on a host without the tool.
26+
27+
### For contributors
28+
29+
- **A regression gate replaces the Codex assertions.** smoke-test lost the 47 assertions covering the Codex bundle and gained 7: `dist/`, `AGENTS.md`, and `templates/agent-context.md` must not exist; the generator must accept no `--target`; the resolve snippet and preamble must not carry the `~/.agents` fallbacks; and a repo-wide grep must find no `codex`/`gemini` outside `CHANGELOG.md`. That last one is the assertion that matters — a green suite proves nothing once you delete the checks that were doing the looking. 393 → 353 assertions.
30+
- **One deliberate exemption in that sweep.** `test/smoke-test.sh` and `test/test-version-classifier.sh` credit "Gemini Code Assist", the PR-review bot that flagged the version classifier on #15, #19, #20, and #21. That attribution is why those cases exist and has nothing to do with the CLI, so it stays. It is exempted by a per-line `IDSTACK_CLI_LEAK_ALLOW` tag, not by filtering the bot's name as a string — the first draft did the latter, which silently exempted that string everywhere and would have let an untagged capability claim carrying it through anywhere in the repo. Mutation 17 pins the difference.
31+
- `test/mutation-test.sh`'s `regen()` called `--target all` under `|| true`. Left alone, the flag removal would have turned every regeneration into a silent no-op, and the mutations would have been caught by the staleness gate instead of by the assertions they exist to exercise. Fixed. Its fixture now also copies `CLAUDE.md`, `CONTRIBUTING.md`, `DESIGN.md`, and `ROADMAP.md` so the new sweep can see them.
32+
- `test/test-setup.sh` no longer passes `--no-codex`, and `test/integration-test.sh` no longer builds `dist/` and `AGENTS.md` into its sandbox.
33+
- Four new mutations prove the gate bites: a reference reintroduced into README, an empty `dist/` directory (which the content grep alone would miss), an untagged reference inside `docs/index.html` — the one file carrying legitimate tagged lines, so this catches a future "simplification" from exempting lines to exempting the whole landing page — and a capability claim that happens to carry the review bot's name. Mutation suite 18 → 22.
34+
- `regen()` in the mutation suite no longer swallows a generator failure. A failed regeneration means the mutation trips smoke-test's staleness gate instead of the assertion it exists to exercise, and every GUARDED line after it is meaningless. It now aborts loudly.
35+
336
## v3.3.0.4 (2026-08-06)
437

538
No user-facing change — this release is test coverage for the two scripts a user runs when something has gone wrong.

0 commit comments

Comments
 (0)