# CORE Workbench v1

CORE Workbench is the first dedicated operator/auditor UI for CORE.

It is intentionally designed as:

- a cognition observatory,
- replay debugger,
- proposal review workstation,
- deterministic eval console,
- and audit surface.

It is NOT intended to be a generic chatbot shell.

---

# Document Index

## Doctrine

- `../decisions/ADR-0160-core-workbench-v1.md`

Defines:

- product doctrine
- trust boundaries
- architecture direction
- module scope
- acceptance criteria

---

## UX Blueprint

- `core-workbench-v1-blueprint.md`

Defines:

- visual philosophy
- interaction model
- module behavior
- navigation
- replay/proposal/eval UX

---

## Implementation Plan

- `implementation-plan.md`

Defines:

- W-026 through W-031
- phase sequencing
- backend/frontend constraints
- release criteria

---

## API Contract

- `api-contract-v1.md`

Defines:

- read-only endpoint surface
- request/response envelopes
- mutation boundaries
- runtime/trace/proposal/eval/replay routes

---

## Data Shapes

- `data-shapes-v1.md`

Defines:

- typed UI-facing shapes
- proposal structures
- replay structures
- artifact references
- trust badges

---

## UI Component Map

- `ui-component-map.md`

Defines:

- page layout
- navigation structure
- shared components
- trace drawer structure
- proposal/eval/replay modules

---

## Acceptance Gates

- `acceptance-gates.md`

Defines:

- implementation gates
- red flags
- release conditions
- mutation restrictions

---

# Core Principles

## Replay before persuasion

The UI should make replay evidence more important than aesthetic persuasion.

## Calm by default

The interface should remain quiet and precise.

## Progressive disclosure

The system should become more transparent the deeper an operator inspects.

## Proposal is not ratification

The UI must preserve ADR-0057 review doctrine.

## Read-only first

The first workbench phases prioritize visibility and auditability before any
mutation capability.

---

# Current Status

The planning package is merged on `main` via `404e694`
(`docs(workbench): CORE Workbench v1 planning architecture (ADR-0160)`).

The prototype branch `feat/w026-workbench-readonly-api` is superseded and must
not be used as the implementation base.  It mixed W-026 with frontend and trace
work, added auth and web-framework dependencies before the local read-only
boundary was proven, and included placeholder replay/trace behavior that could
be mistaken for evidence.

The next accepted implementation starts clean from `main` with W-026 only:
dataclass schemas, repo-root-constrained readers, a standard-library local HTTP
API, and route/read-model tests.  W-027 and later phases build on that boundary
after it is accepted.

---

# W-026 Local Runbook

Start the read-only local API:

```bash
core workbench api
```

Verify liveness:

```bash
curl http://127.0.0.1:8765/health
```

Inspect each W-026 endpoint family:

```bash
curl http://127.0.0.1:8765/runtime/status
curl http://127.0.0.1:8765/artifacts
curl http://127.0.0.1:8765/artifacts/evals/contemplation_quality/contract.md
curl http://127.0.0.1:8765/proposals
curl http://127.0.0.1:8765/evals
curl http://127.0.0.1:8765/evals/contemplation_quality
curl -X POST http://127.0.0.1:8765/evals/run \
  -H 'Content-Type: application/json' \
  -d '{"lane":"contemplation_quality","version":"v1","split":"public"}'
```

Bind to a different local port:

```bash
core workbench api --port 9000
```

Non-local binds require an explicit operator flag:

```bash
core workbench api --host 0.0.0.0 --allow-nonlocal-bind
```

---

# Initial Work Queue

| Work Item | Goal |
|---|---|
| W-026 | Read-only API |
| W-027 | Frontend shell |
| W-028 | Chat + trace drawer |
| W-029 | Proposal queue |
| W-030 | Eval center |
| W-031 | Replay theater |

---

# Guiding Question

The correct operator reaction to the workbench should be:

> “Wait… I can actually inspect and replay the cognition.”

not:

> “Cool chatbot.”

---

# W-027 Frontend Shell Runbook

Start the full local workbench (API + frontend):

```bash
# Terminal 1 — API
uv run core workbench api               # http://127.0.0.1:8765

# Terminal 2 — Frontend
cd workbench-ui
pnpm install
pnpm dev                                # http://127.0.0.1:5173
```

Use a custom API URL:

```bash
VITE_WORKBENCH_API_URL=http://127.0.0.1:9000 pnpm dev
```

View the Branch 1 design baseline:

```bash
cd workbench-ui
pnpm preview   # Navigate to /preview
```

Detect TypeScript ↔ Python schema drift:

```bash
uv run python scripts/dump-api-schemas.py
cd workbench-ui && pnpm test
```
