@sushanglewis/lincoln 1.5.0 → 1.5.2

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 (305) hide show
  1. package/dist/main.d.ts +3 -0
  2. package/dist/main.js +1286 -916
  3. package/dist/main.js.map +1 -1
  4. package/dist/postinstall.d.ts +3 -0
  5. package/dist/postinstall.js +18 -0
  6. package/dist/postinstall.js.map +1 -0
  7. package/framework/.claude/agents/_contract.md +79 -0
  8. package/framework/.claude/agents/architect.md +31 -0
  9. package/framework/.claude/agents/default.md +151 -0
  10. package/framework/.claude/agents/designer.md +33 -0
  11. package/framework/.claude/agents/engineer.md +42 -0
  12. package/framework/.claude/agents/external/NOTICES.md +12 -0
  13. package/framework/.claude/agents/external/everything-claude-code.manifest.yaml +23 -0
  14. package/framework/.claude/agents/external/oh-my-claudecode.manifest.yaml +26 -0
  15. package/framework/.claude/agents/external/wshobson-agents.manifest.yaml +23 -0
  16. package/framework/.claude/agents/frontend-engineer.md +32 -0
  17. package/framework/.claude/agents/knowledge-curator.md +28 -0
  18. package/framework/.claude/agents/pm.md +38 -0
  19. package/framework/.claude/agents/qa.md +28 -0
  20. package/framework/.claude/agents/release-coordinator.md +25 -0
  21. package/framework/.claude/agents/researcher.md +41 -0
  22. package/framework/.claude/harnesses/claude-code.yaml +15 -0
  23. package/framework/.claude/harnesses/codex.yaml +40 -0
  24. package/framework/.claude/harnesses/command-map.yaml +255 -0
  25. package/framework/.claude/harnesses/opencode.yaml +32 -0
  26. package/framework/.claude/harnesses/scenarios.yaml +45 -0
  27. package/framework/.claude/hooks/on-pr-event.sh +69 -0
  28. package/framework/.claude/hooks/on-session-start.sh +427 -0
  29. package/framework/.claude/hooks/on-stop.sh +104 -0
  30. package/framework/.claude/hooks/post-tool-use.sh +161 -0
  31. package/framework/.claude/hooks/pre-tool-use.sh +246 -0
  32. package/framework/.claude/schemas/agent-definition.schema.json +35 -0
  33. package/framework/.claude/schemas/benchmark-report.schema.json +148 -0
  34. package/framework/.claude/schemas/pm-to-ux-handoff.schema.yaml +128 -0
  35. package/framework/.claude/schemas/stage-definition.schema.json +233 -0
  36. package/framework/.claude/schemas/workflow-stage.schema.json +86 -0
  37. package/framework/.claude/schemas/workflow-template.schema.json +88 -0
  38. package/framework/.claude/settings.json +14 -0
  39. package/framework/.claude/skills/build-product-prototype/SKILL.md +35 -0
  40. package/framework/.claude/skills/build-product-prototype/prompts/main.md +78 -0
  41. package/framework/.claude/skills/clarify-requirements/SKILL.md +32 -0
  42. package/framework/.claude/skills/clarify-requirements/prompts/main.md +81 -0
  43. package/framework/.claude/skills/dependencies.yaml +139 -0
  44. package/framework/.claude/skills/draft-product-design/SKILL.md +40 -0
  45. package/framework/.claude/skills/draft-product-design/prompts/main.md +47 -0
  46. package/framework/.claude/skills/lc-analyze-frameworks/SKILL.md +43 -0
  47. package/framework/.claude/skills/lc-analyze-frameworks/prompts/main.md +95 -0
  48. package/framework/.claude/skills/lc-benchmark/SKILL.md +61 -0
  49. package/framework/.claude/skills/lc-build-codebase-knowledge/SKILL.md +38 -0
  50. package/framework/.claude/skills/lc-build-codebase-knowledge/prompts/build-codebase-knowledge.md +61 -0
  51. package/framework/.claude/skills/lc-collect-intelligence/SKILL.md +43 -0
  52. package/framework/.claude/skills/lc-collect-intelligence/prompts/main.md +72 -0
  53. package/framework/.claude/skills/lc-competitive-analysis/SKILL.md +43 -0
  54. package/framework/.claude/skills/lc-competitive-analysis/prompts/main.md +70 -0
  55. package/framework/.claude/skills/lc-explore-opensource/SKILL.md +36 -0
  56. package/framework/.claude/skills/lc-explore-opensource/prompts/explore-opensource.md +77 -0
  57. package/framework/.claude/skills/lc-first-principles/SKILL.md +43 -0
  58. package/framework/.claude/skills/lc-first-principles/prompts/main.md +73 -0
  59. package/framework/.claude/skills/lc-handoff/SKILL.md +34 -0
  60. package/framework/.claude/skills/lc-init-branch/SKILL.md +52 -0
  61. package/framework/.claude/skills/lc-market-research/SKILL.md +43 -0
  62. package/framework/.claude/skills/lc-market-research/prompts/main.md +79 -0
  63. package/framework/.claude/skills/lc-product-research/SKILL.md +43 -0
  64. package/framework/.claude/skills/lc-product-research/prompts/main.md +80 -0
  65. package/framework/.claude/skills/lc-research-report/SKILL.md +43 -0
  66. package/framework/.claude/skills/lc-research-report/prompts/main.md +90 -0
  67. package/framework/.claude/skills/lc-research-scope/SKILL.md +43 -0
  68. package/framework/.claude/skills/lc-research-scope/prompts/main.md +82 -0
  69. package/framework/.claude/skills/lc-setup/SKILL.md +68 -0
  70. package/framework/.claude/skills/lc-setup/prompts/main.md +88 -0
  71. package/framework/.claude/skills/lc-stage/SKILL.md +45 -0
  72. package/framework/.claude/skills/lc-stakeholder-research/SKILL.md +43 -0
  73. package/framework/.claude/skills/lc-stakeholder-research/prompts/main.md +65 -0
  74. package/framework/.claude/skills/lc-status/SKILL.md +25 -0
  75. package/framework/.claude/skills/lc-storytelling/SKILL.md +43 -0
  76. package/framework/.claude/skills/lc-storytelling/prompts/main.md +77 -0
  77. package/framework/.claude/skills/lc-wf/SKILL.md +54 -0
  78. package/framework/.claude/skills/lc-workflow/SKILL.md +48 -0
  79. package/framework/.claude/skills/lc-workflow/validators/validate.py +755 -0
  80. package/framework/.claude/skills/lc-workflow-router/SKILL.md +41 -0
  81. package/framework/.claude/skills/lc-workflow-router/prompts/intake-prompt.md +91 -0
  82. package/framework/.claude/skills/lc-workflow-router/prompts/router-prompt.md +44 -0
  83. package/framework/.claude/skills/plan-tdd-development/SKILL.md +31 -0
  84. package/framework/.claude/skills/plan-tdd-development/prompts/main.md +44 -0
  85. package/framework/.claude/skills/process-interview/SKILL.md +32 -0
  86. package/framework/.claude/skills/process-interview/prompts/main.md +47 -0
  87. package/framework/.claude/skills/propose-with-openspec/SKILL.md +37 -0
  88. package/framework/.claude/skills/propose-with-openspec/prompts/main.md +53 -0
  89. package/framework/.claude/skills/split-to-github/SKILL.md +32 -0
  90. package/framework/.claude/skills/split-to-github/prompts/main.md +42 -0
  91. package/framework/.claude/skills/sync-to-knowledge/SKILL.md +35 -0
  92. package/framework/.claude/skills/sync-to-knowledge/prompts/main.md +54 -0
  93. package/framework/.claude/skills/workflow-continue/SKILL.md +24 -0
  94. package/framework/.claude/skills/workflow-continue/prompts/main.md +25 -0
  95. package/framework/.claude/stages/build-codebase-knowledge.yaml +42 -0
  96. package/framework/.claude/stages/clarify.yaml +59 -0
  97. package/framework/.claude/stages/explore-opensource.yaml +40 -0
  98. package/framework/.claude/stages/implement.yaml +60 -0
  99. package/framework/.claude/stages/ingest.yaml +40 -0
  100. package/framework/.claude/stages/lc-analyze-frameworks.yaml +37 -0
  101. package/framework/.claude/stages/lc-collect-intelligence.yaml +37 -0
  102. package/framework/.claude/stages/lc-competitive-analysis.yaml +37 -0
  103. package/framework/.claude/stages/lc-first-principles.yaml +37 -0
  104. package/framework/.claude/stages/lc-market-research.yaml +37 -0
  105. package/framework/.claude/stages/lc-product-research.yaml +37 -0
  106. package/framework/.claude/stages/lc-research-report.yaml +38 -0
  107. package/framework/.claude/stages/lc-research-scope.yaml +38 -0
  108. package/framework/.claude/stages/lc-stakeholder-research.yaml +37 -0
  109. package/framework/.claude/stages/lc-storytelling.yaml +37 -0
  110. package/framework/.claude/stages/product-design-docs.yaml +66 -0
  111. package/framework/.claude/stages/product-prototype.yaml +53 -0
  112. package/framework/.claude/stages/propose.yaml +45 -0
  113. package/framework/.claude/stages/split.yaml +41 -0
  114. package/framework/.claude/stages/sync-knowledge.yaml +49 -0
  115. package/framework/.claude/stages/tdd-development-plan.yaml +43 -0
  116. package/framework/.claude/stages/workflow-router.yaml +45 -0
  117. package/framework/.claude/templates/solo-workflow-context.yaml +23 -0
  118. package/framework/.claude/workflows/README.md +93 -0
  119. package/framework/.claude/workflows/bug-fix.yaml +81 -0
  120. package/framework/.claude/workflows/design-spike.yaml +55 -0
  121. package/framework/.claude/workflows/existing-project-iteration.yaml +106 -0
  122. package/framework/.claude/workflows/interview-to-knowledge.yaml +189 -0
  123. package/framework/.claude/workflows/oss-first-design.yaml +100 -0
  124. package/framework/.claude/workflows/pm-research.yaml +115 -0
  125. package/framework/.claude-plugin/hooks.json +6 -0
  126. package/framework/.claude-plugin/marketplace.json +32 -0
  127. package/framework/.claude-plugin/plugin.json +57 -0
  128. package/framework/.version-bump.json +43 -0
  129. package/framework/CLAUDE.md +140 -0
  130. package/framework/CONTRIBUTING.md +219 -0
  131. package/framework/LICENSE +21 -0
  132. package/framework/README.en.md +139 -0
  133. package/framework/README.md +139 -0
  134. package/framework/RELEASE.md +334 -0
  135. package/framework/SKILL.md +24 -0
  136. package/framework/USAGE.md +356 -0
  137. package/framework/manifest.json +1214 -0
  138. package/framework/requirements.txt +4 -0
  139. package/framework/scripts/__init__.py +0 -0
  140. package/framework/scripts/build_codebase_knowledge.py +76 -0
  141. package/framework/scripts/bump_version.py +181 -0
  142. package/framework/scripts/check-dependency-drift.py +69 -0
  143. package/framework/scripts/check-harness-drift.sh +57 -0
  144. package/framework/scripts/check-main-merge-hygiene.py +128 -0
  145. package/framework/scripts/check-skill-dependencies.sh +124 -0
  146. package/framework/scripts/init-lincoln-branch.sh +300 -0
  147. package/framework/scripts/init-project.sh +184 -0
  148. package/framework/scripts/lc-benchmark-cli.py +66 -0
  149. package/framework/scripts/lincoln-audit.py +288 -0
  150. package/framework/scripts/lincoln-setup.py +651 -0
  151. package/framework/scripts/lincoln-status.py +448 -0
  152. package/framework/scripts/lincoln_benchmark.py +224 -0
  153. package/framework/scripts/lincoln_benchmark_eval.py +104 -0
  154. package/framework/scripts/lincoln_benchmark_metrics.py +818 -0
  155. package/framework/scripts/lincoln_benchmark_report.py +141 -0
  156. package/framework/scripts/lincoln_command_map.py +289 -0
  157. package/framework/scripts/lincoln_dependency_manager.py +335 -0
  158. package/framework/scripts/lincoln_documents.py +175 -0
  159. package/framework/scripts/lincoln_harness_adapter.py +319 -0
  160. package/framework/scripts/lincoln_index.py +255 -0
  161. package/framework/scripts/lincoln_paths.py +198 -0
  162. package/framework/scripts/lincoln_prd.py +227 -0
  163. package/framework/scripts/lincoln_role.py +46 -0
  164. package/framework/scripts/lincoln_scenario.py +59 -0
  165. package/framework/scripts/lincoln_session_start_metrics.py +71 -0
  166. package/framework/scripts/lincoln_skill_prompt.py +48 -0
  167. package/framework/scripts/lincoln_trace.py +335 -0
  168. package/framework/scripts/lincoln_workflow.py +199 -0
  169. package/framework/scripts/list-active-lincoln-branches.sh +87 -0
  170. package/framework/scripts/package-lincoln-plugin.py +340 -0
  171. package/framework/scripts/run-infrastructure-tests.py +84 -0
  172. package/framework/scripts/stage_loader.py +1071 -0
  173. package/framework/scripts/static-check.sh +356 -0
  174. package/framework/scripts/sync-external-agents.sh +210 -0
  175. package/framework/scripts/sync-framework-package.mjs +218 -0
  176. package/framework/scripts/task_tool_guard.py +213 -0
  177. package/framework/scripts/track-artifacts.py +140 -0
  178. package/framework/scripts/validate_stage.py +350 -0
  179. package/{README.md → framework/tools/lincoln/README.md} +4 -4
  180. package/framework/tools/lincoln/package-lock.json +3349 -0
  181. package/framework/tools/lincoln/package.json +48 -0
  182. package/framework/tools/lincoln/src/cli.tsx +60 -0
  183. package/framework/tools/lincoln/src/components/AudioMeter.tsx +34 -0
  184. package/framework/tools/lincoln/src/components/CancelledScreen.tsx +11 -0
  185. package/framework/tools/lincoln/src/components/DevicesMenu.tsx +79 -0
  186. package/framework/tools/lincoln/src/components/HintBar.tsx +25 -0
  187. package/framework/tools/lincoln/src/components/LogView.tsx +36 -0
  188. package/framework/tools/lincoln/src/components/ModelMenu.tsx +122 -0
  189. package/framework/tools/lincoln/src/components/ReadyScreen.tsx +54 -0
  190. package/framework/tools/lincoln/src/components/RecordingApp.tsx +211 -0
  191. package/framework/tools/lincoln/src/components/RecordingScreen.tsx +41 -0
  192. package/framework/tools/lincoln/src/components/SelectMenu.tsx +53 -0
  193. package/framework/tools/lincoln/src/components/StatusPanel.tsx +52 -0
  194. package/framework/tools/lincoln/src/components/StopConfirmation.tsx +32 -0
  195. package/framework/tools/lincoln/src/config/args.ts +35 -0
  196. package/framework/tools/lincoln/src/config/loadConfig.ts +81 -0
  197. package/framework/tools/lincoln/src/config/resolveConfig.ts +85 -0
  198. package/framework/tools/lincoln/src/devices/listDevices.ts +11 -0
  199. package/framework/tools/lincoln/src/devices/parseDevices.ts +25 -0
  200. package/framework/tools/lincoln/src/hooks/useKeyHandler.ts +63 -0
  201. package/framework/tools/lincoln/src/main.tsx +4 -0
  202. package/framework/tools/lincoln/src/models/models.ts +34 -0
  203. package/framework/tools/lincoln/src/models/runWarmup.ts +46 -0
  204. package/framework/tools/lincoln/src/models/warmupProgress.ts +30 -0
  205. package/framework/tools/lincoln/src/recording/spawnRecorder.ts +127 -0
  206. package/framework/tools/lincoln/src/recording/useRecorder.ts +146 -0
  207. package/framework/tools/lincoln/src/utils/amplitudeToMeter.ts +4 -0
  208. package/framework/tools/lincoln/src/utils/formatDuration.ts +6 -0
  209. package/framework/tools/lincoln/src/utils/sessionId.ts +25 -0
  210. package/framework/tools/lincoln/tests/cli.test.tsx +52 -0
  211. package/framework/tools/lincoln/tests/components/AudioMeter.test.tsx +31 -0
  212. package/framework/tools/lincoln/tests/components/CancelledScreen.test.tsx +12 -0
  213. package/framework/tools/lincoln/tests/components/ReadyScreen.test.tsx +68 -0
  214. package/framework/tools/lincoln/tests/components/RecordingApp.menus.test.tsx +158 -0
  215. package/framework/tools/lincoln/tests/components/RecordingApp.test.tsx +248 -0
  216. package/framework/tools/lincoln/tests/components/RecordingScreen.test.tsx +37 -0
  217. package/framework/tools/lincoln/tests/components/SelectMenu.test.tsx +59 -0
  218. package/framework/tools/lincoln/tests/components/StopConfirmation.test.tsx +38 -0
  219. package/framework/tools/lincoln/tests/config/args.test.ts +49 -0
  220. package/framework/tools/lincoln/tests/config/loadConfig.test.ts +59 -0
  221. package/framework/tools/lincoln/tests/config/resolveConfig.test.ts +72 -0
  222. package/framework/tools/lincoln/tests/devices/parseDevices.test.ts +21 -0
  223. package/framework/tools/lincoln/tests/hooks/useKeyHandler.enabled.test.tsx +44 -0
  224. package/framework/tools/lincoln/tests/hooks/useKeyHandler.test.tsx +130 -0
  225. package/framework/tools/lincoln/tests/models/models.test.ts +27 -0
  226. package/framework/tools/lincoln/tests/models/warmupProgress.test.ts +25 -0
  227. package/framework/tools/lincoln/tests/recording/spawnRecorder.test.ts +85 -0
  228. package/framework/tools/lincoln/tests/recording/useRecorder.test.tsx +172 -0
  229. package/framework/tools/lincoln/tests/utils/amplitudeToMeter.test.ts +22 -0
  230. package/framework/tools/lincoln/tests/utils/formatDuration.test.ts +11 -0
  231. package/framework/tools/lincoln/tests/utils/sessionId.test.ts +30 -0
  232. package/framework/tools/lincoln/tsconfig.json +22 -0
  233. package/framework/tools/lincoln/tsconfig.tests.json +10 -0
  234. package/framework/tools/lincoln/tsup.config.ts +17 -0
  235. package/framework/tools/lincoln/vitest.config.ts +20 -0
  236. package/framework/tools/lincoln-installer/package-lock.json +3611 -0
  237. package/framework/tools/lincoln-installer/package.json +53 -0
  238. package/framework/tools/lincoln-installer/src/cli.tsx +63 -0
  239. package/framework/tools/lincoln-installer/src/components/HarnessSelectScreen.tsx +43 -0
  240. package/framework/tools/lincoln-installer/src/components/InstallerApp.tsx +98 -0
  241. package/framework/tools/lincoln-installer/src/components/OptionsScreen.tsx +56 -0
  242. package/framework/tools/lincoln-installer/src/components/ProgressScreen.tsx +25 -0
  243. package/framework/tools/lincoln-installer/src/components/ResultScreen.tsx +40 -0
  244. package/framework/tools/lincoln-installer/src/components/SelectMenu.tsx +73 -0
  245. package/framework/tools/lincoln-installer/src/components/SummaryScreen.tsx +49 -0
  246. package/framework/tools/lincoln-installer/src/components/UpdateApp.tsx +135 -0
  247. package/framework/tools/lincoln-installer/src/components/WelcomeScreen.tsx +22 -0
  248. package/framework/tools/lincoln-installer/src/config/args.ts +76 -0
  249. package/framework/tools/lincoln-installer/src/config/resolveConfig.ts +33 -0
  250. package/framework/tools/lincoln-installer/src/config/updateArgs.ts +67 -0
  251. package/framework/tools/lincoln-installer/src/hooks/useSetup.ts +149 -0
  252. package/framework/tools/lincoln-installer/src/main.tsx +11 -0
  253. package/framework/tools/lincoln-installer/src/types.ts +19 -0
  254. package/framework/tools/lincoln-installer/src/update-main.tsx +11 -0
  255. package/framework/tools/lincoln-installer/src/update.tsx +90 -0
  256. package/framework/tools/lincoln-installer/src/utils/detectHarness.ts +51 -0
  257. package/framework/tools/lincoln-installer/src/utils/runSetup.ts +62 -0
  258. package/framework/tools/lincoln-installer/src/utils/updateRelease.ts +454 -0
  259. package/framework/tools/lincoln-installer/tests/components/InstallerApp.test.tsx +88 -0
  260. package/framework/tools/lincoln-installer/tests/components/SelectMenu.test.tsx +26 -0
  261. package/framework/tools/lincoln-installer/tests/components/UpdateApp.test.tsx +170 -0
  262. package/framework/tools/lincoln-installer/tests/components/screens.test.tsx +310 -0
  263. package/framework/tools/lincoln-installer/tests/config/args.test.ts +66 -0
  264. package/framework/tools/lincoln-installer/tests/config/resolveConfig.test.ts +75 -0
  265. package/framework/tools/lincoln-installer/tests/config/updateArgs.test.ts +52 -0
  266. package/framework/tools/lincoln-installer/tests/hooks/useSetup.test.tsx +213 -0
  267. package/framework/tools/lincoln-installer/tests/update.test.tsx +108 -0
  268. package/framework/tools/lincoln-installer/tests/utils/detectHarness.test.ts +40 -0
  269. package/framework/tools/lincoln-installer/tests/utils/runSetup.test.ts +45 -0
  270. package/framework/tools/lincoln-installer/tests/utils/updateRelease.test.ts +559 -0
  271. package/framework/tools/lincoln-installer/tsconfig.json +22 -0
  272. package/framework/tools/lincoln-installer/tsconfig.tests.json +8 -0
  273. package/framework/tools/lincoln-installer/tsup.config.ts +17 -0
  274. package/framework/tools/lincoln-installer/vitest.config.ts +20 -0
  275. package/framework/tools/lincoln-record/Cargo.lock +1896 -0
  276. package/framework/tools/lincoln-record/Cargo.toml +24 -0
  277. package/framework/tools/lincoln-record/diarize/diarize.py +117 -0
  278. package/framework/tools/lincoln-record/diarize/merge.py +55 -0
  279. package/framework/tools/lincoln-record/src/audio/capture/microphone.rs +194 -0
  280. package/framework/tools/lincoln-record/src/audio/capture/mod.rs +1 -0
  281. package/framework/tools/lincoln-record/src/audio/devices.rs +20 -0
  282. package/framework/tools/lincoln-record/src/audio/mod.rs +5 -0
  283. package/framework/tools/lincoln-record/src/audio/resampler.rs +44 -0
  284. package/framework/tools/lincoln-record/src/audio/saver.rs +87 -0
  285. package/framework/tools/lincoln-record/src/audio/source.rs +104 -0
  286. package/framework/tools/lincoln-record/src/cli.rs +96 -0
  287. package/framework/tools/lincoln-record/src/config.rs +135 -0
  288. package/framework/tools/lincoln-record/src/lib.rs +6 -0
  289. package/framework/tools/lincoln-record/src/main.rs +242 -0
  290. package/framework/tools/lincoln-record/src/model/mod.rs +248 -0
  291. package/framework/tools/lincoln-record/src/output/metadata.rs +30 -0
  292. package/framework/tools/lincoln-record/src/output/mod.rs +2 -0
  293. package/framework/tools/lincoln-record/src/output/transcript.rs +42 -0
  294. package/framework/tools/lincoln-record/src/transcription/diarization.rs +64 -0
  295. package/framework/tools/lincoln-record/src/transcription/mod.rs +3 -0
  296. package/framework/tools/lincoln-record/src/transcription/provider.rs +43 -0
  297. package/framework/tools/lincoln-record/src/transcription/whisper.rs +176 -0
  298. package/framework/tools/lincoln-record/tests/cli_args.rs +103 -0
  299. package/framework/tools/lincoln-record/tests/config_test.rs +70 -0
  300. package/framework/tools/lincoln-record/tests/devices_test.rs +23 -0
  301. package/framework/tools/lincoln-record/tests/diarization_tests.rs +101 -0
  302. package/framework/tools/lincoln-record/tests/integration_tests.rs +44 -0
  303. package/framework/tools/lincoln-record/tests/model_test.rs +68 -0
  304. package/framework/tools/lincoln-record/tests/transcription_tests.rs +73 -0
  305. package/package.json +19 -13
@@ -0,0 +1,90 @@
1
+ # lc-research-report prompt
2
+
3
+ You are executing the Lincoln workflow step `lc-research-report`: synthesize all research artifacts into a final report.
4
+
5
+ ## Goal
6
+
7
+ Produce `{process_slug}/research/{session_id}/report.md` that integrates the research scope, first principles, stakeholder map, market, product, competitive, framework, intelligence, and narrative into a decision-ready document.
8
+
9
+ ## Inputs
10
+
11
+ - `session_id`: the research session identifier
12
+ - All prior research artifacts in `{process_slug}/research/{session_id}/`
13
+
14
+ ## Steps
15
+
16
+ 1. Read all prior research artifacts.
17
+ 2. Write an executive summary with:
18
+ - Core thesis
19
+ - Key findings
20
+ - Recommended decision
21
+ - Key risks
22
+ 3. Include sections for each research domain (scope, first principles, stakeholders, market, product, competitive, frameworks, intelligence, narrative).
23
+ 4. Link every claim to evidence in the prior artifacts.
24
+ 5. Add an appendix with all sources.
25
+ 6. Write `report.md` using the template below.
26
+ 7. Present the report to the PM for final approval.
27
+
28
+ ## Output template
29
+
30
+ ```markdown
31
+ # Research Report: <Title>
32
+
33
+ ## Executive Summary
34
+
35
+ ### Core Thesis
36
+ ...
37
+
38
+ ### Key Findings
39
+ 1. ...
40
+ 2. ...
41
+
42
+ ### Recommendation
43
+ ...
44
+
45
+ ### Risks
46
+ - ...
47
+
48
+ ## Background
49
+ ...
50
+
51
+ ## First Principles
52
+ ...
53
+
54
+ ## Stakeholder Insights
55
+ ...
56
+
57
+ ## Market Analysis
58
+ ...
59
+
60
+ ## Product Analysis
61
+ ...
62
+
63
+ ## Competitive Analysis
64
+ ...
65
+
66
+ ## Applied Frameworks
67
+ ...
68
+
69
+ ## Evidence Summary
70
+ ...
71
+
72
+ ## Narrative
73
+ ...
74
+
75
+ ## Next Steps
76
+ 1. ...
77
+
78
+ ## Appendix: Sources
79
+ - ...
80
+ ```
81
+
82
+ ## Human Interaction Rules
83
+
84
+ - Present the report to the PM for approval.
85
+ - Do not mark the stage complete until the PM explicitly confirms.
86
+
87
+ ## Exit Criteria
88
+
89
+ - `report.md` is complete and approved by the human PM.
90
+ - Every recommendation links to evidence.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: lc-research-scope
3
+ description: 界定 PM 研究工作的范围、目标、问题与验收标准,作为后续研究阶段的单一事实来源。
4
+ version: 1.0.0
5
+ triggers:
6
+ - "lc-research-scope"
7
+ inputs:
8
+ - name: topic
9
+ description: 研究主题或产品决策背景
10
+ required: false
11
+ outputs:
12
+ - "{process_slug}/research/{session_id}/scope.md"
13
+ required_tools:
14
+ - Bash
15
+ - Read
16
+ - Write
17
+ ---
18
+
19
+ # lc-research-scope
20
+
21
+ ## Purpose
22
+
23
+ Using [lc-research-scope] to 界定 PM 研究工作的范围、目标、问题与验收标准,作为后续研究阶段的单一事实来源.
24
+
25
+ ## When to Use
26
+
27
+ - `pm-research` workflow 的 `lc-research-scope` 阶段。
28
+ - PM 需要 界定 PM 研究工作的范围、目标、问题与验收标准,作为后续研究阶段的单一事实来源。 时。
29
+
30
+ ## Inputs
31
+
32
+ - `session_id`: 研究 session 标识
33
+ - 当前阶段之前的所有研究产物
34
+
35
+ ## Outputs
36
+
37
+ - `{process_slug}/research/{session_id}/scope.md`
38
+
39
+ ## Rules
40
+
41
+ - 严格基于已有研究产物,避免引入未经验证的假设。
42
+ - 所有外部事实必须标注来源。
43
+ - human_gate 阶段必须获得人类 PM 显式确认。
@@ -0,0 +1,82 @@
1
+ # lc-research-scope prompt
2
+
3
+ You are executing the Lincoln workflow step `lc-research-scope`: define the research brief for a PM-led research workflow.
4
+
5
+ ## Goal
6
+
7
+ Produce `{process_slug}/research/{session_id}/scope.md` that becomes the single source of truth for all subsequent research stages.
8
+
9
+ ## Inputs
10
+
11
+ - `session_id`: the research session identifier
12
+ - Optional topic, questions, or context provided by the human PM
13
+ - Any existing requirements, interviews, designs, or knowledge documents in `{process_slug}/`
14
+
15
+ ## Steps
16
+
17
+ 1. Create `{process_slug}/research/{session_id}/` if it does not exist.
18
+ 2. Read any existing context that could shape the research (requirements, interview summaries, knowledge notes).
19
+ 3. Draft `scope.md` using the template below.
20
+ 4. Identify 1-3 ambiguities and tag each with its Johari quadrant:
21
+ - 知道自己知道 → confirm with the PM
22
+ - 知道自己不知道 → ask directly and coach
23
+ - 不知道自己知道 → surface existing assets
24
+ - 不知道自己不知道 → probe with concrete scenarios
25
+ 5. Ask the human PM at most 3 questions per turn to converge on scope.
26
+ 6. Update `scope.md` after each answer.
27
+ 7. Repeat until the PM confirms the scope is ready.
28
+ 8. When confirmed, append `<!-- status: approved -->` to `scope.md`.
29
+
30
+ ## Output template
31
+
32
+ ```markdown
33
+ # Research Scope: <Title>
34
+
35
+ ## Background
36
+
37
+ <决策背景与研究动机>
38
+
39
+ ## Research Questions
40
+
41
+ 1. <问题 1>
42
+ 2. <问题 2>
43
+ 3. <问题 3>
44
+
45
+ ## Scope Inclusions
46
+
47
+ - <明确包含的内容>
48
+
49
+ ## Scope Exclusions
50
+
51
+ - <明确不包含的内容,避免范围蔓延>
52
+
53
+ ## Stakeholders
54
+
55
+ - <谁使用、谁买单、谁建设、谁维护(初步)>
56
+
57
+ ## Analysis Frameworks
58
+
59
+ - <初步建议使用的分析框架>
60
+
61
+ ## Acceptance Criteria
62
+
63
+ 1. <怎样算研究完成>
64
+ 2. <需要产出哪些 artifact>
65
+ 3. <决策点是什么>
66
+
67
+ ## Risks & Assumptions
68
+
69
+ - <关键假设>
70
+ - <可能风险>
71
+ ```
72
+
73
+ ## Human Interaction Rules
74
+
75
+ - Ask at most 3 questions per turn.
76
+ - After each answer, update the document and show the changed sections.
77
+ - Do not proceed to the next step until the PM explicitly confirms (e.g., says "confirm" or "确认").
78
+
79
+ ## Exit Criteria
80
+
81
+ - `scope.md` is approved by the human PM.
82
+ - Research questions and acceptance criteria are explicit and decision-oriented.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: lc-setup
3
+ description: |
4
+ Lincoln 环境初始化 skill。用于在仓库首次打开或依赖发生变化时,
5
+ 检查、安装并配置 Lincoln 所需的外部 skills、CLI 工具、插件以及仓库配置。
6
+ ---
7
+
8
+ # lc-setup
9
+
10
+ ## Purpose
11
+
12
+ Using [lc-setup] to guide one-time Lincoln installation and dependency setup.
13
+
14
+ 详细安装执行指令见 `prompts/main.md`。会话启动 hook 只负责提示依赖缺失,具体安装剧本由本 skill 承载。
15
+
16
+ ## 触发条件
17
+
18
+ - 用户首次用 Claude Code 打开从 Lincoln template 创建的新仓库。
19
+ - `.claude/hooks/on-session-start.sh` 检测到 Lincoln setup 尚未完成。
20
+ - 用户复制 README 中的初始化提示词并发送给 Claude。
21
+ - 运行 `python scripts/lincoln-setup.py check` 发现缺失依赖。
22
+
23
+ ## 职责
24
+
25
+ 1. 检查 `.claude/skills/dependencies.yaml` 声明的依赖是否满足。
26
+ 2. 安装缺失的外部 skills(`superpowers`、`gsd`)到 `~/.claude/skills/`,并确保 ref 正确。
27
+ 3. 安装缺失的 CLI 工具(`openspec`、`gh`、`ffmpeg`、Whisper 实现)。
28
+ 4. 安装 `oh-my-claudecode` 插件(可选但默认安装)。
29
+ 5. 配置 `.github/openspec-config.yml` 的 `repository.owner` 和 `repository.name`。
30
+ 6. 运行 `scripts/init-project.sh` 完成项目级初始化。
31
+ 7. 安装任何全局工具或写入配置前,必须先向用户确认。
32
+
33
+ ## 调用方式
34
+
35
+ 优先使用 Skill 工具调用 `lc-setup`;如果环境不支持,可运行等效命令:
36
+
37
+ ```bash
38
+ python scripts/lincoln-setup.py bootstrap
39
+ ```
40
+
41
+ 常用子命令:
42
+
43
+ ```bash
44
+ python scripts/lincoln-setup.py check # 仅检查
45
+ python scripts/lincoln-setup.py install-skills # 安装外部 skills
46
+ python scripts/lincoln-setup.py install-clis # 安装 CLI 工具
47
+ python scripts/lincoln-setup.py init-repo-config --owner <owner> --name <repo>
48
+ python scripts/lincoln-setup.py bootstrap # 完整流程
49
+ ```
50
+
51
+ ## 产物
52
+
53
+ - `~/.claude/skills/` 下的外部 skill 目录。
54
+ - 安装到 PATH 的 CLI 工具。
55
+ - 更新后的 `.github/openspec-config.yml`。
56
+ - 写入 `.context/lc-setup-state.yaml` 的 setup 完成状态。
57
+ - 初始化后的项目目录结构(products、oss、knowledge 等)。
58
+
59
+ ## 约束
60
+
61
+ - 不得跳过用户确认擅自安装全局工具。
62
+ - 遇到不支持的平台或安装失败时,给出清晰的手动替代命令。
63
+ - 安装完成后汇报状态:依赖是否就绪、配置是否写入、下一步动作。
64
+ - 如果 `.context/lc-setup-state.yaml` 已标记完成且依赖检查通过,可跳过重复安装。
65
+
66
+ ## Prompts
67
+
68
+ - `prompts/main.md` — 给 Claude 的详细安装执行指令。
@@ -0,0 +1,88 @@
1
+ # Lincoln 初始化安装执行指令
2
+
3
+ > 如果用户更喜欢终端 TUI 安装,也可以推荐 `npx lincoln-install` 作为自助式替代;它会调用同样的 `scripts/lincoln-setup.py` 后端,但提供交互式选择 harness 与安装范围的向导。
4
+
5
+ 你是 Lincoln 的初始化助手。当前仓库可能尚未完成 Lincoln 环境配置,或者依赖清单已更新。请按以下步骤执行,并在每一步完成后向用户简要汇报。
6
+
7
+ ## 1. 检查当前环境
8
+
9
+ 运行:
10
+
11
+ ```bash
12
+ python scripts/lincoln-setup.py check
13
+ ```
14
+
15
+ - 列出所有缺失的 skills、CLI 工具、插件。
16
+ - 区分 required 与 optional/default_install。
17
+ - 如果检查通过且 `.context/lc-setup-state.yaml` 已标记完成,直接汇报“环境已就绪”,跳过剩余步骤。
18
+
19
+ ## 2. 安装外部 skills
20
+
21
+ 运行:
22
+
23
+ ```bash
24
+ python scripts/lincoln-setup.py install-skills
25
+ ```
26
+
27
+ - 默认会逐个询问用户确认。如果用户明确说“全部安装”,可追加 `--yes`。
28
+ - 该命令会:
29
+ - 将 `superpowers`(上游 obra/superpowers,main 分支)clone 到 `~/.claude/skills/superpowers`
30
+ - 将 `gsd`(上游 gsd-build/get-shit-done,main 分支)clone 到 `~/.claude/skills/gsd`
31
+ - 安装 `oh-my-claudecode` 插件(如声明为 default_install)
32
+ - 如果目标目录已存在且 ref 匹配,自动跳过;如果 ref 不匹配或工作区 dirty,先向用户说明再决定。
33
+
34
+ ## 3. 安装 CLI 工具
35
+
36
+ 运行:
37
+
38
+ ```bash
39
+ python scripts/lincoln-setup.py install-clis
40
+ ```
41
+
42
+ - 默认逐个询问用户确认。
43
+ - **先问用户是否需要录音转写能力**;只有需要时才安装 ffmpeg 与 Whisper 实现。
44
+ - 需要处理的 CLI 包括:
45
+ - `openspec`:基于 Node.js,运行 `npm install -g @fission-ai/openspec`
46
+ - `gh`:macOS 用 `brew install gh`,Linux 用包管理器
47
+ - `ffmpeg`(可选,仅录音转写需要):macOS 用 `brew install ffmpeg`
48
+ - Whisper 实现(可选,仅录音转写需要):优先 `faster-whisper`;如果失败,提供 `openai-whisper` 或 OpenAI API key 选项
49
+ - 顺带询问用户是否需要 benchmark;需要时介绍 `scripts/lincoln_benchmark.py` 的用法。
50
+ - 安装失败后,给出对应平台的手动安装命令。
51
+
52
+ ## 4. 配置仓库信息
53
+
54
+ 运行:
55
+
56
+ ```bash
57
+ python scripts/lincoln-setup.py init-repo-config --owner <owner> --name <repo>
58
+ ```
59
+
60
+ - 从 git remote origin 自动推断 owner/name;如果推断失败,询问用户。
61
+ - 如果 `.github/openspec-config.yml` 已经包含真实值,命令会跳过并提示。
62
+
63
+ ## 5. 运行项目初始化
64
+
65
+ 运行:
66
+
67
+ ```bash
68
+ bash scripts/init-project.sh
69
+ ```
70
+
71
+ - 这会创建 products、oss、knowledge 等目录结构。
72
+ - 如果还有未满足的依赖,`init-project.sh` 会警告但不会强制退出。
73
+
74
+ ## 6. 汇报状态
75
+
76
+ 完成所有步骤后,向用户汇报:
77
+
78
+ - ✅ 已安装的 skills 与 CLI 工具
79
+ - ✅ `.github/openspec-config.yml` 中的仓库信息
80
+ - ⚠️ 仍缺失或需要手动处理的项目
81
+ - 📋 下一步:创建 issue 工作包或开始第一个 Lincoln 工作流
82
+
83
+ ## 重要约束
84
+
85
+ - 不要假设用户已经允许安装全局工具;每次安装前必须获得确认(除非用户主动说 `--yes`)。
86
+ - 不要修改 `{process_slug}/recordings/` 中的任何文件。
87
+ - 不要创建 GitHub Issues 或 PR,除非人类明确请求。
88
+ - 如果某一步失败,暂停并报告失败原因与修复建议,不要继续后续步骤。
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: lc-stage
3
+ description: 用自然语言驱动当前阶段的生命周期:查看状态、校验准入、提交产物、确认 gate、进入下一阶段
4
+ triggers:
5
+ - "lc-stage"
6
+ - "提交产物"
7
+ - "提交本阶段产物"
8
+ - "确认通过"
9
+ - "审批通过"
10
+ - "校验阶段"
11
+ - "进入下一阶段"
12
+ inputs:
13
+ - name: intent
14
+ description: 自然语言意图(如"提交产物""确认通过");可选,缺省时汇报当前状态并询问下一步
15
+ required: false
16
+ outputs:
17
+ - 对应 stage_loader.py 动作的执行结果与下一步建议
18
+ required_tools:
19
+ - Bash
20
+ - Read
21
+ ---
22
+
23
+ # lc-stage — 阶段生命周期自然语言入口
24
+
25
+ ## Purpose
26
+
27
+ Using [lc-stage] to 用自然语言驱动当前阶段的生命周期:查看状态、校验准入、提交产物、确认 gate、进入下一阶段.
28
+
29
+
30
+ 用户不需要记任何终端命令。Agent 把自然语言意图翻译成 `scripts/stage_loader.py` 动作并代为执行:
31
+
32
+ | 用户说 | 动作 | 底层命令(Agent 执行,用户无需关心) |
33
+ |--------|------|-----------------------------------|
34
+ | "现在什么状态" | status | `python3 "${CLAUDE_PLUGIN_ROOT:-${LINCOLN_HOME:-$HOME/.lincoln/current}}/scripts/lincoln-status.py" --format markdown`(或 `/lc-status`) |
35
+ | "可以开始吗 / 校验准入" | validate-entry | `python3 "${CLAUDE_PLUGIN_ROOT:-${LINCOLN_HOME:-$HOME/.lincoln/current}}/scripts/stage_loader.py" --stage <current_stage> --action validate-entry`(或 `/lc-validate`) |
36
+ | "提交产物 / 记录产物" | record-artifacts | `python3 "${CLAUDE_PLUGIN_ROOT:-${LINCOLN_HOME:-$HOME/.lincoln/current}}/scripts/stage_loader.py" --stage <current_stage> --action record-artifacts`(或 `/lc-submit`) |
37
+ | "确认通过 / 审批通过" | approve-gate | 仅当人类 PM 明确确认后:`... --action approve-gate`(或 `/lc-approve`) |
38
+ | "生成交接 / 切换窗口" | handoff-report | 见 `/lc-handoff` |
39
+ | "进入下一阶段" | transition-next | 仅在当前阶段 gate 通过后执行 |
40
+
41
+ 规则:
42
+
43
+ 1. `<current_stage>` 由 Agent 从 `{process_slug}/workflow-stage.yaml`(team)或 `.context/workflow/<name>.yaml`(solo)的 `current_run.current_stage` 读取,不要让用户提供。
44
+ 2. `human_gate: true` 的阶段,执行 `approve-gate` 前必须有人类 PM 的显式确认原话;Agent 不得自行审批,不得用本技能替代人类确认。
45
+ 3. 执行后用一两句话向用户汇报结果与下一步,不要倾倒原始命令输出。
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: lc-stakeholder-research
3
+ description: 识别并研究产品相关者(用户、买单方、建设方、维护方),找到他们的发声渠道并分析其诉求。
4
+ version: 1.0.0
5
+ triggers:
6
+ - "lc-stakeholder-research"
7
+ inputs:
8
+ - name: topic
9
+ description: 研究主题或产品决策背景
10
+ required: false
11
+ outputs:
12
+ - "{process_slug}/research/{session_id}/stakeholder-research.md"
13
+ required_tools:
14
+ - Bash
15
+ - Read
16
+ - Write
17
+ ---
18
+
19
+ # lc-stakeholder-research
20
+
21
+ ## Purpose
22
+
23
+ Using [lc-stakeholder-research] to 识别并研究产品相关者(用户、买单方、建设方、维护方),找到他们的发声渠道并分析其诉求.
24
+
25
+ ## When to Use
26
+
27
+ - `pm-research` workflow 的 `lc-stakeholder-research` 阶段。
28
+ - PM 需要 识别并研究产品相关者(用户、买单方、建设方、维护方),找到他们的发声渠道并分析其诉求。 时。
29
+
30
+ ## Inputs
31
+
32
+ - `session_id`: 研究 session 标识
33
+ - 当前阶段之前的所有研究产物
34
+
35
+ ## Outputs
36
+
37
+ - `{process_slug}/research/{session_id}/stakeholder-research.md`
38
+
39
+ ## Rules
40
+
41
+ - 严格基于已有研究产物,避免引入未经验证的假设。
42
+ - 所有外部事实必须标注来源。
43
+ - human_gate 阶段必须获得人类 PM 显式确认。
@@ -0,0 +1,65 @@
1
+ # lc-stakeholder-research prompt
2
+
3
+ You are executing the Lincoln workflow step `lc-stakeholder-research`: identify and analyze the stakeholders surrounding the product decision.
4
+
5
+ ## Goal
6
+
7
+ Produce `{process_slug}/research/{session_id}/stakeholders.md` that maps who uses, pays for, builds, and maintains the product, where they speak, and what they need.
8
+
9
+ ## Inputs
10
+
11
+ - `session_id`: the research session identifier
12
+ - `{process_slug}/research/{session_id}/scope.md`
13
+ - `{process_slug}/research/{session_id}/first-principles.md`
14
+
15
+ ## Steps
16
+
17
+ 1. Read the scope and first-principles documents.
18
+ 2. List stakeholder categories:
19
+ - End users (primary, secondary)
20
+ - Economic buyers / budget owners
21
+ - Builders / implementers
22
+ - Maintainers / operators
23
+ - Influencers / gatekeepers
24
+ 3. For each stakeholder, identify:
25
+ - Goals and pains
26
+ - Where they publicly voice opinions (forums, Slack, X/Twitter, Reddit, GitHub, app stores, review sites, interviews)
27
+ - Evidence of their voice (quotes, metrics, behavioral signals)
28
+ 4. Use WebSearch / WebFetch / GitHub MCP to collect representative quotes and data points.
29
+ 5. Write `stakeholders.md` using the template below.
30
+
31
+ ## Output template
32
+
33
+ ```markdown
34
+ # Stakeholder Research: <Title>
35
+
36
+ ## Stakeholder Map
37
+
38
+ | Role | Who | Goals | Pains | Voice Channels | Evidence |
39
+ |------|-----|-------|-------|----------------|----------|
40
+ | ... | ... | ... | ... | ... | ... |
41
+
42
+ ## Key Quotes
43
+
44
+ > "..." — source, channel, date
45
+
46
+ ## Insight Summary
47
+
48
+ - <stakeholder tension 1>
49
+ - <stakeholder tension 2>
50
+
51
+ ## Implications for Research
52
+
53
+ - <what this means for the product decision>
54
+ ```
55
+
56
+ ## Rules
57
+
58
+ - Every claim about a stakeholder must have a source.
59
+ - Distinguish observed behavior from inferred needs.
60
+ - Respect privacy: do not scrape private communities without authorization.
61
+
62
+ ## Exit Criteria
63
+
64
+ - `stakeholders.md` covers all relevant stakeholder categories.
65
+ - Each category links to at least one voice channel and one piece of evidence.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: lc-status
3
+ description: 查看当前 Lincoln 分支的阶段状态、等待对象、推荐技能和下一步动作
4
+ triggers:
5
+ - "查看 Lincoln 状态"
6
+ - "lc-status"
7
+ - "当前阶段"
8
+ inputs: []
9
+ outputs:
10
+ - 结构化状态报告
11
+ required_tools:
12
+ - Read
13
+ - Bash
14
+ ---
15
+
16
+ # lc-status
17
+
18
+ ## Purpose
19
+
20
+ Using [lc-status] to 查看当前 Lincoln 分支的阶段状态、等待对象、推荐技能和下一步动作.
21
+
22
+
23
+ 调用 `python scripts/lincoln-status.py --format markdown` 输出当前 Lincoln 分支状态。
24
+
25
+ 输出包含:当前阶段、等待对象、已加载上下文、推荐技能、产物状态、下一步动作。
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: lc-storytelling
3
+ description: 基于金字塔原理与科学论述逻辑,将研究成果结构化为动人的、可说服决策者的故事。
4
+ version: 1.0.0
5
+ triggers:
6
+ - "lc-storytelling"
7
+ inputs:
8
+ - name: topic
9
+ description: 研究主题或产品决策背景
10
+ required: false
11
+ outputs:
12
+ - "{process_slug}/research/{session_id}/narrative.md"
13
+ required_tools:
14
+ - Bash
15
+ - Read
16
+ - Write
17
+ ---
18
+
19
+ # lc-storytelling
20
+
21
+ ## Purpose
22
+
23
+ Using [lc-storytelling] to 基于金字塔原理与科学论述逻辑,将研究成果结构化为动人的、可说服决策者的故事.
24
+
25
+ ## When to Use
26
+
27
+ - `pm-research` workflow 的 `lc-storytelling` 阶段。
28
+ - PM 需要 基于金字塔原理与科学论述逻辑,将研究成果结构化为动人的、可说服决策者的故事。 时。
29
+
30
+ ## Inputs
31
+
32
+ - `session_id`: 研究 session 标识
33
+ - 当前阶段之前的所有研究产物
34
+
35
+ ## Outputs
36
+
37
+ - `{process_slug}/research/{session_id}/storytelling.md`
38
+
39
+ ## Rules
40
+
41
+ - 严格基于已有研究产物,避免引入未经验证的假设。
42
+ - 所有外部事实必须标注来源。
43
+ - human_gate 阶段必须获得人类 PM 显式确认。
@@ -0,0 +1,77 @@
1
+ # lc-storytelling prompt
2
+
3
+ You are executing the Lincoln workflow step `lc-storytelling`: structure the research findings into a compelling, evidence-based narrative.
4
+
5
+ ## Goal
6
+
7
+ Produce `{process_slug}/research/{session_id}/narrative.md` that presents the research as a clear story using pyramid principle reasoning (thesis → sub-theses → evidence).
8
+
9
+ ## Inputs
10
+
11
+ - `session_id`: the research session identifier
12
+ - `{process_slug}/research/{session_id}/scope.md`
13
+ - `{process_slug}/research/{session_id}/first-principles.md`
14
+ - `{process_slug}/research/{session_id}/analysis-frameworks.md`
15
+ - `{process_slug}/research/{session_id}/collected-intelligence.md`
16
+
17
+ ## Steps
18
+
19
+ 1. Read all prior research artifacts.
20
+ 2. Identify the single core thesis (the answer to the research question).
21
+ 3. Derive 3-5 supporting sub-theses. Each sub-thesis must be backed by evidence.
22
+ 4. For each sub-thesis, list 2-4 pieces of evidence (data, quotes, analysis).
23
+ 5. Arrange the narrative using one of these structures:
24
+ - SCQA (Situation, Complication, Question, Answer)
25
+ - Thesis → Sub-thesis → Evidence
26
+ - Major premise → Minor premise → Conclusion
27
+ 6. Add a story arc: setup → tension → turning point → resolution → call to action.
28
+ 7. Write `narrative.md` using the template below.
29
+ 8. Present the narrative to the PM for confirmation before writing the final report.
30
+
31
+ ## Output template
32
+
33
+ ```markdown
34
+ # Research Narrative: <Title>
35
+
36
+ ## Core Thesis
37
+
38
+ <one-sentence conclusion>
39
+
40
+ ## Story Arc
41
+
42
+ - **Setup:** ...
43
+ - **Tension:** ...
44
+ - **Turning point:** ...
45
+ - **Resolution:** ...
46
+ - **Call to action:** ...
47
+
48
+ ## Supporting Sub-theses
49
+
50
+ ### Sub-thesis 1: <statement>
51
+ - Evidence: ...
52
+ - Evidence: ...
53
+
54
+ ### Sub-thesis 2: ...
55
+
56
+ ## Logical Structure
57
+
58
+ - **Major premise:** ...
59
+ - **Minor premise:** ...
60
+ - **Conclusion:** ...
61
+
62
+ ## PM Confirmation Questions
63
+
64
+ 1. <Is this the right thesis?>
65
+ 2. <Is the evidence sufficient?>
66
+ 3. <What would make this story more convincing?>
67
+ ```
68
+
69
+ ## Human Interaction Rules
70
+
71
+ - Present the narrative and ask for PM confirmation.
72
+ - Present the narrative for PM feedback; incorporate any revisions, then proceed to the final report.
73
+ - If the PM challenges a sub-thesis, return to the evidence and revise.
74
+
75
+ ## Exit Criteria
76
+
77
+ - `narrative.md` has a reviewed core thesis and evidence-backed sub-theses (revisions incorporated if any).