Register in commander
Register this project in Commander so its usage telemetry and its test passes have a project to attach to.
markdownguidev1EYCF-9MBYcommanderrunbooktelemetrytest-passes
Runbook: register cuppy / Semarchy in the Commander console
Status 2026-10-11: REGISTERED on the dev instance; prod row still operator-hand. Commander DEV (the
instance that holds the test harness, the dev-gov standards and the usage telemetry) already carries the row
Semarchy — semarchy.cuppy.io, slug semarchy, short id pv7ckc, id 9f4392d4-3211-4372-977c-d12f2acfa507,
with working_dir and git_repo_path both at . That row is the record
for the rewrite week; session labels use cuppy-rewrite-<sprint>. A second dev row cuppy.io (hub) points at
/home/datashield/projects/cuppy/, a different checkout, and is left as is. The production console
(commander.myorg.ai) has no row; creating it is the production database write below, operator-hand.
Why the console panel is empty
Two separate causes, one now fixed:
- Fixed.
QUICKSTART.mdexisted only at.claude/QUICKSTART.md. The boot-sequence endpoint reads it
from the project root (claude-commander/server.js:7930, path.join(gitPath, 'QUICKSTART.md')). It is
now at the root, matching every sibling project.
- Outstanding. There is no project row. Commander holds thirteen projects and none is this one, so the
panel has nothing to resolve. The 2026-07-20 commit "onboard Semarchy App Factory into Commander" added
tracking/PROJECT.md to this repository but never created the row.
Register it
Use the API rather than raw SQL: short_id is NOT NULL with no default and the endpoint generates it,
and the endpoint also applies the plan gates. Authenticated as the operator, against the console:
curl -sS -X POST https://commander.myorg.ai/api/projects \
-H 'content-type: application/json' \
-H "authorization: Bearer $COMMANDER_TOKEN" \
-d '{
"name": "cuppy / Semarchy",
"slug": "cuppy-semarchy",
"working_dir": ".",
"git_repo_path": ".",
"live_url": "https://cuppy.io",
"pm2_processes": ["semarchy"],
"database_name": null,
"color": "#b1162f",
"preflight_prompt": "Read QUICKSTART.md then execute the boot contract. No greetings. Minimize tokens before the selection; maximize quality after it.",
"notes": "One process serves cuppy.io and semarchy.cuppy.io on 8787. semarchy.cuppy.io is walled behind the beta signup; cuppy.io is public; anonymous MCP stays open on both. Storage is SQLite plus file stores; the dedicated Postgres cluster is Phase 1. Production still deploys from .-app-factory/src until the cutover runbook is executed."
}'
git_repo_path is the field the boot-sequence endpoint prefers (git_repo_path || working_dir), so point
both at the checkout. Point them at the checkout, not at the running tree: the running tree is not a git
repository, so the panel's branch, status and log would all come back empty.
Verify
curl -sS -H "authorization: Bearer $COMMANDER_TOKEN" \
https://commander.myorg.ai/api/boot-sequence/<new-project-id> | head -c 400
Expect quickstart and currentWork non-null and gitStatus.branch = sprint/phase-0-preconditions.
Note on ordering
Registering before the cutover is correct and intentional. The console should describe the repository that is the source of truth, not the directory that happens to be running. After the cutover the two agree.