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.
Files changed (83) hide show
  1. package/bin/create-dss-project.js +4 -0
  2. package/lib/index.js +80 -0
  3. package/lib/project-types.js +74 -0
  4. package/lib/prompts.js +42 -0
  5. package/lib/scaffold.js +169 -0
  6. package/package.json +30 -0
  7. package/template/.github/workflows/dashboard-build.yml +27 -0
  8. package/template/.github/workflows/template-lint.yml +71 -0
  9. package/template/CHANGELOG.md +43 -0
  10. package/template/CLAUDE.md +145 -0
  11. package/template/LICENSE +21 -0
  12. package/template/README.md +201 -0
  13. package/template/STATUS.md +34 -0
  14. package/template/context/competitor-snapshot.md +27 -0
  15. package/template/context/market-snapshot.md +32 -0
  16. package/template/context/pipeline-state.md +36 -0
  17. package/template/context/project-state.md +45 -0
  18. package/template/dashboard/CLAUDE.md +36 -0
  19. package/template/dashboard/DEPLOY.md +60 -0
  20. package/template/dashboard/build-data.js +395 -0
  21. package/template/dashboard/competitors.html +143 -0
  22. package/template/dashboard/css/styles.css +143 -0
  23. package/template/dashboard/data/.gitkeep +0 -0
  24. package/template/dashboard/decisions.html +132 -0
  25. package/template/dashboard/index.html +152 -0
  26. package/template/dashboard/js/app.js +59 -0
  27. package/template/dashboard/js/overview.js +50 -0
  28. package/template/dashboard/js/sidebar.js +62 -0
  29. package/template/dashboard/js/tailwind-config.js +52 -0
  30. package/template/dashboard/package-lock.json +351 -0
  31. package/template/dashboard/package.json +17 -0
  32. package/template/dashboard/pipeline.html +149 -0
  33. package/template/dashboard/research.html +215 -0
  34. package/template/dashboard/robots.txt +2 -0
  35. package/template/dashboard/scoring.html +187 -0
  36. package/template/dashboard/timeline.html +165 -0
  37. package/template/dashboard/vercel.json +5 -0
  38. package/template/dashboard/watch.js +57 -0
  39. package/template/data/.gitkeep +0 -0
  40. package/template/discovery/calls/.gitkeep +0 -0
  41. package/template/discovery/outreach/.gitkeep +0 -0
  42. package/template/discovery/prep/.gitkeep +0 -0
  43. package/template/docs/decks/.gitkeep +0 -0
  44. package/template/docs/executive-summary.md +104 -0
  45. package/template/docs/getting-started.md +274 -0
  46. package/template/docs/memos/evidence-grading.md +27 -0
  47. package/template/docs/memos/housekeeping-reference.md +101 -0
  48. package/template/docs/memos/reference-context.md +30 -0
  49. package/template/docs/output/project-activity.md +8 -0
  50. package/template/docs/output/status-blurb.md +4 -0
  51. package/template/docs/output/work-log.md +8 -0
  52. package/template/docs/skill-authoring-guide.md +212 -0
  53. package/template/memory/MEMORY.md +84 -0
  54. package/template/memory/decisions.md +13 -0
  55. package/template/memory/discovery.md +48 -0
  56. package/template/memory/research.md +33 -0
  57. package/template/memory/scoring.md +34 -0
  58. package/template/project.config.example.json +31 -0
  59. package/template/research/competitors/.gitkeep +0 -0
  60. package/template/research/market/.gitkeep +0 -0
  61. package/template/research/technical/.gitkeep +0 -0
  62. package/template/scripts/.gitkeep +0 -0
  63. package/template/scripts/build-cli-template.sh +32 -0
  64. package/template/scripts/health-check.sh +152 -0
  65. package/template/scripts/reset-to-template.sh +115 -0
  66. package/template/scripts/validate-placeholders.sh +47 -0
  67. package/template/skills/compare-options/SKILL.md +97 -0
  68. package/template/skills/critical-reasoning/SKILL.md +107 -0
  69. package/template/skills/decision/SKILL.md +75 -0
  70. package/template/skills/enrich-entity/SKILL.md +107 -0
  71. package/template/skills/health-check/SKILL.md +144 -0
  72. package/template/skills/onboard/SKILL.md +434 -0
  73. package/template/skills/outreach-sequence/SKILL.md +79 -0
  74. package/template/skills/pipeline-update/SKILL.md +90 -0
  75. package/template/skills/process-call/SKILL.md +96 -0
  76. package/template/skills/rebuild-snapshots/SKILL.md +88 -0
  77. package/template/skills/session-end/SKILL.md +120 -0
  78. package/template/skills/session-start/SKILL.md +93 -0
  79. package/template/skills/synthesise/SKILL.md +108 -0
  80. package/template/skills/weekly-report/SKILL.md +79 -0
  81. package/template/templates/call-notes.md +67 -0
  82. package/template/templates/call-prep.md +65 -0
  83. 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.