T-6FBO-project-plugin-ports
Status: closed/done · Impact: medium · Complexity: large
Port the project hub’s human verbs and the hidden plugin meta-noun. The
old conflated “doctor” splits along the human-vs-machine line:
project-readiness (project doctor, visible) vs plugin self-introspection
(plugin info, hidden). This task also scaffolds the project noun the
other project-ports build on.
| Location | Role today |
|---|---|
plugin/skills/setup/setup_planning.ts | bootstraps docs/planning/ |
plugin/scripts/install_check.ts | runtime-dep probe (git/gh/bun) |
plugin/skills/info/info_report.ts | loaded-plugin runtime state report; lives in a skill dir |
plugin/scripts/resolve_plugin_repo.ts | plugin name → repo root + origin URL (cross-repo dispatch) |
plugin/scripts/install_permissions.ts | seeds the project Claude Code allowlist |
Proposed
Section titled “Proposed”services/project/ops/{setup,doctor}.ts (visible) and
services/plugin/ops/{info,resolve,install-permissions}.ts (hidden noun;
long explicit names are free — no human types them). The /sdlc:info and
/sdlc:setup skills shell to the verbs once T-QL5F-skill-prose-codemod codemods prose;
hidden suppresses help listing only, not reachability.
Approach
Section titled “Approach”- Goldens for all five (setup created-vs-existing report, doctor probe table, info markdown, resolve JSON, permissions diff).
- Port
project setup+project doctor; tmp-root setup smoke. - Port the plugin trio.
- CLI-spawned parity tests; help snapshots (
projectvisible verbs;pluginonly under--advanced).
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
plugin/lib/services/project/ops/setup.ts | new | from setup_planning.ts |
plugin/lib/services/project/ops/doctor.ts | new | from install_check.ts |
plugin/lib/services/plugin/ops/info.ts | new | from info_report.ts |
plugin/lib/services/plugin/ops/resolve.ts | new | from resolve_plugin_repo.ts |
plugin/lib/services/plugin/ops/install-permissions.ts | new | from install_permissions.ts |
plugin/skills/setup/setup_planning.ts | modify | thins to forwarder until deletion |
plugin/skills/info/info_report.ts | modify | same |
plugin/scripts/install_check.ts | modify | same |
plugin/scripts/resolve_plugin_repo.ts | modify | same |
plugin/scripts/install_permissions.ts | modify | same |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: fresh tmp root →
sdlc project setupreport parity with the golden; re-run reports already-existing (idempotent). - AC-2:
sdlc project doctor,sdlc plugin info,sdlc plugin resolve,sdlc plugin install-permissionsgolden parity. - AC-3:
pluginnoun absent fromsdlc --help, present under--advanced; all three leaves dispatch when addressed. - AC-4: full
bun testgreen.
Out of scope
Section titled “Out of scope”- Skill prose codemod (T-QL5F-skill-prose-codemod).
project scan {todos,candidates}(T-IDW6-task-inflight-project-scans) andproject cleanup(T-NFSM-project-cleanup-port).- Permission-set content changes.
Dependencies
Section titled “Dependencies”- T-NV49-op-path-substrate.
- Sequencing: first of the
project-noun chain — T-IDW6-task-inflight-project-scans and T-NFSM-project-cleanup-port follow on the sharedservices/project/ops/dir.
Discovery context
Section titled “Discovery context”- docs/plans/op-substrate-full-sweep.md §1a; the doctor/info split is the human-vs-machine asymmetry graft from the adversarial redesign.