create-dss-project 0.1.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.
- package/bin/create-dss-project.js +4 -0
- package/lib/index.js +80 -0
- package/lib/project-types.js +74 -0
- package/lib/prompts.js +42 -0
- package/lib/scaffold.js +169 -0
- package/package.json +30 -0
- package/template/.github/workflows/dashboard-build.yml +27 -0
- package/template/.github/workflows/template-lint.yml +71 -0
- package/template/CHANGELOG.md +43 -0
- package/template/CLAUDE.md +145 -0
- package/template/LICENSE +21 -0
- package/template/README.md +201 -0
- package/template/STATUS.md +34 -0
- package/template/context/competitor-snapshot.md +27 -0
- package/template/context/market-snapshot.md +32 -0
- package/template/context/pipeline-state.md +36 -0
- package/template/context/project-state.md +45 -0
- package/template/dashboard/CLAUDE.md +36 -0
- package/template/dashboard/DEPLOY.md +60 -0
- package/template/dashboard/build-data.js +395 -0
- package/template/dashboard/competitors.html +143 -0
- package/template/dashboard/css/styles.css +143 -0
- package/template/dashboard/data/.gitkeep +0 -0
- package/template/dashboard/decisions.html +132 -0
- package/template/dashboard/index.html +152 -0
- package/template/dashboard/js/app.js +59 -0
- package/template/dashboard/js/overview.js +50 -0
- package/template/dashboard/js/sidebar.js +62 -0
- package/template/dashboard/js/tailwind-config.js +52 -0
- package/template/dashboard/package-lock.json +351 -0
- package/template/dashboard/package.json +17 -0
- package/template/dashboard/pipeline.html +149 -0
- package/template/dashboard/research.html +215 -0
- package/template/dashboard/robots.txt +2 -0
- package/template/dashboard/scoring.html +187 -0
- package/template/dashboard/timeline.html +165 -0
- package/template/dashboard/vercel.json +5 -0
- package/template/dashboard/watch.js +57 -0
- package/template/data/.gitkeep +0 -0
- package/template/discovery/calls/.gitkeep +0 -0
- package/template/discovery/outreach/.gitkeep +0 -0
- package/template/discovery/prep/.gitkeep +0 -0
- package/template/docs/decks/.gitkeep +0 -0
- package/template/docs/executive-summary.md +104 -0
- package/template/docs/getting-started.md +274 -0
- package/template/docs/memos/evidence-grading.md +27 -0
- package/template/docs/memos/housekeeping-reference.md +101 -0
- package/template/docs/memos/reference-context.md +30 -0
- package/template/docs/output/project-activity.md +8 -0
- package/template/docs/output/status-blurb.md +4 -0
- package/template/docs/output/work-log.md +8 -0
- package/template/docs/skill-authoring-guide.md +212 -0
- package/template/memory/MEMORY.md +84 -0
- package/template/memory/decisions.md +13 -0
- package/template/memory/discovery.md +48 -0
- package/template/memory/research.md +33 -0
- package/template/memory/scoring.md +34 -0
- package/template/project.config.example.json +31 -0
- package/template/research/competitors/.gitkeep +0 -0
- package/template/research/market/.gitkeep +0 -0
- package/template/research/technical/.gitkeep +0 -0
- package/template/scripts/.gitkeep +0 -0
- package/template/scripts/build-cli-template.sh +32 -0
- package/template/scripts/health-check.sh +152 -0
- package/template/scripts/reset-to-template.sh +115 -0
- package/template/scripts/validate-placeholders.sh +47 -0
- package/template/skills/compare-options/SKILL.md +97 -0
- package/template/skills/critical-reasoning/SKILL.md +107 -0
- package/template/skills/decision/SKILL.md +75 -0
- package/template/skills/enrich-entity/SKILL.md +107 -0
- package/template/skills/health-check/SKILL.md +144 -0
- package/template/skills/onboard/SKILL.md +434 -0
- package/template/skills/outreach-sequence/SKILL.md +79 -0
- package/template/skills/pipeline-update/SKILL.md +90 -0
- package/template/skills/process-call/SKILL.md +96 -0
- package/template/skills/rebuild-snapshots/SKILL.md +88 -0
- package/template/skills/session-end/SKILL.md +120 -0
- package/template/skills/session-start/SKILL.md +93 -0
- package/template/skills/synthesise/SKILL.md +108 -0
- package/template/skills/weekly-report/SKILL.md +79 -0
- package/template/templates/call-notes.md +67 -0
- package/template/templates/call-prep.md +65 -0
- package/template/templates/entity-teardown.md +58 -0
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: onboard
|
|
3
|
+
description: One-time setup skill. Guides the user through a series of questions to configure this project template for their specific strategy project. Run once at the start of a new project, then delete or archive this skill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Onboarding
|
|
7
|
+
|
|
8
|
+
**One-time use** — run this when starting a new project from the strategy template. It replaces all `{{PLACEHOLDER}}` values and configures optional modules.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Setup Mode Selection
|
|
13
|
+
|
|
14
|
+
Before starting, ask the user which mode they prefer:
|
|
15
|
+
|
|
16
|
+
> **Quick Start** or **Full Setup**?
|
|
17
|
+
>
|
|
18
|
+
> - **Quick Start** — 7 questions only. I'll auto-fill sensible defaults for everything else. Good if you want to get going fast and fine-tune later.
|
|
19
|
+
> - **Full Setup** — All questions across all groups. Full control over every setting.
|
|
20
|
+
|
|
21
|
+
### Quick Start Mode
|
|
22
|
+
|
|
23
|
+
Ask only these 7 questions:
|
|
24
|
+
|
|
25
|
+
1. **What's the project name?** (e.g., "Immutable Audience — Mobile")
|
|
26
|
+
2. **One-line description** — what is this project about in one sentence? (e.g., "Evaluate the mobile gaming market for audience monetisation opportunities")
|
|
27
|
+
3. **What's the core hypothesis or strategic bet?** (e.g., "Mobile gamers aged 18–30 will pay for premium audience insights if delivered in-app")
|
|
28
|
+
4. **What type of project is this?**
|
|
29
|
+
- **Market entry** — evaluating a new market or product opportunity
|
|
30
|
+
- **Growth strategy** — expanding an existing product into new channels or segments
|
|
31
|
+
- **Competitor research** — mapping the competitive landscape and intelligence gathering
|
|
32
|
+
- **Product launch / GTM** — bringing a product or feature to market
|
|
33
|
+
- **Internal implementation** — rolling out a new system, process, or initiative
|
|
34
|
+
- **Vendor / partner evaluation** — selecting tools, platforms, or partners
|
|
35
|
+
- **Due diligence** — M&A, investment, or acquisition evaluation
|
|
36
|
+
- **Business case** — building a case for investment or strategic change
|
|
37
|
+
- **Transformation / change** — organisational or process transformation
|
|
38
|
+
- **Custom** — something else (you'll choose which modules to include)
|
|
39
|
+
5. **What's the primary entity you're tracking?** (e.g., "studio", "customer", "partner") — enter "none" to skip the discovery module entirely
|
|
40
|
+
|
|
41
|
+
6. **What's your main goal?** (Pick one)
|
|
42
|
+
- **Learning** — I want to explore the template and understand how it works
|
|
43
|
+
- **Real project** — I have a specific strategy project to run
|
|
44
|
+
- **Team coordination** — I need a shared workspace for my team's strategy work
|
|
45
|
+
- **Exploration** — I'm evaluating whether this tool fits my needs
|
|
46
|
+
|
|
47
|
+
7. **How much structure do you want?**
|
|
48
|
+
- **Full** — All features: scoring, kill conditions, evidence grading, weekly reports, context snapshots
|
|
49
|
+
- **Essentials** — Core features: research, pipeline, decisions, dashboard (skip scoring, kill conditions, evidence grading)
|
|
50
|
+
- **Minimal** — Bare bones: research and notes only (skip pipeline, scoring, kill conditions, dashboard)
|
|
51
|
+
|
|
52
|
+
#### Goal-based guidance
|
|
53
|
+
|
|
54
|
+
When goal is **Learning**:
|
|
55
|
+
- Suggest browsing the getting-started guide: "See `docs/getting-started.md` for a walkthrough."
|
|
56
|
+
|
|
57
|
+
#### Structure-based configuration
|
|
58
|
+
|
|
59
|
+
When structure is **Full**:
|
|
60
|
+
- Proceed with all defaults as normal.
|
|
61
|
+
|
|
62
|
+
When structure is **Essentials**:
|
|
63
|
+
- Skip Group 5 (scoring dimensions) and Group 6 (kill conditions)
|
|
64
|
+
- Set default scoring dimensions but don't ask
|
|
65
|
+
- Set kill conditions to empty (can be added later)
|
|
66
|
+
- Remove `/compare-options` from CLAUDE.md skills table reference
|
|
67
|
+
- Set features in `project.config.json`: `scoring: false`, `killConditions: false`, `evidenceGrading: false`, `weeklyReports: true`, `contextSnapshots: true`
|
|
68
|
+
|
|
69
|
+
When structure is **Minimal**:
|
|
70
|
+
- Skip Groups 3–6 entirely
|
|
71
|
+
- Disable discovery module, pipeline, dashboard, scoring, kill conditions
|
|
72
|
+
- Only keep: `research/`, `memory/MEMORY.md`, `memory/research.md`, `memory/decisions.md`, `docs/`
|
|
73
|
+
- Set features in `project.config.json`: `scoring: false`, `killConditions: false`, `evidenceGrading: false`, `weeklyReports: false`, `contextSnapshots: false`
|
|
74
|
+
|
|
75
|
+
After auto-filling defaults for **Essentials** or **Minimal**, tell the user: "You can always add more features later by editing `project.config.json` and running `/health-check`."
|
|
76
|
+
|
|
77
|
+
Then auto-fill defaults:
|
|
78
|
+
- `{{GOAL}}` → "Validate hypothesis and produce a go/no-go recommendation within 8 weeks"
|
|
79
|
+
- `{{TEAM}}` → "TBD — update in MEMORY.md"
|
|
80
|
+
- `{{SCOPE_DEFINITION}}` → "Defined by hypothesis — refine after initial discovery"
|
|
81
|
+
- `{{OUT_OF_SCOPE}}` → "TBD — update in MEMORY.md"
|
|
82
|
+
- `{{ICP_DESCRIPTION}}` → "TBD — update in MEMORY.md"
|
|
83
|
+
- `{{PIPELINE_SOURCE_OF_TRUTH}}` → `data/entities.csv`
|
|
84
|
+
- `{{DASHBOARD_URL}}` → "TBD"
|
|
85
|
+
- Scoring dimensions → based on project type (see Group 5 defaults)
|
|
86
|
+
- Kill conditions → "TBD — define within first week"
|
|
87
|
+
- Discovery module → included unless user answered "none" for entity type (or "Minimal" structure)
|
|
88
|
+
- Dashboard module → included by default (unless "Minimal" structure)
|
|
89
|
+
|
|
90
|
+
After auto-filling, proceed directly to the **Validation / Dry-Run Step**, then continue with replacement.
|
|
91
|
+
|
|
92
|
+
### Full Setup Mode
|
|
93
|
+
|
|
94
|
+
Run the complete question flow below (Group 0 through Group 6, including Groups 1A and 3A).
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## How to Run
|
|
99
|
+
|
|
100
|
+
Tell the user: "I'll walk you through setting up this project. I'll ask a series of questions, then update all template files with your answers."
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Question Flow
|
|
105
|
+
|
|
106
|
+
Ask these questions **one group at a time**. Wait for answers before proceeding.
|
|
107
|
+
|
|
108
|
+
### Group 0: Prerequisites Check
|
|
109
|
+
|
|
110
|
+
Before asking any project questions, verify the environment is ready.
|
|
111
|
+
|
|
112
|
+
1. **Check Node.js is installed**:
|
|
113
|
+
```bash
|
|
114
|
+
node --version
|
|
115
|
+
```
|
|
116
|
+
If not found, warn: "Node.js is required for building the dashboard. Install it from https://nodejs.org before continuing, or skip the dashboard module."
|
|
117
|
+
|
|
118
|
+
2. **Check for fresh template**:
|
|
119
|
+
Scan `memory/MEMORY.md` for any non-placeholder content — if the template placeholders (`{{PROJECT_NAME}}`, `{{GOAL}}`, etc.) are already gone (i.e., replaced with real values), warn:
|
|
120
|
+
> "This doesn't look like a fresh template — MEMORY.md already contains non-placeholder content. Are you sure you want to continue? This may overwrite existing project data."
|
|
121
|
+
|
|
122
|
+
Wait for confirmation before proceeding.
|
|
123
|
+
|
|
124
|
+
3. **Check git is configured**:
|
|
125
|
+
```bash
|
|
126
|
+
git config user.name
|
|
127
|
+
```
|
|
128
|
+
If empty, warn: "Git user.name is not set. Run `git config --global user.name 'Your Name'` to configure it."
|
|
129
|
+
|
|
130
|
+
Once all checks pass (or the user acknowledges warnings), proceed to Group 1.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Group 1: Project Identity
|
|
135
|
+
|
|
136
|
+
1. **What's the project name?** (e.g., "Immutable Audience — Mobile", "Acme Growth Strategy")
|
|
137
|
+
2. **One-line description** — what is this project about in one sentence? (e.g., "Evaluate the mobile gaming market for audience monetisation opportunities")
|
|
138
|
+
3. **What's the goal?** — a specific, measurable objective with a deadline (e.g., "Validate product-market fit with 20 customer interviews and a go/no-go recommendation by 30 June 2026")
|
|
139
|
+
4. **Who's on the team?** — names and roles (e.g., "Dhanish (discovery), Sherry & Jeet (product)")
|
|
140
|
+
|
|
141
|
+
### Group 1A: Goals & Experience
|
|
142
|
+
|
|
143
|
+
14. **What's your main goal with this project?**
|
|
144
|
+
- Learning how to run a strategy project
|
|
145
|
+
- Running a real strategy project with deliverables
|
|
146
|
+
- Coordinating a team around shared strategic work
|
|
147
|
+
- Exploring and evaluating this tool
|
|
148
|
+
(e.g., "Running a real project — we need to decide whether to enter the mobile gaming market by Q3")
|
|
149
|
+
|
|
150
|
+
15. **How familiar are you with strategy frameworks?**
|
|
151
|
+
- **New to this** — I haven't used formal strategy tools before
|
|
152
|
+
- **Some experience** — I've done market research or competitive analysis
|
|
153
|
+
- **Experienced** — I regularly work with strategic frameworks and hypothesis-driven methods
|
|
154
|
+
|
|
155
|
+
If "New to this": onboarding will include extra guidance in template files and suggest starting with the getting-started guide.
|
|
156
|
+
If "Experienced": standard templates, no extra guidance.
|
|
157
|
+
|
|
158
|
+
### Group 2: Strategic Context
|
|
159
|
+
|
|
160
|
+
5. **What's the scope?** — what's in scope and what's explicitly out of scope? (e.g., In scope: "ANZ mobile gaming studios with >$1M revenue." Out of scope: "Console gaming, studios outside ANZ")
|
|
161
|
+
6. **What's the core hypothesis or strategic bet?** — the thing you're trying to prove or disprove (e.g., "Mid-tier mobile studios will pay $2k+/mo for real-time audience analytics because existing tools have a 48-hour lag")
|
|
162
|
+
7. **Who's the target customer/ICP?** — describe the ideal customer profile (e.g., "Head of Growth at a mobile gaming studio, 10–50 employees, $1M–$10M ARR, currently using Firebase + manual spreadsheets")
|
|
163
|
+
|
|
164
|
+
### Group 3: Project Type & Modules
|
|
165
|
+
|
|
166
|
+
8. **What type of project is this?**
|
|
167
|
+
- **Market entry** (new market, new product) → all modules, entity type: "prospect"
|
|
168
|
+
- **Growth strategy** (existing product, new channels/segments) → all modules, entity type: "prospect"
|
|
169
|
+
- **Competitor research** (competitive intelligence, landscape mapping) → no discovery/pipeline, dashboard on, entity type: "competitor"
|
|
170
|
+
- **Product launch / GTM** (go-to-market planning) → all modules, entity type: "prospect"
|
|
171
|
+
- **Internal implementation** (system rollout, process change) → pipeline + dashboard, no discovery, entity type: "workstream"
|
|
172
|
+
- **Vendor / partner evaluation** (tool or partner selection) → all modules, entity type: "vendor"
|
|
173
|
+
- **Due diligence** (M&A, investment evaluation) → all modules, entity type: "target"
|
|
174
|
+
- **Business case** (investment decision, strategic proposal) → no discovery/pipeline, optional dashboard, entity type: "option"
|
|
175
|
+
- **Transformation / change** (organisational transformation) → all modules, entity type: "initiative"
|
|
176
|
+
- **Custom** → ask which modules to include
|
|
177
|
+
|
|
178
|
+
(e.g., "Internal implementation — we're rolling out a new CRM across the sales team")
|
|
179
|
+
|
|
180
|
+
9. **Do you need a discovery/outreach pipeline?** (Yes/No)
|
|
181
|
+
- If yes: What's the primary entity you're tracking? (e.g., "studio", "customer", "partner", "company")
|
|
182
|
+
- If no: Will skip discovery/, pipeline, outreach-sequence skill, gtm-specialist agent, discovery-strategist agent
|
|
183
|
+
|
|
184
|
+
10. **Do you have a CSV source-of-truth file yet?** (Yes/path or No)
|
|
185
|
+
- If yes: use that path for `{{PIPELINE_SOURCE_OF_TRUTH}}` (e.g., "data/gaming-studios.csv")
|
|
186
|
+
- If no: default to `data/entities.csv`
|
|
187
|
+
|
|
188
|
+
### Group 3A: Feature Selection
|
|
189
|
+
|
|
190
|
+
16. **Which features do you want to use?** (You can always enable more later)
|
|
191
|
+
|
|
192
|
+
| Feature | What it does | Default |
|
|
193
|
+
|---------|-------------|---------|
|
|
194
|
+
| Scoring matrix | Score and compare strategic options on custom dimensions | On |
|
|
195
|
+
| Kill conditions | Define falsifiable thresholds that signal when to stop or pivot | On |
|
|
196
|
+
| Evidence grading | Tag every claim with [CONFIRMED], [SECONDARY], [INFERENCE], or [ASSUMPTION] | On |
|
|
197
|
+
| Weekly reports | Generate periodic stakeholder summaries via `/weekly-report` | On |
|
|
198
|
+
| Context snapshots | Pre-computed summaries for fast session loading | On |
|
|
199
|
+
| Discovery pipeline | Track outreach, calls, and entity status | Based on Q9 |
|
|
200
|
+
| Dashboard | Live web dashboard deployed to Vercel | Based on Q11 |
|
|
201
|
+
|
|
202
|
+
Ask: "Are there any features you'd like to turn OFF? (Enter numbers, or 'all on' to keep defaults)"
|
|
203
|
+
(e.g., "Turn off scoring and weekly reports — we're just doing research for now")
|
|
204
|
+
|
|
205
|
+
### Group 4: Dashboard & Deployment
|
|
206
|
+
|
|
207
|
+
11. **Do you want a live dashboard?** (Yes/No)
|
|
208
|
+
- If yes: What Vercel project name or URL? → sets `{{DASHBOARD_URL}}` (e.g., "https://acme-strategy.vercel.app")
|
|
209
|
+
- If no: Dashboard files can be deleted
|
|
210
|
+
|
|
211
|
+
### Group 5: Scoring Dimensions
|
|
212
|
+
|
|
213
|
+
12. **What dimensions do you want to score your strategic options on?** (e.g., White Space, Urgency, Feasibility, Defensibility, Revenue Potential)
|
|
214
|
+
- Suggest defaults based on project type:
|
|
215
|
+
- Market entry: White Space, Urgency, Feasibility, Defensibility, Revenue Potential
|
|
216
|
+
- Growth: Growth Potential, CAC Efficiency, Retention Impact, Speed to Market, Scalability
|
|
217
|
+
- Competitor research: Market Share, Product Strength, Pricing Power, Growth Trajectory, Threat Level
|
|
218
|
+
- Product launch / GTM: Market Readiness, Channel Fit, Competitive Timing, Resource Requirement, Revenue Impact
|
|
219
|
+
- Internal implementation: Business Impact, Technical Complexity, Change Readiness, Resource Cost, Timeline Risk
|
|
220
|
+
- Vendor / partner evaluation: Capability Fit, Total Cost, Integration Effort, Vendor Stability, Lock-in Risk
|
|
221
|
+
- Due diligence: Strategic Fit, Financial Health, Integration Risk, Synergy Potential, Cultural Alignment
|
|
222
|
+
- Business case: ROI Potential, Strategic Alignment, Execution Risk, Stakeholder Support, Opportunity Cost
|
|
223
|
+
- Transformation / change: Impact Scope, Organisational Readiness, Resource Requirement, Risk Level, Time to Value
|
|
224
|
+
- Update `memory/scoring.md` with chosen dimensions
|
|
225
|
+
- Example: "We use: Market Size, Willingness to Pay, Technical Feasibility, Speed to Launch, Defensibility"
|
|
226
|
+
|
|
227
|
+
### Group 6: Kill Conditions
|
|
228
|
+
|
|
229
|
+
13. **Define 4–6 kill conditions** — falsifiable thresholds that, if crossed, mean the project should stop or pivot. Each should be specific and measurable.
|
|
230
|
+
- Provide examples based on project type:
|
|
231
|
+
- Market entry: "<4/15 prospects rank pain in top 3", "No WTP signal above $12k/yr after 10 calls"
|
|
232
|
+
- Growth: "CAC exceeds $120 after 3 months", "Conversion rate below 2% after 500 trials"
|
|
233
|
+
- Competitor research: "Fewer than 3 viable competitors identified after 4 weeks", "No clear white space found in the landscape"
|
|
234
|
+
- Product launch / GTM: "Pre-launch signups below 500 after 6 weeks", "Channel partner conversion below 5%"
|
|
235
|
+
- Internal implementation: "User adoption below 40% after 3 months", "Integration costs exceed budget by >30%"
|
|
236
|
+
- Vendor / partner evaluation: "No vendor scores above 3/5 on critical requirements", "Total cost exceeds budget ceiling"
|
|
237
|
+
- Due diligence: "Revenue claims can't be verified from available data", "Cultural alignment scores below threshold after site visits"
|
|
238
|
+
- Business case: "Board rejects proposal at Q2 review", "ROI falls below 15% in revised model"
|
|
239
|
+
- Transformation / change: "Key sponsor leaves the organisation", "Employee engagement scores drop >10 points"
|
|
240
|
+
- Example answer: "1. Fewer than 3/10 studios rank our pain point in their top 3. 2. No willingness-to-pay signal above $1k/mo after 15 discovery calls. 3. TAM estimate falls below $50M. 4. Unable to secure 5 design partners in 6 weeks."
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Validation / Dry-Run Step
|
|
245
|
+
|
|
246
|
+
After all answers are collected (whether via Quick Start or Full Setup) but **before** any file replacement, present a summary table to the user for confirmation:
|
|
247
|
+
|
|
248
|
+
> **Here's what I'm about to set. Please confirm or request changes.**
|
|
249
|
+
>
|
|
250
|
+
> | Placeholder | Value |
|
|
251
|
+
> |---|---|
|
|
252
|
+
> | `{{PROJECT_NAME}}` | _answer_ |
|
|
253
|
+
> | `{{PROJECT_SLUG}}` | _auto-generated_ |
|
|
254
|
+
> | `{{ONE_LINE_DESCRIPTION}}` | _answer_ |
|
|
255
|
+
> | `{{GOAL}}` | _answer_ |
|
|
256
|
+
> | `{{TEAM}}` | _answer_ |
|
|
257
|
+
> | `{{SCOPE_DEFINITION}}` | _answer_ |
|
|
258
|
+
> | `{{OUT_OF_SCOPE}}` | _answer_ |
|
|
259
|
+
> | `{{STRATEGIC_HYPOTHESIS}}` | _answer_ |
|
|
260
|
+
> | `{{ICP_DESCRIPTION}}` | _answer_ |
|
|
261
|
+
> | `{{ENTITY_TYPE}}` | _answer_ |
|
|
262
|
+
> | `{{ENTITY_TYPE_PLURAL}}` | _auto-generated_ |
|
|
263
|
+
> | `{{PIPELINE_SOURCE_OF_TRUTH}}` | _answer or default_ |
|
|
264
|
+
> | `{{DASHBOARD_URL}}` | _answer or default_ |
|
|
265
|
+
> | `{{DIM_1}}` – `{{DIM_6}}` | _listed dimensions_ |
|
|
266
|
+
> | `{{DATE}}` | _today's date_ |
|
|
267
|
+
> | **Modules included** | discovery: yes/no, dashboard: yes/no |
|
|
268
|
+
> | **Kill conditions** | _listed_ |
|
|
269
|
+
> | **Goal** | _{answer from Q14 or Quick Start Q6}_ |
|
|
270
|
+
> | **Experience level** | _{answer from Q15, or "Not asked" if Quick Start}_ |
|
|
271
|
+
> | **Features disabled** | _{list of disabled features, or "None"}_ |
|
|
272
|
+
>
|
|
273
|
+
> **Proceed?** (Yes / Edit a value / Start over)
|
|
274
|
+
|
|
275
|
+
Only proceed with file modifications once the user confirms.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## After Questions — Bulk Replace
|
|
280
|
+
|
|
281
|
+
Once the user confirms and all answers are finalised:
|
|
282
|
+
|
|
283
|
+
1. **Search and replace all `{{PLACEHOLDER}}` values** across every file in the project:
|
|
284
|
+
- `{{PROJECT_NAME}}` → answer to Q1
|
|
285
|
+
- `{{PROJECT_SLUG}}` → lowercase, hyphenated version of Q1
|
|
286
|
+
- `{{ONE_LINE_DESCRIPTION}}` → Q2
|
|
287
|
+
- `{{GOAL}}` → Q3
|
|
288
|
+
- `{{TEAM}}` → Q4
|
|
289
|
+
- `{{SCOPE_DEFINITION}}` → Q5 (in-scope part)
|
|
290
|
+
- `{{OUT_OF_SCOPE}}` → Q5 (out-of-scope part)
|
|
291
|
+
- `{{STRATEGIC_HYPOTHESIS}}` → Q6
|
|
292
|
+
- `{{ICP_DESCRIPTION}}` → Q7
|
|
293
|
+
- `{{ENTITY_TYPE}}` → Q9 entity name (singular)
|
|
294
|
+
- `{{ENTITY_TYPE_PLURAL}}` → Q9 entity name (plural)
|
|
295
|
+
- `{{PIPELINE_SOURCE_OF_TRUTH}}` → Q10
|
|
296
|
+
- `{{DASHBOARD_URL}}` → Q11
|
|
297
|
+
- `{{DIM_1}}` through `{{DIM_6}}` → Q12 dimensions
|
|
298
|
+
- `{{DATE}}` → today's date
|
|
299
|
+
|
|
300
|
+
2. **Populate kill conditions** in:
|
|
301
|
+
- `memory/MEMORY.md` Kill Conditions table
|
|
302
|
+
- `docs/executive-summary.md` §6 Kill Conditions table
|
|
303
|
+
- `memory/discovery.md` Kill Condition Tracker (if discovery module active)
|
|
304
|
+
- `context/project-state.md` Kill Conditions table
|
|
305
|
+
|
|
306
|
+
3. **Remove optional modules** based on project type (Q8) and user answers (Q9):
|
|
307
|
+
|
|
308
|
+
Module defaults by project type:
|
|
309
|
+
- Market entry → discovery: yes, pipeline: yes, dashboard: yes
|
|
310
|
+
- Growth strategy → discovery: yes, pipeline: yes, dashboard: yes
|
|
311
|
+
- Competitor research → discovery: no, pipeline: no, dashboard: yes
|
|
312
|
+
- Product launch / GTM → discovery: yes, pipeline: yes, dashboard: yes
|
|
313
|
+
- Internal implementation → discovery: no, pipeline: yes, dashboard: yes
|
|
314
|
+
- Vendor / partner evaluation → discovery: yes, pipeline: yes, dashboard: yes
|
|
315
|
+
- Due diligence → discovery: yes, pipeline: yes, dashboard: yes
|
|
316
|
+
- Business case → discovery: no, pipeline: no, dashboard: optional
|
|
317
|
+
- Transformation / change → discovery: yes, pipeline: yes, dashboard: yes
|
|
318
|
+
- Custom → ask user
|
|
319
|
+
|
|
320
|
+
Apply removals:
|
|
321
|
+
- If no discovery: delete `discovery/`, `memory/discovery.md`, `context/pipeline-state.md`, `dashboard/pipeline.html`, `skills/pipeline-update/`, `skills/outreach-sequence/`, `.claude/agents/discovery-strategist.md`, `.claude/agents/gtm-specialist.md`
|
|
322
|
+
- If no pipeline: delete `skills/pipeline-update/`, `skills/outreach-sequence/`, `.claude/agents/gtm-specialist.md`
|
|
323
|
+
- If no dashboard: delete `dashboard/`
|
|
324
|
+
|
|
325
|
+
4. **Apply feature-level removals** based on Q16 (Full Setup) or structure selection (Quick Start):
|
|
326
|
+
|
|
327
|
+
- **Scoring off**: Skip Group 5, remove `memory/scoring.md`, remove `dashboard/scoring.html`, skip `/compare-options` skill mention in CLAUDE.md skills table
|
|
328
|
+
- **Kill conditions off**: Skip Group 6, remove kill condition sections from template files (leave the table headers but mark as "Not configured — enable kill conditions in project.config.json to use this feature")
|
|
329
|
+
- **Evidence grading off**: Add a note to CLAUDE.md: "Evidence grading is disabled for this project. Claims are not tagged with confidence grades."
|
|
330
|
+
- **Weekly reports off**: Remove `/weekly-report` skill reference
|
|
331
|
+
- **Context snapshots off**: Remove `context/` directory, update CLAUDE.md to note snapshots are disabled
|
|
332
|
+
- **Minimal mode**: Removes `discovery/`, `dashboard/`, pipeline skills, scoring, kill conditions, evidence grading, weekly reports, context snapshots — keeps only `research/`, `memory/` (MEMORY.md, research.md, decisions.md), `docs/`, and basic skills (onboard, session-start, session-end, health-check, enrich-entity, critical-reasoning, decision, synthesise)
|
|
333
|
+
|
|
334
|
+
5. **Remove remaining `{{PLACEHOLDER}}` markers** — scan all files for any unreplaced `{{` patterns and either fill them with sensible defaults or flag them for the user.
|
|
335
|
+
|
|
336
|
+
### Step 5.5: Generate Sample Entity CSV
|
|
337
|
+
|
|
338
|
+
If the discovery module is active and no existing CSV was provided (Q10 = No), create `data/entities.csv` with the correct headers and 2 example rows so the user can see the expected format:
|
|
339
|
+
|
|
340
|
+
```csv
|
|
341
|
+
name,slug,status,tier,category,last_contact,next_action,channel,notes
|
|
342
|
+
Example Corp,example-corp,Not started,Tier 2,Direct competitor,,Research website,Web,Added as example — delete this row
|
|
343
|
+
Demo Inc,demo-inc,Not started,Tier 3,Adjacent,,Initial research,Web,Added as example — delete this row
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Ensure the `data/` directory exists before writing the file.
|
|
347
|
+
|
|
348
|
+
### Step 5.6: Generate project.config.json
|
|
349
|
+
|
|
350
|
+
Write the project configuration to `project.config.json` at the repo root using the collected answers. Follow this schema:
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"templateVersion": "1.0.0",
|
|
355
|
+
"templateSource": "github.com/DiffTheEnder/DSS-Claude-Stack",
|
|
356
|
+
"projectName": "<Q1>",
|
|
357
|
+
"projectSlug": "<auto-generated slug>",
|
|
358
|
+
"projectType": "{selected type}",
|
|
359
|
+
"oneLineDescription": "<Q2>",
|
|
360
|
+
"goal": "<Q3>",
|
|
361
|
+
"team": "<Q4>",
|
|
362
|
+
"scope": "<Q5 in-scope>",
|
|
363
|
+
"outOfScope": "<Q5 out-of-scope>",
|
|
364
|
+
"strategicHypothesis": "<Q6>",
|
|
365
|
+
"icpDescription": "<Q7>",
|
|
366
|
+
"entityType": "<Q9 singular>",
|
|
367
|
+
"entityTypePlural": "<Q9 plural>",
|
|
368
|
+
"pipelineSourceOfTruth": "<Q10 or default>",
|
|
369
|
+
"dashboardUrl": "<Q11 or default>",
|
|
370
|
+
"modules": {
|
|
371
|
+
"discovery": true/false,
|
|
372
|
+
"pipeline": true/false,
|
|
373
|
+
"dashboard": true/false
|
|
374
|
+
},
|
|
375
|
+
"features": {
|
|
376
|
+
"scoring": true/false,
|
|
377
|
+
"killConditions": true/false,
|
|
378
|
+
"evidenceGrading": true/false,
|
|
379
|
+
"weeklyReports": true/false,
|
|
380
|
+
"contextSnapshots": true/false
|
|
381
|
+
},
|
|
382
|
+
"scoringDimensions": ["<Q12 dimensions>"],
|
|
383
|
+
"killConditions": ["<Q13 conditions>"]
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
6. **Run verification**:
|
|
388
|
+
```bash
|
|
389
|
+
grep -r "{{" --include="*.md" --include="*.js" --include="*.html" .
|
|
390
|
+
```
|
|
391
|
+
Should return zero results (all placeholders replaced).
|
|
392
|
+
|
|
393
|
+
### Step 6.5: Transform README
|
|
394
|
+
|
|
395
|
+
After verification, replace the open-source template README with a project-instance README. Generate a new `README.md` at the repo root containing:
|
|
396
|
+
|
|
397
|
+
- **Project name** as the top-level heading
|
|
398
|
+
- **Description** — the one-liner from Q2
|
|
399
|
+
- **Goal** — the measurable objective from Q3
|
|
400
|
+
- **Team** — from Q4
|
|
401
|
+
- **Status** — "Initialised — onboarding complete, discovery not yet started"
|
|
402
|
+
- **Folder map** — a brief overview of the directory structure and what each folder contains
|
|
403
|
+
- **Key docs** — links to:
|
|
404
|
+
- `memory/MEMORY.md` (project memory)
|
|
405
|
+
- `docs/executive-summary.md` (executive summary)
|
|
406
|
+
- `context/project-state.md` (current state)
|
|
407
|
+
- `memory/scoring.md` (scoring framework)
|
|
408
|
+
- `memory/discovery.md` (discovery tracker, if active)
|
|
409
|
+
- **Dashboard** — link to `{{DASHBOARD_URL}}` if the dashboard module is active, otherwise note "Dashboard not configured"
|
|
410
|
+
- **Generated by** — "Initialised from DS Strategy Stack on `{{DATE}}`"
|
|
411
|
+
|
|
412
|
+
Do **not** include template-level instructions, contribution guidelines, or licence information from the original README — this is now a project-specific document.
|
|
413
|
+
|
|
414
|
+
7. **Rebuild dashboard** (if kept):
|
|
415
|
+
```bash
|
|
416
|
+
cd dashboard && npm install && node build-data.js
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
8. **Report completion** to the user with:
|
|
420
|
+
- Summary of all values set
|
|
421
|
+
- List of modules included/excluded
|
|
422
|
+
- List of features enabled/disabled
|
|
423
|
+
- Files generated (entity CSV, project.config.json, README)
|
|
424
|
+
- Suggested first actions (e.g., "Start with competitor research", "Define your first 10 targets")
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## After Onboarding
|
|
429
|
+
|
|
430
|
+
This skill is no longer needed. The user can:
|
|
431
|
+
- Delete the `skills/onboard/` directory
|
|
432
|
+
- Or keep it for reference
|
|
433
|
+
|
|
434
|
+
Suggest: "Onboarding complete. You can delete `skills/onboard/` — it's no longer needed."
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: outreach-sequence
|
|
3
|
+
description: Use when designing or reviewing an outreach cadence for a set of {{ENTITY_TYPE_PLURAL}}, or when the user asks "what should I send next to X". Produces a sequenced, personalised multi-touch plan with draft messages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Outreach Sequence
|
|
7
|
+
|
|
8
|
+
**Flexible skill** — adapt the structure to the project context and {{ENTITY_TYPE}}.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Sequence Types
|
|
13
|
+
|
|
14
|
+
| Type | When | Touches | Spacing |
|
|
15
|
+
|------|------|---------|---------|
|
|
16
|
+
| Cold | No prior relationship | 3–4 | 3–5 days |
|
|
17
|
+
| Warm intro follow-up | Mutual connection made intro | 2–3 | 2–3 days |
|
|
18
|
+
| Post-non-response | Sent outreach, no reply | 2–3 | 5–7 days |
|
|
19
|
+
| Post-meeting follow-up | After a call/meeting | 2–3 | 1–3 days |
|
|
20
|
+
| Re-engagement | Gone cold after prior contact | 2 | 7–14 days |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Voice Standards
|
|
25
|
+
|
|
26
|
+
All outreach must follow these rules:
|
|
27
|
+
|
|
28
|
+
- **Short sentences**. No compound sentences with multiple clauses.
|
|
29
|
+
- **Plain words**. No corporate filler ("leverage", "synergise", "circle back", "deep dive").
|
|
30
|
+
- **Under 100 words** per message. Shorter is better.
|
|
31
|
+
- **One ask per message**. Never combine "can we chat?" with "also could you share X?"
|
|
32
|
+
- **Personalised opening**. Reference something specific to the {{ENTITY_TYPE}} — a recent event, their product, a shared connection.
|
|
33
|
+
- **Clear next step**. Every message ends with a specific, easy-to-action request.
|
|
34
|
+
- **No attachments on first touch**. Earn attention before sending materials.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Personalisation Rules
|
|
39
|
+
|
|
40
|
+
For each {{ENTITY_TYPE}}, personalise based on:
|
|
41
|
+
|
|
42
|
+
1. **Their recent activity** — product launches, funding, hiring, press mentions
|
|
43
|
+
2. **Their specific pain** — if known from research, reference it directly
|
|
44
|
+
3. **Mutual connections** — if any exist, lead with the introduction
|
|
45
|
+
4. **Their role** — adapt language for C-level vs practitioner vs technical buyer
|
|
46
|
+
5. **Channel norms** — email is more formal; LinkedIn is more conversational
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Output Format
|
|
51
|
+
|
|
52
|
+
For each {{ENTITY_TYPE}}, produce:
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
## {{ENTITY_NAME}} — {{SEQUENCE_TYPE}} Sequence
|
|
56
|
+
|
|
57
|
+
**Channel**: Email / LinkedIn / Intro request
|
|
58
|
+
**Personalisation hook**: [what makes this outreach specific to them]
|
|
59
|
+
|
|
60
|
+
### Touch 1 (Day 0)
|
|
61
|
+
Subject: [if email]
|
|
62
|
+
Body: [draft message]
|
|
63
|
+
|
|
64
|
+
### Touch 2 (Day X)
|
|
65
|
+
Subject: [if email]
|
|
66
|
+
Body: [draft message]
|
|
67
|
+
|
|
68
|
+
### Touch 3 (Day X) — optional
|
|
69
|
+
Subject: [if email]
|
|
70
|
+
Body: [draft message]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## After Drafting
|
|
76
|
+
|
|
77
|
+
1. Update pipeline tracker with outreach status
|
|
78
|
+
2. Update `memory/discovery.md` Outreach Log
|
|
79
|
+
3. If outreach requires call prep, create `discovery/prep/{{ENTITY_SLUG}}-prep.md`
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pipeline-update
|
|
3
|
+
description: Use when the user reports a pipeline status change — intro received, meeting booked, outreach sent, response received, entity goes cold or dead. Executes all pipeline update steps in order without manual prompting.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pipeline Update
|
|
7
|
+
|
|
8
|
+
**Rigid skill** — execute ALL steps in order. Do not skip steps or ask whether to proceed.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Status Lifecycle
|
|
13
|
+
|
|
14
|
+
| From | To | Trigger |
|
|
15
|
+
|------|----|---------|
|
|
16
|
+
| (new) | Not started | Entity added to pipeline |
|
|
17
|
+
| Not started | Contacted | Outreach sent (any channel) |
|
|
18
|
+
| Not started | Engaged | Inbound interest or warm intro |
|
|
19
|
+
| Contacted | Engaged | Response received |
|
|
20
|
+
| Engaged | Meeting booked | Call/meeting scheduled |
|
|
21
|
+
| Meeting booked | Meeting completed | Call/meeting happened |
|
|
22
|
+
| Any | Dead | Disqualified, unresponsive, or explicitly declined |
|
|
23
|
+
|
|
24
|
+
### Alternative Lifecycle (for implementation, transformation, and internal projects)
|
|
25
|
+
|
|
26
|
+
| From | To | Trigger |
|
|
27
|
+
|------|----|---------|
|
|
28
|
+
| (new) | Not started | Entity/workstream added to pipeline |
|
|
29
|
+
| Not started | In progress | Work has begun |
|
|
30
|
+
| In progress | Blocked | Dependency or issue preventing progress |
|
|
31
|
+
| Blocked | In progress | Blocker resolved |
|
|
32
|
+
| In progress | Completed | Work finished and verified |
|
|
33
|
+
| Any | Cancelled | Workstream deprioritised or abandoned |
|
|
34
|
+
|
|
35
|
+
Use this lifecycle when the project type is **Internal Implementation**, **Transformation / Change**, or any project where entities represent workstreams or initiatives rather than outreach targets.
|
|
36
|
+
|
|
37
|
+
The project type is stored in `project.config.json` under `projectType`. Check this to determine which lifecycle to use.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 0 — Identify the Event
|
|
42
|
+
|
|
43
|
+
What happened? Map it to a status transition from the table above. If ambiguous, ask the user.
|
|
44
|
+
|
|
45
|
+
Check `project.config.json` `projectType` to determine which status lifecycle to use (outreach vs implementation).
|
|
46
|
+
|
|
47
|
+
## Step 1 — Check if New Entity
|
|
48
|
+
|
|
49
|
+
If this {{ENTITY_TYPE}} doesn't exist in the source of truth yet:
|
|
50
|
+
- Add to `{{PIPELINE_SOURCE_OF_TRUTH}}` (CSV is source of truth — never add only to JSON)
|
|
51
|
+
- Fill all available columns
|
|
52
|
+
|
|
53
|
+
## Step 2 — Update Pipeline Tracker
|
|
54
|
+
|
|
55
|
+
Update the tracker data with:
|
|
56
|
+
- New status
|
|
57
|
+
- Last contact date
|
|
58
|
+
- Next action and due date
|
|
59
|
+
- Channel used
|
|
60
|
+
- Any notes
|
|
61
|
+
|
|
62
|
+
## Step 3 — Update Memory
|
|
63
|
+
|
|
64
|
+
Update `memory/discovery.md` Outreach Log with:
|
|
65
|
+
- Date, {{ENTITY_TYPE}}, channel, action, result, next step
|
|
66
|
+
|
|
67
|
+
Update `memory/MEMORY.md` Discovery line if the count or status summary has changed.
|
|
68
|
+
|
|
69
|
+
## Step 4 — Create Prep File (if meeting booked)
|
|
70
|
+
|
|
71
|
+
If status → Meeting booked:
|
|
72
|
+
- Create `discovery/prep/{{ENTITY_SLUG}}-prep.md` using `templates/call-prep.md`
|
|
73
|
+
- Research the {{ENTITY_TYPE}} before filling the prep template
|
|
74
|
+
|
|
75
|
+
## Step 5 — Handle Dead Status
|
|
76
|
+
|
|
77
|
+
If status → Dead:
|
|
78
|
+
- Note reason in memory/discovery.md Outreach Log
|
|
79
|
+
- Update MEMORY.md to remove from active lists
|
|
80
|
+
- No prep file needed
|
|
81
|
+
|
|
82
|
+
## Step 6 — Rebuild Dashboard
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
cd dashboard && node build-data.js
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Step 7 — Confirm to User
|
|
89
|
+
|
|
90
|
+
Report: what changed, what files were updated, what the next action is.
|