Code tour

Pi Sych starts in extensions/workbench/index.ts. The workbench adds concise supervisor guidance and configured project instructions, loads layered Pi Sych configuration, and registers the tools and commands that connect Pi to focused runtime modules. Pi itself describes active tools and native MCP servers; Pi Sych adds no capability-startup inventory.

Repository map and guidance boundaries

The package separates runtime mechanisms from model guidance. The public Pi entry points are extensions/workbench/index.ts and extensions/plannotator/index.ts; extensions/worker/index.ts is loaded by dispatched workers rather than installed as a supervisor entry point. The workbench delegates to small files in extensions/workbench/src/:

Source Responsibility
worker-engine.ts, model-catalog.ts Dispatch schema, context modes, model selection, process lifecycle, launch-scoped worker instructions, and immutable results.
project-files.ts, project-status.ts Project paths, SYNC.json parsing, fingerprints, declared dependency impact, and acknowledgement.
compaction.ts Bounded context snapshot, tolerant recovery of optional memory/proposal entries, and unreviewed inbox proposals, without changing canonical semantic decisions.
config-directory.ts, validation.ts Configuration resolution and mechanical validation.
literature-search.ts Read-only local SQLite discovery.
plannotator.ts Optional review integration support.

The seven public skills are project, write, analyze, code, review, research, and automation. Each skills/<name>/SKILL.md is the entry point for its task guidance. Specialist skills/<name>/modules/<topic>/guidance.md files are selected for particular tasks, not automatically loaded in full. Reusable cross-skill methods live under skills/_methods/, with their own guidance, examples, and optional templates. The internal module/method paths are guidance organization, not additional public skills or mandatory steps for every task.

The prompts/review-*.md files are thin optional entry points for review lenses. A request in ordinary language can invoke the same review skill without those prompts. templates/ contains starter project state; tests/unit/, tests/integration/, tests/usage/, and tests/benchmarks/ separate deterministic checks, opt-in model evaluations, and benchmark fixtures. scripts/generate-code-reference.mjs derives the published runtime reference from TypeScript declarations. The code tour explains relationships; the generated reference tracks declarations.

Review provenance versus runtime limitations

The review skill, not the dispatch engine, instructs every LLM-produced review to end with a short, visually distinct Review scope footer identifying the task’s actual focus, even when the user did not invoke a packaged prompt. An adversarial review must make clear that the model was asked to find problems. This footer is separate from genuine findings or limitations; it is not an item in a limitations list. A worker’s terminal limitations field, by contrast, records execution/report limitations and is not a substitute for the review footer in its written report.

Review guidance also distinguishes provenance and authority. Author comments recorded through Plannotator remain author feedback; co-author and human peer-review feedback warrant different handling from advisory independent LLM criticism. The supervisor compares review findings with project decisions and evidence before revision; no mechanical status or worker result confers editorial approval.

Dispatch and worker lifecycle

dispatch_worker is a request/result protocol rather than a task queue. A supervisor supplies a bounded task packet: the requested capability mode, expected result, relevant files, selected skills, model role, context mode, and timeout. The workbench passes that packet to the worker engine, which resolves the files, requires a bootstrapped worker directory, creates a temporary runtime location, and starts a separate Pi worker process. Clean context is the default. Trajectory context uses Pi’s session manager on a private snapshot to create a temporary branch immediately before the exact dispatching assistant entry. The worker can submit exactly one immutable validated result: status, summary, files, and limitations. Dispatch accepts it only after a normal exit and verifies that reported project files still exist. Cancellation, timeout, spawn failure, a signal exit, and a non-zero exit take precedence over a result file; none is a successful result.

Optional workerInstructions applies only to its dispatch. The engine copies the configured worker agent directory into private temporary state and writes a launch-scoped AGENTS.override.md that preserves existing worker guidance before the supplied instructions. Pi discovers it using its normal context-file mechanism; the shared directory and project are not modified. When omitted, the configured directory is used unchanged and context-file discovery is disabled for that worker.

Ordinary workers do not load MCP or codemode. remoteResearch: true adds Pi’s builtin:mcp and builtin:codemode extensions explicitly. Native Pi reads mcp.json from that worker’s PI_CODING_AGENT_DIR; the supervisor’s MCP configuration and tools are not inherited. Configure worker servers and authentication using native Pi MCP commands. Tool availability does not guarantee working credentials or successful retrieval.

Project state and SYNC

project_status is the mechanical view of project state. It reads SYNC.json, reports changed or missing tracked files and dependency impact, and can atomically acknowledge files that a human has reviewed. A hash change says only that content changed; the tool deliberately does not decide whether that change is correct or conceptually important.

Compaction and configuration

The workbench invokes custom compaction when compaction.custom is true. Pi Sych’s proactive trigger runs at agent_settled at the configured context-token threshold, 150,000 by default, only when the model context can reach it, the agent is idle, no messages are pending, and no compaction is in flight. This is separate from native Pi reserve-token settings. Independently, opt-in completion reassessment uses agent_before_settle to inject one hidden, authorization-preserving prompt when there are no pending messages and Pi can continue. The per-user-message re-entry guard prevents repeated continuation. The compaction module builds a bounded snapshot of selected project state and observable conversation, asks the active supervisor model for structured working memory, filters its file references, and appends a small number of visibly unreviewed proposals to the inbox. Returning no custom result leaves Pi’s native compactor in control. Canonical semantic files are never mutated; recorded label attributions are preserved without verification. Malformed optional collections and invalid members are skipped independently, preserving usable siblings and required summary fields. Invalid or missing required summary fields still return native fallback. Unsafe inbox destinations or proposal-append failures skip proposals without discarding usable memory; an unreadable inbox count is reported as unavailable. Cancellation before append prevents proposal writes.

config-directory.ts owns strict parsing and layering: global <pi-config-root>/pi-sych/config.json, then project .pi/pi-sych/config.json, with field-level overrides. It also resolves relative literature paths against the config directory globally or the project root for a project override. The small config retains custom compaction policy, optional completion reassessment, and the configurable local literature database.

Literature search and integrations

Literature search is a direct supervisor tool and a gated worker tool. The workbench registers literature_search for supervisor lookup. The worker extension also registers it, while the worker engine exposes it only when selected skills include exact research. A query flows to the resolved local SQLite FTS5 database and returns compact readable text, structured result data, metadata, snippets, scores, and source paths. Results are discovery and provenance, not source verification; the source path is the handoff to an available document/PDF capability.

Pi owns MCP transport, server discovery, authentication and /mcp. Use native /mcp or pi mcp commands rather than a Pi Sych wrapper. Plannotator is separate from the workbench: it is a narrow human-review adapter that brings feedback from a message or file back into the review flow rather than controlling plans or project state. Independently installed document, web and browser tools can satisfy capability needs without package-specific runtime coupling.

For declarations and source links generated from the current runtime source, see the live generated code reference.