---
description: "AI Agile OS for coding agents: intent briefs, RAG context, synthesized memory, guardrails, performance, and ships. Run the prjct verb yourself; use `prjct work` normally."
allowed-tools: ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Task"]
user-invocable: true
---

# prjct

## Use when

Project memory, work cycles, ships, guardrails, or performance. **You run the verb — the user never types `prjct`.**

## What's here

Baseline skill (no project in cwd). On first real intent, suggest `prjct init` once — then run the verb. `prjct sync` regenerates this with project context.


### Agent contract

- prjct remembers project state and shows the path; it does not own the execution.
- Agents decide HOW with native tools and judgment. Treat prjct output as durable signals: work, memory, intents, risks, performance.
- Persist via `prjct remember` / `work` / `performance` / `ship`. Author every memory in **ENGLISH**.

### Multi-agent cast names

When orchestration says multi-agent / crew, it prints a **Cast** (e.g. explore→Popper · implement→Copernicus · review→McClintock). Use those names as `description` labels when you spawn subagents and as `prjct claim <id> --as <Name>` so the cast stays legible across the cycle.

### File scope BEFORE Grep/Glob (MUST)

Before exploring the tree with Grep/Glob/find, resolve a **constrained file list** from prjct:
1. `prjct work "<intent>"` already injects **Work scope** (memory vector/FTS + BM25 code index + import/co-change graph).
2. Or call MCP `prjct_relevant_files` / CLI `prjct context memory <topic>` + read paths tagged on hits.
3. Expand neighbors/traps with `prjct guard <file>` or MCP `prjct_impact_analysis` — not a full-repo walk.
4. Only if scope is empty after `prjct sync`: then narrow Grep. Never start with a blind tree walk when prjct has indexes.

### Core verbs (Tier 1=auto · 2=confirm)

| Signal | Verb | T |
|---|---|---|
| work / fix / build (DEFAULT) | `prjct work "<intent>"` | 2 |
| complex goals/stakes | `prjct intent` · `intent audit` | 2 |
| recall knowledge | `prjct search` / `context memory` | 1 |
| save judgment | `prjct remember <type> "…"` | 1 |
| file scope before Grep | work injects scope · MCP `prjct_relevant_files` · `guard <file>` | 1 |
| traps before edit | `prjct guard <file>` | 1 |
| ship | `prjct ship` | 2 |
| next / frontier | `prjct next --md` · `ready` · `claim` · `phases` | 1 |
| metrics | `prjct insights` · `performance` | 1 |
| land session | `prjct land` / remember context Session close | 1 |
| test-first / intent-first | `prjct tdd` · `prjct sdd` (off\|assist\|strict) | 1 |
| workflows / packs | `prjct workflow list` · `prjct seed list` | 1 |

`prjct work` is the single normal entrypoint. Trivial work proceeds directly; substantive work follows a persisted intent + tests before implementation when required. Full verb map, loop-discipline triggers, model policy, decision-briefs, and quality workflows live in `workflows.md` — pull on demand.

### Knowledge

- Types: `decision · learning · gotcha · fact · context · …` plus the **sovereign knowledge base** facets `identity · voice · glossary · framework` — `prjct remember <facet>` / `prjct context memory <facet>`; never injected into CLAUDE.md / AGENTS.md. Source of truth: SQLite via tools; config at `.prjct/prjct.config.json`.
- On close: living context synthesis (model-authored) — field list + example in `workflows.md`. Land before session end: `prjct remember context "Session close: …"`; `--tags topic:<key>` upserts.

### Routing

- **Tier 1 — auto-execute.** search, remember, guard, insights, performance. One-line confirm; do not ask permission to save.
- **Tier 2 — confirm once.** work, intent, ship. Never ship without user OK.
- **Tier 3 — decision-brief.** prefs / hard forks — see `workflows.md`.

## Gotchas

- Empty recall ≠ nothing exists. Secrets refused unless `--force`. Do **not** wrap bin verbs (`sync`, `search`, `remember`) as `prjct work "…"`.
- Worktree: remove only after PR *merged*, from main tree, never `--force` over dirty/unpushed work.

