Commit 124b9a9
feat(catalog): truthful availability — available:true ⇒ built + verified-real
The catalog defaulted every cartridge to available:true (router.ex), so all
125 cartridges advertised as working when only feedback-mcp is actually built
and returns real results. This makes the catalogue tell the truth and adds a
CI gate so it cannot silently regress.
- cartridge.json (×125): add explicit `available` (true only for feedback-mcp);
add `status` where missing ("catalogued"), preserving existing stub/ffi_only
labels; fix orchestrator-lsp's duplicate `status` key (kept ffi_only).
- router.ex: flip the `available` default true→false so a cartridge must opt in
to being advertised as working, never by omission.
- tests/truthfulness_check.sh + .github/workflows/truthfulness.yml: a gate that
builds every available cartridge and invokes its first tool, failing on a
"status":"stub" reply (or none). Verified to catch a stub flipped to available.
- router_test.exs / contract_test.exs: fix /menu tests that asserted the
pre-tiering cartridges/count shape (broken since tiered /menu landed) to assert
the real tier_*/summary shape and the new availability invariant
(summary.ready == count of available entries).
https://claude.ai/code/session_019tMcRS1Dm1nWjjYP4WvbJa1 parent d84f817 commit 124b9a9
130 files changed
Lines changed: 448 additions & 13 deletions
File tree
- .github/workflows
- cartridges
- 007-mcp
- academic-workflow-mcp
- aerie-mcp
- affinescript-mcp
- agent-mcp
- airtable-mcp
- arango-mcp
- aws-mcp
- bofig-mcp
- boj-health-mcp
- browser-mcp
- bsp-mcp
- buildkite-mcp
- burble-admin-mcp
- chromadb-mcp
- circleci-mcp
- civic-connect-mcp
- claude-agents-power-mcp
- claude-ai-mcp
- clickhouse-mcp
- cloud-mcp
- cloudflare-mcp
- coderag-mcp
- codeseeker-mcp
- comms-mcp
- conflow-mcp
- container-mcp
- crates-mcp
- dap-mcp
- database-mcp
- digitalocean-mcp
- discord-mcp
- dns-shield-mcp
- docker-hub-mcp
- duckdb-mcp
- echidna-llm-mcp
- elevenlabs-mcp
- ephapax-mcp
- feedback-mcp
- ffmpeg-mcp
- fireflag-mcp
- fleet-mcp
- fly-mcp
- game-admin-mcp
- gcp-mcp
- git-mcp
- github-actions-mcp
- github-api-mcp
- gitlab-api-mcp
- google-docs-mcp
- google-sheets-mcp
- gossamer-mcp
- grafana-mcp
- hackage-mcp
- hesiod-mcp
- hetzner-mcp
- hex-mcp
- hypatia-mcp
- iac-mcp
- idaptik-admin-mcp
- jira-mcp
- k8s-mcp
- k9iser-mcp
- kategoria-mcp
- laminar-mcp
- lang-mcp
- linear-mcp
- linode-mcp
- local-coord-mcp
- local-memory-mcp
- lsp-mcp
- matrix-mcp
- ml-mcp
- model-router-mcp
- mongodb-mcp
- neo4j-mcp
- neon-mcp
- nesy-mcp
- notifyhub-mcp
- notion-mcp
- npm-registry-mcp
- observe-mcp
- obsidian-mcp
- opam-mcp
- opendata-mcp
- opsm-mcp
- orchestrator-lsp-mcp
- origene-mcp
- panic-attack-mcp
- pinecone-mcp
- pmpl-mcp
- postgresql-mcp
- prometheus-mcp
- proof-mcp
- pypi-mcp
- qdrant-mcp
- queues-mcp
- railway-mcp
- redis-mcp
- render-mcp
- replicate-mcp
- reposystem-mcp
- research-mcp
- rokur-mcp
- sanctify-mcp
- search-mcp
- secrets-mcp
- sentry-mcp
- slack-mcp
- ssg-mcp
- stapeln-mcp
- supabase-mcp
- telegram-mcp
- todoist-mcp
- toolchain-mcp
- turso-mcp
- typed-wasm-mcp
- ums-mcp
- vault-mcp
- verisimdb-mcp
- vext-mcp
- vordr-mcp
- weaviate-mcp
- whisper-mcp
- zotero-mcp
- elixir
- lib/boj_rest
- test
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
0 commit comments