About Genesis Dashboard · 關於創世紀儀表板

What is this? · 這是什麼?

This dashboard registers every qualifying iteration of showcase-001-genesis — a build.md that rebuilds a working Speak Up site from zero app infrastructure (pre-configured subscription + Owner role, no pre-built resources) in ~14 minutes. Each entry here is proof that reproducibility holds.

這個儀表板登記 showcase-001-genesis 每一次合格的 iteration。Genesis 是一份 build.md,在 ~14 分鐘內從「零應用基礎設施」(訂閱與 Owner 權限已預先配置,預建資源)長出一個可用的 Speak Up 站。本頁每一筆紀錄都是「可重現性」的證據。

Two doors · 兩道門

Iterations register via either:

Iteration 以兩種方式登記:

  • POST /api/iterations — REST with bearer token. Works from any Claude Code session or plain curl, used by rebuild-checklist.md §D.4.

    REST + bearer token · 任何 Claude Code session 或 curl 都可以,rebuild-checklist.md §D.4 會自動呼叫。

  • register_iteration— MCP tool over JSON-RPC. Used when the Claude Code session has this dashboard's MCP server configured.

    MCP tool 透過 JSON-RPC 呼叫 · 當 Claude Code session 已配置本 dashboard 的 MCP server 時使用。

Both write to the same Azure SQL database. REST is the portable fallback (preserves Angle A: any clone of showcase-001-genesis can register), MCP is the Claude-native path.

兩道門寫入同一個 Azure SQL。REST 是可攜 fallback(保留 Angle A:任何 clone 都能登記),MCP 是 Claude 原生路徑。

API Reference · API 參考

REST endpoints · REST 端點

GET/api/healthauth: public
Smoke check · 健康檢查:returns {status:'ok', counts:{iterations}}.
curl https://genesis-dashboard.aipm.com.tw/api/health
GET/api/iterationsauth: public
List iterations · 列出所有 iter. Query params: qualified, limit, offset.
curl "https://genesis-dashboard.aipm.com.tw/api/iterations?qualified=true&limit=10"
GET/api/iterations/:iterIdauth: public
Fetch one iteration by id · 依 id 取一筆 iter。
curl https://genesis-dashboard.aipm.com.tw/api/iterations/2026-04-24-b
POST/api/iterationsauth: bearer
Register a qualifying(or disqualified)iteration · 登記一次 iter。Used by rebuild-checklist.md §D.4.
# Fetch bearer from KV (Mark's Sponsorship Owner grants this)
BEARER=$(az keyvault secret show --vault-name kv-d67-dashboard \
  --name dashboard-bearer-token --query value -o tsv)

curl -X POST https://genesis-dashboard.aipm.com.tw/api/iterations \
  -H "Authorization: Bearer $BEARER" \
  -H "Content-Type: application/json" \
  -d @evidence/iteration-${ITER_ID}.json
GET/api/probe?url=<..>auth: public
Server-side reachability probe · 伺服器端連線檢測(only whitelisted domains)。Used by LiveBadge.
curl -G https://genesis-dashboard.aipm.com.tw/api/probe \
  --data-urlencode "url=https://ca-d67-genesis-0422-b-speakup.ambitiousrock-3522716e.southeastasia.azurecontainerapps.io"

MCP endpoint · MCP 端點(JSON-RPC 2.0)

GET/api/mcpauth: public
Describe the MCP server · 描述本 server(debugging aid)。
curl https://genesis-dashboard.aipm.com.tw/api/mcp | jq
POST/api/mcpauth: varies by tool
JSON-RPC 2.0 handler · JSON-RPC 2.0 處理器。Supports: initialize, tools/list, tools/call, ping.
# 1. Initialize
curl -X POST https://genesis-dashboard.aipm.com.tw/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

# 2. List tools
curl -X POST https://genesis-dashboard.aipm.com.tw/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 3. Call a read tool (public)
curl -X POST https://genesis-dashboard.aipm.com.tw/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"list_iterations","arguments":{"qualified":true}}}'

# 4. Call register_iteration (needs bearer)
curl -X POST https://genesis-dashboard.aipm.com.tw/api/mcp \
  -H "Authorization: Bearer $BEARER" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"register_iteration","arguments":<iteration-json>}}'

MCP tools · MCP 工具

Tool nameAuthKey argsReturns
register_iterationbeareriterId, startedAt, finishedAt, totalSeconds, qualified, checkpoints[], validationE[], commitHashes{}, ephemeralFqdn?, disqualifiedReason?text: confirmation + URL
list_iterationspublicqualified?, limit? (max 100)text (JSON): array of iters
get_iterationpubliciterIdtext (JSON): full iter with checkpoints/validationE parsed

Stack

Next.js 16 · Prisma 6 · Azure SQL Basic DTU · Container Apps · Managed cert · 100% Azure under Toastmasters D67 Azure Sponsorship.
Next.js 16 · Prisma 6 · Azure SQL Basic DTU · Container Apps · 受管憑證 · 100% Azure,由 Toastmasters D67 Azure Sponsorship 贊助。