Skip to content

v0.2.0 β€” OpenCode support, npm CLI, Mermaid hardening

Choose a tag to compare

@drakulavich drakulavich released this 04 May 05:13
· 24 commits to main since this release

Highlights

  • OpenCode is now a first-class install target. Both iago and squawk skills install into ~/.config/opencode/skills/ natively, with auto-detection in install.sh and the new TS CLI. The skills are also runtime-agnostic β€” no more hard-coded ${CLAUDE_SKILL_DIR} references.
  • @drakulavich/iago CLI on npm. A Bun + TypeScript CLI ships alongside the bash installer for users who prefer npx / bunx. Exposes install, update, and uninstall with the same target/skill-only flags as the shell installer.
  • Mermaid rendering hardened. Three layers of defense against the most common rendering failure (; inside sequenceDiagram message labels breaking GitHub's parser): updated authoring rules in SKILL.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-alt rules added to references/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 PATCH direct 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 to iago/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 across install.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, fixes ReferenceError: Bun is not defined under npx (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 -- --force

npm / bunx (new in this release)

npx -y @drakulavich/iago install
# or
bunx @drakulavich/iago install

Both 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.

Full changelog

v0.1.1...v0.2.0