Skip to content

T-MJGM-probe-plugin-install-shape

Status: closed/superseded · Impact: medium · Complexity: small

Auto-generated from a /sdlc:task-work post-mortem. Review and promote to open/ready before picking up.

Spec authors writing tasks that touch plugin-discovery (e.g. T-KD48-post-mortem-routes-cross-repo-tasks) currently rely on stale mental models of how Claude Code installs plugins on disk — that task’s Today section assumed ~/.claude/plugins/<name> was a symlink, but the actual shape is two JSON files plus a marketplace path that may not even be a git repo’s toplevel. A small probe script that prints the current on-disk shape would let authors paste accurate Today claims rather than guessing.

The hidden plugin noun already carries info, resolve, and install-permissions, and apps/sdlc/lib/services/plugin/ops/resolve.ts encodes the resolution logic (read installed_plugins.json, cross-reference known_marketplaces.json, walk up to git toplevel for source: directory plugins). But there’s no diagnostic shell — an author writing a new spec has to read the resolver’s source AND read both JSON files manually to understand what their machine actually looks like.

A sdlc plugin probe sibling verb on the hidden plugin noun — per the D-H7FS-op-substrate-surface path[] surface, not a loose script — that, given an optional plugin name, prints a structured report of the install layout: marketplace source kind, install path, git toplevel (if any), origin URL (if any), and a list of installed skills. Output is human-readable by default and --output json for scripting.

  1. New op module at apps/sdlc/lib/services/plugin/ops/probe.ts via defineOp, a sibling of info/resolve/install-permissions.
  2. For no-argument calls, list every installed plugin with a one-line summary each.
  3. For <plugin-name> calls, print the full report.
  4. Re-use the JSON-loading helpers in resolve.ts (factor into a shared module under services/plugin/ if both ops need them).
LocationKindChange
apps/sdlc/lib/services/plugin/ops/probe.tsnewthe diagnostic op.
apps/sdlc/lib/services/plugin/ops/resolve.tsmodifyoptional: factor JSON-loading helpers into a shared module if the duplication is real.
  • AC-1: sdlc plugin probe (no args) prints a one-line summary per installed plugin: <name>@<marketplace>\t<source-kind>\t<install-path>.
  • AC-2: sdlc plugin probe sdlc prints a multi-line report including marketplace_source, install_path, git_toplevel, and origin_url.
  • AC-3: --output json emits the same data as JSON for scripting.
  • Modifying plugin resolve’s output shape — the probe is a read-only diagnostic.
  • Adding a --write-today mode that templates the result into a task’s Today section. Useful but a separate task if demand emerges.
  • none

Spawned by /sdlc:task-work post-mortem of T-KD48-post-mortem-routes-cross-repo-tasks on 2026-05-21.


← Back to Tasks