v0.2.0 β OpenCode support, npm CLI, Mermaid hardening
Highlights
- OpenCode is now a first-class install target. Both
iagoandsquawkskills install into~/.config/opencode/skills/natively, with auto-detection ininstall.shand the new TS CLI. The skills are also runtime-agnostic β no more hard-coded${CLAUDE_SKILL_DIR}references. @drakulavich/iagoCLI on npm. A Bun + TypeScript CLI ships alongside the bash installer for users who prefernpx/bunx. Exposesinstall,update, anduninstallwith the same target/skill-only flags as the shell installer.- Mermaid rendering hardened. Three layers of defense against the most common rendering failure (
;insidesequenceDiagrammessage labels breaking GitHub's parser): updated authoring rules inSKILL.md+references/mermaid-templates.md, an explicit ban on bypassing the helper script, and a deterministic Python sanitizer that rewrites;β,in sequence messages before posting.
What's new
Skills
feat(skill): make SKILL.md runtime-agnosticβ fallback chain${CLAUDE_SKILL_DIR:-${OPENCODE_SKILL_DIR:-$(dirname "$0")}}(3ae2010)fix(skill): teach iago about Mermaid sequence pitfallsβ;-as-separator and bare-statements-in-altrules added toreferences/mermaid-templates.md(0d593ee)fix(skill): auto-sanitize ';' in Mermaid sequence message labelsβ deterministic safety net runs before posting (1818b5c)fix(skill): require helper script + promote ';' rule to top-levelβgh pr comment/gh api PATCHdirect writes for the diagram are now forbidden by the skill contract (9238635)fix(skill): extract Mermaid sanitizer to standalone Python fileβ fixes a heredoc parse error on macOS bash 3.2 by moving the sanitizer toiago/scripts/sanitize_mermaid.py(c2c6ef5)
CLI (@drakulavich/iago)
Add @drakulavich/iago CLI (TS + Bun) β Phase 2β initial CLI with 41 unit/integration tests (88f05ff)feat: add opencode as a native install targetβ fifth target acrossinstall.sh,cli/src/{args,types,targets}.ts, plus tests (a14f69b)fix(cli): replace Bun-only APIs with node:* equivalentsβBun.file/write/spawnβnode:fs+node:child_process, fixesReferenceError: Bun is not definedundernpx(fdd45c7)feat(cli): npm publish workflow + cli-local README/LICENSEβ tag-triggered publish with provenance (fd8cf0d)
Install / update
Bash installer (existing users β recommended path)
curl -fsSL https://raw.githubusercontent.com/drakulavich/iago/main/install.sh | bash -s -- --forcenpm / bunx (new in this release)
npx -y @drakulavich/iago install
# or
bunx @drakulavich/iago installBoth honor --target=claude|codex|agents|opencode|both, --skill-only=iago|squawk, --force, --dry-run, and --uninstall.
Compatibility
- macOS bash 3.2: tested via the bats CI matrix and explicitly fixed in c2c6ef5.
- Node β₯ 18: required by the npm CLI; Bun also supported.
- OpenCode: native install target. Existing
~/.claude/skills/and~/.agents/skills/installs already light up under OpenCode per opencode docs.