Skip to main content
Greenfield Production Systems

Samples

Catalog and matrix samples

Three artifacts as they ship: a behavior-catalog excerpt with its migration decisions, an enforcement-matrix excerpt with its three cell classes, and the coverage boundary. The rows come from the Bugzilla teardown, so the cited source is public and checkable.

Artifact · Behavior catalog

Catalog excerpt, with migration decisions

Each behavior carries typed semantics, a provenance citation into Bugzilla's source, its epistemic tier, and the decision made when the system was rebuilt. On a rebuild engagement, the migration column is part of what you approve before construction starts.

Traced in source
Behavior-catalog excerpt with typed semantics, provenance citations, epistemic tiers, and migration decisions.
ID Behavior Kind Semantics Provenance Tier Migration decision
bug.create-bug.missing-summary A bug cannot be filed with an empty summary. validation cmd create-bug · require summary ≠ '' Bugzilla/Bug.pm:1163 Proven Port as-is
bug.mark-bug-duplicate.missing-dup-id Resolving a bug as a duplicate requires the id of the bug it duplicates. validation cmd mark-bug-duplicate · require dupId present Bugzilla/Bug.pm:1488 Proven Port as-is
bug.assign-bug.strict-isolation Under strict isolation, the assignee must have edit access to the bug's product. business-rule cmd assign-bug · require productAccess(assignee) when strict_isolation Bugzilla/Bug.pm:2241 Traced in source Port as-is
bug.update-bug-status.authorization-assignee Only the assignee, QA contact, or an editbugs member may change a bug's status. authorization cmd update-bug-status · require actor ∈ {assignee, qaContact} ∨ editbugs Bugzilla/Bug.pm:1377 Traced in source Port as-is
bug.add-comment.body-max-length A comment body may not exceed 65,535 characters. validation cmd add-comment · require len(body) ≤ 65535 Bugzilla/Bug.pm:2840 Proven Port as-is
bug.mark-bug-duplicate.auto-cc-reporter Marking a bug as a duplicate adds its reporter to the target bug's CC list. business-rule on mark-bug-duplicate · effect target.cc += reporter Bugzilla/Bug.pm:1530 Traced in source Port as-is
user.create-user.invalid-email-regexp A login name must match the system's email pattern. validation cmd create-user · require login ~ emailregexp Bugzilla/User.pm:1684 Proven Port as-is
product.create-component.assignee-required A component cannot be created without a default assignee. business-rule cmd create-component · require defaultAssignee present Bugzilla/Component.pm:142 Proven Port as-is
attachment.create-attachment.file-too-large An attachment larger than the configured limit is rejected. validation cmd create-attachment · require size ≤ maxattachmentsize Bugzilla/Attachment.pm:512 Proven Port as-is; the limit moves to service configuration
attachment.request-flag.type-not-requestable A flag request is rejected when its flag type is not requestable. validation cmd request-flag · require flagType.isRequestable Bugzilla/Flag.pm:388 Traced in source Port as-is
notification.get-notification-preferences.default-preferences When a user has set no preferences, the system applies the defaults. business-rule query get-notification-preferences · default when none(prefs) Bugzilla/BugMail.pm:204 Traced in source Port: preferences move behind the notification service
notification.send-test-notification.email-transport-not-configured A test notification fails when no email transport is configured. validation cmd send-test-notification · require emailTransport configured Bugzilla/BugMail.pm:331 Probe candidate Port: delivery moves behind the notification service
Twelve of the catalog's behaviors. Tiers are the factory's: proven means a test ran green, traced in source means read from code but not yet run, probe candidate means a live environment is needed to settle it.

Artifact · Enforcement matrix

Enforcement-matrix excerpt

The matrix crosses every frontend gate against every backend guard and classes each rule. Most rules land in both layers, which is the point: the control group is what makes the exceptions findings rather than noise. These rows come from the rebuilt Bugzilla stack.

Traced in source
Both layers
The control group: the rule holds wherever you hit it.
UI only
The finding class: the frontend promises what the backend never checks.
Backend only
The inverse: the server refuses what the UI lets you attempt.
Enforcement-matrix excerpt: each rule crossed against its frontend gate and backend guard, classed as both-layers, UI-only, or backend-only.
Rule Frontend gate Backend guard Class
Summary required to file a bug frontend/src/views/BugCreate/BugCreate.tsx:88 services/service-bug/service/src/commands/create-bugHandler.ts:24 Both layers
Attachment size limit frontend/src/views/BugDetail/BugDetail.tsx:214 services/service-attachment/service/src/commands/create-attachment-Handler.ts:33 Both layers
Comment length capped at 65,535 characters frontend/src/views/BugDetail/BugDetail.tsx:147 services/service-bug/service/src/commands/add-commentHandler.ts:29 Both layers
Duplicate id must reference a different, existing bug

No backend guard found at generation time; flagged, then fixed in the same run.

frontend/src/views/BugDetail/BugDetail.tsx:302 none found UI only
Target milestone limited to the product's milestones

The select constrains the value; the command accepted any string.

frontend/src/views/BugDetail/BugDetail.tsx:219 none found UI only
Reassignment restricted to editbugs members

The UI shows the assignee field to every signed-in user; the server refuses.

none found services/service-bug/service/src/commands/assign-bug-Handler.ts:57 Backend only
Security-group changes restricted to members of the group

The checkboxes render for everyone; the command rejects non-members.

none found services/service-bug/service/src/commands/add-bug-groupHandler.ts:31 Backend only

The finding class on a client estate, redacted

Probe candidate

The same UI-only class as it appears in practice: a rule the frontend promises at serverless-████-service/███Form.tsx:59Path partially redacted. with no corresponding backend guard found. It stays a probe candidate, with the exact API call that settles it, until it's run against a live environment.

Artifact · Coverage boundary

The boundary, as it ships

Every catalog ends with this block: what was read, what wasn't, and what that means for the findings. It's rendered below exactly as a client receives it, populated from the Bugzilla teardown.

Proven