Install any skill in seconds. Free to start, no credit card required.
Get Started Free →agent-sh/maintain-cross-platform
Use when preparing releases, validating cross-platform compatibility, or updating installation infrastructure. Meta-skill for maintaining AgentSys's 3-platform architecture.
Passed 15 of 18 test cases with the skill, and 3 of 18 without it.
and 20 more in the full report
12 fixed3 passed either way3 still failing0 broke4 errored
Tokens, turns and time describe resource use, not a dollar price.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
Standard npm run validate runs fast structural and path validation checks, but does not test a real OpenCode installation flow. What CLI command runs a full integration validation for an OpenCode installation?
| Checked | Without skill | With skill |
|---|---|---|
| Specify executing node bin/dev-cli.js validate opencode-install. | Missed | Passed |
| Explain that testing a real OpenCode installation is separated from standard npm run validate. | Missed | Passed |
The instructions your model reads when the skill loads.
AgentSys installs the agent-sh plugins on Claude Code, OpenCode, Codex CLI, Cursor and Kiro. The plugins live in their own repos; this repo owns the marketplace, the installer, the transforms and the docs. Use this skill to find where a cross-platform concern lives and what to run.
Platform details (config formats, frontmatter, env vars, label limits) are in checklists/cross-platform-compatibility.md and docs/CROSS_PLATFORM.md; release steps are in checklists/release.md and agent-docs/release.md. Read them for the current facts instead of relying on memory.
| Concern | Location |
|---|---|
| Marketplace, one entry per plugin pinned by tag and commit | .claude-plugin/marketplace.json; re-pin with node scripts/pin-marketplace.js [--dry-run] (needs gh) |
| Installer | bin/cli.js: installForClaude, installForOpenCode, installForCodex, installForCursor, installForKiro. Claude Code installs from the marketplace; the others fetch plugin sources into ~/.agentsys/plugins/<name> and transform them. |
| Transforms (frontmatter, tools to permissions, plugin-root paths, namespaces) | lib/adapter-transforms.js. lib/ is synced from agent-sh/agent-core, so make the change there; an edit here is overwritten by the next sync. |
| Platform adapters | adapters/opencode-plugin/ (native OpenCode plugin), adapters/opencode/, adapters/codex/; scripts/gen-adapters.js keeps generated files fresh |
| Dev installs | node bin/dev-cli.js dev-install [tool] (scripts/dev-install.js) |
| Versions | package.json is the source; npx agentsys-dev bump X.Y.Z stamps package-lock.json, .claude-plugin/plugin.json, marketplace.json and site/content.json. Plugin repos version independently. |
| Generated doc sections | <!-- GEN:START:... --> blocks, rewritten by npx agentsys-dev gen-docs |
${CLAUDE_PLUGIN_ROOT} in Claude Code, ${PLUGIN_ROOT} in OpenCode and Codex; Cursor and Kiro get the install path inlined. Normalize backslashes in require() paths (.replace(/\\/g, '/')), because a Windows path such as C:\Users\... turns into escape sequences.AI_STATE_DIR (.opencode, .codex, .cursor, .kiro; unset means .claude) instead of a hardcoded .claude/. validate paths catches hardcoded ones.--no-strip keeps them), tools become permission: entries, and AskUserQuestion labels longer than 30 characters fail.$name, so every skill description needs trigger phrases ("Use when ...").~/.kiro/prompts/, agents become JSON in ~/.kiro/agents/, and two combined reviewer agents fit its 4-subagent limit. Each skill directory is copied whole to ~/.kiro/skills/<name>/, away from its plugin, so the installer and the Kiro transforms point plugin-root wording ("two directories up from this skill"), relative links that leave the skill directory, and versioned-cache globs (**/<plugin>/*/) at ~/.agentsys/plugins/<plugin>.| Command | Covers |
|---|---|
npm run validate | plugins, cross-platform, consistency, paths, counts, platform-docs, agent-skill-compliance |
npm test | Jest suite |
npm run gen-docs:check, node scripts/expand-templates.js --check, node scripts/gen-adapters.js --check | Generated content is fresh (CI runs all three) |
npx agentsys-dev preflight [--all|--release] | Change-aware checklist checks. The pre-push hook runs it, asks for the /enhance confirmation, and runs --release when a v* tag is pushed. |
node bin/dev-cli.js validate opencode-install | A real OpenCode install (not part of validate) |
npm pack --dry-run | The package builds |
Before a release, smoke-test the installer: npm pack, npm install -g ./agentsys-*.tgz, run agentsys, and check each platform's install directory as checklists/release.md lists.
If this skill or a checklist no longer matches the code, fix it in the same change.
test cases passed, vs 3 / 18 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.