docs: update canonical PROJECT.md for completed 7-plan migration
All checks were successful
CI / Lint / Test / Vet (push) Successful in 11s
CI / Mirror to GitHub (push) Successful in 4s

Updates MCP endpoints section: supervisor retired, brain gets HTTPS
domain + Dex JWT auth + brain_answer/brain_classify. Regenerate all
derived adapter files via context:sync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Mathias Bergqvist
2026-05-12 14:53:46 +02:00
parent 87cf9d0afc
commit a8de04c7b6
5 changed files with 85 additions and 100 deletions

View File

@@ -221,31 +221,28 @@ Key skills:
## MCP endpoints ## MCP endpoints
Two MCP servers expose this project's tooling, both reachable over Tailscale: Two MCP servers are live, both reachable over Tailscale and via HTTPS domain:
- **`brain`** at `http://koala:30330/mcp` — preferred path for `brain_query`, - **`brain`** at `https://brain-mcp.d-ma.be/mcp` (NodePort `koala:30330`) —
`brain_write`, `brain_ingest`, `brain_ingest_raw`, and `session_log`. Hosted `brain_query`, `brain_write`, `brain_ingest`, `brain_ingest_raw`,
by the ingestion service directly. `brain_answer`, `brain_classify`, `session_log`. Hosted by the ingestion
- **`supervisor`** at `http://koala:30320/mcp` — skill workers (`tdd_red`, service. Auth: Dex JWT (claude.ai OAuth) or static `BRAIN_MCP_TOKEN`.
`tdd_green`, `tdd_refactor`, `review`, `debug`, `spec`, `retrospective`,
`trainer`, `tier`). Will shrink as skill workers move to SKILL.md in a later
migration.
- **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises - **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises
the same four cost-routable skills as the supervisor (`review`, `debug`, `review`, `debug`, `retrospective`, `trainer`; per-call routes to local model
`retrospective`, `trainer`) but per-call decides whether to use a local or Claude based on brain `/pass-rate`. Bearer auth via `ROUTING_MCP_TOKEN`
model or Claude based on the brain's `/pass-rate` response. Bearer auth (opt-in). Only `mode client-local` registers this endpoint.
via `ROUTING_MCP_TOKEN` (opt-in). Only `mode client-local` registers this
endpoint; Mode 1 and Mode 3 do not. The supervisor MCP (`koala:30320`) was retired in Plan 7 (2026-05-12). Its
skill workers (`tdd`, `spec`) are now SKILL.md files; routed skills moved to
the routing pod; brain tools moved to the brain MCP.
The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`, The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`,
`/ingest-path`, `/backfill-refs`) remains available on the same port (3300) for `/ingest-path`, `/backfill-refs`, `/pass-rate`) remains available on port 3300
shell scripts and non-MCP clients. for shell scripts and non-MCP clients.
The brain HTTP REST API also serves a read-only `GET /pass-rate?skill=X&window=Y` `brain_answer(query)` performs BM25 retrieval + LLM synthesis (berget.ai
endpoint that aggregates `final_status` counts from session logs and returns gemma4:31b → iguana fallback). `brain_classify(text)` infers doc type, title,
`{skill, window, pass, fail, skip, total, pass_rate}`. Plan 6 (routing pod) and tags. Both require `BRAIN_LLM_PRIMARY_URL` to be set in the ingestion pod.
reads this to decide whether to route skill calls to local models. Pass rate
is `null` when no logged invocations are in the window.
## Agent instructions ## Agent instructions

View File

@@ -47,31 +47,28 @@
## MCP endpoints ## MCP endpoints
Two MCP servers expose this project's tooling, both reachable over Tailscale: Two MCP servers are live, both reachable over Tailscale and via HTTPS domain:
- **`brain`** at `http://koala:30330/mcp` — preferred path for `brain_query`, - **`brain`** at `https://brain-mcp.d-ma.be/mcp` (NodePort `koala:30330`) —
`brain_write`, `brain_ingest`, `brain_ingest_raw`, and `session_log`. Hosted `brain_query`, `brain_write`, `brain_ingest`, `brain_ingest_raw`,
by the ingestion service directly. `brain_answer`, `brain_classify`, `session_log`. Hosted by the ingestion
- **`supervisor`** at `http://koala:30320/mcp` — skill workers (`tdd_red`, service. Auth: Dex JWT (claude.ai OAuth) or static `BRAIN_MCP_TOKEN`.
`tdd_green`, `tdd_refactor`, `review`, `debug`, `spec`, `retrospective`,
`trainer`, `tier`). Will shrink as skill workers move to SKILL.md in a later
migration.
- **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises - **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises
the same four cost-routable skills as the supervisor (`review`, `debug`, `review`, `debug`, `retrospective`, `trainer`; per-call routes to local model
`retrospective`, `trainer`) but per-call decides whether to use a local or Claude based on brain `/pass-rate`. Bearer auth via `ROUTING_MCP_TOKEN`
model or Claude based on the brain's `/pass-rate` response. Bearer auth (opt-in). Only `mode client-local` registers this endpoint.
via `ROUTING_MCP_TOKEN` (opt-in). Only `mode client-local` registers this
endpoint; Mode 1 and Mode 3 do not. The supervisor MCP (`koala:30320`) was retired in Plan 7 (2026-05-12). Its
skill workers (`tdd`, `spec`) are now SKILL.md files; routed skills moved to
the routing pod; brain tools moved to the brain MCP.
The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`, The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`,
`/ingest-path`, `/backfill-refs`) remains available on the same port (3300) for `/ingest-path`, `/backfill-refs`, `/pass-rate`) remains available on port 3300
shell scripts and non-MCP clients. for shell scripts and non-MCP clients.
The brain HTTP REST API also serves a read-only `GET /pass-rate?skill=X&window=Y` `brain_answer(query)` performs BM25 retrieval + LLM synthesis (berget.ai
endpoint that aggregates `final_status` counts from session logs and returns gemma4:31b → iguana fallback). `brain_classify(text)` infers doc type, title,
`{skill, window, pass, fail, skip, total, pass_rate}`. Plan 6 (routing pod) and tags. Both require `BRAIN_LLM_PRIMARY_URL` to be set in the ingestion pod.
reads this to decide whether to route skill calls to local models. Pass rate
is `null` when no logged invocations are in the window.
## Agent instructions ## Agent instructions

View File

@@ -226,31 +226,28 @@ Key skills:
## MCP endpoints ## MCP endpoints
Two MCP servers expose this project's tooling, both reachable over Tailscale: Two MCP servers are live, both reachable over Tailscale and via HTTPS domain:
- **`brain`** at `http://koala:30330/mcp` — preferred path for `brain_query`, - **`brain`** at `https://brain-mcp.d-ma.be/mcp` (NodePort `koala:30330`) —
`brain_write`, `brain_ingest`, `brain_ingest_raw`, and `session_log`. Hosted `brain_query`, `brain_write`, `brain_ingest`, `brain_ingest_raw`,
by the ingestion service directly. `brain_answer`, `brain_classify`, `session_log`. Hosted by the ingestion
- **`supervisor`** at `http://koala:30320/mcp` — skill workers (`tdd_red`, service. Auth: Dex JWT (claude.ai OAuth) or static `BRAIN_MCP_TOKEN`.
`tdd_green`, `tdd_refactor`, `review`, `debug`, `spec`, `retrospective`,
`trainer`, `tier`). Will shrink as skill workers move to SKILL.md in a later
migration.
- **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises - **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises
the same four cost-routable skills as the supervisor (`review`, `debug`, `review`, `debug`, `retrospective`, `trainer`; per-call routes to local model
`retrospective`, `trainer`) but per-call decides whether to use a local or Claude based on brain `/pass-rate`. Bearer auth via `ROUTING_MCP_TOKEN`
model or Claude based on the brain's `/pass-rate` response. Bearer auth (opt-in). Only `mode client-local` registers this endpoint.
via `ROUTING_MCP_TOKEN` (opt-in). Only `mode client-local` registers this
endpoint; Mode 1 and Mode 3 do not. The supervisor MCP (`koala:30320`) was retired in Plan 7 (2026-05-12). Its
skill workers (`tdd`, `spec`) are now SKILL.md files; routed skills moved to
the routing pod; brain tools moved to the brain MCP.
The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`, The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`,
`/ingest-path`, `/backfill-refs`) remains available on the same port (3300) for `/ingest-path`, `/backfill-refs`, `/pass-rate`) remains available on port 3300
shell scripts and non-MCP clients. for shell scripts and non-MCP clients.
The brain HTTP REST API also serves a read-only `GET /pass-rate?skill=X&window=Y` `brain_answer(query)` performs BM25 retrieval + LLM synthesis (berget.ai
endpoint that aggregates `final_status` counts from session logs and returns gemma4:31b → iguana fallback). `brain_classify(text)` infers doc type, title,
`{skill, window, pass, fail, skip, total, pass_rate}`. Plan 6 (routing pod) and tags. Both require `BRAIN_LLM_PRIMARY_URL` to be set in the ingestion pod.
reads this to decide whether to route skill calls to local models. Pass rate
is `null` when no logged invocations are in the window.
## Agent instructions ## Agent instructions

View File

@@ -224,31 +224,28 @@ Key skills:
## MCP endpoints ## MCP endpoints
Two MCP servers expose this project's tooling, both reachable over Tailscale: Two MCP servers are live, both reachable over Tailscale and via HTTPS domain:
- **`brain`** at `http://koala:30330/mcp` — preferred path for `brain_query`, - **`brain`** at `https://brain-mcp.d-ma.be/mcp` (NodePort `koala:30330`) —
`brain_write`, `brain_ingest`, `brain_ingest_raw`, and `session_log`. Hosted `brain_query`, `brain_write`, `brain_ingest`, `brain_ingest_raw`,
by the ingestion service directly. `brain_answer`, `brain_classify`, `session_log`. Hosted by the ingestion
- **`supervisor`** at `http://koala:30320/mcp` — skill workers (`tdd_red`, service. Auth: Dex JWT (claude.ai OAuth) or static `BRAIN_MCP_TOKEN`.
`tdd_green`, `tdd_refactor`, `review`, `debug`, `spec`, `retrospective`,
`trainer`, `tier`). Will shrink as skill workers move to SKILL.md in a later
migration.
- **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises - **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises
the same four cost-routable skills as the supervisor (`review`, `debug`, `review`, `debug`, `retrospective`, `trainer`; per-call routes to local model
`retrospective`, `trainer`) but per-call decides whether to use a local or Claude based on brain `/pass-rate`. Bearer auth via `ROUTING_MCP_TOKEN`
model or Claude based on the brain's `/pass-rate` response. Bearer auth (opt-in). Only `mode client-local` registers this endpoint.
via `ROUTING_MCP_TOKEN` (opt-in). Only `mode client-local` registers this
endpoint; Mode 1 and Mode 3 do not. The supervisor MCP (`koala:30320`) was retired in Plan 7 (2026-05-12). Its
skill workers (`tdd`, `spec`) are now SKILL.md files; routed skills moved to
the routing pod; brain tools moved to the brain MCP.
The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`, The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`,
`/ingest-path`, `/backfill-refs`) remains available on the same port (3300) for `/ingest-path`, `/backfill-refs`, `/pass-rate`) remains available on port 3300
shell scripts and non-MCP clients. for shell scripts and non-MCP clients.
The brain HTTP REST API also serves a read-only `GET /pass-rate?skill=X&window=Y` `brain_answer(query)` performs BM25 retrieval + LLM synthesis (berget.ai
endpoint that aggregates `final_status` counts from session logs and returns gemma4:31b → iguana fallback). `brain_classify(text)` infers doc type, title,
`{skill, window, pass, fail, skip, total, pass_rate}`. Plan 6 (routing pod) and tags. Both require `BRAIN_LLM_PRIMARY_URL` to be set in the ingestion pod.
reads this to decide whether to route skill calls to local models. Pass rate
is `null` when no logged invocations are in the window.
## Agent instructions ## Agent instructions

View File

@@ -221,31 +221,28 @@ Key skills:
## MCP endpoints ## MCP endpoints
Two MCP servers expose this project's tooling, both reachable over Tailscale: Two MCP servers are live, both reachable over Tailscale and via HTTPS domain:
- **`brain`** at `http://koala:30330/mcp` — preferred path for `brain_query`, - **`brain`** at `https://brain-mcp.d-ma.be/mcp` (NodePort `koala:30330`) —
`brain_write`, `brain_ingest`, `brain_ingest_raw`, and `session_log`. Hosted `brain_query`, `brain_write`, `brain_ingest`, `brain_ingest_raw`,
by the ingestion service directly. `brain_answer`, `brain_classify`, `session_log`. Hosted by the ingestion
- **`supervisor`** at `http://koala:30320/mcp` — skill workers (`tdd_red`, service. Auth: Dex JWT (claude.ai OAuth) or static `BRAIN_MCP_TOKEN`.
`tdd_green`, `tdd_refactor`, `review`, `debug`, `spec`, `retrospective`,
`trainer`, `tier`). Will shrink as skill workers move to SKILL.md in a later
migration.
- **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises - **`routing`** at `http://koala:30310/mcp` — Mode 2 routing pod. Advertises
the same four cost-routable skills as the supervisor (`review`, `debug`, `review`, `debug`, `retrospective`, `trainer`; per-call routes to local model
`retrospective`, `trainer`) but per-call decides whether to use a local or Claude based on brain `/pass-rate`. Bearer auth via `ROUTING_MCP_TOKEN`
model or Claude based on the brain's `/pass-rate` response. Bearer auth (opt-in). Only `mode client-local` registers this endpoint.
via `ROUTING_MCP_TOKEN` (opt-in). Only `mode client-local` registers this
endpoint; Mode 1 and Mode 3 do not. The supervisor MCP (`koala:30320`) was retired in Plan 7 (2026-05-12). Its
skill workers (`tdd`, `spec`) are now SKILL.md files; routed skills moved to
the routing pod; brain tools moved to the brain MCP.
The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`, The brain HTTP REST API (`/query`, `/write`, `/ingest`, `/ingest-raw`,
`/ingest-path`, `/backfill-refs`) remains available on the same port (3300) for `/ingest-path`, `/backfill-refs`, `/pass-rate`) remains available on port 3300
shell scripts and non-MCP clients. for shell scripts and non-MCP clients.
The brain HTTP REST API also serves a read-only `GET /pass-rate?skill=X&window=Y` `brain_answer(query)` performs BM25 retrieval + LLM synthesis (berget.ai
endpoint that aggregates `final_status` counts from session logs and returns gemma4:31b → iguana fallback). `brain_classify(text)` infers doc type, title,
`{skill, window, pass, fail, skip, total, pass_rate}`. Plan 6 (routing pod) and tags. Both require `BRAIN_LLM_PRIMARY_URL` to be set in the ingestion pod.
reads this to decide whether to route skill calls to local models. Pass rate
is `null` when no logged invocations are in the window.
## Agent instructions ## Agent instructions