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 plaincurl, used byrebuild-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 端點
/api/healthauth: public{status:'ok', counts:{iterations}}.curl https://genesis-dashboard.aipm.com.tw/api/health
/api/iterationsauth: publicqualified, limit, offset.curl "https://genesis-dashboard.aipm.com.tw/api/iterations?qualified=true&limit=10"
/api/iterations/:iterIdauth: publiccurl https://genesis-dashboard.aipm.com.tw/api/iterations/2026-04-24-b
/api/iterationsauth: bearerrebuild-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/api/probe?url=<..>auth: publicLiveBadge.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)
/api/mcpauth: publiccurl https://genesis-dashboard.aipm.com.tw/api/mcp | jq
/api/mcpauth: varies by toolinitialize, 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 name | Auth | Key args | Returns |
|---|---|---|---|
register_iteration | bearer | iterId, startedAt, finishedAt, totalSeconds, qualified, checkpoints[], validationE[], commitHashes{}, ephemeralFqdn?, disqualifiedReason? | text: confirmation + URL |
list_iterations | public | qualified?, limit? (max 100) | text (JSON): array of iters |
get_iteration | public | iterId | text (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 贊助。