Skip to content

fix: adaptive prompt hint + clearer bundled-skill wording + demo/README refresh#155

Merged
imarios merged 6 commits into
mainfrom
docs/refresh-demo-and-readme
May 23, 2026
Merged

fix: adaptive prompt hint + clearer bundled-skill wording + demo/README refresh#155
imarios merged 6 commits into
mainfrom
docs/refresh-demo-and-readme

Conversation

@imarios
Copy link
Copy Markdown
Owner

@imarios imarios commented May 23, 2026

Why

Four connected fixes discovered while refreshing the demo recording:

  1. Include all? [Y/n/1,3,5] prompt was misleading1,3,5 was hardcoded, so with 2 detected agents the user saw [1] / [2] followed by a hint claiming indices 3 and 5 were valid too. Spotted in the new demo recording.
  2. bundled-skill warning read as agent-not-installed"Claude Code: not installed" is ambiguous: the user is plainly running inside Claude Code. What's missing is the skilltree skill for that agent. Renamed to "Claude Code: skill missing".
  3. Demo was undersold — last touched 2026-04-05, missing doctor, multi-agent showcase, packs footer, etc. (~48 commits since).
  4. Two stale README rowslist and vendor descriptions elided behavior shipped in PR Bundled bugfix sweep — issues #150, #138, #143, #72 #152 and per docs/specs/multi-agent.md R19.

What changed

  • src/commands/init.ts — new buildSelectionHint(n) helper that sizes the example indices to the actual option count (n=2 → 1,2, n=3..4 → 1,3, n≥5 → 1,3,5). Applied at both prompt sites.
  • src/commands/doctor.tsformatAgentState's "missing" branch now renders "<Label>: skill missing".
  • Tests — parametrized table for buildSelectionHint; regression guard on the init prompt hint; tightened BSC1 to fail on the old "not installed" wording.
  • demo/demo.tape
    • Swapped .codex detection for .cursor — codex installs into .agents/ (codex reads from there), and the surprise path in the demo's .gitignore output read like a bug to viewers.
    • Replaced bare ls with skilltree targets list.
    • Appended Scene 8 (skilltree doctor) and Scene 9 (skilltree list).
  • README.md — note the "Defined packs" footer on list, and the --target requirement on vendor with multiple install_targets.

How tested

  • bun test — 1629 pass, 0 fail (added 7 new assertions across 2 files).
  • TDD red→green for both code fixes.
  • Audited every label-prefixed user-facing string (install.ts:201, verify.ts status column, targets list, other doctor cases) — no similar agent-vs-skill ambiguity found.
  • Re-recorded the demo from this branch (against dist/skilltree built at 0.38.0 + both fixes) and republished. Live: https://imarios.github.io/skilltree/demo.mp4

Risk & rollback

Low. Both fixes are additive/wording; existing parse grammar and doctor status enums untouched. Demo and README changes are docs-only. Revert via git revert per commit if a tweak is preferred.

imarios added 2 commits May 23, 2026 10:29
- demo.tape: replace bare ls with `skilltree targets list`, append `doctor`
  and `list` scenes so the demo reflects current CLI surface (PRs since
  c303916: doctor, gitignore drift check, packs footer, etc).
- README commands table: note the new "Defined packs" footer on `list`
  and the `--target` requirement on `vendor` with multiple install_targets.

No code change; re-record (`make gh-demo`) deferred to sir.
The "Include all? [Y/n/1,3,5]" prompt hardcoded "1,3,5" as the
comma-separated-index sample, which advertised indices that don't
exist when fewer than 5 options are printed. With two detected
agents the user saw `[1] / [2]` followed by `[Y/n/1,3,5]`, suggesting
indices 3 and 5 were valid picks.

- Add `buildSelectionHint(n)` that sizes the sample to the actual
  count (n=2 → "1,2", n=3..4 → "1,3", n>=5 → "1,3,5").
- Apply it at both prompt sites (`promptForTargetSelection`,
  `promptForSelection`).
- Update demo.tape to detect cursor instead of codex — codex's
  install dir is `.agents/` (codex reads from there), which made
  the gitignore output in the demo look like a bug to viewers.
@imarios imarios force-pushed the docs/refresh-demo-and-readme branch from 6b9f556 to df72888 Compare May 23, 2026 17:37
@imarios imarios changed the title docs: refresh demo scenes + README list/vendor rows fix(init): adaptive prompt hint + demo/README refresh May 23, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.03%. Comparing base (01d6336) to head (01e74e6).
⚠️ Report is 1 commits behind head on main.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The bundled-skill check's "missing" state rendered as
"Claude Code: not installed" / "Cursor: not installed", which read
as "Claude Code / Cursor is not installed" — but the user is plainly
using the agent. What's actually missing is the skilltree skill for
that agent.

Switch to "skill missing", e.g. "Claude Code: skill missing;
Cursor: skill missing". The "Run `skilltree teach` to install the
skilltree skill" remediation already made the intent clear; this
brings the per-agent line in line with it.
@imarios imarios changed the title fix(init): adaptive prompt hint + demo/README refresh fix: adaptive prompt hint + clearer bundled-skill wording + demo/README refresh May 23, 2026
imarios added 3 commits May 23, 2026 11:06
Without this, doctor's bundled-skill check warns about the skilltree
skill being absent from the demo's fake \$DEMO_HOME — a state no
returning user would actually be in (`teach` is a one-time global
install). The warning was technically correct but misleading: a
viewer reasonably thinks "I just ran install, why is there still
something to install?"

Pre-teaching in the Hide block mirrors real-world state.
The player's play-button overlay sits at the bottom-center of the
final frame and obscured the last 2-3 lines of demo output. Push
the closing message up with a few blank prompts so it stays readable.
GitHub's camo image proxy silently returns 404 for source images
larger than ~5 MB, which means the README image stops rendering on
the repo page even though the asset is live on gh-pages. The new
scenes pushed the GIF from 4.8 MB to 5.5 MB and tripped this.

Add a gifsicle -O3 --lossy=80 --colors 128 pass at the end of the
`demo` target so every recording lands well under the limit (5.5 MB
→ 3.0 MB on the current tape). gifsicle joins vhs + ffmpeg as a
required local tool — brew install hint included in the prereq check.
@imarios imarios merged commit 86f7663 into main May 23, 2026
6 checks passed
@imarios imarios deleted the docs/refresh-demo-and-readme branch May 23, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant