|
| 1 | +# Requirements Quality Checklist: Shareable Map Links |
| 2 | + |
| 3 | +**Purpose**: Comprehensive requirements quality validation — PR review gate after implementation |
| 4 | +**Created**: 2026-03-12 |
| 5 | +**Feature**: [spec.md](../spec.md) |
| 6 | +**Depth**: Standard (~30 items) |
| 7 | +**Audience**: PR reviewer |
| 8 | + |
| 9 | +## Requirement Completeness |
| 10 | + |
| 11 | +- [ ] CHK001 - Are encoding value semantics defined for all possible response states (correct, incorrect, skipped, unanswered)? [Completeness, Spec §FR-002] |
| 12 | +- [ ] CHK002 - Is the binary wire format fully specified with byte offsets, endianness, and field sizes? [Completeness, Contract §token-format] |
| 13 | +- [ ] CHK003 - Are requirements for the "Copy Link" button placement and styling within the share modal specified? [Gap, Spec §FR-009] |
| 14 | +- [ ] CHK004 - Is the CTA button's position, styling, and responsive behavior in the shared view defined? [Gap, Contract §url-contract] |
| 15 | +- [ ] CHK005 - Are requirements specified for all 5 social platform share buttons (LinkedIn, X, Bluesky, Facebook, Instagram)? [Completeness, Spec §FR-015] |
| 16 | +- [ ] CHK006 - Are loading/progress state requirements defined for the shared view while the GP estimator runs? [Gap] |
| 17 | + |
| 18 | +## Requirement Clarity |
| 19 | + |
| 20 | +- [ ] CHK007 - Is "minimal chrome" quantified with an explicit list of hidden vs. visible UI elements? [Clarity, Spec §FR-006] |
| 21 | +- [ ] CHK008 - Is "visually identical" (SC-005) defined with measurable criteria (pixel diff threshold, screenshot comparison method)? [Ambiguity, Spec §SC-005] |
| 22 | +- [ ] CHK009 - Is the "stable, deterministic index" sort order precisely defined (sort key, tie-breaking, collation)? [Clarity, Spec §FR-001] |
| 23 | +- [ ] CHK010 - Is "gracefully handle" for invalid tokens defined with specific fallback behavior? [Clarity, Spec §FR-011] |
| 24 | +- [ ] CHK011 - Is the OG preview image content specified with enough detail for a designer (text content, font sizes, positioning, contrast requirements)? [Clarity, Spec §FR-018] |
| 25 | +- [ ] CHK012 - Is the Instagram "prompt to paste" UX described with specific wording, duration, and dismissal behavior? [Clarity, Spec §FR-020] |
| 26 | + |
| 27 | +## Requirement Consistency |
| 28 | + |
| 29 | +- [ ] CHK013 - Does the "read-only" requirement in US2 align with the "minimal chrome" clarification listing hidden elements? [Consistency, Spec §US2 vs §FR-006] |
| 30 | +- [ ] CHK014 - Are the URL size guarantees in the token format contract consistent with FR-014 (under 2000 chars for ≤200 answers)? [Consistency, Contract §token-format vs Spec §FR-014] |
| 31 | +- [ ] CHK015 - Is the terminology "token" used consistently across spec, plan, contracts, and tasks (not mixed with "hash", "code", "key")? [Consistency] |
| 32 | +- [ ] CHK016 - Does the social platform list match across US3 acceptance scenarios, FR-015, FR-019, and SC-007 (all must list the same 5 platforms)? [Consistency] |
| 33 | + |
| 34 | +## Acceptance Criteria Quality |
| 35 | + |
| 36 | +- [ ] CHK017 - Can SC-001 ("generate shareable link in under 2 seconds") be objectively measured with a defined starting and ending event? [Measurability, Spec §SC-001] |
| 37 | +- [ ] CHK018 - Can SC-002 ("fully rendered knowledge map within 3 seconds") be measured — is "fully rendered" defined (first paint? all dots visible? estimator complete?)? [Measurability, Spec §SC-002] |
| 38 | +- [ ] CHK019 - Can SC-004 ("tokens remain decodable after question bank updates") be verified with a defined test procedure? [Measurability, Spec §SC-004] |
| 39 | +- [ ] CHK020 - Can SC-007 ("link previews display correct title, description, and preview image") be verified — are "correct" values specified? [Measurability, Spec §SC-007] |
| 40 | + |
| 41 | +## Scenario Coverage |
| 42 | + |
| 43 | +- [ ] CHK021 - Are requirements defined for the zero-response state in shared view (user shares before answering any questions)? [Coverage, Edge Case] |
| 44 | +- [ ] CHK022 - Are requirements specified for what happens when a shared URL is opened on an unsupported/old browser? [Coverage, Gap] |
| 45 | +- [ ] CHK023 - Are requirements defined for the shared view when the "all" domain bundle fails to load (network error)? [Coverage, Exception Flow] |
| 46 | +- [ ] CHK024 - Are requirements specified for concurrent sharing scenarios (user generates link, answers more questions, then recipient opens the old link)? [Coverage, Alternate Flow] |
| 47 | + |
| 48 | +## Edge Case Coverage |
| 49 | + |
| 50 | +- [ ] CHK025 - Does the spec define behavior when URL contains both `?t=TOKEN` and other query parameters (e.g., UTM tracking)? [Edge Case, Spec §Edge Cases] |
| 51 | +- [ ] CHK026 - Are requirements defined for token URLs that pass through URL shorteners (bit.ly, t.co) — does the token survive? [Edge Case, Gap] |
| 52 | +- [ ] CHK027 - Is behavior specified for extremely long tokens (all 2500 questions answered) on platforms with URL length limits? [Edge Case, Spec §Edge Cases] |
| 53 | +- [ ] CHK028 - Are requirements defined for what happens if pako (compression library) fails to load or is unavailable? [Edge Case, Gap] |
| 54 | + |
| 55 | +## Non-Functional Requirements |
| 56 | + |
| 57 | +- [ ] CHK029 - Are accessibility requirements specified for the shared view CTA button (keyboard focus, screen reader label, contrast)? [Gap, Accessibility] |
| 58 | +- [ ] CHK030 - Are performance requirements defined for token encoding/decoding operations (max latency on mid-range hardware)? [Gap, Performance] |
| 59 | +- [ ] CHK031 - Are privacy considerations documented — do tokens reveal any personally identifiable information? [Gap, Privacy] |
| 60 | +- [ ] CHK032 - Are WCAG AA color contrast requirements specified for the CTA button and shared view elements? [Gap, Accessibility] |
| 61 | + |
| 62 | +## Dependencies & Assumptions |
| 63 | + |
| 64 | +- [ ] CHK033 - Is the assumption "social platforms support URLs up to 2000 characters" validated for all 5 target platforms? [Assumption, Spec §Assumptions] |
| 65 | +- [ ] CHK034 - Is the pako dependency version-pinned, and are fallback requirements specified if the CDN or npm package is unavailable? [Dependency, Gap] |
| 66 | +- [ ] CHK035 - Is the assumption "GitHub Pages serves static OG meta tags correctly to social crawlers" validated? [Assumption, Spec §Assumptions] |
| 67 | + |
| 68 | +## Notes |
| 69 | + |
| 70 | +- This checklist validates the REQUIREMENTS quality, not the implementation |
| 71 | +- Items marked [Gap] indicate missing requirements that should be added before final PR approval |
| 72 | +- Items marked [Ambiguity] indicate requirements that need sharper definition |
| 73 | +- Each item should be resolved by updating spec.md, not by verbal agreement |
0 commit comments