Skip to content

docs: constitution status drift — .2dm write + Phase-5 mutation API shipped but constitution says "future" #228

Description

@domattioli

Problem

.specify/memory/constitution.md (the supreme governance doc — CLAUDE.md defers to it) has two factual status statements that are now wrong, plus one overstated claim:

  1. L67 — Principle VI: SMS 2DM: Secondary; read support mandatory, write support future

    • Wrong. _write_2dm ships (src/chilmesh/CHILmesh.py:2508) and save(".2dm") dispatches to it (:2472). Write support is shipped, and as of this rotation tested (tests/test_2dm_roundtrip.py, 12 round-trip cases, development 158c018).
  2. L26 — Mutation API: Topology changes (split, merge, insert_vertex) are explicitly opt-in via future Phase 5: Mutation API

    • Wrong (status). src/chilmesh/mutations.py ships the full API (split_triangle, swap_edge, merge_elements, remove_vertex, collapse_edge, move_boundary_node, split_triangles, smooth_topology) — Phase 5: Mesh mutation API (split, merge, swap, insert) #94 closed/shipped, also reflected in the README roadmap. The read-only-default semantics may still hold, but "future Phase 5" is stale.
  3. Overstated claim (surfaced by the new round-trip test): the constitution describes .2dm roundtrip as lossless, but _write_2dm serializes only node coords + element connectivity — not boundary-segment metadata. Lossless for geometry/topology; boundary records are dropped. The wording should qualify this.

Why this is filed, not fixed

Per the per-repo operator directive, autonomous routine sessions do not unilaterally rewrite governance docs (the constitution outranks CLAUDE.md). The sanctioned fix is an operator pass or speckit-constitution update that keeps dependent templates in sync. First flagged for the 2dm half on #201 (2026-06-09); still present, hence this focused record.

Suggested edits (for the operator/speckit pass)

  • L67 → SMS 2DM: Secondary; read + write support shipped (write drops boundary metadata).
  • L26 → drop "future"; mark Phase 5 Mutation API as shipped (Phase 5: Mesh mutation API (split, merge, swap, insert) #94), keep the read-only-default framing.
  • Qualify any ".2dm roundtrip lossless" wording to "lossless for geometry + topology; boundary metadata not serialized".

Filed by the CHILmesh hour-10 rotation (maintenance track). Not auto-fixable — governance-doc edit.

[model: claude-opus-4-8, repo: CHILmesh, session: 2026-06-22T10Z-rotation, refs: #94, #201]

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: normalDefault importance.status: readySpec complete; implementable now.type: choreTooling/maintenance/dependencies.

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions