8.5 KiB
Chisel Quality Calibration
Calibration v1 · cartography v1 · revision 6bb6b5efcc0e36b52e3c097f532d9f2c00914c6c · 2026-07-27T15:55:07Z
Sample: fabro-workflow, fabro-http, fabro-web-app, repository-ci · Control: fabro-checkpoint at 6bb6b5efcc0e36b52e3c097f532d9f2c00914c6c
Evaluators: GPT-5 (Codex primary and independent reviewers)
How to Use This Calibration
Judge each mapped component against its purpose and direct repository evidence. Do not grade on a curve. Apply one score per lens, and count a finding under only its primary lens.
Isolated means contained at an edge; normal callers and routine changes do not encounter it. Central means part of a mapped entry point, common path, or recurring change. A routine change is an ordinary extension or maintenance task implied by the component's mapped purpose.
Infer routine work from the mapped purpose and traced common paths; a public method alone does not establish frequency. A directly evidenced central concern caps the component's lens score rather than being averaged against healthier sub-responsibilities. Necessary delegation inside a clear owner is not pressure, and size or internal busyness alone does not lower ownership.
Use N/E when evidence is insufficient. Never convert missing evidence into a numeric score, and do not penalize a missing lifecycle path without evidence that the mapped purpose requires it. Score 4 requires a positive production mechanism and no material friction; tests may corroborate that mechanism but cannot create it or become a second authority merely by asserting its contract.
Lenses
ownership-boundaries — Ownership and boundaries
Does each responsibility and lifecycle have a clear home, with dependencies pointing in the intended direction? Includes responsibility, state, resource, dependency, and lifecycle placement; excludes local control flow, naming, types, API meaning, and repeated policy alone.
simplicity — Simplicity
Is the implementation no more complex, indirect, or general than necessary? Includes common-path traceability, control flow, indirection, abstraction, and configuration burden; excludes placement, domain meaning, and independently repeated knowledge.
domain-model — Domain model
Does each domain concept have one clear meaning and valid shape? Includes types, terminology, legal states, conversions, validation, and API semantics; excludes module placement, lifecycle ownership, and repetition preserving one meaning.
duplication-knowledge — Duplication of knowledge
Are policies, invariants, decisions, and transformations authoritative rather than repeated? Includes semantic repetition and manual synchronization; excludes harmless syntax, coincidental similarity, and unification that would create a parameterized mega-abstraction.
Observable Anchors
| Score | Ownership and boundaries | Simplicity | Domain model | Duplication of knowledge |
|---|---|---|---|---|
| 4 | One owner contains the mapped responsibility's state and complete lifecycle. | A production mechanism makes the necessary common path directly traceable. | Canonical types reject invalid states before every common-path interpretation. | One authoritative mechanism enforces each recurring policy, invariant, or transformation. |
| 3 | Ownership friction is isolated outside routine changes. | Unnecessary indirection is isolated outside routine changes. | Meaning or validation friction is isolated outside routine changes. | Repeated knowledge is isolated outside routine changes. |
| 2 | Routine changes coordinate competing owners or reverse the mapped dependency direction. | Routine changes repeatedly navigate competing paths, avoidable layers, or configuration machinery. | Routine changes reconcile recurring meanings, conversions, or invalid intermediate states. | Routine changes manually synchronize the same policy, invariant, or transformation across recurring locations. |
| 1 | No stable owner or dependency direction can be identified for the responsibility. | No stable common path can be traced through the implementation. | No stable meaning or legal shape can be identified for a core concept. | No stable authority can be identified for recurring domain knowledge. |
Decision Rules
- A directly evidenced central concern caps the component's lens score; do not average it against healthier sub-responsibilities.
- Judge ownership against the map, not type names; when routine callers reconstruct a mapped lifecycle from low-level primitives, ownership fits 2.
- A check owns trigger coverage for every path it scans; non-triggering routine targets are ownership pressure, while nonexistent selector values are domain-model pressure.
- An unused production dependency or parallel entry layer is isolated simplicity friction, capping 4 at 3 when the common path remains direct.
- Caller validation or a typed destination does not isolate an invalid-capable mapped entry; routine common-path use of that shape fits 2.
- Concrete second semantic representations cap 4 at 3; score 2 only when an ordinary mapped change must synchronize them, not merely because call sites repeat.
Confidence
Confidence describes evidence quality, not severity. High requires direct evidence across relevant common and boundary paths; final High also requires independent readings to converge. Medium has a material ambiguity or coverage gap. Low is partial or substantially inferential.
Classifying a Finding
- Where should this responsibility or lifecycle live? →
ownership-boundaries - Why is this much machinery necessary? →
simplicity - What does this name, type, state, or API value mean? →
domain-model - Why is this knowledge authoritative in several places? →
duplication-knowledge
Tags are diagnostic metadata, not additional scores:
abstraction-burden boundary-leakage configuration-sprawl
control-flow conversion-sprawl dependency-direction
generality indirection invalid-states
lifecycle misplaced-responsibility
ownership repeated-invariant repeated-policy
repeated-test-knowledge repeated-transformation
state-coupling type-sprawl vocabulary-drift
Repository Examples
ownership-boundaries
lib/components/fabro-workflow/src/lifecycle/mod.rs:WorkflowLifecycleshows a central orchestrator can own callback order through focused delegates; reviewers must still inspect terminal paths before calling lifecycle ownership contained.apps/fabro-web/app/lib/api-client.ts:apiDataandapps/fabro-web/app/lib/queries.ts:useRunkeep shared transport and read lifecycles out of route composition; a busy route alone is not boundary leakage.
simplicity
lib/foundation/fabro-http/src/lib.rs:define_builder!makes async and blocking construction traceable through one necessary mechanism; local macro indirection can reinforce simplicity.lib/components/fabro-workflow/src/operations/start.rs:RunSession::runexposes a linear phase sequence, while service reshaping across phase inputs shows that a stable path can still carry recurring machinery.
domain-model
lib/components/fabro-workflow/src/event/events.rs:Event::StageCompleteduses string status beforelib/components/fabro-workflow/src/event/convert.rs:stage_status_from_stringreparses it; a typed durable result does not isolate this common-path intermediate.lib/foundation/fabro-http/src/lib.rs:ProxyPolicyandProxyPolicy::resolve_with_env_valuedemonstrate a closed policy vocabulary whose invalid boundary values are rejected.
duplication-knowledge
lib/components/fabro-workflow/src/event/names.rs:event_nameandlib/components/fabro-workflow/src/event/convert.rs:event_body_from_eventshow manual mappings that a routine event extension must synchronize, even when exhaustive matches detect omissions..github/workflows/rust.yml:on.push.pathsand.github/workflows/rust.yml:on.pull_request.pathsdemonstrate duplicated trigger knowledge: one source-area change requires two manual policy edits.
Control Baseline
fabro-checkpoint at 6bb6b5efcc0e36b52e3c097f532d9f2c00914c6c:
| Lens | Score | Confidence |
|---|---|---|
| Ownership and boundaries | 2 | High |
| Simplicity | 3 | High |
| Domain model | 2 | Medium |
| Duplication of knowledge | 3 | Medium |
Recalibration Triggers
Recalibrate only for a rubric change, a material cartography change, a model change with demonstrated drift, or inconsistent scores on the control sample.
Open Questions
None.