Last updated September 12, 2026
The Code Plugin
The code plugin maps one code repo to one board. It runs inside Claude Code, Codex, or Cursor, analyzes the repo locally, and pushes a graph of services, APIs, databases, and their connections. The same binding also brings board context back to the repo: compiled skills, intents, unbuilt design, and aspect contracts.
This page is the complete reference. For a guided first run, start with Getting Started — Hands-On.
Everything the plugin does runs inside your own AI coding session and needs no model provider connected. Connecting a model is only for the portal's in-app Chat.
The plugin binds the repo as the board's governing Code Plugin source, which turns the board into an app board. For a document repo, use the connect plugin; to edit boards across a workspace, use the architect plugin.
Install and connect
The install id is pmap-code. Add the marketplace and install the plugin.
Then connect the repo and push its first board update:
/login opens your browser so you can pick a workspace and board, then writes the credentials. To change boards later, run /login switch; the next /sync asks whether to migrate the boards analysed under the old binding or start clean.
Other account commands:
/status— what is configured, and what changed since the last analysis/start— shows the command groups, ranks the next steps for this repo's state, and offers to run the first/configure— hand-managed credentials and CI; see Signing In & Credentials/logoutand/update— disconnect, or upgrade to the latest build
The lifecycle
The commands fall into five stages:
/start reads the repo state, ranks the next steps, and offers to run the first. Every other command ends with an Outcome: what it did, what it left, and the next command with the reason, or a Hand off line when the next step belongs to someone else.
Map
/analyze-archetypes settles node types before analysis. It proposes missing workspace archetypes and is optional by default. Set analysis.archetypeGate to "strict" to require it before /analyze. In strict mode, /analyze stops until the check passes and prompts again when the catalogue or commit changes. Admins review proposals in Archetypes. Flags: --dry-run, --skip-submit, --replace, --force.
/analyze maps the system locally. It pushes nothing and never touches your source files.
/analyze is incremental by default: it reads the git diff since the last analyzed commit. Run /analyze --clean when a result looks stale.
Each run reports analysis coverage against the planned board tree: how many boards are built, stale, incomplete, or still unbuilt. The hub's analysis coverage card shows the same report (App Boards).
Layers build in parallel. Each selected drill-down gets its own subagent, running the model in analysis.subagentModel. --auto loops through the recommended areas unattended; it reports oversized nodes and file waivers instead of resolving them, and branch, credential, and strict-archetype checks still stop the run.
Imports that leave a drill-down board's scope appear as boundary ports, ghost nodes the script rebuilds on every run; see Nodes & Edges.
/sync pushes the diff, not the whole board. It also adds the ✓ Confirmed mark to Completed intents whose structural changes match the code.
By default, synced nodes and edges include a source reference: the relative file path, plus a git-host link when a remote is configured. If paths are sensitive, set "includeSourceReferences": false in .provenmap/config.json. Local analysis under .provenmap/boards/ keeps paths, so you can re-enable them without re-analyzing.
Boards are styled on sync. /analyze saves a styling plan for size, color, and layout. Styling never blocks a push; if a plan fails, the structure still appears and the report points you to /restyle.
/restyle creates a new plan for your approval, with no /sync needed after. The latest styling decision wins, whether it came from the plugin or an architect's /style-board.
/adopt, in full
Beyond nodes and edges, a board stores aspects: typed details attached to the graph. /adopt extracts one from code and reconciles it onto the board. Portal-authored rows are never overwritten.
Five kinds ship today:
--db and --api are back-compat shorthand for the first two. Extraction reads definitions only: it never runs your app, connects to a live database, or evaluates a policy against real inputs.
Run /analyze and /sync before /adopt; the board structure must exist first.
/inspect
/inspect captures your running app into the board. It opens a browser on a throwaway profile: browse normally, arm Pick to select a component, or Annotate to box a region and attach a note.
Capturing needs no credentials; only pushing does. A pushed session becomes an intent's visual context and stores each page's page capture on its ui.page aspect for Pages.
Understand
/discover is the graph-first pass to run after the repo is mapped and synced. A script reads the board tree, scores what the architecture can answer on its own, and offers two ranked menus:
- Insights describe one element and trace the relevant path, such as a chokepoint, an outage cascade, or the route from an entry point to a leaf.
- Context boards draw a small C4 board of relationships to explain a blast radius, a neighborhood, or where data lives.
Pick from the menus, pass a [count], or take the recommended set with --auto. Use --lens reliability,onboarding,ownership to weight the ranking and --board <slug> to scope one board. Authoring agents write the picks in parallel, and the plugin pushes them in order. Insights appear under the Architecture Highlights skill; context boards appear in the hub's Context boards card. A new run replaces the previous results.
/insights runs workspace insight skills. The server provides the skill definition; the plugin reasons locally over the board and source, then pushes a batch of insights. Each insight is tied to an element and can become an intent.
Build
These commands bring board context back into the repo. They write application or compiled-skill files. Other commands write local plugin state.
/skills compiles this app's skills into IDE-native files. On Claude Code, it writes to .claude/skills/. Related skills are grouped into a recipe.
It preserves local edits and records what it wrote in pmap-skills.lock.json; commit both so the team shares them.
/build implements the platform's build context, including in an empty repo. It assembles compiled skills, open intents, unbuilt board design, and aspect contracts, classifies the repo, and changes nothing until you approve the plan. Re-running builds only the delta.
/intents works handed-off intents in four steps: claim, implement from Instructions and anchors, verify with project checks, then resolve with a note. It never edits before a claim and gap review, never resolves without verification evidence, and blocks stale intents.
You author, hand off, and assign intents in the portal; see Intents.
Operate
/monitor correlates production signals with board elements. It maps stack frames, resource names, routes, and tags; uncertain matches become prompts you answer once. Matches appear as insights.
/monitor setup scaffolds config and, where supported, creates the recurring run. Unattended runs read PMAP_* credentials, so secrets never pass through chat.
Configuration reference
Settings live in .provenmap/config.json and credentials in .provenmap/credentials.json. Add a setting to override its default; delete it to restore the default. config.schema.json, beside the config, lists every setting and its default for editor completion.
What /login writes
A fresh sign-in on Claude Code writes this file:
On Codex, subagentModel is gpt-5-codex; Cursor omits it.
Tuning settings
Analysis coverage: which files count as source and which the planned board tree leaves out.
Board content: how the analysis resolves imports, folds small files, draws relations, and checks node types.
Sync and /inspect: the board-structure check on /sync, and the app URLs /inspect opens.
Board-tree plan: how deep /analyze plans the board tree, and how many boards /analyze --auto builds.
To plan without limits, set maxDepth to null for depth and lower unitFloor for breadth, so smaller clusters become boards too. Raise maxBoardsPerRun to build the whole tree in one /analyze --all --auto run. Every extra board adds model tokens, analysis time, and rows against your graph allowance.
When plan settings take effect
The first /analyze computes the board-tree plan and stores it; maxDepth and unitFloor apply to that computation. maxParallel and maxBoardsPerRun apply on every run.
Changing maxDepth or unitFloor after the plan exists doesn't resize it: planned boards stay, and new depth arrives only as proposals. To re-plan, run /analyze --clean, which deletes the local analysis and plan, then rebuild and /sync. /sync doesn't delete boards the new plan drops.
Files and allowance
Edges take the largest share of your organization's graph allowance. A repo of about 3,000 files across 29 boards uses about 2,300 rows at the default analysis.edgeBudgetPerNode, 1,500 at 1, and 4,200 at 0.
Credential fields and PMAP_* variables are covered in Signing In & Credentials. Everything else the plugin writes lives under gitignored .provenmap/. Commit what /skills writes and the application changes from /build and /intents.
There is no background auto-sync. Analysis, sync, and monitoring run only when you, or a schedule you created, run the commands.
When a run fails
Five failures are most common.
What's next
The Connect Plugin
The sibling plugin that grounds an authored board in a document repo, with its own /sync and command set.
Boards API
Headers, payload shape, and auth for every push.
Connecting Sources
Register a source, bind it from the hub, and copy the credentials this plugin needs.
Insight Skills
How the skills /insights runs are authored at the workspace level.
The Architect Workbench
Explore, review, and author on the boards this plugin builds.





