From 7f01ef156ef2bb8b4b49aca0951e8b1d68ad4683 Mon Sep 17 00:00:00 2001 From: jordyamoedo Date: Sun, 14 Jun 2026 23:26:51 -0300 Subject: [PATCH 1/2] docs(governance): PROP-20260614-quality-harness.yaml --- .../PROP-20260614-quality-harness.yaml | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 governance/proposals/PROP-20260614-quality-harness.yaml diff --git a/governance/proposals/PROP-20260614-quality-harness.yaml b/governance/proposals/PROP-20260614-quality-harness.yaml new file mode 100644 index 0000000000..85534f75d5 --- /dev/null +++ b/governance/proposals/PROP-20260614-quality-harness.yaml @@ -0,0 +1,59 @@ +framework_proposal: + version: "1.0" + id: "PROP-20260614-quality-harness" + date: "2026-06-14" + proposer: "external-contributor (consumer-project audit)" + source_finding: "AF-20260614-quality-harness" + + target: + layer: "L2" + artifact_type: "rule" + artifact_path: ".claude/rules/quality-suite.md (NEW) + .claude/rules/full-suite-before-seal.md (NEW) + optional pre-push QA gate" + operation: "create" + + generalization: + pattern_name: "Quality harness: layered gates, each with an owning agent and a fail-mode" + when_to_apply: | + Any project where "quality first" is a stated principle but has no mechanism. + Three invariants make it real: + 1. every gate has a NAMED owning agent (not "whoever remembers"); + 2. every gate runs AUTOMATICALLY at its moment (git hook or CI), never by human initiative; + 3. the PR/CI gate is the one nobody can bypass (merge is blocked there). + Plus "full-suite-before-seal": run the WHOLE test suite (no path filter) + build + + typecheck before marking work shippable. Subset runs hide cross-module regressions — + a change shifts lines/exports and breaks a test in an *untouched* module. + examples_from_other_domains: + - "A 'Quality First' constitution article with no enforcement is a slogan, not a gate" + - "Subset test runs (--testPathPattern) pass while an untouched module's test breaks" + - "CI runs after push; the seal happens before — so the seal needs its own full check" + + migration_path: + breaking_change: false + affected_consumers: [] + rollout_plan: | + Additive. Adds process rules + a moment x owning-agent x fail-mode map. Gates start + advisory; a project opts each gate into blocking via config. Only the PR/CI gate + blocks by default (already the correct place). + + deprecation_plan: + deprecates: [] + sunset_window: "n/a" + + cost_benefit: + cost: "~2 documentation rules + a moment x owner x fail-mode map; optional pre-push QA gate" + benefit: | + Turns the constitution's own "Quality First" (Article V) from a declarative principle + into a mechanism with named owners and automatic gates. full-suite-before-seal catches + the cross-module regressions that subset runs miss. + risk: "low-medium — additive; advisory by default; only the PR/CI gate blocks" + + approval: + eliel_decision: "PENDING" + eliel_decision_at: null + eliel_decision_rationale: "" + revision_request: [] + + implementation: + pr_url: "" + merged_at: "" + distributed_to: [] From 492b577d06952302c09bad36cb381b84e896c7f9 Mon Sep 17 00:00:00 2001 From: jordyamoedo Date: Sun, 14 Jun 2026 23:27:00 -0300 Subject: [PATCH 2/2] docs(governance): AF-20260614-quality-harness.yaml --- .../promoted/AF-20260614-quality-harness.yaml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 audits/promoted/AF-20260614-quality-harness.yaml diff --git a/audits/promoted/AF-20260614-quality-harness.yaml b/audits/promoted/AF-20260614-quality-harness.yaml new file mode 100644 index 0000000000..bf37fe35a8 --- /dev/null +++ b/audits/promoted/AF-20260614-quality-harness.yaml @@ -0,0 +1,37 @@ +audit_finding: + version: "1.0" + id: "AF-20260614-quality-harness" + date: "2026-06-14" + auditor: "external-contributor (@aiox-master in a consumer project)" + source_session: "Comparative audit of a hardened consumer fork against aiox-core v5.2.9" + + context: + project: "a production consumer project (anonymized)" + epic: "framework learning-loop audit" + triggered_by: "'Quality First' is a constitution article but nothing mechanizes it per moment/owner" + + finding: + summary: "'Quality First' (Article V) is declarative — there is no harness tying gates to moments and owning agents, no rule forcing the full suite before a seal, and no mechanical 'no push without a QA gate'." + evidence: + - "Article V states the principle but no mechanism ties gates to moments/owners/fail-modes" + - "No 'run the full suite (no path filter) + build + typecheck before seal' rule → subset runs hide regressions in untouched modules" + - "No mechanical enforcement that a push carries a QA gate verdict for modified work" + impact_observed: + blast_radius: "medium" + affected_artifacts: ["every change that ships", "the constitution's Quality First article"] + cost: "Cross-module regressions slip through subset runs; quality depends on humans remembering" + + framework_candidate: true + framework_candidate_rationale: | + Project-agnostic. Any project using the framework benefits from a quality harness with + named owners + automatic gates, and from running the full suite before a seal. All gates + start advisory; only the PR/CI gate blocks (already the correct place) — preserves freedom. + + references: + - kind: pattern + path: "Quality harness: layered gates with an owning agent and a fail-mode" + + proposed_disposition: + - "Add a quality-suite rule: a moment x owning-agent x fail-mode map; gates run automatically" + - "Add full-suite-before-seal: whole suite + build + typecheck before work is shippable" + - "Add a pre-push QA gate (no push without a gate verdict for modified work)"