get-shit-specd 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +145 -0
  3. package/bin/gss.ts +160 -0
  4. package/claude/agents/gss-acceptance-writer.md +58 -0
  5. package/claude/agents/gss-data-modeler.md +67 -0
  6. package/claude/agents/gss-product-researcher.md +56 -0
  7. package/claude/agents/gss-spec-checker.md +87 -0
  8. package/claude/agents/gss-spec-synthesizer.md +68 -0
  9. package/claude/agents/gss-ux-designer.md +41 -0
  10. package/claude/commands/gss/handoff.md +24 -0
  11. package/claude/commands/gss/help.md +57 -0
  12. package/claude/commands/gss/new-spec.md +51 -0
  13. package/claude/commands/gss/progress.md +18 -0
  14. package/claude/commands/gss/review-spec.md +23 -0
  15. package/claude/commands/gss/settings.md +20 -0
  16. package/claude/commands/gss/setup.md +149 -0
  17. package/claude/commands/gss/update-spec.md +26 -0
  18. package/claude/get-shit-specd/VERSION +1 -0
  19. package/claude/get-shit-specd/references/acceptance-patterns.md +19 -0
  20. package/claude/get-shit-specd/references/product-questioning.md +42 -0
  21. package/claude/get-shit-specd/references/spec-config.md +86 -0
  22. package/claude/get-shit-specd/references/ux-brand.md +15 -0
  23. package/claude/get-shit-specd/templates/acceptance.md +48 -0
  24. package/claude/get-shit-specd/templates/brief.md +31 -0
  25. package/claude/get-shit-specd/templates/data.md +34 -0
  26. package/claude/get-shit-specd/templates/handoff-to-gsd.md +21 -0
  27. package/claude/get-shit-specd/templates/scope.md +25 -0
  28. package/claude/get-shit-specd/templates/spec-state.md +24 -0
  29. package/claude/get-shit-specd/templates/ux.md +41 -0
  30. package/claude/get-shit-specd/workflows/create-spec.md +132 -0
  31. package/claude/get-shit-specd/workflows/handoff.md +43 -0
  32. package/claude/get-shit-specd/workflows/review-spec.md +35 -0
  33. package/examples/SPEC-003-watermarking-service/00-BRIEF.md +52 -0
  34. package/examples/SPEC-003-watermarking-service/01-SCOPE.md +46 -0
  35. package/examples/SPEC-003-watermarking-service/04-ACCEPTANCE.md +98 -0
  36. package/examples/SPEC-003-watermarking-service/HANDOFF.md +146 -0
  37. package/examples/SPEC-003-watermarking-service/REVIEW.md +84 -0
  38. package/examples/SPEC-003-watermarking-service/STATE.md +42 -0
  39. package/package.json +44 -0
@@ -0,0 +1,41 @@
1
+ # gss-ux-designer
2
+
3
+ Role: Draft 02-UX.md from BRIEF and SCOPE.
4
+
5
+ ## Input
6
+ You receive:
7
+ - 00-BRIEF.md (problem, JTBD, goal)
8
+ - 01-SCOPE.md (in/out scope, constraints)
9
+
10
+ ## Output
11
+ Draft 02-UX.md with:
12
+
13
+ ### Primary User Flow
14
+ Number the steps from trigger to completion. Be specific about user actions.
15
+
16
+ ### Screens
17
+ For each screen in the flow:
18
+ - **Purpose**: Why this screen exists
19
+ - **Entry conditions**: How user gets here
20
+ - **Elements**: What's on the screen (be specific)
21
+ - **Copy**: Primary CTA, secondary actions, key labels
22
+ - **States**: Loading, empty, error, success (REQUIRED - this is where specs fail)
23
+ - **Validation**: What can go wrong, how it's shown
24
+ - **Accessibility**: Key a11y considerations
25
+
26
+ ### Wireframes
27
+ If no Figma link provided, create ASCII wireframes for each screen.
28
+ Show layout, key elements, CTA placement, error areas.
29
+
30
+ ## Rules
31
+ - Enumerate ALL states. Empty, loading, error, permission denied, success. Missing states = spec failure.
32
+ - Be specific about copy. "Submit" is vague. "Create Deck" is specific.
33
+ - Entry conditions matter. How does user get to this screen?
34
+ - Think about what happens when things go WRONG, not just right.
35
+
36
+ ## Quality Check
37
+ Before submitting, verify:
38
+ - [ ] Every screen has all 4 states (loading/empty/error/success)
39
+ - [ ] Every form has validation rules
40
+ - [ ] Every action has a clear CTA label
41
+ - [ ] Flow has no dead ends
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: gss:handoff
3
+ description: Translate a Ready spec into GSD engineering inputs
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ Produce HANDOFF.md and optionally update .planning/REQUIREMENTS.md and .planning/ROADMAP.md.
13
+ </objective>
14
+
15
+ <execution_context>
16
+ @./.claude/get-shit-specd/workflows/handoff.md
17
+ </execution_context>
18
+
19
+ <process>
20
+ 1. Ask for spec_id or detect.
21
+ 2. Confirm spec is Ready (or list blockers).
22
+ 3. Produce HANDOFF.md.
23
+ 4. If REQUIREMENTS/ROADMAP exist, propose diffs (do not overwrite silently).
24
+ </process>
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: gss:help
3
+ description: Show available get-shit-specd commands
4
+ allowed-tools:
5
+ - Read
6
+ ---
7
+ <objective>
8
+ Explain the GSS (Get Shit Specd) workflow and available commands.
9
+ </objective>
10
+
11
+ <process>
12
+
13
+ ## What is GSS?
14
+
15
+ GSS is a spec workflow that produces outcome-focused specs. Specs define WHAT must be true and WHY it matters — engineering determines HOW to build it.
16
+
17
+ ## Commands
18
+
19
+ ### Setup & Configuration
20
+ - `/gss:setup` — Interactive setup for new projects (audience, tier, strictness)
21
+ - `/gss:settings` — View or edit existing spec-config.json
22
+
23
+ ### Spec Creation
24
+ - `/gss:new-spec` — Create a new spec package (runs intake → drafts → quality gates)
25
+ - `/gss:update-spec` — Modify an existing spec
26
+
27
+ ### Quality & Review
28
+ - `/gss:review-spec` — Red-team a spec for ambiguity and missing states
29
+ - `/gss:handoff` — Generate requirements mapping for engineering
30
+
31
+ ### Status
32
+ - `/gss:progress` — Show all specs and their status (Draft/Review/Ready)
33
+
34
+ ## Typical Flow
35
+
36
+ ```
37
+ 1. /gss:setup ← First time only
38
+ 2. /gss:new-spec ← Create spec with intake questions
39
+ 3. /gss:review-spec ← Red-team for gaps
40
+ 4. /gss:handoff ← Generate engineering requirements
41
+ ```
42
+
43
+ ## Spec Tiers
44
+
45
+ | Tier | Files | Agents | When |
46
+ |------|-------|--------|------|
47
+ | Micro | SPEC.md | None | Quick fixes |
48
+ | Standard | BRIEF, SCOPE, ACCEPTANCE | 2 | Most features |
49
+ | Full | All 5 files | 6 | Complex features |
50
+
51
+ ## More Info
52
+
53
+ - Config reference: `.claude/get-shit-specd/references/spec-config.md`
54
+ - Workflow details: `.claude/get-shit-specd/workflows/`
55
+ - Agent definitions: `.claude/agents/gss-*.md`
56
+
57
+ </process>
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: gss:new-spec
3
+ description: Create a new spec package for a feature
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ Create a new spec package in .planning/specs/ with BRIEF, SCOPE, UX, DATA, ACCEPTANCE, and STATE.
13
+ </objective>
14
+
15
+ <execution_context>
16
+ @./.claude/get-shit-specd/workflows/create-spec.md
17
+ @./.claude/get-shit-specd/references/product-questioning.md
18
+ </execution_context>
19
+
20
+ <process>
21
+
22
+ ## Phase 1: Setup (mandatory)
23
+ 1. Ensure .planning exists:
24
+ ```bash
25
+ mkdir -p .planning/specs
26
+ ```
27
+
28
+ 2. Ensure spec config exists or create it:
29
+ - If missing, run /gss:settings logic.
30
+
31
+ ## Phase 2: Intake
32
+ Ask the minimum questions to define:
33
+ - spec name
34
+ - user/context
35
+ - v1 goal
36
+ - in/out scope
37
+ - key screens
38
+ - roles/permissions
39
+ - acceptance definition
40
+
41
+ ## Phase 3: Create spec folder
42
+ Create folder: .planning/specs/SPEC-{{id}}-{{slug}}/
43
+ Create 00-04 files and STATE.md using the create-spec workflow.
44
+
45
+ ## Phase 4: Output
46
+ Print:
47
+ - Spec folder path
48
+ - Current status (Draft/Review/Ready)
49
+ - Blocking open questions (if any)
50
+ - Next command suggestion: /gss:review-spec or /gss:handoff
51
+ </process>
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: gss:progress
3
+ description: Show spec inventory and status
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ List all specs in .planning/specs and show their STATE.md status.
13
+ </objective>
14
+
15
+ <process>
16
+ 1. Find .planning/specs/*/STATE.md
17
+ 2. Print a short table: spec_id | name | status | open_questions_count | last_updated
18
+ </process>
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: gss:review-spec
3
+ description: Red-team a spec for ambiguity and missing states
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ Find gaps before engineering starts. Produce REVIEW.md and optionally patch spec files.
13
+ </objective>
14
+
15
+ <execution_context>
16
+ @./.claude/get-shit-specd/workflows/review-spec.md
17
+ </execution_context>
18
+
19
+ <process>
20
+ 1. Ask for spec_id or detect.
21
+ 2. Run the review workflow.
22
+ 3. Output: PASS/FAIL and any blocking questions.
23
+ </process>
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: gss:settings
3
+ description: Create or edit .planning/spec-config.json
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ Ensure spec preferences exist at .planning/spec-config.json without overwriting existing GSD config.
13
+ </objective>
14
+
15
+ <process>
16
+ 1. If .planning/spec-config.json does not exist, create it with sensible defaults from:
17
+ @./.claude/get-shit-specd/references/spec-config.md
18
+
19
+ 2. If it exists, show current settings and allow updates.
20
+ </process>
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: gss:setup
3
+ description: Interactive setup for GSS spec configuration
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - AskUserQuestion
9
+ ---
10
+ <objective>
11
+ Configure GSS for this project through interactive questions.
12
+ Creates .planning/spec-config.json with settings tailored to your team and workflow.
13
+ </objective>
14
+
15
+ <execution_context>
16
+ @./.claude/get-shit-specd/references/spec-config.md
17
+ </execution_context>
18
+
19
+ <process>
20
+
21
+ ## Phase 1: Check existing config
22
+ ```bash
23
+ mkdir -p .planning
24
+ ```
25
+
26
+ If .planning/spec-config.json exists:
27
+ - Show current config
28
+ - Ask: "Start fresh or edit existing?"
29
+ - If edit, show current values as defaults in questions
30
+
31
+ ## Phase 2: Audience question
32
+ Ask using AskUserQuestion:
33
+ ```
34
+ Question: "Who will consume these specs?"
35
+ Options:
36
+ - "Just me + AI" → solo (lighter detail, faster iteration)
37
+ - "Small team (2-5)" → small_team (standard detail)
38
+ - "Larger team or contractors" → external (maximum detail, no assumptions)
39
+ ```
40
+
41
+ ## Phase 3: Default tier question
42
+ Ask using AskUserQuestion:
43
+ ```
44
+ Question: "What's your typical spec complexity?"
45
+ Options:
46
+ - "Quick fixes and small changes" → micro (single file, no agents)
47
+ - "Most features" → standard (BRIEF + SCOPE + ACCEPTANCE)
48
+ - "Complex multi-part features" → full (all 5 files + all agents)
49
+ ```
50
+
51
+ ## Phase 4: Strictness question
52
+ Ask using AskUserQuestion:
53
+ ```
54
+ Question: "How strict should spec enforcement be?"
55
+ Options:
56
+ - "Relaxed" → min_edge_cases: 1, min_out_of_scope: 1, max_open_questions: 5
57
+ - "Standard (Recommended)" → min_edge_cases: 3, min_out_of_scope: 2, max_open_questions: 3
58
+ - "Strict" → min_edge_cases: 5, min_out_of_scope: 3, max_open_questions: 2
59
+ ```
60
+
61
+ ## Phase 5: Format preferences
62
+ Ask using AskUserQuestion:
63
+ ```
64
+ Question: "Do you use Gherkin (Given/When/Then) for acceptance criteria?"
65
+ Options:
66
+ - "Yes" → require_gherkin: true
67
+ - "No, plain language is fine" → require_gherkin: false
68
+ ```
69
+
70
+ ## Phase 6: Write config
71
+ Create .planning/spec-config.json with:
72
+ ```json
73
+ {
74
+ "output_dir": ".planning/specs",
75
+ "id_prefix": "SPEC",
76
+ "audience": "[from Q2]",
77
+ "default_tier": "[from Q3]",
78
+
79
+ "require_ascii_wireframes": true,
80
+ "require_gherkin": [from Q5],
81
+ "require_priorities": true,
82
+
83
+ "min_edge_cases": [from Q4],
84
+ "min_out_of_scope": [from Q4],
85
+ "max_open_questions": [from Q4],
86
+
87
+ "require_p0_coverage": true,
88
+ "require_all_states": true,
89
+ "require_nonfunctional_requirements": true,
90
+ "require_analytics_events": true,
91
+
92
+ "agents": {
93
+ "micro_tier": [],
94
+ "standard_tier": ["acceptance-writer", "spec-checker"],
95
+ "full_tier": ["ux-designer", "data-modeler", "acceptance-writer", "synthesizer", "spec-checker"]
96
+ }
97
+ }
98
+ ```
99
+
100
+ ## Phase 7: Confirmation
101
+ Print:
102
+ - Config file location
103
+ - Summary of choices
104
+ - Suggest: "Run /gss:new-spec to create your first spec"
105
+
106
+ </process>
107
+
108
+ <presets>
109
+ ## Audience Presets
110
+
111
+ ### solo
112
+ - Lighter detail requirements
113
+ - min_edge_cases: 2
114
+ - Skip synthesizer agent
115
+ - Faster iteration
116
+
117
+ ### small_team
118
+ - Standard detail
119
+ - min_edge_cases: 3
120
+ - All agents for full tier
121
+ - Balanced rigor
122
+
123
+ ### external
124
+ - Maximum detail
125
+ - min_edge_cases: 5
126
+ - All agents always
127
+ - No assumptions about shared context
128
+ - require_ascii_wireframes: true
129
+
130
+ ## Strictness Presets
131
+
132
+ ### relaxed
133
+ - min_edge_cases: 1
134
+ - min_out_of_scope: 1
135
+ - max_open_questions: 5
136
+ - Good for early exploration
137
+
138
+ ### standard
139
+ - min_edge_cases: 3
140
+ - min_out_of_scope: 2
141
+ - max_open_questions: 3
142
+ - Recommended for most teams
143
+
144
+ ### strict
145
+ - min_edge_cases: 5
146
+ - min_out_of_scope: 3
147
+ - max_open_questions: 2
148
+ - For high-stakes features or external teams
149
+ </presets>
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: gss:update-spec
3
+ description: Update an existing spec package
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - Task
9
+ - AskUserQuestion
10
+ ---
11
+ <objective>
12
+ Update an existing spec package after scope changes, UX changes, or new constraints.
13
+ Re-run the spec checker and update STATE.md.
14
+ </objective>
15
+
16
+ <execution_context>
17
+ @./.claude/get-shit-specd/workflows/create-spec.md
18
+ </execution_context>
19
+
20
+ <process>
21
+ 1. Ask for spec_id or detect from .planning/specs/ if only one exists.
22
+ 2. Read existing files.
23
+ 3. Ask only questions needed to resolve changes.
24
+ 4. Patch files and re-run spec_check.
25
+ 5. Update STATE.md.
26
+ </process>
@@ -0,0 +1 @@
1
+ 0.2.0
@@ -0,0 +1,19 @@
1
+ # Acceptance Patterns
2
+
3
+ Write acceptance as testable scenarios.
4
+
5
+ Coverage set (minimum):
6
+ - Happy path
7
+ - Validation error
8
+ - Permission denied
9
+ - Empty state
10
+ - Failure and retry
11
+ - Analytics events emitted
12
+ - Performance requirement (if stated)
13
+ - Accessibility requirement (if stated)
14
+
15
+ Style:
16
+ - Prefer Gherkin (Given/When/Then)
17
+ - Keep each scenario independent
18
+ - Use concrete values, not “works” or “properly”
19
+ - If the UI is specified, criteria must reference exact labels and states
@@ -0,0 +1,42 @@
1
+ # Product Questioning Protocol (Spec Intake)
2
+
3
+ Goal: Convert a vague idea into a testable spec package.
4
+
5
+ Principles:
6
+ - Ask the minimum number of questions that change build decisions.
7
+ - If unknown, write explicit assumptions and track them as Open Questions.
8
+ - Prefer outcomes over implementation.
9
+ - Enumerate states. Most spec failures are missing empty/loading/error/permission states.
10
+
11
+ Question stack (ask in this order):
12
+
13
+ 1) User and context
14
+ - Who is the user?
15
+ - What is the moment they need this?
16
+ - What do they do today?
17
+
18
+ 2) Problem and desired outcome
19
+ - What is painful today?
20
+ - What does “better” look like in 1-2 sentences?
21
+ - What is the smallest v1 that delivers the outcome?
22
+
23
+ 3) Scope boundaries
24
+ - What must be in v1?
25
+ - What is explicitly out of scope?
26
+ - What constraints matter (time, policy, platform, performance)?
27
+
28
+ 4) UX and states
29
+ - What is the primary flow?
30
+ - What are the key screens?
31
+ - What are the loading/empty/error states?
32
+ - What are the permissions and roles?
33
+
34
+ 5) Acceptance and verification
35
+ - What must be true for you to say “this is done”?
36
+ - What is the highest-risk edge case?
37
+ - What can we measure?
38
+
39
+ Always end intake with:
40
+ - Top 5 ambiguities that would change the build
41
+ - Assumptions list
42
+ - Open questions list with owners and dates
@@ -0,0 +1,86 @@
1
+ # Spec Config (Preferences)
2
+
3
+ These preferences drive how specs are written and how strict the checker is.
4
+
5
+ ## Full Configuration
6
+
7
+ ```json
8
+ {
9
+ // Output
10
+ "output_dir": ".planning/specs",
11
+ "id_prefix": "SPEC",
12
+
13
+ // Audience (affects detail level and agent usage)
14
+ "audience": "solo | small_team | external",
15
+
16
+ // Default tier (can override per spec)
17
+ "default_tier": "standard",
18
+
19
+ // Content requirements
20
+ "require_ascii_wireframes": true,
21
+ "require_gherkin": true,
22
+ "require_priorities": true,
23
+
24
+ // Enforcement thresholds
25
+ "min_edge_cases": 3,
26
+ "min_out_of_scope": 2,
27
+ "max_open_questions": 3,
28
+
29
+ // Quality gates
30
+ "require_p0_coverage": true,
31
+ "require_all_states": true,
32
+ "require_nonfunctional_requirements": true,
33
+ "require_analytics_events": true,
34
+
35
+ // Agent configuration
36
+ "agents": {
37
+ "micro_tier": [],
38
+ "standard_tier": ["acceptance-writer", "spec-checker"],
39
+ "full_tier": ["ux-designer", "data-modeler", "acceptance-writer", "synthesizer", "spec-checker"]
40
+ }
41
+ }
42
+ ```
43
+
44
+ ## Audience Presets
45
+
46
+ **solo** (just you + AI):
47
+ - Lighter detail, faster iteration
48
+ - Skip synthesizer (you hold context)
49
+ - min_edge_cases: 2
50
+
51
+ **small_team** (2-5 close collaborators):
52
+ - Standard detail
53
+ - All agents for Full tier
54
+ - min_edge_cases: 3
55
+
56
+ **external** (contractors, external team):
57
+ - Maximum detail, no assumptions
58
+ - All agents always
59
+ - min_edge_cases: 5
60
+ - require_ascii_wireframes: true (no Figma assumptions)
61
+
62
+ ## Tier Behavior
63
+
64
+ **Micro tier:**
65
+ - Single SPEC.md file
66
+ - 3 intake questions
67
+ - No agents
68
+ - Fast path for simple changes
69
+
70
+ **Standard tier:**
71
+ - BRIEF, SCOPE, ACCEPTANCE
72
+ - 10 intake questions
73
+ - acceptance-writer + spec-checker agents
74
+ - Most features
75
+
76
+ **Full tier:**
77
+ - All 5 files
78
+ - All intake questions
79
+ - All agents (drafting + quality)
80
+ - Complex multi-part features
81
+
82
+ ## Installation
83
+
84
+ Run `/gss:setup` to create .planning/spec-config.json interactively.
85
+
86
+ If a project already has config, GSS respects it and doesn't overwrite.
@@ -0,0 +1,15 @@
1
+ # UX Writing and Brand Notes
2
+
3
+ Goal: UI text that is clear, short, and consistent.
4
+
5
+ Rules:
6
+ - Use active voice
7
+ - Prefer specific labels over clever ones
8
+ - Error messages: say what happened, why, and what to do next
9
+ - Avoid jargon unless the user is expert
10
+ - Always include:
11
+ - primary CTA label
12
+ - secondary action label (if exists)
13
+ - empty state copy
14
+ - error state copy
15
+ - success confirmation (toast or inline)
@@ -0,0 +1,48 @@
1
+ # Acceptance
2
+
3
+ Definition of done
4
+ - All acceptance scenarios pass
5
+ - Observability goals met per DATA.md
6
+ - Constraints satisfied per SCOPE.md
7
+
8
+ ## Gherkin scenarios
9
+
10
+ ```gherkin
11
+ Feature: {{FEATURE_NAME}}
12
+
13
+ Scenario: Happy path
14
+ Given {{GIVEN}}
15
+ When {{WHEN}}
16
+ Then {{THEN}}
17
+
18
+ Scenario: Validation error
19
+ Given {{GIVEN}}
20
+ When {{WHEN}}
21
+ Then {{THEN}}
22
+
23
+ Scenario: Permission denied
24
+ Given {{GIVEN}}
25
+ When {{WHEN}}
26
+ Then {{THEN}}
27
+
28
+ Scenario: Empty state
29
+ Given {{GIVEN}}
30
+ When {{WHEN}}
31
+ Then {{THEN}}
32
+
33
+ Scenario: Failure recovery
34
+ Given {{GIVEN}}
35
+ When {{WHEN}}
36
+ Then {{THEN}}
37
+
38
+ Scenario: Key events emitted
39
+ Given {{GIVEN}}
40
+ When {{WHEN}}
41
+ Then events include {{EVENTS}}
42
+ ```
43
+
44
+ ## Verification notes
45
+
46
+ What must be demonstrably true (engineering determines how to verify):
47
+ - {{VERIFICATION_1}}
48
+ - {{VERIFICATION_2}}
@@ -0,0 +1,31 @@
1
+ # SPEC: {{SPEC_NAME}}
2
+ Owner: {{OWNER}}
3
+ Date: {{DATE}}
4
+ Status: Draft | Review | Ready
5
+
6
+ Problem
7
+ {{PROBLEM}}
8
+
9
+ User and context
10
+ {{USER_CONTEXT}}
11
+
12
+ JTBD
13
+ When {{SITUATION}}, I want to {{MOTIVATION}}, so I can {{OUTCOME}}.
14
+
15
+ Goal (v1)
16
+ {{GOAL}}
17
+
18
+ Success metrics
19
+ {{METRICS}}
20
+
21
+ Constraints
22
+ {{CONSTRAINTS}}
23
+
24
+ Risks
25
+ {{RISKS}}
26
+
27
+ Assumptions
28
+ {{ASSUMPTIONS}}
29
+
30
+ Open questions
31
+ {{OPEN_QUESTIONS}}
@@ -0,0 +1,34 @@
1
+ # Data and behavior
2
+
3
+ ## Entities impacted
4
+ - {{ENTITY_1}}
5
+
6
+ ## Permissions
7
+ - Roles: {{ROLES}}
8
+ - Read rules: {{READ_RULES}}
9
+ - Write rules: {{WRITE_RULES}}
10
+
11
+ ## State machine
12
+ - States: {{STATES}}
13
+ - Transitions: {{TRANSITIONS}}
14
+
15
+ ## Integrations
16
+ - {{INTEGRATION_1}}
17
+
18
+ ## Observability goals
19
+
20
+ What we need to know (engineering determines implementation):
21
+ - Success/failure visibility: {{SUCCESS_FAILURE_GOAL}}
22
+ - Performance visibility: {{PERF_GOAL}}
23
+ - Security visibility: {{SECURITY_GOAL}}
24
+
25
+ ## Edge cases
26
+
27
+ Scenarios that must be handled:
28
+ 1. {{EDGE_1}}
29
+ 2. {{EDGE_2}}
30
+
31
+ ## Data considerations
32
+
33
+ - New data: {{NEW_DATA}}
34
+ - Migration needs: {{MIGRATION_NEEDS}}