{"format": "ta-amps.seed-pack.nouns.v1", "pack_id": "user-acceptance-testing", "status": "proposal_only", "records": [ {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.pack", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.skill_pack", "pack:user-acceptance-testing", "role:pack", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.skill_pack", "role": "pack", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "A collection of nouns and verbs for user acceptance testing with a person's sign-off", "lets_workers": "Write personas and acceptance criteria before testing, have a person agree to the criteria, turn them into scenario scripts, run each script and record what was observed as it happened, propose a finding for every defect, compile the results by a fixed rule, and keep a person's go or no-go as a noun.", "flow": [{"verb": "user-acceptance-testing.draft-personas", "when": "When a surface, page or change needs acceptance testing."}, {"verb": "user-acceptance-testing.write-acceptance-criteria", "when": "Before any testing, from the personas and the change."}, {"verb": "user-acceptance-testing.agree-criteria", "when": "A person agrees to the exact criteria version; a person's verb."}, {"verb": "user-acceptance-testing.write-scenario-scripts", "when": "After the criteria are agreed."}, {"verb": "user-acceptance-testing.run-scenario", "when": "Once per script and build, by an agent or a person."}, {"verb": "user-acceptance-testing.compile-results", "when": "When the planned sessions are in; deterministic."}, {"verb": "user-acceptance-testing.sign-off", "when": "A person records go, no_go or go_with_conditions; a person's verb."}], "guardrails": ["Criteria come first and are agreed by a person; a criterion changed after testing starts is a new version, and its runs are repeated.", "Record what was observed, as it happened. Never edit a result to match the expected one.", "Every failed or blocked step becomes a proposed finding with its evidence.", "Only a person signs off. A recommendation from the results is advice, not the decision.", "Synthetic test data only. No real names, contact details or case details, ever."], "worked_examples": [{"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.signoff-checks", "version": 1, "value_sha256": "48fc1a614b863a405d1dd85b3efe1ae53c43524c9a91f7b3d77599a9d48457f5"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.persona", "version": 1, "value_sha256": "bf5c9ec288da32769a308b2f0294167f9d8c9c96d74884335bb8777ca11d921c"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.acceptance-criteria", "version": 1, "value_sha256": "b1c1539f333a2708388517acb8390f0f46cf0525bacee34628d5596daf15194b"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.scenario-script", "version": 1, "value_sha256": "1290c0d3fe8e181308527d82979a78581f73493fe107a0f2fe60266ab22998f3"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.session-record", "version": 1, "value_sha256": "1c2ce652ef62837c2b598c25a6f8ceb657dfd7373b9e2720ed526980d96491d2"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.results-summary", "version": 1, "value_sha256": "f56262014be43dceb0d8d6db7d72aa6d24c98e7e5c6152a8aeb296bfb357c42b"}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.sign-off", "version": 1, "value_sha256": "91b88deabf620a9be265f0be1d6aa343e05f0f2db3e30d695f8e7f5ecfbd7bc3"}], "complements": ["Accessibility findings go through the accessibility audit pack, which cites WCAG success criteria.", "Each defect's fix, verification and guard go through the findings to fixes pack.", "The launch readiness pack pins a sign-off as evidence before an owner decides on launch."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": [{"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.method", "target_category": "noun.skill_pack", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.persona-guide", "target_category": "noun.skill_pack", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.criteria-guide", "target_category": "noun.skill_pack", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.test-data-rules", "target_category": "noun.reflex_procedure", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.defect-rules", "target_category": "noun.reflex_procedure", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.verdict-rules", "target_category": "noun.reflex_procedure", "note": ""}, {"relation": "requires_noun", "target_id": "seedpack.user-acceptance-testing/user-acceptance-testing.v0.1.0.signoff-checks", "target_category": "noun.benchmark_suite", "note": ""}]}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.method", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.skill_pack", "pack:user-acceptance-testing", "role:method", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.skill_pack", "role": "method", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "How acceptance testing runs from personas to a person's sign-off", "category_reason": "A reusable procedure with guardrails, followed by every verb in this pack.", "lifecycle": ["draft-personas writes who the surface is for, as assumptions.", "write-acceptance-criteria writes what must be true for each persona, before anyone tests.", "agree-criteria: a person agrees to an exact criteria version.", "write-scenario-scripts turns the agreed criteria into steps a person or a browser-driving agent can follow.", "run-scenario follows one script on one build and records each step's result as it happens.", "compile-results derives each criterion's verdict and a recommendation by fixed rules.", "sign-off: a person records go, no_go or go_with_conditions, with reasons."], "rules": ["Testing starts only from an agreed criteria version, pinned by digest.", "A run on a different build or criteria version than its script ends blocked instead of guessing.", "Observed results are recorded in plain words; expected results are never copied into them.", "A failed, blocked or not-run step stays on the record; a rerun is a new session.", "A no-go is a useful result, not a failure of the testing.", "Workers create nouns and propose verbs; they never enqueue."], "roles": {"accountable_person": "Agrees to the criteria and signs off. Usually the person who owns the outcome, such as a program manager.", "runner": "An agent or a person who follows a script. A runner with assistive technology is a person unless an agent's tool truly is that technology.", "compiler": "A deterministic worker that derives verdicts; it does not judge."}, "follow_ups": {"defect": "findings-to-fixes.record-finding", "accessibility": "accessibility-audit.plan-audit", "launch": "launch-readiness.plan-readiness"}, "sources": ["Acceptance criteria in given, when and then form follow common behavior-driven practice; the wording here is original."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.persona-guide", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.skill_pack", "pack:user-acceptance-testing", "role:persona_guide", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.skill_pack", "role": "persona_guide", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "How to write a persona for acceptance testing", "category_reason": "A reusable method for writing personas; the personas themselves are seed hypotheses.", "a_persona_holds": ["One primary goal, in the persona's words", "The context they work in and any time pressure", "Device, screen width, input modes and any assistive technology", "Connection quality and languages", "How much they know about the domain", "What success looks like to them", "What they must never be asked to do, such as share a client's details"], "rules": ["Write goals and situations, not demographics or stereotypes.", "Include at least one persona who uses only a keyboard or a screen reader, and one on a small screen, unless the brief says why not.", "Personas are assumptions. Each says what evidence would confirm or contradict it, and later evidence can replace it.", "Synthetic only: a role label, never a real person's name, story, photo or contact details."], "good_label_examples": ["Volunteer coordinator on a phone between shifts", "Retired volunteer using a screen reader at home"], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.criteria-guide", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.skill_pack", "pack:user-acceptance-testing", "role:criteria_guide", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.skill_pack", "role": "criteria_guide", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "How to write acceptance criteria that can be checked", "category_reason": "A reusable method for writing testable criteria.", "form": "Given a starting state, when the persona does one thing, then something a person or a deterministic check can observe happens.", "rules": ["One behavior per criterion, with a then that names what is seen, not how it is built.", "Priority is must, should or could. Every persona gets at least one must criterion.", "Accessibility criteria cite their WCAG 2.2 success criteria from the accessibility audit checklist.", "A time-on-task criterion states its threshold and how the time is measured, such as from the first page load to the moment the field is focused.", "Content criteria say who must understand the wording, such as a volunteer with no technical background.", "Error criteria say what the persona sees after a mistake and how they recover."], "checklist": {"store": "seedpack.accessibility-audit", "key": "accessibility-audit.v0.1.0.wcag-checklist", "version": 1, "value_sha256": "96a205dbe865d893b2b792044555ca7a492cade7ab6bf113dda3a6096658507a"}, "anti_patterns": ["The page works well.", "It should be fast.", "Users like the design."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.test-data-rules", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.reflex_procedure", "pack:user-acceptance-testing", "role:test_data_rules", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.reflex_procedure", "role": "test_data_rules", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Synthetic test data for acceptance testing", "category_reason": "A zero-call rule for which data a test may use.", "use": ["Names that are role labels or plainly invented, such as Test Volunteer A.", "Email addresses only at reserved example domains (example.com, example.org, example.net), and only on a test target.", "Phone numbers only from reserved fictional ranges, and only on a test target.", "Organization names marked synthetic."], "never": ["Real people's names, stories, contact details, case notes or photos.", "Anything pasted from a real inbox, case file or spreadsheet.", "Credentials of any kind; a step that needs one is blocked until a person provides access outside the record."], "on_live_targets": "On a live public target, a step that would submit, pay or create an account is recorded as not_run unless a person named a test target for it.", "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.defect-rules", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.reflex_procedure", "pack:user-acceptance-testing", "role:defect_rules", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.reflex_procedure", "role": "defect_rules", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "How a failed step becomes a finding", "category_reason": "A zero-call mapping from an observed failure to a finding's kind, severity and evidence.", "finding_kind": {"error": "The surface does something other than its agreed criterion says, such as a button that does nothing.", "design_flaw": "It works as built, but the persona cannot finish, is misled or needs help to go on.", "annoyance": "The persona's own frustration, quoted exactly; record who said it and when.", "issue": "The environment or process got in the way, such as a missing test target or a build that changed mid-session."}, "provisional_severity": {"P0": "The run exposed personal data or a credential; stop and route it to the security review pack.", "P1": "A must criterion fails for a persona with no workaround they could find.", "P2": "A must criterion needs a workaround, or a should criterion fails.", "P3": "Cosmetic, or a could criterion fails."}, "evidence": ["The script and step number, the build and the criteria version", "A screenshot digest and the region that shows the problem", "The time and what was observed, in plain words", "For an annoyance, the person's exact words"], "severity_guide": {"store": "seedpack.findings-to-fixes", "key": "findings-to-fixes.v0.1.0.severity-guide", "version": 1, "value_sha256": "01285ba591bde6c9f30d768030de1d3c774bde33cf0c9a705f6a90bc128f94bd"}, "evidence_checklist": {"store": "seedpack.findings-to-fixes", "key": "findings-to-fixes.v0.1.0.evidence-checklist", "version": 1, "value_sha256": "907f80e8681a94894c8a03ea07a793aecc1b25ea9fe1f5f04a8096d7c2e5862e"}, "record_with": "findings-to-fixes.record-finding", "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.verdict-rules", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.reflex_procedure", "pack:user-acceptance-testing", "role:verdict_rules", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.reflex_procedure", "role": "verdict_rules", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "How criterion verdicts and the recommendation are derived", "category_reason": "A zero-call deterministic derivation: the same sessions always give the same verdicts.", "criterion": {"met": "Every step that checks it passed, in the latest included session for each persona it names.", "not_met": "At least one such step failed.", "not_tested": "No step failed, but at least one was blocked or not run, or a named persona has no included session."}, "included_sessions": "Only sessions run on the agreed criteria version; others are listed as excluded with the reason.", "recommendation": {"recommend_no_go": "Any must criterion is not_met, or any P0 or P1 finding linked to the sessions is open.", "incomplete": "No must criterion is not_met and nothing blocking is open, but at least one must criterion is not_tested.", "recommend_go": "Every must criterion is met and no P0 or P1 finding is open."}, "rule": "The recommendation is advice for the person who signs off; it never decides.", "model_calls": 0, "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.signoff-checks", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.benchmark_suite", "pack:user-acceptance-testing", "role:record_checks", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.benchmark_suite", "role": "record_checks", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Record checks for sign-offs, with synthetic golden sign-offs", "category_reason": "Deterministic checks with synthetic known-good and known-bad records; the validator recomputes them.", "fixture_kind": "finding_checks", "purpose": "Checks every sign-off must pass before anyone relies on its decision. The three synthetic good sign-offs (a no-go, a conditional go and a clean go) pass all of them; each synthetic bad sign-off fails exactly the one check named in fails.", "deterministic_checks": [{"id": "decision-known", "rule": {"rule": "enum", "path": "decision", "values": ["go", "no_go", "go_with_conditions"]}, "why": "The decision is go, no_go or go_with_conditions."}, {"id": "signed-by-person", "rule": {"rule": "enum", "path": "signer_is_person", "values": [true]}, "why": "Only a person signs off."}, {"id": "signer-named", "rule": {"rule": "present", "path": "signed_by_role"}, "why": "The sign-off names the signer's role."}, {"id": "signer-not-agent", "rule": {"rule": "pattern_absent", "path": "signed_by_role", "pattern": "(?i)\\b(agent|bot|model|assistant|automated|worker)\\b"}, "why": "An agent never signs off, under any role name."}, {"id": "dated", "rule": {"rule": "pattern_present", "path": "signed_at", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}"}, "why": "The sign-off is dated in UTC."}, {"id": "reasons-given", "rule": {"rule": "present", "path": "reasons"}, "why": "The signer says why, in their own words."}, {"id": "summary-pinned", "rule": {"rule": "pattern_present", "path": "results_summary_ref.value_sha256", "pattern": "^[0-9a-f]{64}$"}, "why": "The decision names the exact results summary it read."}, {"id": "criteria-pinned", "rule": {"rule": "pattern_present", "path": "criteria_ref.value_sha256", "pattern": "^[0-9a-f]{64}$"}, "why": "The decision names the exact agreed criteria."}, {"id": "risks-accepted-explicitly", "rule": {"rule": "when", "if": {"path": "risks_present", "equals": true}, "then": {"rule": "when", "if": {"path": "decision", "in": ["go", "go_with_conditions"]}, "then": {"rule": "min_items", "path": "accepted_risks", "min": 1}}}, "why": "A go with an unmet must criterion or an open P0 or P1 finding lists each accepted risk."}, {"id": "risks-owned", "rule": {"rule": "each_has", "path": "accepted_risks", "fields": ["item", "why_acceptable", "owner_role"]}, "why": "Every accepted risk says why and who owns it."}, {"id": "conditions-listed", "rule": {"rule": "when", "if": {"path": "decision", "equals": "go_with_conditions"}, "then": {"rule": "min_items", "path": "conditions", "min": 1}}, "why": "A conditional go lists its conditions."}, {"id": "conditions-owned", "rule": {"rule": "each_has", "path": "conditions", "fields": ["condition", "owner_role", "due"]}, "why": "Every condition has an owner and a date."}, {"id": "no-go-next-step", "rule": {"rule": "when", "if": {"path": "decision", "equals": "no_go"}, "then": {"rule": "present", "path": "next_step"}}, "why": "A no-go says what happens next."}, {"id": "no-contact-data", "rule": {"rule": "pattern_absent", "path": "$", "pattern": "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}|\\b[0-9]{3}[-. )]{1,2}[0-9]{3}[-. ][0-9]{4}\\b"}, "why": "A sign-off holds no email addresses or phone numbers."}], "finding_schema": {"type": "object", "additionalProperties": false, "required": ["signoff_id", "results_summary_ref", "criteria_ref", "signed_by_role", "signer_is_person", "signed_at", "decision", "reasons", "unmet_must", "open_blocking_findings", "risks_present", "accepted_risks", "conditions", "next_step"], "properties": {"signoff_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "results_summary_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "signed_by_role": {"type": "string", "minLength": 1, "maxLength": 120}, "signer_is_person": {"const": true}, "signed_at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "decision": {"type": "string", "enum": ["go", "no_go", "go_with_conditions"]}, "reasons": {"type": "string", "minLength": 1, "maxLength": 1000}, "unmet_must": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}}, "open_blocking_findings": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}}, "risks_present": {"type": "boolean"}, "accepted_risks": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "object", "additionalProperties": false, "required": ["item", "why_acceptable", "owner_role"], "properties": {"item": {"type": "string", "minLength": 1, "maxLength": 120}, "why_acceptable": {"type": "string", "minLength": 1, "maxLength": 400}, "owner_role": {"type": "string", "minLength": 1, "maxLength": 120}}}}, "conditions": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "object", "additionalProperties": false, "required": ["condition", "owner_role", "due"], "properties": {"condition": {"type": "string", "minLength": 1, "maxLength": 300}, "owner_role": {"type": "string", "minLength": 1, "maxLength": 120}, "due": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "maxLength": 10}}}}, "next_step": {"type": "string", "minLength": 0, "maxLength": 300}}}, "golden_fixtures": [{"id": "good-no-go", "label": "known_good", "provenance": "synthetic", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "good-conditional-go", "label": "known_good", "provenance": "synthetic", "finding": {"signoff_id": "SO-13", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-11-02T14:05Z", "decision": "go_with_conditions", "reasons": "Every must criterion passes now. The confirmation wording is still confusing, and we accept that for one week.", "unmet_must": [], "open_blocking_findings": ["UAT-F-5"], "risks_present": true, "accepted_risks": [{"item": "UAT-F-5", "why_acceptable": "Volunteers still get the right shift; only the wording confuses them.", "owner_role": "volunteer coordinator"}], "conditions": [{"condition": "Reword the confirmation page and rerun AC-6.", "owner_role": "site maintainer", "due": "2026-11-09"}], "next_step": ""}}, {"id": "good-clean-go", "label": "known_good", "provenance": "synthetic", "finding": {"signoff_id": "SO-14", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-11-09T10:00Z", "decision": "go", "reasons": "All criteria are met and nothing blocking is open.", "unmet_must": [], "open_blocking_findings": [], "risks_present": false, "accepted_risks": [], "conditions": [], "next_step": ""}}, {"id": "bad-decision-maybe", "label": "known_bad", "fails": "decision-known", "why": "A decision outside the three choices.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "probably fine", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-agent-flag", "label": "known_bad", "fails": "signed-by-person", "why": "Recorded as not signed by a person.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": false, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-no-signer", "label": "known_bad", "fails": "signer-named", "why": "Nobody is named.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-agent-signer", "label": "known_bad", "fails": "signer-not-agent", "why": "An agent signed under a role name.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "review agent", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-undated", "label": "known_bad", "fails": "dated", "why": "No UTC date and time.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "last Tuesday", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-no-reasons", "label": "known_bad", "fails": "reasons-given", "why": "No reasons.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-summary-unpinned", "label": "known_bad", "fails": "summary-pinned", "why": "The summary is not pinned to an exact version.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "latest"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-criteria-unpinned", "label": "known_bad", "fails": "criteria-pinned", "why": "The criteria are not pinned.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": ""}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-silent-risk", "label": "known_bad", "fails": "risks-accepted-explicitly", "why": "A go with a blocking finding and no accepted risk.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": ""}}, {"id": "bad-unowned-risk", "label": "known_bad", "fails": "risks-owned", "why": "An accepted risk with no owner.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [{"item": "UAT-F-2", "why_acceptable": "Rare.", "owner_role": ""}], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-conditions-missing", "label": "known_bad", "fails": "conditions-listed", "why": "A conditional go with no conditions.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "go_with_conditions", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [{"item": "UAT-F-2", "why_acceptable": "Short window.", "owner_role": "volunteer coordinator"}], "conditions": [], "next_step": ""}}, {"id": "bad-condition-undated", "label": "known_bad", "fails": "conditions-owned", "why": "A condition with no date.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [{"condition": "Fix the shift picker.", "owner_role": "site maintainer", "due": ""}], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}, {"id": "bad-no-next-step", "label": "known_bad", "fails": "no-go-next-step", "why": "A no-go that says nothing about what comes next.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": ""}}, {"id": "bad-contact-data", "label": "known_bad", "fails": "no-contact-data", "why": "A real-looking phone number in the reasons.", "finding": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "Call the manager at 555-010-0123 before launch.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}}], "expected": {"good-no-go": {"verdict": "pass", "failed_checks": []}, "good-conditional-go": {"verdict": "pass", "failed_checks": []}, "good-clean-go": {"verdict": "pass", "failed_checks": []}, "bad-decision-maybe": {"verdict": "fail", "failed_checks": ["decision-known"]}, "bad-agent-flag": {"verdict": "fail", "failed_checks": ["signed-by-person"]}, "bad-no-signer": {"verdict": "fail", "failed_checks": ["signer-named"]}, "bad-agent-signer": {"verdict": "fail", "failed_checks": ["signer-not-agent"]}, "bad-undated": {"verdict": "fail", "failed_checks": ["dated"]}, "bad-no-reasons": {"verdict": "fail", "failed_checks": ["reasons-given"]}, "bad-summary-unpinned": {"verdict": "fail", "failed_checks": ["summary-pinned"]}, "bad-criteria-unpinned": {"verdict": "fail", "failed_checks": ["criteria-pinned"]}, "bad-silent-risk": {"verdict": "fail", "failed_checks": ["risks-accepted-explicitly"]}, "bad-unowned-risk": {"verdict": "fail", "failed_checks": ["risks-owned"]}, "bad-conditions-missing": {"verdict": "fail", "failed_checks": ["conditions-listed"]}, "bad-condition-undated": {"verdict": "fail", "failed_checks": ["conditions-owned"]}, "bad-no-next-step": {"verdict": "fail", "failed_checks": ["no-go-next-step"]}, "bad-contact-data": {"verdict": "fail", "failed_checks": ["no-contact-data"]}}, "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.persona", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.seed_hypothesis", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.seed_hypothesis", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: a synthetic persona with a goal, context, access needs and what success means", "category_reason": "A persona is an assumption about users that later evidence can confirm or contradict.", "describes": "a synthetic persona with a goal, context, access needs and what success means", "schema": {"type": "object", "additionalProperties": false, "required": ["persona_id", "label", "synthetic", "goal", "context", "device", "screen_width_px", "input_modes", "assistive_technology", "connection", "languages", "domain_knowledge", "constraints", "success_looks_like", "never_asked_to", "assumption_evidence"], "properties": {"persona_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "label": {"type": "string", "minLength": 1, "maxLength": 80}, "synthetic": {"const": true}, "goal": {"type": "string", "minLength": 1, "maxLength": 300}, "context": {"type": "string", "minLength": 1, "maxLength": 400}, "device": {"type": "string", "enum": ["phone", "tablet", "laptop", "desktop"]}, "screen_width_px": {"type": "integer", "minimum": 240, "maximum": 4000}, "input_modes": {"type": "array", "minItems": 1, "maxItems": 5, "items": {"type": "string", "enum": ["touch", "mouse", "keyboard_only", "switch", "voice"]}}, "assistive_technology": {"type": "array", "minItems": 0, "maxItems": 4, "items": {"type": "string", "minLength": 1, "maxLength": 80}}, "connection": {"type": "string", "enum": ["fast", "slow", "intermittent"]}, "languages": {"type": "array", "minItems": 1, "maxItems": 4, "items": {"type": "string", "minLength": 1, "maxLength": 20}}, "domain_knowledge": {"type": "string", "enum": ["none", "some", "expert"]}, "constraints": {"type": "array", "minItems": 0, "maxItems": 6, "items": {"type": "string", "minLength": 1, "maxLength": 200}}, "success_looks_like": {"type": "string", "minLength": 1, "maxLength": 300}, "never_asked_to": {"type": "array", "minItems": 0, "maxItems": 6, "items": {"type": "string", "minLength": 1, "maxLength": 200}}, "assumption_evidence": {"type": "string", "minLength": 1, "maxLength": 300}}}, "rules": ["synthetic is always true.", "label is a role, never a real name.", "assumption_evidence says what would confirm or contradict the persona."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.acceptance-criteria", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.seed_hypothesis", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.seed_hypothesis", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: acceptance criteria in given, when and then form, with priority and personas", "category_reason": "Criteria are a testable statement of what must hold, agreed before testing.", "describes": "acceptance criteria in given, when and then form, with priority and personas", "schema": {"type": "object", "additionalProperties": false, "required": ["criteria_set_id", "subject", "version_note", "criteria"], "properties": {"criteria_set_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "subject": {"type": "string", "minLength": 1, "maxLength": 200}, "version_note": {"type": "string", "minLength": 1, "maxLength": 200}, "criteria": {"type": "array", "minItems": 1, "maxItems": 40, "items": {"type": "object", "additionalProperties": false, "required": ["id", "priority", "kind", "personas", "given", "when", "then"], "properties": {"id": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}, "priority": {"type": "string", "enum": ["must", "should", "could"]}, "kind": {"type": "string", "enum": ["functional", "content", "accessibility", "time_on_task", "error_handling"]}, "personas": {"type": "array", "minItems": 1, "maxItems": 5, "items": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}}, "given": {"type": "string", "minLength": 1, "maxLength": 300}, "when": {"type": "string", "minLength": 1, "maxLength": 300}, "then": {"type": "string", "minLength": 1, "maxLength": 300}, "wcag_sc": {"type": "array", "minItems": 0, "maxItems": 4, "items": {"type": "string", "pattern": "^[1-4]\\.[0-9]\\.[0-9]{1,2}$"}}, "threshold": {"type": "string", "minLength": 0, "maxLength": 120}}}}}}, "rules": ["Ids are unique.", "Every accessibility criterion cites at least one WCAG success criterion.", "A time_on_task criterion fills threshold."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.criteria-agreement", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: a person's agreement to one exact version of the acceptance criteria", "category_reason": "An agreement is a recorded decision on one version.", "describes": "a person's agreement to one exact version of the acceptance criteria", "schema": {"type": "object", "additionalProperties": false, "required": ["agreement_id", "criteria_ref", "agreed_by_role", "signer_is_person", "agreed_at", "decision", "changes"], "properties": {"agreement_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "agreed_by_role": {"type": "string", "minLength": 1, "maxLength": 120}, "signer_is_person": {"const": true}, "agreed_at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "decision": {"type": "string", "enum": ["agreed", "agreed_with_changes", "not_agreed"]}, "changes": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "object", "additionalProperties": false, "required": ["criterion", "change", "why"], "properties": {"criterion": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}, "change": {"type": "string", "minLength": 1, "maxLength": 300}, "why": {"type": "string", "minLength": 1, "maxLength": 300}}}}, "note": {"type": "string", "minLength": 0, "maxLength": 600}}}, "rules": ["The agreement pins the exact criteria version.", "Only a person agrees."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.scenario-script", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.benchmark_suite", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.benchmark_suite", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: a scenario script with numbered steps, expected observations and the criteria each step checks", "category_reason": "A script is a reusable test that runs against a build.", "describes": "a scenario script with numbered steps, expected observations and the criteria each step checks", "schema": {"type": "object", "additionalProperties": false, "required": ["script_id", "persona_id", "task", "target", "build", "criteria_ref", "preconditions", "steps", "test_data", "time_limit_minutes"], "properties": {"script_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "persona_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "task": {"type": "string", "minLength": 1, "maxLength": 200}, "target": {"type": "string", "pattern": "^https?://", "minLength": 8, "maxLength": 300}, "build": {"type": "string", "minLength": 1, "maxLength": 120}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "preconditions": {"type": "array", "minItems": 0, "maxItems": 8, "items": {"type": "string", "minLength": 1, "maxLength": 200}}, "steps": {"type": "array", "minItems": 1, "maxItems": 60, "items": {"type": "object", "additionalProperties": false, "required": ["n", "action", "expected", "checks", "needs_test_target"], "properties": {"n": {"type": "integer", "minimum": 1, "maximum": 200}, "action": {"type": "string", "minLength": 1, "maxLength": 300}, "expected": {"type": "string", "minLength": 1, "maxLength": 300}, "checks": {"type": "array", "minItems": 0, "maxItems": 6, "items": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}}, "mode_note": {"type": "string", "minLength": 0, "maxLength": 200}, "needs_test_target": {"type": "boolean"}}}}, "test_data": {"type": "array", "minItems": 0, "maxItems": 10, "items": {"type": "string", "minLength": 1, "maxLength": 200}}, "time_limit_minutes": {"type": "integer", "minimum": 1, "maximum": 240}}}, "rules": ["Every must criterion is checked by at least one step.", "A step that would submit, pay or create an account sets needs_test_target."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.session-record", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: the observed results of one scenario run on one build", "category_reason": "A session record is a recorded run.", "describes": "the observed results of one scenario run on one build", "schema": {"type": "object", "additionalProperties": false, "required": ["session_id", "script_id", "persona_id", "run_by", "runner_role", "build", "target", "criteria_ref", "started_at", "ended_at", "environment", "results", "deviations", "failed", "not_run"], "properties": {"session_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "script_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "persona_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "run_by": {"type": "string", "enum": ["agent", "person"]}, "runner_role": {"type": "string", "minLength": 1, "maxLength": 120}, "build": {"type": "string", "minLength": 1, "maxLength": 120}, "target": {"type": "string", "pattern": "^https?://", "minLength": 8, "maxLength": 300}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "started_at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "ended_at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "environment": {"type": "object", "additionalProperties": false, "required": ["browser", "viewport_px", "theme", "input_mode"], "properties": {"browser": {"type": "string", "minLength": 1, "maxLength": 120}, "viewport_px": {"type": "integer", "minimum": 200, "maximum": 8000}, "theme": {"type": "string", "enum": ["light", "dark", "high_contrast"]}, "input_mode": {"type": "string", "enum": ["touch", "mouse", "keyboard_only", "switch", "voice"]}, "assistive_technology": {"type": "string", "minLength": 0, "maxLength": 120}}}, "results": {"type": "array", "minItems": 1, "maxItems": 60, "items": {"type": "object", "additionalProperties": false, "required": ["n", "result", "observed", "at", "evidence"], "properties": {"n": {"type": "integer", "minimum": 1, "maximum": 200}, "result": {"type": "string", "enum": ["pass", "fail", "blocked", "not_run"]}, "observed": {"type": "string", "minLength": 1, "maxLength": 400}, "at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "evidence": {"type": "array", "minItems": 0, "maxItems": 6, "items": {"type": "object", "additionalProperties": false, "required": ["kind", "detail"], "properties": {"kind": {"type": "string", "enum": ["screenshot", "recording", "measurement", "log_excerpt", "quote"]}, "detail": {"type": "string", "minLength": 1, "maxLength": 400}, "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "region": {"type": "array", "minItems": 4, "maxItems": 4, "items": {"type": "integer", "minimum": 0, "maximum": 100000}}}}}, "reason": {"type": "string", "minLength": 0, "maxLength": 300}, "finding_id": {"type": "string", "minLength": 0, "maxLength": 60}}}}, "deviations": {"type": "array", "minItems": 0, "maxItems": 10, "items": {"type": "string", "minLength": 1, "maxLength": 300}}, "failed": {"type": "integer", "minimum": 0, "maximum": 200}, "not_run": {"type": "integer", "minimum": 0, "maximum": 200}}}, "rules": ["failed equals the number of fail results; not_run the number of not_run results.", "Every fail has evidence with a digest.", "Every blocked or not_run result has a reason."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.results-summary", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: criterion verdicts and a recommendation derived from included sessions", "category_reason": "A summary is a deterministic evaluation of recorded runs.", "describes": "criterion verdicts and a recommendation derived from included sessions", "schema": {"type": "object", "additionalProperties": false, "required": ["summary_id", "criteria_ref", "sessions", "excluded", "criteria", "unlinked_failures", "open_findings", "recommendation", "recommendation_reason"], "properties": {"summary_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "sessions": {"type": "array", "minItems": 1, "maxItems": 32, "items": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}}, "excluded": {"type": "array", "minItems": 0, "maxItems": 16, "items": {"type": "object", "additionalProperties": false, "required": ["session_id", "reason"], "properties": {"session_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "reason": {"type": "string", "minLength": 1, "maxLength": 300}}}}, "criteria": {"type": "array", "minItems": 1, "maxItems": 40, "items": {"type": "object", "additionalProperties": false, "required": ["id", "priority", "verdict", "steps", "findings"], "properties": {"id": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}, "priority": {"type": "string", "enum": ["must", "should", "could"]}, "verdict": {"type": "string", "enum": ["met", "not_met", "not_tested"]}, "steps": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "string", "minLength": 1, "maxLength": 60}}, "findings": {"type": "array", "minItems": 0, "maxItems": 10, "items": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}}}}}, "unlinked_failures": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "string", "minLength": 1, "maxLength": 80}}, "open_findings": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "object", "additionalProperties": false, "required": ["id", "severity", "title"], "properties": {"id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "severity": {"type": "string", "enum": ["P0", "P1", "P2", "P3"]}, "title": {"type": "string", "minLength": 1, "maxLength": 200}}}}, "recommendation": {"type": "string", "enum": ["recommend_go", "recommend_no_go", "incomplete"]}, "recommendation_reason": {"type": "string", "minLength": 1, "maxLength": 600}}}, "rules": ["Verdicts follow the verdict rules.", "Every failed step is linked to a finding or listed in unlinked_failures."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.sign-off", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:template", "content:authored", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "template", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Template: a person's go, no-go or conditional go on one results summary", "category_reason": "A sign-off is a person's recorded decision.", "describes": "a person's go, no-go or conditional go on one results summary", "schema": {"type": "object", "additionalProperties": false, "required": ["signoff_id", "results_summary_ref", "criteria_ref", "signed_by_role", "signer_is_person", "signed_at", "decision", "reasons", "unmet_must", "open_blocking_findings", "risks_present", "accepted_risks", "conditions", "next_step"], "properties": {"signoff_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}, "results_summary_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "criteria_ref": {"type": "object", "additionalProperties": false, "required": ["key", "version", "value_sha256"], "properties": {"key": {"type": "string", "minLength": 1, "maxLength": 256}, "version": {"type": "integer", "minimum": 1, "maximum": 1000000000}, "value_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}}}, "signed_by_role": {"type": "string", "minLength": 1, "maxLength": 120}, "signer_is_person": {"const": true}, "signed_at": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z$", "maxLength": 30}, "decision": {"type": "string", "enum": ["go", "no_go", "go_with_conditions"]}, "reasons": {"type": "string", "minLength": 1, "maxLength": 1000}, "unmet_must": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "string", "pattern": "^AC-[0-9]{1,3}$"}}, "open_blocking_findings": {"type": "array", "minItems": 0, "maxItems": 40, "items": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,40}$"}}, "risks_present": {"type": "boolean"}, "accepted_risks": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "object", "additionalProperties": false, "required": ["item", "why_acceptable", "owner_role"], "properties": {"item": {"type": "string", "minLength": 1, "maxLength": 120}, "why_acceptable": {"type": "string", "minLength": 1, "maxLength": 400}, "owner_role": {"type": "string", "minLength": 1, "maxLength": 120}}}}, "conditions": {"type": "array", "minItems": 0, "maxItems": 20, "items": {"type": "object", "additionalProperties": false, "required": ["condition", "owner_role", "due"], "properties": {"condition": {"type": "string", "minLength": 1, "maxLength": 300}, "owner_role": {"type": "string", "minLength": 1, "maxLength": 120}, "due": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "maxLength": 10}}}}, "next_step": {"type": "string", "minLength": 0, "maxLength": 300}}}, "rules": ["It passes the sign-off checks.", "risks_present is true when unmet_must or open_blocking_findings lists anything."], "status": "proposal", "admission": "not_admitted", "content_kind": "authored_guidance", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.persona", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.seed_hypothesis", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.seed_hypothesis", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: a keyboard-only volunteer persona", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.persona", "version": 1, "value_sha256": "27b650af4545a9327cfeefceacd93609b88b673c7bfafd08ca6fca5eadd74088"}, "instance": {"persona_id": "P-2", "label": "Retired volunteer who uses only a keyboard", "synthetic": true, "goal": "Pick a Saturday morning shift at the pantry without phoning anyone.", "context": "Volunteers twice a month. Uses a laptop at home with a screen magnifier, and never uses a mouse because of a hand tremor.", "device": "laptop", "screen_width_px": 1280, "input_modes": ["keyboard_only"], "assistive_technology": ["screen magnifier at 200%"], "connection": "slow", "languages": ["en"], "domain_knowledge": "some", "constraints": ["Loses their place when focus jumps", "Small links are hard to see at 200%"], "success_looks_like": "Sees the shift confirmed on screen and knows what to bring.", "never_asked_to": ["share other volunteers' details", "create a password to pick one shift"], "assumption_evidence": "Confirmed if volunteer coordinators report keyboard-only volunteers; contradicted if none sign up this way in a season."}, "shows": "A persona built from a goal and real constraints, with an access need that changes what the site must do.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.acceptance-criteria", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.seed_hypothesis", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.seed_hypothesis", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: acceptance criteria for picking a shift", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.acceptance-criteria", "version": 1, "value_sha256": "f159f2a81c19b9ec2c8d853cf3a10a03008c6c53775646588469236f6da5c40a"}, "instance": {"criteria_set_id": "AC-SET-7", "subject": "Picking a volunteer shift on the synthetic pantry site", "version_note": "Version 2, after the program manager split AC-3 in two.", "criteria": [{"id": "AC-1", "priority": "must", "kind": "functional", "personas": ["P-1", "P-2"], "given": "The shifts page is open", "when": "the volunteer chooses a Saturday shift with free places", "then": "the page shows the chosen shift and a Confirm button"}, {"id": "AC-3", "priority": "must", "kind": "accessibility", "personas": ["P-2"], "given": "Only a keyboard is used", "when": "the volunteer tabs through the shift list", "then": "every shift can be reached and chosen, and focus is always visible", "wcag_sc": ["2.1.1", "2.4.7"]}, {"id": "AC-4", "priority": "should", "kind": "time_on_task", "personas": ["P-1"], "given": "The home page has loaded", "when": "the volunteer looks for where to pick a shift", "then": "the shift list is open", "threshold": "within 60 seconds from first load"}, {"id": "AC-6", "priority": "should", "kind": "content", "personas": ["P-1", "P-2"], "given": "A shift was confirmed", "when": "the confirmation page shows", "then": "a volunteer with no technical background can say when to arrive and what to bring"}]}, "shows": "Testable criteria with priorities, personas, WCAG citations for the accessibility one and a stated time threshold.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.scenario-script", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.benchmark_suite", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.benchmark_suite", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: a keyboard-only scenario script", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.scenario-script", "version": 1, "value_sha256": "44d5a5574901542c057360771a6fae14fd8d0cfde11471c01ba27b50e04fa8e5"}, "instance": {"script_id": "S-2", "persona_id": "P-2", "task": "Pick a Saturday morning shift using only the keyboard", "target": "https://pantry.example.invalid/shifts", "build": "site build 2026-10-30.3", "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "preconditions": ["Browser zoom at 200%", "No mouse or touch"], "steps": [{"n": 1, "action": "Load the shifts page and press Tab until focus reaches the first Saturday shift.", "expected": "Focus is visible at every stop and reaches the shift list in under 15 presses.", "checks": ["AC-3"], "needs_test_target": false}, {"n": 2, "action": "Choose the 9:00 Saturday shift with Enter.", "expected": "The chosen shift and a Confirm button appear.", "checks": ["AC-1", "AC-3"], "needs_test_target": false}, {"n": 3, "action": "Press Confirm with Enter.", "expected": "A confirmation page shows the time and what to bring.", "checks": ["AC-6"], "mode_note": "Submits a booking.", "needs_test_target": true}], "test_data": ["Volunteer name: Test Volunteer B (synthetic)"], "time_limit_minutes": 15}, "shows": "A script whose steps name the criteria they check and mark the submitting step as needing a test target.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.session-record", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: a session with a failed step, a not-run step and the finding proposed", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.session-record", "version": 1, "value_sha256": "db6d103f0b3ca751a8a827b693494dc7ac3f39f4fa2facd34a67859557d376a2"}, "instance": {"session_id": "SES-31", "script_id": "S-2", "persona_id": "P-2", "run_by": "agent", "runner_role": "browser-driving test agent", "build": "site build 2026-10-30.3", "target": "https://pantry.example.invalid/shifts", "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "started_at": "2026-10-30T15:02Z", "ended_at": "2026-10-30T15:09Z", "environment": {"browser": "Chromium 140, headless", "viewport_px": 1280, "theme": "light", "input_mode": "keyboard_only"}, "results": [{"n": 1, "result": "fail", "observed": "Focus reached the shift list after 9 presses, but the Saturday shift buttons showed no focus indicator.", "at": "2026-10-30T15:04Z", "evidence": [{"kind": "screenshot", "detail": "Focused and unfocused crops of the 9:00 button are identical.", "sha256": "3b7e1f0d9c2a4b6e8f1a3c5e7b9d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d", "region": [312, 488, 220, 44]}], "finding_id": "UAT-F-2"}, {"n": 2, "result": "pass", "observed": "Enter chose the shift; the chosen shift and a Confirm button appeared.", "at": "2026-10-30T15:06Z", "evidence": []}, {"n": 3, "result": "not_run", "observed": "Not run: this step books a shift and no test target was named.", "at": "2026-10-30T15:07Z", "evidence": [], "reason": "needs_test_target is true and the owner named no test target."}], "deviations": [], "failed": 1, "not_run": 1}, "shows": "Results recorded as observed, with a digest and region for the failure, a reason for the step not run, and the finding id the run proposed.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.results-summary", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: verdicts and a no-go recommendation", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.results-summary", "version": 1, "value_sha256": "5f2ea50058ee53fe6b3ebb7569926ba0655d8ba5a93a54f3e23c4302985393ec"}, "instance": {"summary_id": "SUM-9", "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "sessions": ["SES-30", "SES-31"], "excluded": [{"session_id": "SES-27", "reason": "Run against criteria version 1, before AC-3 was split."}], "criteria": [{"id": "AC-1", "priority": "must", "verdict": "met", "steps": ["SES-30:2", "SES-31:2"], "findings": []}, {"id": "AC-3", "priority": "must", "verdict": "not_met", "steps": ["SES-31:1", "SES-31:2"], "findings": ["UAT-F-2"]}, {"id": "AC-4", "priority": "should", "verdict": "met", "steps": ["SES-30:1"], "findings": []}, {"id": "AC-6", "priority": "should", "verdict": "not_tested", "steps": ["SES-31:3"], "findings": []}], "unlinked_failures": [], "open_findings": [{"id": "UAT-F-2", "severity": "P1", "title": "Shift buttons show no keyboard focus indicator."}], "recommendation": "recommend_no_go", "recommendation_reason": "Must criterion AC-3 is not met and P1 finding UAT-F-2 is open."}, "shows": "Verdicts derived by the rules, an excluded session with its reason and a recommendation that is advice only.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}}, {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.example.sign-off", "expected_version": 0, "producer_surface": "surface:tessera", "visibility_scope": "surface_only", "allowed_surfaces": [], "target_cohorts": ["all"], "tags": ["category:noun.eval_run", "pack:user-acceptance-testing", "role:example", "synthetic:true", "spdx:MIT", "status:quarantined"], "value": {"category_id": "noun.eval_run", "role": "example", "pack": "user-acceptance-testing", "pack_version": "0.1.0", "title": "Worked example: a person's no-go", "category_reason": "A synthetic instance in the template's shape.", "conforms_to": {"store": "seedpack.user-acceptance-testing", "key": "user-acceptance-testing.v0.1.0.template.sign-off", "version": 1, "value_sha256": "9614434f359f871562a5587a922b0d2f2671e3b71f9e45f9306ddf2e028704e9"}, "instance": {"signoff_id": "SO-12", "results_summary_ref": {"key": "user-acceptance-testing.results_summary.t-41", "version": 1, "value_sha256": "5a1f0c3e7d9b2a4c6e8f0a1b3c5d7e9f1a2b3c4d5e6f708192a3b4c5d6e7f809"}, "criteria_ref": {"key": "user-acceptance-testing.acceptance_criteria.t-38", "version": 2, "value_sha256": "c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5c0ffee00d15ea5e5"}, "signed_by_role": "pantry program manager", "signer_is_person": true, "signed_at": "2026-10-30T16:20Z", "decision": "no_go", "reasons": "A keyboard-only volunteer cannot pick a shift, and that is a must for us. Everything else can wait.", "unmet_must": ["AC-3"], "open_blocking_findings": ["UAT-F-2"], "risks_present": true, "accepted_risks": [], "conditions": [], "next_step": "Fix UAT-F-2, rerun the keyboard-only script on the fixed build, and bring the new summary back."}, "shows": "The decision is a person's, pinned to the exact summary and criteria, with reasons and a next step.", "source": "Synthetic. Written for this pack; every name, address, number and identifier is made up.", "status": "proposal", "admission": "not_admitted", "content_kind": "synthetic_example", "license": "MIT", "provenance": {"source": "original ta-amps authored proposal", "license": "MIT", "generator": "scripts/build_packs.py", "independently_verified": false}, "dimensions": {"determinism": 0.0, "evidence_grounding": 0.0, "token_efficiency": 0.0, "safety_compliance": 0.0, "verification_tier": "unverified"}, "dimension_basis": {"measured": false, "method": "unmeasured_floor", "reason": "Tessera requires these axes, so each is set to its lowest value and the tier is unverified. No quality is claimed. Replace them only with measured values and the evidence that produced them."}, "relations": []}} ]}