Repository navigation
Releases: 3metaJun/mstack
Release list
v0.12.0
Changes
- Sync pstack from
11713c6toeb4db2b. The bundle grows from 54 to 60
skills. It addscreate-formal-verification-skill,
maintain-formal-verification-skill,statechart,in-your-own-words, and
sharpen, and updates the guides and provenance manifests. /setup-mstacknow offers once to generate a formal verification skill when
the project has none.- Normalize line endings for
.cfg,.mmd, and.tlafiles in skill baseline
digests, so a baseline recorded on a Windows checkout matches one on Linux. - The
statechartCLI prints paths with/on every platform. - Record the current Claude Code, Codex CLI, OpenCode, pi, Antigravity, and
Grok versions in the docs. - Add Dependabot version updates.
Upgrade notes
Reinstall mstack to receive the new skills:
npx @3metajun/mstack --harness all --replaceVerification
PR #54 passed the full Node 18/22 matrix on Linux, macOS, and Windows, plus
meta-mode, package, and strict upstream checks. The statechart tests pass on
Windows; the tests that need TLC are skipped.
v0.11.0
Changes
- Sync pstack to
11713c6, including the newketchupskill and refreshed guides, automations, and upstream manifests. - Preserve mstack portability adaptations while updating the upstream validation pin and reviewed baselines.
Upgrade notes
Reinstall mstack to receive the latest pstack content and the ketchup skill:
npx @3metajun/mstack --harness all --replaceVerification
The release PR passed the full Node 18/22 matrix on Linux, macOS, and Windows, plus meta-mode, package, and strict upstream checks.
v0.10.0
Changes
- Keep MCP tools out of read-only runs.
run-role --read-onlyand the smoke
check now pass--no-mcpto pi and--strict-mcp-configto Claude Code. A
built-in tool allowlist alone left configured MCP servers reachable: pi 1.0.4
and later keeps MCP tools when--toolslists plain names, and Claude Code's
--toolsselects from the built-in set only. - Sync mattpocock/skills from 6654f6b to 49dd158.
diagnosing-bugsreads
GLOSSARY.mdafter upstream's rename ofCONTEXT.md, and asks for adiff
against a pristine copy when a failing test was forced by mutating code or a
fixture.docs/upstream-sync-matt-49dd158.mdlists what was not ported. - Add a
releaseworkflow. When a new version lands on main it runsnpm test
and creates thev<version>GitHub Release from that version's section in
this file. It runs only on main and warns while the version is missing from
npm. Publishing to npm stays manual. - Add
npm run upstream-driftand a weeklyupstream-driftworkflow. They
list upstream commits that are not ancestors of the pins in
profiles/upstreams.jsonand touch the adapted paths. The workflow keeps one
"Upstream drift report" issue current. - Drop PowerShell CLIXML records from the smoke check's reported output, so the
CLI's own error is visible on Windows. - Record in
docs/harness-adapters.mdthat every skill stays model-invocable
on purpose, and cover Grok and Antigravity in the README and social preview.
Upgrade notes
Reinstall skills to receive the diagnosing-bugs update. run-role --read-only
and smoke-harnesses --execute on pi now need pi 1.0.4 or newer, because older
versions reject --no-mcp. A Claude Code read-only run no longer loads MCP
servers from user or project configuration. A project that kept its domain
glossary in CONTEXT.md for diagnosing-bugs should rename it to
GLOSSARY.md. Codex documents its read-only sandbox for shell commands, and
mstack has not checked whether it limits configured MCP tools.
Verification
The pull request passed Node 18/22 CI on Linux, macOS and Windows with the
package and pinned-source checks, and an adversarial review whose four findings
were fixed before merge. The read-only live prompt passed on Windows with Claude
Code 2.1.296, Codex CLI 0.162.0, OpenCode 1.18.34 and pi 1.1.0; pi and OpenCode
ran with an explicit --model. Whether an MCP tool is actually absent in those
runs was taken from each CLI's documentation, not observed with a configured
server. The release workflow ran once on main and found the existing v0.9.0
release; this release is the first one it creates. The upstream-drift
workflow has not run on GitHub yet.
v0.9.0
Changes
- Adapt mstack to T3 Code.
docs/t3code.mdexplains how each T3 provider finds
skills, the install commands per provider,$nameinvocation, worktrees, a
t3.jsonsetup recipe and T3's own safety rules.docs/session-context/T3-CODE.md
is an opt-in routing note for sessions that have thet3-codeMCP tools. - Add T3 host bindings.
skills/meta-mode,recallandcreate-verification-skill
gainreferences/hosts/t3code.md, and the playbooks point to it in neutral
wording. Where T3 provides the primitive, the references bind delegation to
delegate_task, PR watching towatch_pull_request, scheduling to
schedule_task, thread history tot3_thread_searchandt3_thread_read, and
runtime evidence topreview_*anddevice_*. Shipping keeps a bounded
merge-confirmation task because T3 does not wake a thread on merge.npm test
now fails when a T3-only tool name appears underskills/outside
skills/*/references/hosts/. - Add
antigravityandgrokharnesses. Antigravity installs to
~/.gemini/antigravity-cli/skills(overrideHARNESS_SKILLS_ANTIGRAVITY_DIR)
and Grok shares~/.agents/skills(overrideHARNESS_SKILLS_GROK_DIR). Both
haverun-roleandsmoke-harnessesruntimes;runtime.promptArgsplaces
flags that take the prompt as their value. Cursor needs no target because it
reads~/.agents/skills. - Add project-scope install:
--project <repo>copies skills into each
harness's project root (.agents/skills,.claude/skills). It refuses
artifacts,--migrateand--environment, rejects project paths that
resolve into a user skill root, the package, an enclosing discovery root or
installer storage (symlinks, junctions and case variants included), and keeps
--replacebackups beside the skill roots. - Add provider instances and effort options to model roles.
overrides.t3code
andbudgets.t3codeaccept<provider>/<model> (<effort>)strings or
{ provider, model, effort }objects, andmodel-budgetsets the effort from
a catalog's explicit option list. Harness role strings stay opaque. Reserved
keys such as__proto__are rejected and budget writes use own properties.
setup-mstackreads the T3 reference on a host that lists provider instances. - Add the
mstack-helpentry skill (54 skills) for install, setup and "which
skill fits" questions.profiles/local-skills.jsonletsskill-baseline
record a wholly local skill, and--checkderives upstream ownership from the
profiles so a manifest cannot reclassify an upstream file as local. - Reject skill frontmatter that Cursor and Antigravity silently drop: a plain
nameordescriptionthat is invalid YAML (:,#, a leading
indicator, malformed quoted or block scalars) or a name outside T3's chip
pattern. A#in a plain scalar is rejected on purpose, since YAML would
truncate the value there. - Detect filesystem case sensitivity for installer path keys instead of
lowercasing on macOS, so a case-sensitive volume no longer reports distinct
paths as overlapping.
Upgrade notes
Reinstall skills to receive mstack-help and the updated playbooks.
--harness all now also covers antigravity and grok: Antigravity gets its
own copy in ~/.gemini/antigravity-cli/skills, and Grok joins the shared
~/.agents/skills copy, so a rerun on an existing machine adds the Antigravity
copy. --project installs skills only, and a
fresh T3 worktree contains only committed files, so commit the project copy or
use the user-level install. Existing models.json files stay valid.
Contributors with skills whose plain-scalar description contains : or #
must quote it. docs/guide/07-overnight.md now mentions schedule_task.
Verification
Seven of the eight pull requests (all but the case-sensitivity fix) were
reviewed with pi (provider relay-gpt, model GPT-6.1-SOL) until the last round
returned no blocker or major findings, and every one passed Node 18/22 CI on
Linux, macOS and Windows with the package and pinned-source checks. The T3 behavior described here was checked against the T3
Code source at commit 8f75697, not against a running T3 Code session. The
merge-confirmation task, delegate_task targets and effort option resolution
were not exercised live. The agy and grok read-only arguments and
run-role calls were run against agy 1.2.16 and Grok CLI 1.0.46; agy's
--mode plan is an agent mode, not a tool restriction.
v0.8.0
Changes
- Sync pstack from f5bdd68 to 2cbf585. Add
benchmark-checklist,correctand
principle-explain-the-number(53 skills). Subagents are fresh by default,
autopilot audit ticks run hourly,architectscreens designs for agent
mistakes,perf-issueandhillclimbfollow the performance mantras, and the
Opening a PR playbook prefers the run's built-in PR tool. The upstream model
slug and Cursor rule edits are not ported.poteto-helpis skipped because it
needs repository docs that the installer does not ship. - Keep autopilots restart-safe without
/goal: on the operator's go the root
writes a program objective (queue, order, verification rule, who merges, done
condition) to a savedprogram.mdor the Harness goal mechanism, and every
hourly tick re-reads it.check-plan.mjsrequires the objective and hourly
cadence in program checklists, outside fenced examples. - Add a Claude Code SessionStart hook to the plugin (
hooks/hooks.json,
scripts/session-hook.mjs). It routes multi-file or unknown-cause work to
meta-modeon startup, resume, clear and compact. Turn it off with
"sessionHook": falsein~/.config/mstack/models.json. The installer path
ships no hook.readModelConfignow reads UTF-8 BOM and UTF-16 LE files.
Plugin validation checks the hook, its context file and agent paths. - Harden
check-plan.mjs: strip a UTF-8 BOM, parse fences like CommonMark
(at most three spaces of indent), and require a box under each program task
and under Close the program. - Harden
worktree-audit: scan Claude, Codex (CODEX_HOME) and pi session
stores, match Windows, UNC and JSON-escaped path spellings without matching
sibling paths, and mark a worktree safe only when its HEAD is inorigin/main
or exactly matches a PR merged intomain. - Add
docs/guide/12-claude-code-routing.md.
Upgrade notes
Reinstall skills to receive the new and updated skills. The hook ships with the
Claude Code plugin only and needs node on PATH; the plugin and the installer
should not both be active on one machine. Plans that already use the old
/goal and 30-minute tick wording fail check-plan until they name the program
objective and the hourly cadence. Effort-level agent variants were evaluated and
not added: the Codex agent conversion rejects an effort field and a
Claude-only generated copy would be dead code.
Verification
Each of the three pull requests was reviewed with pi (provider relay-gpt, model
GPT-6.1-SOL) until its last round returned no P0 or P1 findings, and Node 18/22
CI passed on Linux, macOS and Windows with the package and pinned-source checks.
claude plugin validate . --strict passed for the hook PR on Claude Code
2.1.289. The hourly program-objective flow was not exercised through a real
restart.
v0.7.0
Changes
- Add a Claude Code plugin marketplace (
.claude-plugin/) so
claude plugin marketplace add 3metaJun/mstackfollowed by
claude plugin install mstack@mstackinstalls all 50 skills and both agents,
including the filesmeta-modeneeds undertools/meta-mode. The plugin
version tracks the npm version. - Add
npm run pack-claude-skillsto validate skills against Claude upload
limits and build one zip per skill for Claude Desktop chat, Cowork, and
claude.ai. The packer rewrites links that leave a skill, leaves code alone,
rejects reference-style links that cannot be rewritten, applies the Agent
Skills name rules, and checks the Skills API's 30 MB limit against
uncompressed bytes. - Check the Claude plugin manifest and its version in
npm testand
npm run check-package, and skip the local.piruntime directory in the
private-data scan.
Upgrade notes
No skill content changed. Use either the plugin or the installer for Claude
Code on one machine, because both load and the duplicates compete for the skill
listing budget. Upload packages have not been tried against Claude Desktop or
claude.ai. Claude's skill-authoring documentation gives a 1,024-character
description limit while a Help Center article gives 200; several skills exceed
200, so shorten descriptions for the upload if one is rejected.
Verification
Both pull requests passed independent subagent review with the confirmed
findings fixed (three rounds for the packer). Node 18/22 CI passed on Linux,
macOS, and Windows, together with package checks and both pinned-source
integrity checks. claude plugin validate . --strict passes with Claude Code
2.1.287, and an isolated install loaded 50 skills and 2 agents.
v0.6.0
Changes
- Fix autopilot owner babysitting and stack topology boundaries; start verification at code-ready and isolate replacement writers.
- Require swarm results to match requested commit SHAs and measurement methods. Track decision-log run identity while preserving append-only history.
- Add catalog-validated reasoning-budget effort rewrites with preview, atomic application, alias preservation, and duplicate-panel rejection.
- Port requested upstream prompt reductions and bounded per-lane shipping build-output reuse. Dev-server lanes and lanes without saved build output must rerun; current-head checks and review remain mandatory.
Upgrade notes
Reinstall skills to receive the workflow changes. Reasoning budgets select effort variants, not spending caps. Prompt reductions apply to the shared tree; equivalent behavior across models has not been demonstrated. Upstream source pins remain unchanged for these selective reviewed ports.
Verification
Independent subagent review findings were fixed before merge. CI passed Node 18/22 on Linux, macOS, and Windows, Bun tests/typecheck, packaging, and pinned-source checks. The final local release check passed 212 tests with one Unix-only skip on Windows.
Publication
GitHub Release and source version are prepared. npm publication is intentionally left to the maintainer; this release does not assert that npm 0.6.0 has been published.
PRs: #20, #23, #24. PR #23 supersedes the closed stacked PR #21.
v0.5.0
v0.4.2
v0.4.1
Upgrade notes
Run npx @3metajun/mstack@0.4.1 --harness all --migrate --replace --dry-run
to inspect the migration, then repeat without --dry-run. Recognized legacy
copies are backed up outside skill discovery roots. Unrecognized local
copies stop migration before writes. SSH migration must run locally on the
target machine.
Fixes
- Share one canonical skill copy across Codex, OpenCode and pi. Claude keeps
its adapter and derives skill names from directories, so OpenCode skips its
duplicate copy without changing global settings. - Migrate legacy copies, archived backups and interrupted stages with retained
originals and rollback. Validate physical path aliases before writing. - Keep agent definitions in native directories and shared tools beside their
skills. Deduplicate compatible explicit and remote targets. - Reuse target resolution in the installer and smoke checks so OpenCode and pi
checks inspect the shared installation.
Publication
This release includes the tested npm tarball. npm publication is pending and will be performed separately by the maintainer. The upgrade command above applies after publication.
Includes #18 and the shared installer/smoke path-resolution improvement identified in #17.