Skip to content

Skills: one DataTables grid (browse + installed merged) + pretty admin URL - #128

Merged
WebTigers merged 1 commit into
mainfrom
feat/skills-datatable
Aug 17, 2026
Merged

Skills: one DataTables grid (browse + installed merged) + pretty admin URL#128
WebTigers merged 1 commit into
mainfrom
feat/skills-datatable

Conversation

@WebTigers

Copy link
Copy Markdown
Owner

What

Datatablizes /agent/skills like the Modules screen — one server-side grid where a row's Status + action controls tell you whether it's installed, and installed skills pin to the top.

  • Agent_Service_Skills::datatable() — merges the browse catalog (Tiger_Skill_Index::all(), per-source cached; refresh re-scans) with Tiger_Agent_Skills::installed() keyed by install key, filters on search, sorts installed-first → active-first → name, paginates in PHP (the Code Area's merge-two-sources pattern). Each row carries installed/active + the fields to install / toggle / remove / view-source.
  • View rewritten as a tigerDataTable (#sk-table): columns Skill · Description · Source (provenance) · Status (On / Installed / Available) · Actions (state-aware: Install when available; on-off toggle + remove when installed; view-source always). Keeps the review-before-install modal, paste-a-URL install, and a Rescan control. ordering:false so the installed-pin is authoritative.
  • Pretty URL /admin/settings/agent/skills via the agent module's routes.ini (a static route resolving to the dispatchable controller, so the RouteOverride plugin leaves it alone under the reserved /admin prefix). The canonical /agent/skills still works; the Settings-nav href now points at the pretty one. Flagged in-code as an interim one-off ahead of the broader admin-URL normalization to /admin/settings/[module]/*.

Tests

SkillsTest: datatable merge + installed-pinned-to-top + active-follows-config + guest-deny. Index caches seeded empty so the merge test never hits the network. 9 integration + 9 unit Skill tests green locally.

Note

The general /[module]/admin/*/admin/[module]/* + /admin/settings/[module]/* normalization is deliberately not in this PR (deferred per discussion); this ships just the one skills URL via a scoped static route.

🤖 Generated with Claude Code

… URL

Datatablize /agent/skills like the Modules screen: a single server-side grid
whose rows are the browse catalog merged with what's installed, so a row's
Status column + action controls tell you whether it's installed. Installed
skills pin to the top (then active-first, then name).

- Agent_Service_Skills::datatable() — merges Tiger_Skill_Index::all() (cached;
  refresh on demand) with Tiger_Agent_Skills::installed() keyed by install key,
  filters on search, pins installed-first, paginates in PHP (the Code Area
  merge pattern). Rows carry installed/active + the fields to install/toggle/
  remove/view-source.
- View rewritten as a tigerDataTable (#sk-table): Skill · Description · Source
  (provenance) · Status (On/Installed/Available) · state-aware Actions
  (install | on-off toggle + remove | view-source), review-before-install
  modal, paste-URL install, rescan. ordering:false so the install pin holds.
- Pretty URL /admin/settings/agent/skills via the agent module's routes.ini
  (a static route; canonical /agent/skills still works). Settings-nav href
  points at it. Interim one-off ahead of the general admin-URL normalization.
- Tests: datatable merge + installed-pin + active-follows-config + guest-deny.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@WebTigers
WebTigers merged commit c256296 into main Aug 17, 2026
13 checks passed
@WebTigers
WebTigers deleted the feat/skills-datatable branch August 17, 2026 06:09
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