Architect-Spec Governance — the structural-fit bar (spec gate)
The Architect bar at the spec gate: does this capability fit the project's structure, and
is its control-flow graph (CFG) well-placed? Judges the capability (read from its spec + suite), not
the document's prose — that is sdd:spec-format-governance. The SDD default for the architect spec bar;
a plugin may bind its own per artifact-type, and this loads when the registry leaves architect/spec
unbound.
The bar
- No knowledge duplication. A capability, concept, rule, or contract has one home; whatever
needs it references that home. Two copies of one piece of knowledge drift — a change lands in one
and misses the other. But coincidental resemblance is not duplication: two capabilities that
look alike yet change for different reasons stay separate — a premature shared abstraction couples
them, and the wrong abstraction costs more than the repetition. Test: does a change to one force the
same change to the other? Only then converge.
- No conflict. The capability does not contradict established conventions, module boundaries, or
an existing capability's contract.
- Placement matches the declared layout — and the layout preserves the partition. Judge
placement within the strategy the project declared in its root
spec.md placement map
(sdd:spec-structure-governance): under the screaming-architecture default a capability lives in a
folder named for its intent, while a project that declared mirror-source is correctly placed when
it mirrors its source. But the declaration is not a licence — layouts are ranked by whether
they keep node <-> capability 1:1, because the mission scheduler cuts one mission per node and a
scattered capability degrades the schedule toward serial (ADR-0025). One capability per node,
never smeared across nodes, holds under every strategy, and a layered / framework-first top
level stays discouraged however it is declared.
- A well-formed CFG. Its control-flow graph connects — every decision reachable, no
dangling branch — and the suite's sections mirror it.
- The CFG reaches every stated extension. A use case's extensions are its divergence paths
(
sdd:spec-format-governance), so each is an edge the graph must actually contain. An extension
named in ## Use Cases with no path to it in ## Control Flow is a dangling branch read from
the other side — the prose claims a divergence the drawn graph cannot take. A forbidden
combination of surface elements is the same defect in guard form: if two elements may not be
combined, the graph carries the decision that refuses them, or the constraint is unenforceable and
the prose is decoration. Judge the graph against the stated extensions in both directions —
an edge with no extension is the ordinary uncovered-edge case; an extension with no edge is this
one.
- An orthogonal axis. Structural fit judges a property the builder was not optimizing — a real
independent check even from the same hand.
- Structural concerns are deferred. A structural problem in another capability is an observation
that spawns a new spec, never a marker in the one being built.
Faces — asymmetric loadout
The two faces read different inputs. Forward (solution-producer): self-aligns the ungated
<unit>.solution.md, where structure is chosen. Backward (cold spec-judge): grades structure
from spec.md + the suite only — the solution is out of view (grader independence).
Key points (read-check)
- No knowledge duplication — one home per concept; but coincidental resemblance is not
duplication (don't merge things that change for different reasons). No conflict with conventions or
boundaries.
- Placement matches the declared layout (
sdd:spec-structure-governance), not a preferred
one; one capability per node either way, never smeared across nodes.
- A well-formed CFG the suite's sections mirror — and it reaches every stated extension;
an extension with no edge is a dangling branch read from the prose side, a forbidden combination
with no guard is unenforceable.
- Structural concerns in another capability are deferred — an observation that spawns a new spec.
1---2name: architect-spec-governance3description: Partial Skill: invoke by name only4---56# Architect-Spec Governance — the structural-fit bar (spec gate)78The **Architect** bar at the **spec gate**: does this **capability** fit the project's structure, and9is its control-flow graph (CFG) well-placed? Judges the capability (read from its spec + suite), not10the document's prose — that is `sdd:spec-format-governance`. The SDD default for the `architect` spec bar;11a plugin may bind its own per artifact-type, and this loads when the registry leaves `architect`/`spec`12unbound.1314## The bar1516- **No knowledge duplication.** A capability, concept, rule, or contract has **one home**; whatever17 needs it references that home. Two copies of one piece of knowledge drift — a change lands in one18 and misses the other. But **coincidental resemblance is not duplication**: two capabilities that19 look alike yet change for different reasons stay separate — a premature shared abstraction couples20 them, and the wrong abstraction costs more than the repetition. Test: does a change to one force the21 same change to the other? Only then converge.22- **No conflict.** The capability does not contradict established conventions, module boundaries, or23 an existing capability's contract.24- **Placement matches the declared layout — and the layout preserves the partition.** Judge25 *placement within* the strategy the project **declared** in its root `spec.md` placement map26 (`sdd:spec-structure-governance`): under the screaming-architecture default a capability lives in a27 folder named for its intent, while a project that declared `mirror-source` is correctly placed when28 it mirrors its source. But the declaration is **not** a licence — layouts are ranked by whether29 they keep **node <-> capability 1:1**, because the mission scheduler cuts one mission per node and a30 scattered capability degrades the schedule toward serial (ADR-0025). **One capability per node,31 never smeared across nodes**, holds under every strategy, and a layered / framework-first *top*32 level stays discouraged however it is declared.33- **A well-formed CFG.** Its control-flow graph connects — every decision reachable, no34 dangling branch — and the suite's sections mirror it.35- **The CFG reaches every stated extension.** A use case's **extensions** are its divergence paths36 (`sdd:spec-format-governance`), so each is an edge the graph must actually contain. An extension37 named in `## Use Cases` with no path to it in `## Control Flow` is a **dangling branch read from38 the other side** — the prose claims a divergence the drawn graph cannot take. A **forbidden39 combination** of surface elements is the same defect in guard form: if two elements may not be40 combined, the graph carries the decision that refuses them, or the constraint is unenforceable and41 the prose is decoration. Judge the graph against the stated extensions in **both** directions —42 an edge with no extension is the ordinary uncovered-edge case; an extension with no edge is this43 one.44- **An orthogonal axis.** Structural fit judges a property the builder was not optimizing — a real45 independent check even from the same hand.46- **Structural concerns are deferred.** A structural problem in another capability is an observation47 that spawns a new spec, never a marker in the one being built.4849## Faces — asymmetric loadout5051The two faces read different inputs. **Forward (solution-producer):** self-aligns the ungated52`<unit>.solution.md`, where structure is chosen. **Backward (cold spec-judge):** grades structure53from `spec.md` + the suite only — the solution is out of view (grader independence).5455## Key points (read-check)56571. **No knowledge duplication** — one home per concept; but coincidental resemblance is not58 duplication (don't merge things that change for different reasons). No conflict with conventions or59 boundaries.602. **Placement matches the *declared* layout** (`sdd:spec-structure-governance`), not a preferred61 one; one capability per node either way, never smeared across nodes.623. **A well-formed CFG** the suite's sections mirror — and it reaches every stated extension;63 an extension with no edge is a dangling branch read from the prose side, a forbidden combination64 with no guard is unenforceable.654. **Structural concerns in another capability are deferred** — an observation that spawns a new spec.