cgcardona / muse public
feat main #37 / 100

feat: three-tier CLI architecture — plumbing, core porcelain, semantic porcelain (#104)

Formally separates Muse's command surface into three tiers with clean namespace boundaries and strict contracts:

Tier 1 — Plumbing (muse plumbing …) 12 new machine-readable, JSON-outputting, pipeable commands that expose the raw engine: hash-object, cat-object, rev-parse, ls-files, read-commit, read-snapshot, commit-tree, update-ref, commit-graph, pack-objects, unpack-objects, ls-remote (moved from top-level).

Tier 2 — Core Porcelain (muse … top-level, unchanged paths) All VCS commands stay at the root: init, commit, status, log, diff, show, branch, checkout, merge, reset, revert, cherry-pick, stash, tag, remote, clone, fetch, pull, push, check, annotate, domains, attributes.

Tier 3 — Semantic Porcelain (muse midi …, muse code …, muse coord …) All domain-specific commands moved into namespaced sub-Typers: 11 midi commands, 30 code commands, 6 coord commands.

Also: - ApplyResult TypedDict replaces bare int return from apply_pack(), giving callers structured counts of commits/snapshots/objects written vs skipped. - docs/reference/cli-tiers.md — authoritative tier reference with JSON schemas for every Tier 1 output format and extension guide for new domains. - 41 new plumbing tests (test_cli_plumbing.py), all tests updated for new command paths: 1903 total passing.

Co-authored-by: Gabriel Cardona <gabriel@tellurstori.com>

G Gabriel Cardona <cgcardona@gmail.com> · 1d ago Mar 19, 2026 · 189a2e45 · parent 47f42f27
oldest
newest 64%

Comments

0

No comments yet. Be the first to start the discussion.