add gstack 2 parity and lifecycle gates

This commit is contained in:
Sinabina
2026-07-17 11:08:32 -07:00
parent b6572ebbb7
commit 9919c4cdd3
212 changed files with 29098 additions and 3845 deletions
@@ -0,0 +1,171 @@
{
"schema_version": 1,
"kind": "deterministic-semantic-transcript",
"suite": "QA report-only",
"execution_id": "qa-report-only",
"fixture": {
"id": "browser-findings-only",
"prompt": "Exercise checkout in the running site and give me reproducible findings, but do not change the repository.",
"signals": {
"surface": "web",
"implementation_exists": true,
"mutation_authorized": false,
"evidence_required": true
},
"rationale": "Evidence without repository mutation."
},
"baseline_invocation": {
"base_sha": "bb57306d98c97011b0919c6132705a15b1579781",
"modules": [
"qa-only"
],
"input": "Exercise checkout in the running site and give me reproducible findings, but do not change the repository."
},
"candidate_invocation": {
"dispatcher": "qa",
"mode": "Report",
"depth": "deep",
"mutation": "report-only",
"active_modules": [
"qa-only"
],
"skipped_modules": [
"qa",
"ios-qa",
"devex-review",
"benchmark",
"canary"
],
"web_context": "local-browser",
"input": "Exercise checkout in the running site and give me reproducible findings, but do not change the repository."
},
"source_comparisons": [
{
"source": "qa-only",
"baseline": {
"base_sha": "bb57306d98c97011b0919c6132705a15b1579781",
"source_path": "qa-only/SKILL.md.tmpl",
"rendered_sha256": "7f8c42379e748156bf131a5bae121ab9a3f307e57619e261f5db7865eead3029",
"semantic_signature": {
"normalized_sha256": "7f8c42379e748156bf131a5bae121ab9a3f307e57619e261f5db7865eead3029",
"headings_sha256": "14cf13b917b230aa9ade0fb9b94afd569e4124d2307c6c7f24ba3ac15935fa1f",
"questions_sha256": "329a8a682e4042c808c34055698b9687c3b84768c5ecda53a23a0d3a9811cb5d",
"obligations_sha256": "64e8d7acbf146513d3b8323133dc30620c5a43acf16ee675493031f13fae5449",
"heading_count": 59,
"question_count": 10,
"obligation_count": 91
}
},
"mechanical_port": {
"rendered_sha256": "90f138a7ded37476397e3399ed686a92f9317161ba6e2256d6c7ed7c2893e273",
"differs_from_baseline": true,
"allowed_difference": "Package-local skill, section, support-artifact, and stable runtime path relocation only."
},
"candidate": {
"target_path": "skills/qa/references/legacy/qa-only.md",
"rendered_legacy_body_sha256": "90f138a7ded37476397e3399ed686a92f9317161ba6e2256d6c7ed7c2893e273",
"semantic_signature": {
"normalized_sha256": "90f138a7ded37476397e3399ed686a92f9317161ba6e2256d6c7ed7c2893e273",
"headings_sha256": "14cf13b917b230aa9ade0fb9b94afd569e4124d2307c6c7f24ba3ac15935fa1f",
"questions_sha256": "83385e7d1c6f556816f611364715e34c8dad954d71da79685450413b4c9197c7",
"obligations_sha256": "2262cbeac3297d56f416ece8418e5ef48bf2208470e1661965ef6a6957e2cb8d",
"heading_count": 59,
"question_count": 9,
"obligation_count": 92
}
},
"deterministic_comparison": {
"normalized_body_equal": false,
"installable_port_equal": true,
"contract_equal": true,
"classification": "EQUIVALENT"
},
"differences": [
{
"classification": "INTENTIONAL_IMPROVEMENT",
"issue_or_pr": "https://github.com/garrytan/gstack/pull/679",
"reproduced_defect": "Match the user language",
"regression_fixture": "evals/parity/regressions/pr-679.json",
"explanation": "### User-language rule\n\nWrite questions, progress updates, reports, and artifacts in the language used by the user. Source material, code identifiers, commands, and quotations may remain in their original language when translating them would reduce accuracy."
},
{
"classification": "INTENTIONAL_IMPROVEMENT",
"issue_or_pr": "https://github.com/garrytan/gstack/pull/1484",
"reproduced_defect": "Capture QA evidence per finding",
"regression_fixture": "evals/parity/regressions/pr-1484.json",
"explanation": "### Evidence-per-finding mode\n\nWhen evidence per finding is requested, capture the screenshot immediately after reproducing each issue, name the file with the issue identifier, and include an issue-to-evidence map in the report. Do not postpone all screenshots until the end of the run, because later page state may no longer prove the finding."
},
{
"classification": "INTENTIONAL_IMPROVEMENT",
"issue_or_pr": "https://github.com/garrytan/gstack/pull/2030",
"reproduced_defect": "Record only signal-bearing learnings",
"regression_fixture": "evals/parity/regressions/pr-2030.json",
"explanation": "### Signal-gated learning\n\nPersist a learning only when the interaction contains a useful, reusable signal such as an explicit preference, correction, accepted recommendation, or rejected direction. Track helpful and harmful outcomes separately. Do not manufacture a learning merely because a workflow completed."
}
]
}
],
"semantic_dimensions": {
"questions": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"question_order": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"follow_up_pressure": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"smart_skips": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"pushback_strength": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"scope_recommendation": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"active_reasoning_modules": {
"classification": "EQUIVALENT",
"evidence": "Structured route selected qa-only from product/evidence signals."
},
"findings": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"evidence": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"artifacts": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"approval_gates": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"mutation_behavior": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"completion_status": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"recommended_next_action": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
},
"voice": {
"classification": "EQUIVALENT",
"evidence": "The candidate exactly matches the deterministic installable port of the pinned 1.x workflow; only enumerated package-local path mechanics differ from the immutable oracle."
}
},
"verdict": "PASS"
}