Skip to content

feat(skills-picker): show GitHub URL next to each skill in TUI#198

Merged
sergei-aronsen merged 1 commit into
mainfrom
feature/skills-picker-github-urls
May 21, 2026
Merged

feat(skills-picker): show GitHub URL next to each skill in TUI#198
sergei-aronsen merged 1 commit into
mainfrom
feature/skills-picker-github-urls

Conversation

@sergei-aronsen
Copy link
Copy Markdown
Owner

Summary

  • Skills picker TUI now renders · <github-url> after each row's description
  • URL constructed from manifest.json:skills_pins[*].repo + .commit + .path
  • Empty (no URL) for _status: \"no-upstream-found\" (memo-skill) and skills absent from skills_pins (impeccable)
  • MCP / TK pickers unaffected — TUI_URLS[] is opt-in via ${TUI_URLS[*]+x} guard

Before

4. [installed ✓] ai-models — Current AI model IDs and pricing for Anthropic / OpenAI / Google APIs
28. [ ] humanizer — Remove signs of AI-generated writing from text.

After

4. [installed ✓] ai-models — Current AI model IDs and pricing for Anthropic / OpenAI / Google APIs · https://github.com/artofrawr/claude-control/tree/5e8f37f650.../plugins/learning/skills/ai-models
28. [ ] humanizer — Remove signs of AI-generated writing from text. · https://github.com/blader/humanizer/tree/8b3a17889f...

Implementation

File Change
scripts/lib/skills.sh New helpers _skills_default_manifest_path + _skills_upstream_url <name>
scripts/install.sh Populate parallel TUI_URLS[] in skills branch
scripts/lib/tui.sh Render · \${url} after desc when TUI_URLS[] is set

Helper sidesteps the Bash IFS-whitespace tab-collapse trap (consecutive \t collapse + leading \t skipped because \t is in default-IFS-whitespace) by reading jq output line-per-field instead of @tsv.

Test plan

  • bash scripts/tests/test-install-skills.sh — 27 PASS
  • bash scripts/tests/test-install-tui.sh — 60 PASS
  • make check — manifest validation + commands + integrations + shellcheck + markdownlint all PASS
  • Smoke test _skills_upstream_url against 7 skills (full URL / path-less URL / no-upstream / not-in-pins / nonexistent) — all return correct value

🤖 Generated with Claude Code

Skills TUI picker now shows ` · <github-url>` after each row's description,
sourced from manifest.json:skills_pins[*].repo + .commit + .path. Lets the
user click through to the canonical upstream (in iTerm2 / modern terminals)
or eyeball the source repo before installing.

Changes:
- scripts/lib/skills.sh: add `_skills_default_manifest_path` and
  `_skills_upstream_url <name>`. Constructs `${repo}/tree/${commit}/${path}`
  (or shorter forms when commit/path missing). Returns empty for skills
  with `_status: "no-upstream-found"` (memo-skill) or skills absent from
  skills_pins (impeccable). Uses jq line-per-field output to dodge the
  Bash IFS-whitespace tab-collapse trap.
- scripts/install.sh: populate `TUI_URLS[]` parallel to `TUI_LABELS[] /
  TUI_DESCS[]` in the skills branch.
- scripts/lib/tui.sh: render ` · ${url}` after ` — ${desc}` when the
  TUI_URLS[] array is set and the row's entry is non-empty. Guarded by
  `${TUI_URLS[*]+x}` so MCP / TK pickers (which don't set the array) stay
  unaffected.

No truncation policy in tui.sh — caller owns row width. Terminals that
wrap will wrap; iTerm2 / Kitty / WezTerm hyperlink-detect the URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sergei-aronsen sergei-aronsen merged commit 8ad81f1 into main May 21, 2026
10 checks passed
sergei-aronsen added a commit that referenced this pull request May 21, 2026
Lockstep bump: manifest.json (version/updated/build_date) + CHANGELOG.md
+ 9 installer scripts (TK_TOOLKIT_REF default).

PR #198 merged the feature; this release marks the version cutover so
end users on the v6.52.0 pinned ref get the new picker behavior.

Co-authored-by: Sergei Aronsen <sergei@digitalplanet.no>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants