shotgun-sh 0.1.0.dev22__py3-none-any.whl → 0.1.0.dev24__py3-none-any.whl
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.
Potentially problematic release.
This version of shotgun-sh might be problematic. Click here for more details.
- shotgun/agents/agent_manager.py +95 -15
- shotgun/agents/common.py +143 -25
- shotgun/agents/conversation_history.py +56 -0
- shotgun/agents/conversation_manager.py +105 -0
- shotgun/agents/export.py +5 -2
- shotgun/agents/models.py +16 -7
- shotgun/agents/plan.py +2 -1
- shotgun/agents/research.py +2 -1
- shotgun/agents/specify.py +2 -1
- shotgun/agents/tasks.py +5 -2
- shotgun/agents/tools/file_management.py +67 -2
- shotgun/codebase/core/ingestor.py +1 -1
- shotgun/codebase/core/manager.py +106 -4
- shotgun/codebase/models.py +4 -0
- shotgun/codebase/service.py +60 -2
- shotgun/main.py +9 -1
- shotgun/prompts/agents/export.j2 +14 -11
- shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +6 -9
- shotgun/prompts/agents/plan.j2 +9 -13
- shotgun/prompts/agents/research.j2 +11 -14
- shotgun/prompts/agents/specify.j2 +9 -12
- shotgun/prompts/agents/state/system_state.j2 +27 -5
- shotgun/prompts/agents/tasks.j2 +12 -12
- shotgun/sdk/codebase.py +26 -2
- shotgun/sdk/services.py +0 -14
- shotgun/tui/app.py +9 -4
- shotgun/tui/screens/chat.py +80 -19
- shotgun/tui/screens/chat_screen/command_providers.py +1 -1
- shotgun/tui/screens/chat_screen/history.py +6 -0
- shotgun/tui/utils/mode_progress.py +111 -78
- {shotgun_sh-0.1.0.dev22.dist-info → shotgun_sh-0.1.0.dev24.dist-info}/METADATA +8 -9
- {shotgun_sh-0.1.0.dev22.dist-info → shotgun_sh-0.1.0.dev24.dist-info}/RECORD +35 -54
- shotgun/agents/artifact_state.py +0 -58
- shotgun/agents/tools/artifact_management.py +0 -481
- shotgun/artifacts/__init__.py +0 -17
- shotgun/artifacts/exceptions.py +0 -89
- shotgun/artifacts/manager.py +0 -530
- shotgun/artifacts/models.py +0 -334
- shotgun/artifacts/service.py +0 -463
- shotgun/artifacts/templates/__init__.py +0 -10
- shotgun/artifacts/templates/loader.py +0 -252
- shotgun/artifacts/templates/models.py +0 -136
- shotgun/artifacts/templates/plan/delivery_and_release_plan.yaml +0 -66
- shotgun/artifacts/templates/research/market_research.yaml +0 -585
- shotgun/artifacts/templates/research/sdk_comparison.yaml +0 -257
- shotgun/artifacts/templates/specify/prd.yaml +0 -331
- shotgun/artifacts/templates/specify/product_spec.yaml +0 -301
- shotgun/artifacts/utils.py +0 -76
- shotgun/prompts/agents/partials/artifact_system.j2 +0 -32
- shotgun/prompts/agents/state/artifact_templates_available.j2 +0 -20
- shotgun/prompts/agents/state/existing_artifacts_available.j2 +0 -25
- shotgun/sdk/artifact_models.py +0 -186
- shotgun/sdk/artifacts.py +0 -448
- {shotgun_sh-0.1.0.dev22.dist-info → shotgun_sh-0.1.0.dev24.dist-info}/WHEEL +0 -0
- {shotgun_sh-0.1.0.dev22.dist-info → shotgun_sh-0.1.0.dev24.dist-info}/entry_points.txt +0 -0
- {shotgun_sh-0.1.0.dev22.dist-info → shotgun_sh-0.1.0.dev24.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
name: SDK & Library Research Template
|
|
2
|
-
purpose: Use this template to build a comprehensive research and comparison document for SDKs and libraries considered in a project.
|
|
3
|
-
prompt: |
|
|
4
|
-
First, suggest creating a research.overview section to establish the problem and requirements.
|
|
5
|
-
Then, once the user reviews, move on to the discovery and evaluation sections.
|
|
6
|
-
Include a systematic evaluation framework that defines technical requirements, constraints, and quality criteria for the SDK/library selection.
|
|
7
|
-
The research should enable the team to make an informed decision based on objective comparisons and practical testing.
|
|
8
|
-
Prioritize evaluation criteria by technical criticality × business impact to maximize long-term project success.
|
|
9
|
-
Facilitate thorough investigation: Breadth of options before depth of analysis
|
|
10
|
-
Suggest alternatives if the user's initial requirements seem too restrictive: Flexibility over perfect fit
|
|
11
|
-
Your focus needs to be on creating clear, actionable research artifacts that development teams can use to make and justify technical decisions.
|
|
12
|
-
If user provides detailed requirements with use case, technical constraints, and project context, acknowledge and get to work OR ask for more details if critical context is truly missing.
|
|
13
|
-
sections:
|
|
14
|
-
research.overview:
|
|
15
|
-
instructions: |
|
|
16
|
-
# What is a good research.overview section?
|
|
17
|
-
|
|
18
|
-
* Clarifies the technical need
|
|
19
|
-
* Establishes scope and constraints
|
|
20
|
-
* Aligns the team on evaluation criteria
|
|
21
|
-
* Sets realistic timeline for decision
|
|
22
|
-
|
|
23
|
-
# Questions to ask yourself:
|
|
24
|
-
* What problem are we trying to solve with this SDK/library?
|
|
25
|
-
* What happens if we make the wrong choice?
|
|
26
|
-
* What are our non-negotiable requirements?
|
|
27
|
-
* Is there anything specific to our tech stack that constrains choices?
|
|
28
|
-
|
|
29
|
-
# Includes:
|
|
30
|
-
Research Objective: [One clear sentence stating what SDK/library type we need and why]
|
|
31
|
-
Problem Context:
|
|
32
|
-
Current limitation: [What can't we do now?]
|
|
33
|
-
Business impact: [Cost of not solving this]
|
|
34
|
-
Technical debt risk: [What happens if we choose poorly?]
|
|
35
|
-
Timeline: [When do we need to decide?]
|
|
36
|
-
[additional relevant context]
|
|
37
|
-
|
|
38
|
-
# Success Criteria:
|
|
39
|
-
|
|
40
|
-
| Criterion | Description | Priority |
|
|
41
|
-
|-----------|-------------|----------|
|
|
42
|
-
| Performance requirements | Must handle X operations/sec | Critical |
|
|
43
|
-
| Developer experience | Clear documentation, active community | High |
|
|
44
|
-
| Maintenance burden | Regular updates, security patches | Medium |
|
|
45
|
-
[more criteria relevant to the specific research]
|
|
46
|
-
|
|
47
|
-
research.requirements:
|
|
48
|
-
instructions: |
|
|
49
|
-
# How to write a good research.requirements section
|
|
50
|
-
|
|
51
|
-
Define technical and business requirements that will guide the evaluation.
|
|
52
|
-
|
|
53
|
-
* Separates must-haves from nice-to-haves
|
|
54
|
-
* Includes both functional and non-functional requirements
|
|
55
|
-
* Considers team capabilities and constraints
|
|
56
|
-
|
|
57
|
-
# Questions to ask yourself:
|
|
58
|
-
* What features are absolutely essential vs. "would be nice"?
|
|
59
|
-
* What are our technical constraints (language, platform, licenses)?
|
|
60
|
-
* What are our resource constraints (budget, team expertise)?
|
|
61
|
-
|
|
62
|
-
# Includes:
|
|
63
|
-
## Functional Requirements
|
|
64
|
-
Essential Features:
|
|
65
|
-
* [Core functionality needed]
|
|
66
|
-
* [Integration requirements]
|
|
67
|
-
* [Performance benchmarks]
|
|
68
|
-
|
|
69
|
-
Nice-to-Have Features:
|
|
70
|
-
* [Additional capabilities]
|
|
71
|
-
* [Future-proofing considerations]
|
|
72
|
-
|
|
73
|
-
## Non-Functional Requirements
|
|
74
|
-
Technical Constraints:
|
|
75
|
-
* Language/Platform: [e.g., Must support TypeScript]
|
|
76
|
-
* Architecture: [e.g., Must work in serverless environment]
|
|
77
|
-
* Performance: [e.g., < 50ms latency for operations]
|
|
78
|
-
|
|
79
|
-
Business Constraints:
|
|
80
|
-
* License: [e.g., MIT or Apache 2.0 preferred]
|
|
81
|
-
* Cost: [e.g., Free for commercial use or < $X/month]
|
|
82
|
-
* Support: [e.g., Active community or paid support available]
|
|
83
|
-
depends_on:
|
|
84
|
-
- "research.overview"
|
|
85
|
-
|
|
86
|
-
research.discovery:
|
|
87
|
-
instructions: |
|
|
88
|
-
# How to write a good research.discovery section
|
|
89
|
-
|
|
90
|
-
Document the process and results of finding available options.
|
|
91
|
-
|
|
92
|
-
* Shows comprehensive search methodology
|
|
93
|
-
* Lists all viable candidates with brief descriptions
|
|
94
|
-
* Explains why certain options were excluded early
|
|
95
|
-
|
|
96
|
-
# Questions to ask yourself:
|
|
97
|
-
* Where did we search? (GitHub, npm, package managers, forums)
|
|
98
|
-
* What keywords and criteria did we use?
|
|
99
|
-
* Are there any industry-standard or popular choices we're missing?
|
|
100
|
-
|
|
101
|
-
# Includes:
|
|
102
|
-
## Search Methodology
|
|
103
|
-
Sources Consulted:
|
|
104
|
-
* [Package registries searched]
|
|
105
|
-
* [Community recommendations]
|
|
106
|
-
* [Industry reports/comparisons referenced]
|
|
107
|
-
|
|
108
|
-
## Initial Candidates
|
|
109
|
-
|
|
110
|
-
| Library/SDK | Description | Stars/Downloads | Initial Assessment |
|
|
111
|
-
|-------------|-------------|-----------------|-------------------|
|
|
112
|
-
| Option A | Brief description | GitHub stars or weekly downloads | Meets X requirements, concerns about Y |
|
|
113
|
-
| Option B | Brief description | Metrics | Strong community, lacks feature Z |
|
|
114
|
-
[comprehensive list]
|
|
115
|
-
|
|
116
|
-
## Early Eliminations
|
|
117
|
-
Excluded Options:
|
|
118
|
-
* **[Library Name]**: [Reason for exclusion]
|
|
119
|
-
* **[Library Name]**: [Critical missing feature or constraint violation]
|
|
120
|
-
|
|
121
|
-
depends_on:
|
|
122
|
-
- "research.requirements"
|
|
123
|
-
|
|
124
|
-
research.technical_evaluation:
|
|
125
|
-
instructions: |
|
|
126
|
-
# How to write a good research.technical_evaluation section
|
|
127
|
-
|
|
128
|
-
Deep technical analysis of the top candidates.
|
|
129
|
-
|
|
130
|
-
* Provides objective, measurable comparisons
|
|
131
|
-
* Includes code examples and API comparisons
|
|
132
|
-
* Evaluates developer experience and learning curve
|
|
133
|
-
|
|
134
|
-
# Questions to ask yourself:
|
|
135
|
-
* How easy is it to implement our use case in each option?
|
|
136
|
-
* What are the performance characteristics under our expected load?
|
|
137
|
-
* How well does each option integrate with our existing stack?
|
|
138
|
-
|
|
139
|
-
# Includes:
|
|
140
|
-
## Evaluated Options (Top 3-5 candidates)
|
|
141
|
-
|
|
142
|
-
### **Option A: [Name]**
|
|
143
|
-
Technical Architecture:
|
|
144
|
-
* Core design philosophy
|
|
145
|
-
* Key abstractions and patterns
|
|
146
|
-
* Dependencies and size
|
|
147
|
-
|
|
148
|
-
Code Example:
|
|
149
|
-
```[language]
|
|
150
|
-
// Example implementing our primary use case
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Performance Metrics:
|
|
154
|
-
* Benchmark results
|
|
155
|
-
* Memory footprint
|
|
156
|
-
* Bundle size impact
|
|
157
|
-
|
|
158
|
-
Developer Experience:
|
|
159
|
-
* Setup complexity: [Rating]
|
|
160
|
-
* Documentation quality: [Rating]
|
|
161
|
-
* API design: [Rating]
|
|
162
|
-
* Debugging tools: [Rating]
|
|
163
|
-
|
|
164
|
-
[Repeat for each candidate]
|
|
165
|
-
|
|
166
|
-
depends_on:
|
|
167
|
-
- "research.discovery"
|
|
168
|
-
|
|
169
|
-
research.comparison_matrix:
|
|
170
|
-
instructions: |
|
|
171
|
-
# How to write a good research.comparison_matrix section
|
|
172
|
-
|
|
173
|
-
Side-by-side comparison of all evaluation criteria.
|
|
174
|
-
|
|
175
|
-
* Enables quick visual comparison
|
|
176
|
-
* Uses consistent scoring methodology
|
|
177
|
-
* Weights criteria by importance
|
|
178
|
-
|
|
179
|
-
# Questions to ask yourself:
|
|
180
|
-
* Are we comparing apples to apples?
|
|
181
|
-
* Is our scoring methodology clear and reproducible?
|
|
182
|
-
* Have we weighted criteria appropriately for our use case?
|
|
183
|
-
|
|
184
|
-
# Includes:
|
|
185
|
-
## Scoring Methodology
|
|
186
|
-
* 🟢 Excellent (3 points): Exceeds requirements
|
|
187
|
-
* 🟡 Good (2 points): Meets requirements
|
|
188
|
-
* 🔴 Poor (1 point): Below requirements
|
|
189
|
-
* ❌ Missing (0 points): Doesn't support
|
|
190
|
-
|
|
191
|
-
## Feature Comparison
|
|
192
|
-
|
|
193
|
-
| Criterion | Weight | Option A | Option B | Option C |
|
|
194
|
-
|-----------|--------|----------|----------|----------|
|
|
195
|
-
| Core Functionality | 3x | 🟢 (3) | 🟡 (2) | 🟢 (3) |
|
|
196
|
-
| Performance | 2x | 🟡 (2) | 🟢 (3) | 🟡 (2) |
|
|
197
|
-
| Documentation | 1x | 🟢 (3) | 🟡 (2) | 🔴 (1) |
|
|
198
|
-
| Community Support | 1x | 🟡 (2) | 🟢 (3) | 🟡 (2) |
|
|
199
|
-
| **Weighted Total** | | **17** | **18** | **15** |
|
|
200
|
-
|
|
201
|
-
## Risk Assessment
|
|
202
|
-
|
|
203
|
-
| Risk Factor | Option A | Option B | Option C |
|
|
204
|
-
|-------------|----------|----------|----------|
|
|
205
|
-
| Vendor Lock-in | Low | Medium | Low |
|
|
206
|
-
| Technical Debt | Low | Low | High |
|
|
207
|
-
| Maintenance Risk | Medium | Low | High |
|
|
208
|
-
|
|
209
|
-
depends_on:
|
|
210
|
-
- "research.technical_evaluation"
|
|
211
|
-
|
|
212
|
-
research.decision:
|
|
213
|
-
instructions: |
|
|
214
|
-
# How to write a good research.decision section
|
|
215
|
-
|
|
216
|
-
Clear recommendation with thorough justification.
|
|
217
|
-
|
|
218
|
-
* States the recommendation unambiguously
|
|
219
|
-
* Provides clear rationale tied to requirements
|
|
220
|
-
* Addresses concerns and mitigation strategies
|
|
221
|
-
|
|
222
|
-
# Questions to ask yourself:
|
|
223
|
-
* Will stakeholders understand why we chose this option?
|
|
224
|
-
* Have we addressed all major concerns about our choice?
|
|
225
|
-
* Is our decision reversible if needed?
|
|
226
|
-
|
|
227
|
-
# Includes:
|
|
228
|
-
## Recommendation
|
|
229
|
-
**Selected Solution:** [Name and version]
|
|
230
|
-
|
|
231
|
-
**Primary Reasons:**
|
|
232
|
-
1. [Most compelling reason tied to critical requirement]
|
|
233
|
-
2. [Second key differentiator]
|
|
234
|
-
3. [Long-term benefit]
|
|
235
|
-
|
|
236
|
-
## Detailed Justification
|
|
237
|
-
|
|
238
|
-
### Why [Selected] Over [Alternative A]
|
|
239
|
-
* [Specific technical advantage]
|
|
240
|
-
* [Business consideration]
|
|
241
|
-
* [Risk mitigation]
|
|
242
|
-
|
|
243
|
-
### Why [Selected] Over [Alternative B]
|
|
244
|
-
* [Comparison points]
|
|
245
|
-
|
|
246
|
-
## Risk Mitigation Plan
|
|
247
|
-
|
|
248
|
-
| Identified Risk | Mitigation Strategy | Owner |
|
|
249
|
-
|----------------|---------------------|-------|
|
|
250
|
-
| [Specific risk] | [How we'll address it] | [Team/Person] |
|
|
251
|
-
|
|
252
|
-
## Dissenting Opinions
|
|
253
|
-
* [Any team concerns and how they were addressed]
|
|
254
|
-
|
|
255
|
-
depends_on:
|
|
256
|
-
- "research.comparison_matrix"
|
|
257
|
-
- "research.technical_evaluation"
|
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
name: Product Requirements Document (PRD) Template
|
|
2
|
-
purpose: Use this template to produce a crisp, decision-oriented PRD that enables engineers to build and executives to understand the bet. Optimize for specificity, thresholds, and rollout decisions; cut anything that doesn’t change how someone builds, measures, or kills the feature.
|
|
3
|
-
prompt: |
|
|
4
|
-
First, create prd.overview to capture the two-sentence problem statement and core inputs.
|
|
5
|
-
Then proceed through the sections in order.
|
|
6
|
-
Keep it ≤5 formatted pages. Favor real data, prototype learnings, concrete thresholds, and adult rollout plans.
|
|
7
|
-
Delete sections that don’t change decisions.
|
|
8
|
-
|
|
9
|
-
Critical principles:
|
|
10
|
-
- No fluff; defend decisions like a Staff PM.
|
|
11
|
-
- Decisions > documentation; thresholds over adjectives.
|
|
12
|
-
- Use real examples and prototype learnings.
|
|
13
|
-
- Set explicit rollout gates, owners, and kill criteria.
|
|
14
|
-
|
|
15
|
-
sections:
|
|
16
|
-
prd.overview:
|
|
17
|
-
instructions: |
|
|
18
|
-
# What to capture
|
|
19
|
-
- **Feature Name** and a **2-sentence problem statement**:
|
|
20
|
-
1) One-sentence problem with data.
|
|
21
|
-
2) One sentence on why solving now unlocks value.
|
|
22
|
-
- **Inputs** (fill what you have; leave gaps as Open Questions):
|
|
23
|
-
COMPANY, PRODUCT/AREA, TARGET USERS, STRATEGIC BET/OKR,
|
|
24
|
-
CORE PROBLEM (with data), CURRENT BASELINE METRICS,
|
|
25
|
-
PROTOTYPE LEARNINGS, AI FEATURE? (model/latency/cost),
|
|
26
|
-
HARD DEADLINE, KEY STAKEHOLDERS (names).
|
|
27
|
-
|
|
28
|
-
# Output should make an engineer say “I can build this” and an exec say “I get the bet.”
|
|
29
|
-
|
|
30
|
-
# Includes
|
|
31
|
-
Feature Name: [ ]
|
|
32
|
-
Problem Statement: "[Data-backed sentence]. [Why now unlocks value.]"
|
|
33
|
-
Inputs:
|
|
34
|
-
company: [ ]
|
|
35
|
-
product_area: [ ]
|
|
36
|
-
target_users: [ ]
|
|
37
|
-
strategic_bet_or_okr: [ ]
|
|
38
|
-
core_problem: "[e.g., 73% of X experience Y causing $Z loss]"
|
|
39
|
-
current_baseline_metrics: [ ]
|
|
40
|
-
prototype_learnings: [ ]
|
|
41
|
-
ai_feature:
|
|
42
|
-
enabled: [true|false]
|
|
43
|
-
model: [ ]
|
|
44
|
-
latency_requirements_ms:
|
|
45
|
-
p50: [ ]
|
|
46
|
-
p99: [ ]
|
|
47
|
-
cost_per_1k_requests_usd_max: [ ]
|
|
48
|
-
hard_deadline: [YYYY-MM-DD]
|
|
49
|
-
key_stakeholders:
|
|
50
|
-
- name: [ ]
|
|
51
|
-
role: [ ]
|
|
52
|
-
# first section, no deps
|
|
53
|
-
|
|
54
|
-
opportunity.framing:
|
|
55
|
-
instructions: |
|
|
56
|
-
# Frame the bet crisply
|
|
57
|
-
Core Problem: "[X% of users do Y causing $Z impact]"
|
|
58
|
-
Hypothesis: "If we do X, then Y will improve by Z%."
|
|
59
|
-
Strategy Fit: "[Which OKR this unlocks AND what we are explicitly NOT doing]"
|
|
60
|
-
|
|
61
|
-
Financial Model (monthly impact):
|
|
62
|
-
- Pessimistic: assumptions=[ ], impact=$X, confidence=60%
|
|
63
|
-
- Most Likely: assumptions=[ ], impact=$Y, confidence=30%
|
|
64
|
-
- Optimistic: assumptions=[ ], impact=$Z, confidence=10%
|
|
65
|
-
depends_on:
|
|
66
|
-
- "prd.overview"
|
|
67
|
-
|
|
68
|
-
scope.boundaries:
|
|
69
|
-
instructions: |
|
|
70
|
-
# Draw hard lines to prevent scope creep
|
|
71
|
-
In Scope (checked user stories/surfaces/endpoints):
|
|
72
|
-
- [ ]
|
|
73
|
-
- [ ]
|
|
74
|
-
- [ ]
|
|
75
|
-
|
|
76
|
-
NON-GOALS:
|
|
77
|
-
1) **[Not building X]** because [reason]
|
|
78
|
-
2) **[Deferring Z to Qn]** because [dependency]
|
|
79
|
-
3) **[Not touching system V]** due to [migration/constraints]
|
|
80
|
-
depends_on:
|
|
81
|
-
- "opportunity.framing"
|
|
82
|
-
|
|
83
|
-
success.measurement:
|
|
84
|
-
instructions: |
|
|
85
|
-
# Define success with numbers and decision thresholds
|
|
86
|
-
Primary Success Metrics:
|
|
87
|
-
- name: [ ]
|
|
88
|
-
baseline: "[value ± variance]"
|
|
89
|
-
target: "[value]"
|
|
90
|
-
mde: "[%]"
|
|
91
|
-
decision_threshold: "Ship if >A, kill if <B"
|
|
92
|
-
- name: [ ]
|
|
93
|
-
baseline: "[ ]"
|
|
94
|
-
target: "[ ]"
|
|
95
|
-
mde: "[%]"
|
|
96
|
-
decision_threshold: "[e.g., Must exceed by week 2]"
|
|
97
|
-
|
|
98
|
-
Guardrails (must not regress):
|
|
99
|
-
- metric: [ ]
|
|
100
|
-
threshold: [e.g., P99 latency < Y ms]
|
|
101
|
-
- metric: [ ]
|
|
102
|
-
threshold: [e.g., FP rate < Z%]
|
|
103
|
-
|
|
104
|
-
Graduation Criteria:
|
|
105
|
-
scale_to_100_if: [clear conditions]
|
|
106
|
-
kill_and_revert_if: [explicit failure conditions]
|
|
107
|
-
iterate_if: [middle-ground conditions]
|
|
108
|
-
depends_on:
|
|
109
|
-
- "scope.boundaries"
|
|
110
|
-
|
|
111
|
-
rollout.plan:
|
|
112
|
-
instructions: |
|
|
113
|
-
# Adult rollout plan with real gates, names, and dates
|
|
114
|
-
Phase 1: Validation (Days 1–7)
|
|
115
|
-
exposure: "[X% of specific segment]"
|
|
116
|
-
sampling: "[user/session/request]"
|
|
117
|
-
gate_1:
|
|
118
|
-
date: [YYYY-MM-DD]
|
|
119
|
-
decider: [Name]
|
|
120
|
-
criteria: "[metrics and thresholds]"
|
|
121
|
-
|
|
122
|
-
Phase 2: Controlled Expansion (Days 8–21)
|
|
123
|
-
exposure_ramp: ["X%" , "Y%" , "Z%"]
|
|
124
|
-
gate_2:
|
|
125
|
-
date: [YYYY-MM-DD]
|
|
126
|
-
stakeholder_check: "[specific metric] with [stakeholder]"
|
|
127
|
-
finance_approval_if: "[condition]"
|
|
128
|
-
|
|
129
|
-
Phase 3: Full Launch (Day 22+)
|
|
130
|
-
contingent_on: "[specific criteria]"
|
|
131
|
-
regional_or_segment_order: "[sequence + why]"
|
|
132
|
-
depends_on:
|
|
133
|
-
- "success.measurement"
|
|
134
|
-
|
|
135
|
-
prototype.loop:
|
|
136
|
-
instructions: |
|
|
137
|
-
# Close the loop between prototypes and PRD
|
|
138
|
-
What prototypes taught us:
|
|
139
|
-
- [Learning 1 → changed approach from X to Y]
|
|
140
|
-
- [Learning 2 → discovered edge case Z]
|
|
141
|
-
- [Learning 3 → users want A not B]
|
|
142
|
-
|
|
143
|
-
Next prototype must answer:
|
|
144
|
-
- [ ] Can we handle [edge case] at scale?
|
|
145
|
-
- [ ] Does [approach] work for [segment]?
|
|
146
|
-
- [ ] Is [latency] acceptable for [use case]?
|
|
147
|
-
|
|
148
|
-
PRD revision triggers:
|
|
149
|
-
- If prototype shows [X], revisit [section Y].
|
|
150
|
-
- If [metric] differs by >20% from estimate, reopen financial model.
|
|
151
|
-
depends_on:
|
|
152
|
-
- "rollout.plan"
|
|
153
|
-
|
|
154
|
-
ai.behavior_contract:
|
|
155
|
-
instructions: |
|
|
156
|
-
# Include only if AI feature; otherwise skip this section
|
|
157
|
-
Behavior Contract:
|
|
158
|
-
must:
|
|
159
|
-
- [Specific behavior 1]
|
|
160
|
-
- [Specific behavior 2]
|
|
161
|
-
must_not:
|
|
162
|
-
- [Prohibited behavior 1]
|
|
163
|
-
- [Prohibited behavior 2]
|
|
164
|
-
|
|
165
|
-
Reference Examples (use real data)
|
|
166
|
-
good_examples: 7-10 with Input / Output / Why Good
|
|
167
|
-
bad_examples: 7-10 with Input / Current Output / Correct Handling / Why Bad
|
|
168
|
-
reject_cases: 5 edge cases with Scenario / Detection / Response / Why Reject
|
|
169
|
-
|
|
170
|
-
AI Guardrails:
|
|
171
|
-
pii_echo: "[detection + prevention]"
|
|
172
|
-
hallucination_handling: "[threshold + fallback]"
|
|
173
|
-
latency_ms:
|
|
174
|
-
p50: [ ]
|
|
175
|
-
p99: [ ]
|
|
176
|
-
cost_per_1k_requests_usd_max: [ ]
|
|
177
|
-
token_limits:
|
|
178
|
-
input_tokens_max: [ ]
|
|
179
|
-
output_tokens_max: [ ]
|
|
180
|
-
depends_on:
|
|
181
|
-
- "prototype.loop"
|
|
182
|
-
|
|
183
|
-
risk.management:
|
|
184
|
-
instructions: |
|
|
185
|
-
# Name risks, detection, mitigation, and owners
|
|
186
|
-
risks:
|
|
187
|
-
- risk: [ ]
|
|
188
|
-
likelihood: [Low|Med|High]
|
|
189
|
-
impact: [Low|Med|High]
|
|
190
|
-
detection: "[How detected]"
|
|
191
|
-
mitigation: "[Response]"
|
|
192
|
-
owner: "[Name]"
|
|
193
|
-
|
|
194
|
-
kill_switch:
|
|
195
|
-
location: "[config/flag path]"
|
|
196
|
-
who_can_pull: "[team on-call + escalation]"
|
|
197
|
-
ttr_minutes: [ ]
|
|
198
|
-
fallback_state: "[system reverts to X]"
|
|
199
|
-
depends_on:
|
|
200
|
-
- "prototype.loop"
|
|
201
|
-
|
|
202
|
-
launch.readiness:
|
|
203
|
-
instructions: |
|
|
204
|
-
# Prove we’re ready to ship Day 1
|
|
205
|
-
pre_launch_checklist:
|
|
206
|
-
- golden_eval_set: "[X examples, Y% coverage]"
|
|
207
|
-
- load_test: "Confirmed [X] QPS with [Y] ms P99"
|
|
208
|
-
- dashboards: "[link]"
|
|
209
|
-
- runbook: "[link]"
|
|
210
|
-
- legal_review: "[Name approved Date]"
|
|
211
|
-
- security_review: "[Name approved Date]"
|
|
212
|
-
- finance_model: "Approval if > $[X] impact"
|
|
213
|
-
|
|
214
|
-
day_1_success:
|
|
215
|
-
- "[Metric 1] within expected range"
|
|
216
|
-
- "No P0 incidents"
|
|
217
|
-
- "[X]% of traffic successfully served"
|
|
218
|
-
depends_on:
|
|
219
|
-
- "risk.management"
|
|
220
|
-
|
|
221
|
-
ownership.decisions:
|
|
222
|
-
instructions: |
|
|
223
|
-
# Who decides what, and when
|
|
224
|
-
core_team:
|
|
225
|
-
- role: DRI
|
|
226
|
-
name: [ ]
|
|
227
|
-
accountable_for: "Overall success, kill decision"
|
|
228
|
-
- role: Eng Lead
|
|
229
|
-
name: [ ]
|
|
230
|
-
accountable_for: "Technical delivery, latency"
|
|
231
|
-
- role: Data
|
|
232
|
-
name: [ ]
|
|
233
|
-
accountable_for: "Experiment design, analysis"
|
|
234
|
-
- role: Design
|
|
235
|
-
name: [ ]
|
|
236
|
-
accountable_for: "User experience bar"
|
|
237
|
-
- role: Legal/Security
|
|
238
|
-
name: [ ]
|
|
239
|
-
accountable_for: "Compliance, data handling"
|
|
240
|
-
|
|
241
|
-
decision_calendar:
|
|
242
|
-
- date: [YYYY-MM-DD]
|
|
243
|
-
decision: "Gate 1: Expand?"
|
|
244
|
-
criteria: "[Metrics]"
|
|
245
|
-
decider: "[Name]"
|
|
246
|
-
- date: [YYYY-MM-DD]
|
|
247
|
-
decision: "Gate 2: Graduate?"
|
|
248
|
-
criteria: "[Metrics]"
|
|
249
|
-
decider: "[Name]"
|
|
250
|
-
- date: [YYYY-MM-DD]
|
|
251
|
-
decision: "Post-mortem"
|
|
252
|
-
criteria: "Learnings"
|
|
253
|
-
decider: "All"
|
|
254
|
-
depends_on:
|
|
255
|
-
- "launch.readiness"
|
|
256
|
-
|
|
257
|
-
open.questions:
|
|
258
|
-
instructions: |
|
|
259
|
-
# Track gaps with owners and due dates
|
|
260
|
-
questions:
|
|
261
|
-
- question: "[Missing data X?]"
|
|
262
|
-
owner: "[Name]"
|
|
263
|
-
due_date: [YYYY-MM-DD]
|
|
264
|
-
blocks: "[Launch|Phase 2|—]"
|
|
265
|
-
- question: "[Technical unknown Y?]"
|
|
266
|
-
owner: "[Name]"
|
|
267
|
-
due_date: [YYYY-MM-DD]
|
|
268
|
-
blocks: "[ ]"
|
|
269
|
-
depends_on:
|
|
270
|
-
- "ownership.decisions"
|
|
271
|
-
|
|
272
|
-
json.summary:
|
|
273
|
-
instructions: |
|
|
274
|
-
# Brief machine-readable summary for dashboards/automation
|
|
275
|
-
schema:
|
|
276
|
-
title: "[Feature Name]"
|
|
277
|
-
hypothesis: "[One sentence]"
|
|
278
|
-
problem_magnitude: "$[X]M annual impact"
|
|
279
|
-
confidence_level: "[X]%"
|
|
280
|
-
primary_metrics:
|
|
281
|
-
- name: ""
|
|
282
|
-
baseline: ""
|
|
283
|
-
target: ""
|
|
284
|
-
mde: ""
|
|
285
|
-
threshold: ""
|
|
286
|
-
guardrails:
|
|
287
|
-
- metric: ""
|
|
288
|
-
threshold: ""
|
|
289
|
-
consequence: "auto-kill if breached"
|
|
290
|
-
rollout:
|
|
291
|
-
start_date: "YYYY-MM-DD"
|
|
292
|
-
initial_exposure: "X%"
|
|
293
|
-
duration_days: X
|
|
294
|
-
gates:
|
|
295
|
-
- date: ""
|
|
296
|
-
decision: ""
|
|
297
|
-
criteria: ""
|
|
298
|
-
kill_switch:
|
|
299
|
-
location: ""
|
|
300
|
-
owners: [""]
|
|
301
|
-
ttr_minutes: X
|
|
302
|
-
ai_config:
|
|
303
|
-
model: ""
|
|
304
|
-
behavior_examples:
|
|
305
|
-
good: X
|
|
306
|
-
bad: Y
|
|
307
|
-
reject: Z
|
|
308
|
-
max_latency_p99_ms: X
|
|
309
|
-
max_cost_per_1k: X
|
|
310
|
-
owners:
|
|
311
|
-
dri: ""
|
|
312
|
-
eng_lead: ""
|
|
313
|
-
data_lead: ""
|
|
314
|
-
prototype_learnings_incorporated: true
|
|
315
|
-
next_revision_date: "YYYY-MM-DD"
|
|
316
|
-
depends_on:
|
|
317
|
-
- "open.questions"
|
|
318
|
-
|
|
319
|
-
final.quality_checks:
|
|
320
|
-
instructions: |
|
|
321
|
-
# Run this quick list before sharing
|
|
322
|
-
checklist:
|
|
323
|
-
- "Would an engineer know exactly what to build?"
|
|
324
|
-
- "Can an exec understand the bet in 30 seconds?"
|
|
325
|
-
- "All metrics have baselines and targets?"
|
|
326
|
-
- "Prototype learnings reflected (not hypotheticals)?"
|
|
327
|
-
- "Examples come from real data?"
|
|
328
|
-
- "Every section helps ship, measure, or kill?"
|
|
329
|
-
- "Total length ≤ 5 pages when formatted?"
|
|
330
|
-
depends_on:
|
|
331
|
-
- "json.summary"
|