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 .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mstack",
"version": "0.2.1",
"version": "0.3.0",
"description": "Portable engineering skills for Codex, Claude Code, OpenCode, and pi.",
"author": {
"name": "3metaJun"
Expand Down
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Changelog

## 0.3.0 - 2026-09-11

This release includes the workflow, installation, and model execution fixes
merged since npm version 0.2.0.

### Upgrade notes

- `run-role` no longer treats `inherit-parent` as the new CLI's default model.
Add `--parent-model <known-parent-model>` to inherit explicitly, or choose
`--model auto` to use the CLI default. An explicit `--model <name>` also works.
Calls without a model configuration need an explicit model selection too.
- Codex's optional agent artifacts are now TOML files in `CODEX_HOME/agents`,
defaulting to `~/.codex/agents`. Reinstall with the `agents` artifact selected.
A custom remote skill directory needs an explicit agent artifact target.
- Malformed or repeated model options and whitespace-padded model names are
rejected. History commands reject repeated single-value options while
allowing repeated `--exclude` arguments.

### Changes

- Restore upstream workflow instructions, design references, TypeScript
examples, and missing support files. Integrity checks now cover all 50 skill
trees and moved files against both pinned upstream sources.
- Support reviewer model lists, explicit list selection, and concurrent
read-only execution with per-model output and failure reporting.
- Ship a standalone history reader for Codex, Claude Code, OpenCode, and pi.
It scopes reads to the requested workspace, reconstructs supported branches,
bounds excerpts, and preserves warnings about incomplete results.
- Complete the bundled skill-authoring workflow and installed-skill fallbacks
for `recall`, `reflect`, and `automate-me`.
- Correct Harness metadata and agent formats, preserve agent bodies during
conversion, and reject conflicting or invalid artifact targets before writes.
- Keep npm ignore rules outside the reviewed runtime tree so installed-package
integrity checks succeed. CI rejects packages missing any reviewed skill file.

### Verification

The integrated source passed 125 tests on Windows with one expected Unix-only
skip, package checks, and both pinned-source integrity checks. CI covers Linux,
macOS, and Windows on Node 18 and 22.

Real diagnosis workflows loaded the restored skill, reproduced an asynchronous
cache invalidation failure, and identified its cause in pi, OpenCode, Claude
Code, and Codex. The Claude Code and Codex runs used GLM in Debian WSL. Codex
completed with `low` reasoning effort; its first `max` run timed out. Its
sandboxed test subprocess needed a direct invocation of the same test file to
show the individual assertions. These checks cover the diagnosis workflow, not
every skill or model setting.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@3metajun/mstack",
"version": "0.2.1",
"version": "0.3.0",
"description": "Portable engineering skills for Codex, Claude Code, OpenCode, and pi.",
"repository": {
"type": "git",
Expand Down Expand Up @@ -40,6 +40,7 @@
"agents",
".codex-plugin",
"README.md",
"CHANGELOG.md",
"LICENSE",
"THIRD_PARTY_NOTICES.md"
],
Expand Down
5 changes: 0 additions & 5 deletions profiles/skill-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -692,11 +692,6 @@
"sourceDigest": "551adca942227b44192edba88acd4e8db911f0121ce58ad16944ccf6a896a74a",
"targetDigest": "3b50712cac5d212e449bc9e9baeed4866412b152aa30feef53fdc4a0f3791840"
},
"tools/meta-mode/.npmignore": {
"upstream": null,
"reason": "Local portability guidance or implementation; review alongside its owning skill.",
"targetDigest": "4d56952b0fb13bf8f9b6c13a6d4c34a075bac3af447636a1df4335d7576e2f97"
},
"tools/meta-mode/bootstrap.ts": {
"upstream": "pstack",
"source": "skills/poteto-mode/scripts/bootstrap.ts",
Expand Down
7 changes: 7 additions & 0 deletions scripts/check-package.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ if (forbidden.length) {
throw new Error(`npm package contains excluded files:\n${forbidden.join("\n")}`);
}

const baseline = JSON.parse(readFileSync(join(repoRoot, "profiles", "skill-manifest.json"), "utf8"));
const packedFiles = new Set(report.files.map((file) => file.path));
const missing = Object.keys(baseline.files).filter((path) => !packedFiles.has(path));
if (missing.length) {
throw new Error(`npm package is missing reviewed skill files:\n${missing.join("\n")}`);
}

console.log(
`Package contains ${report.entryCount} files (${report.size} bytes packed, ${report.unpackedSize} bytes unpacked).`,
);
1 change: 1 addition & 0 deletions tools/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/node_modules/
1 change: 0 additions & 1 deletion tools/meta-mode/.npmignore

This file was deleted.