Skip to content

Make Review Tutor installable from Claude Code, Codex, and Pi (public package) #82

Description

@ElbertePlinio

Goal

Make Review Tutor installable and launchable from Claude Code, Codex, and Pi (and any shell), and shareable publicly — one codebase in this repo, published as @pickforge/review-tutor.

Today it is a Pi extension only (pi -e <checkout>), private at 0.0.0. The runtime under src/ is already host-independent; only extensions/review-tutor.ts touches Pi.

Design (frozen)

  • Core CLI review-tutor [source] [--no-open] [--detach] — starts the loopback server, prints the URL, opens the browser; --detach returns immediately and the server exits after 30 min without a browser client. Pi models are discovered via pi --list-models when no host injects them (same discovery seam as Codex).
  • Pi: existing extension unchanged (in-process), installed with pi install npm:@pickforge/review-tutor (or a checkout).
  • Claude Code: plugin in packages/review-tutor/claude-plugin/ with a /review-tutor skill that runs npx @pickforge/review-tutor --detach via allowed-tools; marketplace .claude-plugin/marketplace.json at the repo root (git-subdir source). Install: claude plugin marketplace add pickforge/pickforge-platformclaude plugin install review-tutor@pickforge.
  • Codex: skill folder packages/review-tutor/codex-skill/review-tutor/SKILL.md (copied to ~/.codex/skills/), same CLI.
  • Distribution: package goes public at the lockstep version (0.12.0 → next tag), built bin via tsup, TS sources shipped for Pi; existing publish.yml (npm provenance) handles it on the next v* tag.

Security model unchanged: loopback + bearer token, isolated read-only children, no credentials to the browser.

PR plan

  • PR A — host-independent CLI (src/cli.ts, bin, Pi discovery via pi --list-models, detach mode). Depends on: none. Validation: vitest + local node dist/cli.js proof.
  • PR B — package goes public: private:false, version 0.12.0, files, build in root chain, README install per harness, pi install npm: proof after publish. Depends on: A.
  • PR C — Claude Code plugin + root marketplace + Codex skill, with local install proofs (claude plugin marketplace add ./ , claude plugin install, Codex skill copy). Depends on: A (B for the npm name in commands; can point at npx before publish).
  • Release: tag v0.13.0 (lockstep) → npm publish → verify npx @pickforge/review-tutor and pi install npm:@pickforge/review-tutor on a clean machine/dir.
  • Docs: landing/site mention only if Elberte wants it (not in scope).

Traceability

Criterion PR Validation Status
CLI starts server, prints URL, opens browser, detaches A cli tests + local proof pending
Pi models discovered without a host A fixture tests + local pi --list-models proof pending
Pi extension behaviour unchanged A existing extension tests byte-identical pending
Public npm package with bin B publish dry-run, npm pack contents pending
Claude Code plugin installable from marketplace C local marketplace install proof pending
Codex skill installable C copy + codex exec recognises skill (manual) pending
Pi installable via npm B/Release pi install npm:@pickforge/review-tutor after publish pending

Current status: In progress
Next action: PR A opened for review

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions