You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 CLIreview-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-platform → claude 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
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 undersrc/is already host-independent; onlyextensions/review-tutor.tstouches Pi.Design (frozen)
review-tutor [source] [--no-open] [--detach]— starts the loopback server, prints the URL, opens the browser;--detachreturns immediately and the server exits after 30 min without a browser client. Pi models are discovered viapi --list-modelswhen no host injects them (same discovery seam as Codex).pi install npm:@pickforge/review-tutor(or a checkout).packages/review-tutor/claude-plugin/with a/review-tutorskill that runsnpx @pickforge/review-tutor --detachviaallowed-tools; marketplace.claude-plugin/marketplace.jsonat the repo root (git-subdirsource). Install:claude plugin marketplace add pickforge/pickforge-platform→claude plugin install review-tutor@pickforge.packages/review-tutor/codex-skill/review-tutor/SKILL.md(copied to~/.codex/skills/), same CLI.binvia tsup, TS sources shipped for Pi; existingpublish.yml(npm provenance) handles it on the nextv*tag.Security model unchanged: loopback + bearer token, isolated read-only children, no credentials to the browser.
PR plan
src/cli.ts,bin, Pi discovery viapi --list-models, detach mode). Depends on: none. Validation: vitest + localnode dist/cli.jsproof.private:false, version 0.12.0,files, build in root chain, README install per harness,pi install npm:proof after publish. Depends on: A.claude plugin marketplace add ./,claude plugin install, Codex skill copy). Depends on: A (B for the npm name in commands; can point atnpxbefore publish).v0.13.0(lockstep) → npm publish → verifynpx @pickforge/review-tutorandpi install npm:@pickforge/review-tutoron a clean machine/dir.Traceability
pi --list-modelsproofnpm packcontentscodex execrecognises skill (manual)pi install npm:@pickforge/review-tutorafter publishCurrent status: In progress
Next action: PR A opened for review