# Code tour

Pi Sych starts in `extensions/workbench/index.ts`. The workbench adds guidance at
the beginning of a supervisor turn, loads project-scoped configuration, and
registers the tools and commands that connect Pi to the focused runtime
modules.

## 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, and timeout. The
workbench passes that packet to the worker engine, which resolves the files,
requires a bootstrapped worker directory, creates a temporary result location,
and starts a clean Pi worker process. 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.

## 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 can invoke custom compaction when configuration enables it. The
compaction module builds a bounded snapshot of selected project state and the
conversation, asks the active supervisor model for structured working memory,
filters its file references, and appends a small number of unreviewed proposals
to the inbox. Returning no custom result leaves Pi's standard compactor in
control. Configuration is resolved through the config-directory module so the
workbench, worker setup, model catalog, and optional local resources agree on
where private settings live.

## Optional integrations

MCPorter is an explicit remote-research adapter. It is only added to a worker
that requested remote research, and its diagnostics describe configuration
without exposing credentials. 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.

Literature search is a worker tool. The worker extension always registers it,
but the worker engine exposes it only when the selected skills include exact
`research`. A query flows to the resolved local SQLite FTS5 database and comes
back as metadata, snippets, scores, and source paths. The supported `papers` plus
external-content `papers_fts` schema stores canonical metadata separately and
indexes filepath, title, abstract, tags, and DOI;
its full FTS5 contract and database-resolution order are in
[configuration](configuration.html#local-literature-search). This keeps local
research lookup available to a selected research worker without making it a
supervisor-wide service.

For declarations and source links generated from the current runtime source,
see the [live code reference](code-reference.html).
