Skip to content
This repository was archived by the owner on May 23, 2026. It is now read-only.

rename: Mission→Domain / Kluster→Mission entity swap#43

Merged
RyanMerlin merged 10 commits into
mainfrom
rename/domain-mission-swap
May 23, 2026
Merged

rename: Mission→Domain / Kluster→Mission entity swap#43
RyanMerlin merged 10 commits into
mainfrom
rename/domain-mission-swap

Conversation

@RyanMerlin
Copy link
Copy Markdown
Owner

Summary

Renames the two top-tier coordination entities to eliminate the naming confusion that has caused real architecture drift:

Old New What it means
Mission Domain Bounded org objective — policy surface, permission boundary
Kluster Mission Workstream inside a domain — where artifacts cohere, context continuity lives
Task Task Unchanged

The brand MissionControl, binaries (mc, mcd, mc-controlplane), Helm chart, S3 bucket, and MC_ env prefix are all unchanged.

What changed

  • A1 (rename: mission→domain (rust)): token sweep, models/mission.rsdomain.rs, routes/missions.rsdomains.rs
  • A2 (rename: kluster→mission (rust)): token sweep, models/kluster.rsmission.rs, routes/klusters.rsmissions.rs
  • B1/B2 (rename: cli + http paths + mcp tool names): /k//m/ HTTP path segments, MCP tool names (create_domain, create_mission, load_mission_workspace, etc.), CLI flags
  • Migration 0012_swap_mission_domain.sql: schema rename — applied and verified against dev DB
  • C1 (docs: entity rename): all docs, runbooks, catalog, Starlight site — zero kluster refs remaining in site/src
  • C2 (aria repo, committed separately): mc-engineer profile CLAUDE.md vocab + MCP tool names updated

Test plan

  • cargo check --workspace — clean (zero new errors vs baseline on each phase)
  • cargo clippy --workspace — clean (no new warnings introduced)
  • Migration 0012_swap_mission_domain.sql applied clean to dev DB (55ms, 0 errors)
  • mc-controlplane boot log confirms ix_domain_name index (not old ix_mission_name)
  • cd site && npm run build — 24 pages, no broken links
  • Zero kluster refs in site/src after C1
  • Brand audit: git diff main | grep -iE 'DomainControl|domain-control' — empty
  • End-to-end smoke: mc domain create, mc mission create --domain, mc task create --mission, workspace load/commit
  • MCP validation playbook pass against new tool names
  • aria-mc-engineer.service restart → mcp__missioncontrol__list_domains returns expected shape

Squash-merge instructions

Squash all commits into one. No versioning required — all consumers are internal.

🤖 Generated with Claude Code

Ryan Merlin and others added 10 commits May 22, 2026 11:43
Replaces all stub pages with real content across all six navigation
sections: Getting Started, Concepts, Architecture, Guides, Reference, ADRs.

Content sourced from docs/ tree and scrubbed of Aria/personal-fleet
specifics. Adds GitHub Actions deploy workflow for GitHub Pages on push
to main.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Token sweep step 1: Mission→Domain, mission→domain, MISSION→DOMAIN.
Brand strings (MissionControl, Mission Control, MISSION CONTROL,
mission-control) and TUI MissionMatrix protected via placeholders.
Regex lookbehind prevents permissions/submission/etc. corruption.

File renames: models/mission.rs→domain.rs,
routes/missions.rs→domains.rs, routes/mission_packs.rs→domain_packs.rs

cargo check clean on all three crates.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Token sweep step 2: Kluster→Mission, kluster→mission, KLUSTER→MISSION.
No brand exclusions needed — kluster is not a substring of any
protected term.

File renames: models/kluster.rs→mission.rs,
routes/klusters.rs→missions.rs

All three crates pass cargo check. Zero kluster tokens in .rs/.toml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HTTP routes: /k/ path segment → /m/ across all 8 files
  (tasks, missions, tui, daemon_ctl, solo_supervisor,
   task_worker, task_loop, bootstrap)
- MCP tool names already correct via A1/A2 sweep:
  create_domain/list_domains (was create_mission/list_missions),
  create_mission/update_mission/delete_mission (was kluster-*),
  load/commit/release_mission_workspace (was kluster_workspace),
  provision_domain_persistence, search_missions

All three crates pass cargo check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
entities.md:
- Mission → Domain (org boundary); Kluster → Mission (workstream)
- DomainRoleMembership section (was MissionRoleMembership)
- Agent FK columns: home_domain_id/current_domain_id (was home_mission_id)
- Vocabulary notes citing migration 0012 date

MISSIONCONTROL_PHILOSOPHY.md:
- Entity list: Domains/Missions replaces Missions/Klusters
- S3 path: domains/{domain_id}/missions/{mission_id}/…
- MCP tool names: search_missions, create_domain, create_mission
- Mission/Domain-centric org model section updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update all docs, runbooks, catalog, and Starlight site content to reflect
the Mission→Domain / Kluster→Mission rename from migration 0012.

- entities.md, philosophy, architecture: canonical vocab updated
- runbooks (EVOLVE, MCP-VALIDATION-PLAYBOOK, PLAYBOOK-VS-AGENT-GATEBOOK): tool names, entity IDs, env vars
- catalog (api, swarm, web): entity references
- design/ephemeral-task-subagents.md: kluster→mission throughout
- site concepts/overview, philosophy, entity-reference: full rewrite to Domain/Mission/Task
- site concepts/missions-klusters-tasks → domains-missions-tasks (renamed + rewritten)
- site astro.config: redirect from old URL
- site architecture, getting-started, guides, reference: all entity vocab updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
C1 covered docs and the Starlight site but missed scripts, web UI, distribution
hooks, and top-level project docs. This sweep closes those gaps so the entity
rename PR is grep-clean across all non-historical surfaces.

Critical (PR test-plan item):
- scripts/mcp-validation-playbook.sh — MCP tool names and field renames
  (create_kluster→create_mission, load_kluster_workspace→load_mission_workspace,
  etc.); fixed pre-existing .result.kluster.id → .result.id accessor bug
- scripts/pressure-scenarios/enterprise-pilot.json — mission/kluster keys → domain/mission

Web UI:
- web/src/lib/api/explorer.ts — ExplorerTree.klusters? → missions? (matches new backend shape)
- web/src/lib/telemetry.ts — MatrixEvent kluster_id? → domain_id? + mission_id?
- web/vite.config.ts — /klusters proxy path replaced with /domains
- web/src/routes/explorer/+page.svelte — full domain→mission→task UI flow
- web/src/routes/matrix/+page.svelte — added type-domain CSS, dropped type-kluster
- web/WEB_UI_KLUSTER_SUBTASK_IMPROVEMENTS.md — deleted (stale one-off changelog)

Distribution hooks:
- distribution/hooks/mc-precompact.sh / mc-recompact-context.sh —
  read active_domain_id + active_mission_id from context.json (matches new mc/launch.rs)

Functional demo scripts (token swap to new API paths + entity vocab):
- scripts/demo-mesh.sh, demo-mesh-goose.sh, mc-collab-driver.sh,
  smoke-test-exec-substrate.sh, demo_workers/agent_worker.py
- crates/mcd/scripts/demo_three_agents.sh

Stale prototype + e2e scripts (mechanical rename only; still reference dead
`mc mesh` command which was removed pre-rename — out of scope):
- scripts/proto/ephemeral-subagent.sh, crates/mcd/scripts/e2e-test.sh

Project docs:
- README.md — Missions & Klusters → Domains & Missions; load_mission_workspace
- CONTRIBUTING.md — commit message example
- .claude/agents/missioncontrol.md — full MCP tool / CLI reference
- .gitignore — added crates/mc/mission-*.md (kept kluster-* for back-compat)
- .github/workflows/ci-migrations.yml — step name (workflow is disabled)
- scripts/mc-pressure-test.sh — kluster_deleted → domain_deleted in summary jq

Verification:
- cargo check on all three crates (mc, mcd, mc-controlplane) clean
- web npm run build clean (24 pages)
- Remaining `kluster` refs are all legitimate: migration 0012 (the rename
  migration itself), initial schema 0001 (historical, append-only), CHANGELOG,
  TODO completed entries, gitignore back-compat pattern, rename_sweep.py (the
  meta script that performed the rename)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@RyanMerlin RyanMerlin merged commit ceff9f1 into main May 23, 2026
5 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant