Releases: kinncj/MAPLE
v4.10.18 — fix hook paths when launched from subdirectory
Hook commands now cd to the git root before running, so pre-bash.sh / post-bash.sh / post-write.sh work correctly when Claude Code is opened from a subdirectory (e.g. app/) rather than the project root. The hook scripts use relative paths internally (scripts/sdlc/, docs/stories/) and were silently broken in that case.
v4.10.17 — fix shellcheck in test_skills_sh.sh
Fix SC2015 (&&/|| anti-pattern) and SC2034 (unused variable) in tests/template/test_skills_sh.sh — CI was failing the lint step.
v4.10.16 — drop duplicate skills/ dir
Remove skills/ directory added in v4.10.15 — canonical skill location is template/.claude/skills/ (per harness). Root SKILL.md kept as the package descriptor for skills.sh.
v4.10.15 — skills.sh integration: tests, registry fallback, publishing
What's new
skills.sh integration overhaul
- Fixed
npx skillsinvocation across the board: replaced--yesflag withnpm_config_yes=trueenv var — the old approach failed in projects without apackage.json, which is most non-Node projects [F]skills browser now reliably works from any project type
pipeline-runner registry fallback
- When a skill isn't found locally,
pipeline-runnernow triesnpx skills add kinncj/maple@<name>from skills.sh before giving up - Applies to both Claude Code and OpenCode harnesses
MAPLE skills published to registries
SKILL.mdat repo root:npx skills add kinncj/mapleinstalls the full skill setskills/dir: individual skills installable asnpx skills add kinncj/maple@pipeline-runner,@tdd-workflow,@github-cli, etc.- skills.sh indexes via install telemetry; skillsmp.com auto-scrapes GitHub — both will discover MAPLE automatically
Tests
- 17 Go unit tests for all output parsing functions (
parseSkillsOutput,parseInstalledJSON,parseInstalledText,stripANSI) - New
tests/template/test_skills_sh.shintegration suite: live skills.sh API, install verification, publishing structure checks — 9 pass, CI-safe (network tests skip onCI=true)
v4.10.14 — taffy approval auto-resumes agent
Pressing [a] in the pipeline overlay now sends a continue keystroke to the agent's pane so the paused taffy resumes without the user having to switch windows and type it manually.
Mechanism per environment:
- Outer tmux: captures the new pane id on launch,
tmux send-keys -t <pane>on approve - Outer zellij: launches with a named tab, focuses + writes on approve
- No multiplexer but tmux installed: transparently wraps the launch in
tmux new-session -d -s maple-<harness>and attaches from the spawned terminal, so approve still has a target - No multiplexer, no tmux: file-deletion polling only (previous behaviour)
Works for claude, opencode, and copilot uniformly. Skill poll also bounded with timeout 540 and instructed to retry so approvals that take longer than the Bash tool's 10-minute cap no longer go silently ignored.
v4.10.13 — fix copilot launch crash
Fixes [x] quick prompt (and L launcher) crashing copilot. The copilot CLI does not accept a positional prompt — it errored out and closed the terminal immediately. Now uses -i/--interactive <prompt> so the prompt is executed in an interactive session.
v4.10.12 — quick prompt always shows harness picker
Fixes [x] quick prompt silently auto-selecting the first harness with a pinned session, which skipped the picker and failed silently when the stored session ID was stale. Picker is now always shown for any harness (claude, opencode, copilot) and annotates each with its pinned session so you can see what will resume.
v4.10.11 — rtk global hook wiring
What's new
maple init/maple update: RTK is now wired globally withrtk init -g --auto-patch- Previously used
rtk init(local, no-op without--auto-patch) — hook was never actually added tosettings.json -gadds the hook to~/.claude/settings.jsonso it works across all projects- Also wires the OpenCode plugin with
--opencode - Confirms hook status via
rtk init --showafter wiring - Idempotent — safe to re-run on
maple update
- Previously used
maple rtk-auditnow shows three things in sequence:- Hook wiring status (
rtk init --show) - Token savings analytics (
rtk gain) — works without audit log - Audit log (
rtk hook-audit) — populated when sessions run withRTK_HOOK_AUDIT=1
- Hook wiring status (
v4.10.10 — rtk hook-audit wiring
What's new
maple initnow runsrtk hook-auditafterrtk initto verify hooks are correctly wired — warns if they're notmaple rtk-audit— new subcommand, direct alias forrtk hook-auditmaple resume-session— setsRTK_HOOK_AUDIT=1in the child process environment when rtk is on PATH- All TUI-spawned harnesses (
[x]quick launch,[L]launcher,[o]open session) — prefixed withenv RTK_HOOK_AUDIT=1so hook activity is logged automatically
v4.10.9 — [x] TAFFY-first picker with [t] toggle
What's new
- [x] quick launch defaults to TAFFY — opens the taffy workflow picker instead of skills/agents
- [t] toggles between modes — switch between TAFFY workflows and the skills/agents list; search resets and stays mode-aware
- Taffy badge shows stage count —
[taffy 6 stages]so you know what you're launching before you select it - Taffy items launch via
/pipeline-runner <name>— skills/agents still launch as/<name> loadTaffyItems()reads.claude/taffy/*.yaml, parsing name, description, tags, and stage count