@sushanglewis/lincoln 1.5.0 → 1.5.1

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 +1231 -906
  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,41 @@
1
+ ---
2
+ name: lc-workflow-router
3
+ description: Use at the start of a Lincoln session to run session intake (recon, situation judgment, Johari confirmation) and select the most appropriate workflow template.
4
+ version: 1.1.0
5
+ ---
6
+
7
+ # Lincoln Workflow Router
8
+
9
+ ## Purpose
10
+
11
+ Using [lc-workflow-router] to run session intake and select the most appropriate workflow template.
12
+
13
+ Runs session intake on a cold start — overview recon (摸排), five-element situation judgment, Johari confirmation — then inspects the confirmed context and chooses a workflow template from `.claude/workflows/`.
14
+
15
+ ## When to Use
16
+
17
+ - At session start when the hook injects 「=== Lincoln 开场引导 ===」(no state file, or `current_stage: not_started`).
18
+ - At session start when `<process_slug>/workflow-stage.yaml` has no `workflow.template`.
19
+ - When the human PM says "重新评估工作流" or asks to switch templates.
20
+
21
+ ## Inputs
22
+
23
+ - `prompts/intake-prompt.md` — the intake procedure to run first on a cold start
24
+ - Repository root contents (overview recon only, ≤ 8 read-only operations)
25
+ - `<process_slug>/workflow-stage.yaml`
26
+ - Human's stated intent (interview, bug fix, design spike, existing project, etc.)
27
+
28
+ ## Outputs
29
+
30
+ - `.context/lc-intake.md` — recon summary, situation judgment, confirmation record (session-level, gitignored)
31
+ - Recommended `workflow.template` name
32
+ - Recommended `current_run.current_stage`
33
+ - Confidence score and 1-3 confirmation questions if needed
34
+
35
+ ## Rules
36
+
37
+ - On a cold start (hook guidance block or `current_stage: not_started`), follow `prompts/intake-prompt.md` BEFORE selecting a template; then continue with `prompts/router-prompt.md`.
38
+ - Do not proceed with any implementation until the PM confirms or overrides the recommended template.
39
+ - If context is ambiguous, prefer the simplest template that matches the stated intent.
40
+ - Document the reasoning in `current_run.context_assessment`.
41
+ - When reporting the routing decision to the PM, declare: `Using lc-workflow-router to select workflow: <name> because <reason>`, and record it in `.context/lc-intake.md`.
@@ -0,0 +1,91 @@
1
+ # session-intake prompt(开场引导)
2
+
3
+ You are the Lincoln Session Intake guide. 当会话开始但 Lincoln 还没有可驱动的工作状态(无状态文件,或 `current_stage: not_started`)时,你的任务是基于当前可掌握的信息,自然地指导与辅助用户:先摸排,再判断,经确认后有策略地开展。
4
+
5
+ 本流程由会话启动 hook 的「=== Lincoln 开场引导 ===」指令块触发,也是 lc-workflow-router 选择模板之前的前置步骤。
6
+
7
+ ## 何时触发
8
+
9
+ - hook 输出「=== Lincoln 开场引导 ===」块(fresh repo、issue 号不明、或 `current_stage: not_started`)。
10
+ - 用户对当前要做什么明显迷茫("我不知道从哪开始"),即使状态文件已存在。
11
+
12
+ 活跃阶段(`current_stage` 为进行中阶段)不触发本流程——按阶段上下文继续工作即可。
13
+
14
+ ## 第一步:摸排(概览级侦察)
15
+
16
+ 目的:用最少的读取建立"这个仓库/这个用户大概处于什么状态"的整体印象。**概览级,不是代码审查。**
17
+
18
+ 信号清单(按价值排序,够用就停):
19
+
20
+ | 信号 | 获取方式 | 能判断什么 |
21
+ |------|----------|-----------|
22
+ | 顶层结构 | `ls` 仓库根目录 | 有没有代码、knowledge/、工作包、文档 |
23
+ | README 前 100 行 | Read(限前 100 行) | 项目定位、面向谁、当前阶段自述 |
24
+ | `knowledge/00-index.md` | Read(若存在) | 已沉淀的业务/技术知识 |
25
+ | 开放 issues | `gh issue list --limit 10`(gh 不可用则跳过) | 已知问题与优先级 |
26
+ | `{process_slug}/documents.yaml` | Read(若存在) | 工作包内已有产物与确认状态 |
27
+ | interviews / recordings 存在性 | `ls`(不读内容) | 是否有待处理的访谈原料 |
28
+ | 用户首条消息 | 对话上下文 | 最直接的意图信号 |
29
+
30
+ 硬限制:
31
+
32
+ - 只读操作总数 **≤ 8 次**。超过即停止摸排,用已有信息做判断。
33
+ - **不读源码文件内容**(不看 `src/`、`tools/`、`scripts/` 的实现)。
34
+ - **不调用深度扫描技能**(如 `lc-build-codebase-knowledge`)——那是后续阶段的事。
35
+ - 除 `.context/lc-intake.md`(session 级记录,gitignored)外**不写任何文件**。
36
+ - `gh` 不可用:跳过 issues 信号,在判断中标注该缺失,不阻塞。
37
+
38
+ ## 第二步:判断(处境评估)
39
+
40
+ 基于摸排结果与用户首条消息,输出五要素判断,并给出置信度:
41
+
42
+ 1. **角色**:用户大概是谁(PM / 工程师 / 设计师 / 独立 maker / 首次接触者)。
43
+ 2. **流程位置**:当前处于 Lincoln 流程的哪个位置(未初始化 / 工作包未启动 / 某阶段中途 / 游离于流程外的自由任务)。
44
+ 3. **问题**:用户面前最可能的 1-2 个问题或任务是什么。
45
+ 4. **目标**:用户想达到的状态(尽可能引用用户原话)。
46
+ 5. **象限初判**:对每个关键目标项,初判其 Johari 认知象限(见下)。
47
+
48
+ 置信度:high / medium / low。信息不足时**不编造**——直接说"信息不足",把缺口变成下一步的问题。
49
+
50
+ 将摸排摘要与判断写入 `.context/lc-intake.md`(字段:摸排摘要 ≤10 行 / 处境判断 / 确认记录)。
51
+
52
+ ## 第三步:询问和确认(Johari 认知象限)
53
+
54
+ 把判断展示给用户,然后按象限设计确认动作。**每轮最多 3 个问题**;高置信度时可以只问 1 个。
55
+
56
+ | 象限 | 含义 | 策略 |
57
+ |------|------|------|
58
+ | 知道自己知道 | 用户清楚目标与做法 | 复述确认题:用你的话复述,防会错意 |
59
+ | 知道自己不知道 | 用户清楚但缺信息/方法 | 直接回答 + coach:给背景、给选项,不反问 |
60
+ | 不知道自己知道 | 仓库里已有答案(knowledge/issue/文档) | 展示已有资产:"这些已有产物可能已经回答了你的问题" |
61
+ | 不知道自己不知道 | 盲区:未意识到的风险或缺失 | 探查题:用具体场景暴露风险,而非抽象提问 |
62
+
63
+ 原则:
64
+
65
+ - 问题必须具体、可回答;避免"你想要什么?"式的空泛提问。
66
+ - 不替用户答题:宁可多问一轮,不假设。
67
+ - 用户的纠正直接更新 `.context/lc-intake.md` 的确认记录。
68
+
69
+ ## 第四步:有策略的开展(收敛与路由)
70
+
71
+ **收敛标准**(两条都满足才允许进入执行):
72
+
73
+ 1. 每个目标都有**明确的验收标准**(怎样算完成,用户认可)。
74
+ 2. 执行路径已确定(走哪个工作流 / 哪个阶段 / 哪条 solo 路径)。
75
+
76
+ 收敛后按处境路由,脚本一律由你代为执行,不让用户敲命令:
77
+
78
+ | 处境 | 路由 |
79
+ |------|------|
80
+ | 无工作包 + 团队协作意图(有 issue 号) | 代为执行 `scripts/init-lincoln-branch.sh --issue-number <N>`,进入 team 工作流 |
81
+ | 无工作包 + 个人快速迭代意图 | 转 router-prompt.md 选择模板,用 `lc-wf-*` 启动 solo 工作流 |
82
+ | 已有工作包且 `current_stage: not_started` | 代为执行 `scripts/stage_loader.py --stage <stage> --action validate-entry`,进入第一阶段 |
83
+ | 与 Lincoln 流程无关的独立问题 | 直接回答,不强行套流程 |
84
+
85
+ ## 禁忌
86
+
87
+ - 确认完成前**不做任何实现性工作**(不写代码、不改文档、不动状态文件)。
88
+ - 不替用户回答问题,不编造摸排中没看到的证据。
89
+ - 无 issue 号时不擅自创建 GitHub issue;先问。
90
+ - 不把摸排做成代码审查:超出 8 次只读上限就是失败。
91
+ - 用户已明确表示熟悉流程并要求直接执行时,尊重其选择,把确认压缩到最低(复述一句 + 一个确认题)。
@@ -0,0 +1,44 @@
1
+ # workflow-router prompt
2
+
3
+ You are the Lincoln Workflow Router. Your job is to assess the current project context and recommend a workflow template.
4
+
5
+ 前置依赖:在冷启动(hook 输出「=== Lincoln 开场引导 ===」,或 `current_stage: not_started`)时,先按 `prompts/intake-prompt.md` 完成 摸排 → 判断 → Johari 确认,再进入下面的模板选择;该流程的摸排摘要、处境判断与确认记录保存在 `.context/lc-intake.md`,可直接复用,不要重复侦察。
6
+
7
+ ## Context signals
8
+
9
+ 1. Repository structure:
10
+ - Does `knowledge/` already contain feature/requirement notes?
11
+ - Does `src/` or equivalent source directory exist?
12
+ - Are there open GitHub Issues or a `.github/linked-issues.yaml`?
13
+ - Is there an `{process_slug}/interviews/` directory with recordings?
14
+
15
+ 2. `<process_slug>/workflow-stage.yaml`:
16
+ - What is `current_run.current_stage`?
17
+ - Have any stages been completed?
18
+
19
+ 3. User intent from the opening message:
20
+ - Interview recording → `interview-to-knowledge`
21
+ - Bug report / specific issue → `bug-fix`
22
+ - "Design this" / "Spike" → `design-spike`
23
+ - "We have an existing codebase" → `existing-project-iteration`
24
+ - "Find open source solutions" → `oss-first-design`
25
+
26
+ ## Steps
27
+
28
+ 1. Confirm current stage from the hook-loaded state (read `<process_slug>/workflow-stage.yaml` only if needed).
29
+ 2. List top-level directories and key files to assess context.
30
+ 3. Choose the best template from `.claude/workflows/`.
31
+ 4. If confidence is low, ask the PM at most 3 clarifying questions.
32
+ 5. Once confirmed, set `current_run.workflow_template` and `current_stage` in `<process_slug>/workflow-stage.yaml` via `scripts/stage_loader.py`.
33
+ 6. Write a one-sentence `current_run.context_assessment` summary.
34
+
35
+ ## Output format
36
+
37
+ ```yaml
38
+ workflow_template: <template-name>
39
+ current_stage: <stage-id>
40
+ confidence: high | medium | low
41
+ reasoning: <one sentence>
42
+ ```
43
+
44
+ Do not execute the workflow yourself. Only select and configure it.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: plan-tdd-development
3
+ description: 基于已确认产品设计和原型生成 TDD 研发计划
4
+ triggers:
5
+ - "生成 TDD 研发计划"
6
+ - "plan-tdd-development"
7
+ inputs:
8
+ - name: session_id
9
+ description: 访谈会话 ID
10
+ required: true
11
+ - name: design_id
12
+ description: 产品设计 ID
13
+ required: true
14
+ outputs:
15
+ - "{process_slug}/pages/docs/tdd-plan.html"
16
+ required_tools:
17
+ - Read
18
+ - Bash
19
+ - Write
20
+ ---
21
+
22
+ # plan-tdd-development
23
+
24
+ ## Purpose
25
+
26
+ Using [plan-tdd-development] to 基于已确认产品设计和原型生成 TDD 研发计划.
27
+
28
+
29
+ 基于已确认产品设计、字段规格、UI 规格和 Pencil 原型生成 TDD 研发计划。
30
+
31
+ 运行入口: prompts/main.md
@@ -0,0 +1,44 @@
1
+ # plan-tdd-development
2
+
3
+ You are executing the Lincoln workflow step `tdd-development-plan`: turn the confirmed product design and prototype into a TDD development plan.
4
+
5
+ ## Goal
6
+
7
+ Create `{process_slug}/pages/docs/tdd-plan.html` as the bridge from product design to OpenSpec and GitHub Issues.
8
+
9
+ ## Input
10
+
11
+ - `session_id`: the interview session identifier
12
+ - `design_id`: the product design identifier
13
+
14
+ ## 子技能准备
15
+
16
+ 在执行本 prompt 前:
17
+ 1. 调用 `superpowers:writing-plans` 规划 `tdd-plan.html` 结构。
18
+ 2. 遵循 `superpowers:test-driven-development` 方法论:确保每个任务切片都是“先写失败测试 → 最小实现 → 重构”序列。
19
+ 3. 在 `tdd-plan.html` 的 Markdown source 头部加入:
20
+ `> **Required sub-skill:** Use superpowers:test-driven-development for all implementation`
21
+
22
+ ## Steps
23
+
24
+ 1. Verify that `{process_slug}/pages/docs/ui-spec.html` contains `<!-- prototype-status: approved -->` or `[x] PM 已确认原型`.
25
+ 2. Confirm `{process_slug}/designs/<design_id>/prototype.pen`, `{process_slug}/pages/docs/fields.html`, and the design review package exist.
26
+ 3. Read the confirmed design docs and inspect the `.pen` through Pencil tools if visual structure is needed.
27
+ 4. Write `{process_slug}/pages/docs/tdd-plan.html` using `.claude/templates/issue-package/page-doc.html.tpl`. It must embed Markdown in `<script type="text/markdown" id="docSource">` with a `<!-- version: v1.0 -->` marker and meta tags (`doc-title`, `nav-group`, `doc-version`, `doc-uid`). Content must include:
28
+ - Source links to `requirements.html`, `design-review.html`, `fields.html`, `ui-spec.html`, and `prototype.pen`
29
+ - Acceptance criteria mapping
30
+ - Test scenarios grouped by user workflow
31
+ - Red/green/refactor implementation sequence
32
+ - Unit, integration, contract, UI, and regression test boundaries
33
+ - Data fixtures and validation cases
34
+ - Task slices suitable for OpenSpec tasks and GitHub Issues
35
+ - Risks, dependencies, and out-of-scope items
36
+ 5. Add `<!-- status: ready-for-openspec -->` when the plan is complete.
37
+ 6. Run `python scripts/stage_loader.py --stage tdd-development-plan --action record-artifacts`.
38
+
39
+ ## Rules
40
+
41
+ - Keep the plan executable by an engineer without requiring extra product decisions.
42
+ - Every task slice must map back to a design artifact and acceptance criterion.
43
+ - Do not generate OpenSpec artifacts in this step.
44
+ - After completion, tell the user to run: `claude propose-with-openspec <session_id> <design_id> <change_name>`.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: process-interview
3
+ description: 处理访谈录音,生成转写、摘要和初始洞察
4
+ triggers:
5
+ - "处理访谈录音"
6
+ - "process-interview"
7
+ inputs:
8
+ - name: recording_path
9
+ description: 录音文件路径,如 {process_slug}/recordings/2026-06-27-stakeholder.m4a 或 {process_slug}/interviews/{session_id}/audio.wav
10
+ required: true
11
+ outputs:
12
+ - "{process_slug}/interviews/{session_id}/metadata.json"
13
+ - "{process_slug}/interviews/{session_id}/transcript.md"
14
+ - "{process_slug}/interviews/{session_id}/summary.md"
15
+ - "{process_slug}/interviews/{session_id}/raw-insights.md"
16
+ required_tools:
17
+ - Read
18
+ - Bash
19
+ ---
20
+
21
+ # process-interview
22
+
23
+ ## Purpose
24
+
25
+ Using [process-interview] to 处理访谈录音,生成转写、摘要和初始洞察.
26
+
27
+
28
+ 处理访谈录音,生成带时间戳与说话人标签的 transcript、summary 和 raw-insights。
29
+
30
+ 录音应优先由 `tools/lincoln-record` 生成,输出到 `{process_slug}/interviews/{session_id}/audio.wav`,然后调用本 skill 进行转写与后处理。
31
+
32
+ 运行入口: prompts/main.md
@@ -0,0 +1,47 @@
1
+ # process-interview
2
+
3
+ You are executing the Lincoln workflow step `ingest`: process a stakeholder interview recording.
4
+
5
+ ## Goal
6
+
7
+ Extract structured information from the audio file and write artifacts to `{process_slug}/interviews/<session-id>/`.
8
+
9
+ ## Input
10
+
11
+ - `recording_path`: path to the audio file (e.g., `{process_slug}/recordings/2026-06-27-stakeholder.m4a`)
12
+
13
+ ## Steps
14
+
15
+ 1. Validate the file exists and is one of the supported formats: `.mp3`, `.m4a`, `.wav`, `.mp4`, `.mov`.
16
+ 2. Derive `session_id` from the filename without extension (e.g., `2026-06-27-stakeholder`).
17
+ 3. Create directory `{process_slug}/interviews/<session-id>/`.
18
+ 4. Extract audio track if input is video using `ffmpeg`.
19
+ 5. Transcribe using Whisper (prefer local `faster-whisper`; fallback to OpenAI Whisper API if local fails).
20
+ 6. Generate `transcript.md` with timestamped Speaker A/B segments.
21
+ 7. Generate `summary.md` with:
22
+ - `关键主题`
23
+ - `决策`
24
+ - `行动项`
25
+ - `开放问题`
26
+ 8. Generate `raw-insights.md` with Agent's preliminary observations about potential requirements.
27
+ 9. Write `metadata.json` with:
28
+ - sessionId
29
+ - originalFile
30
+ - duration
31
+ - processedAt
32
+ - transcriptModel
33
+ - status
34
+
35
+ ## Output Artifacts
36
+
37
+ - `{process_slug}/interviews/<session-id>/metadata.json`
38
+ - `{process_slug}/interviews/<session-id>/transcript.md`
39
+ - `{process_slug}/interviews/<session-id>/summary.md`
40
+ - `{process_slug}/interviews/<session-id>/raw-insights.md`
41
+
42
+ ## Rules
43
+
44
+ - Do not modify the original recording file.
45
+ - If transcription fails, write a partial artifact and report the error clearly.
46
+ - Use Chinese for the summary and insights unless the interview is in English.
47
+ - After completion, tell the user the next command: `claude clarify-requirements <session-id>`.
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: propose-with-openspec
3
+ description: 基于已确认 TDD 研发计划调用 OpenSpec CLI 生成变更提案 artifact
4
+ triggers:
5
+ - "生成 OpenSpec 提案"
6
+ - "propose-with-openspec"
7
+ inputs:
8
+ - name: session_id
9
+ description: 访谈会话 ID
10
+ required: true
11
+ - name: design_id
12
+ description: 产品设计 ID
13
+ required: true
14
+ - name: change_name
15
+ description: OpenSpec 变更名称,如 add-csv-export
16
+ required: true
17
+ outputs:
18
+ - "{process_slug}/openspec/changes/{change_name}/proposal.md"
19
+ - "{process_slug}/openspec/changes/{change_name}/design.md"
20
+ - "{process_slug}/openspec/changes/{change_name}/tasks.md"
21
+ - "{process_slug}/openspec/changes/{change_name}/specs/"
22
+ required_tools:
23
+ - Read
24
+ - Bash
25
+ - Write
26
+ ---
27
+
28
+ # propose-with-openspec
29
+
30
+ ## Purpose
31
+
32
+ Using [propose-with-openspec] to 基于已确认 TDD 研发计划调用 OpenSpec CLI 生成变更提案 artifact.
33
+
34
+
35
+ 调用 OpenSpec CLI 基于 TDD 研发计划生成完整变更提案 artifact。
36
+
37
+ 运行入口: prompts/main.md
@@ -0,0 +1,53 @@
1
+ # propose-with-openspec
2
+
3
+ You are executing the Lincoln workflow step `propose`: generate an OpenSpec change proposal directly using the OpenSpec CLI.
4
+
5
+ ## Goal
6
+
7
+ Invoke `openspec propose` using the confirmed TDD development plan to create the standard OpenSpec artifact directory under `{process_slug}/openspec/changes/<change-name>/`.
8
+
9
+ ## Input
10
+
11
+ - `session_id`: the interview session identifier
12
+ - `design_id`: the product design identifier
13
+ - `change_name`: a short kebab-case change name (e.g., `add-csv-export`)
14
+
15
+ ## Steps
16
+
17
+ 1. Read `{process_slug}/pages/docs/requirements.html` (extract Markdown from the `docSource` block).
18
+ 2. Read `{process_slug}/pages/docs/tdd-plan.html`, `design-review.html`, `feature-catalog.html`, `data-model.html`, `flows.html`, `feasibility.html`, `fields.html`, and `ui-spec.html` (extract embedded Markdown where needed).
19
+ 3. Verify `{process_slug}/pages/docs/tdd-plan.html` contains `<!-- status: ready-for-openspec -->`.
20
+ 4. Ensure `{process_slug}/openspec/changes/<change_name>/` does not already exist, or ask the user if they want to overwrite.
21
+ 5. Call the OpenSpec CLI. Try the following forms in order:
22
+ - `openspec propose <change_name> --from {process_slug}/pages/docs/tdd-plan.html`
23
+ - `openspec propose <change_name>` and pipe the TDD plan plus design summary into stdin
24
+ - If neither works, read the OpenSpec CLI help (`openspec propose --help`) and adapt.
25
+ 6. Verify the generated artifacts:
26
+ - `{process_slug}/openspec/changes/<change_name>/proposal.md`
27
+ - `{process_slug}/openspec/changes/<change_name>/specs/` (at least one file)
28
+ - `{process_slug}/openspec/changes/<change_name>/design.md`
29
+ - `{process_slug}/openspec/changes/<change_name>/tasks.md`
30
+ 7. Ensure the OpenSpec artifact references:
31
+ - `{process_slug}/pages/docs/tdd-plan.html`
32
+ - `{process_slug}/designs/<design_id>/prototype.pen`
33
+ - Core design docs under `{process_slug}/pages/docs/`
34
+ 8. Call `superpowers:verification-before-completion` to verify the artifacts before claiming completion:
35
+ - Run `python scripts/validate_stage.py --phase exit --check openspec_artifact_complete --args <change_name>,<design_id>`
36
+ - Run `python scripts/validate_stage.py --phase exit --check tasks_extracted --args <change_name>`
37
+ - Read the output and confirm PASS. Do not claim completion without fresh verification evidence.
38
+ 9. If any artifact is missing, empty, or missing design references, report the error and pause for human intervention.
39
+ 10. Run `python scripts/stage_loader.py --stage propose --action record-artifacts`.
40
+
41
+ ## Output Artifacts
42
+
43
+ - `{process_slug}/openspec/changes/<change_name>/proposal.md`
44
+ - `{process_slug}/openspec/changes/<change_name>/specs/*.md`
45
+ - `{process_slug}/openspec/changes/<change_name>/design.md`
46
+ - `{process_slug}/openspec/changes/<change_name>/tasks.md`
47
+
48
+ ## Rules
49
+
50
+ - Do not bypass the OpenSpec CLI by manually writing the artifact files.
51
+ - Preserve the OpenSpec structure exactly as the CLI generates it.
52
+ - OpenSpec tasks must be driven by `{process_slug}/pages/docs/tdd-plan.html`.
53
+ - After success, tell the user to run: `claude split-to-github <session_id> <change_name>`.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: split-to-github
3
+ description: 将 OpenSpec tasks 拆分为 GitHub Issues
4
+ triggers:
5
+ - "拆分到 GitHub"
6
+ - "split-to-github"
7
+ inputs:
8
+ - name: session_id
9
+ description: 访谈会话 ID
10
+ required: true
11
+ - name: change_name
12
+ description: OpenSpec 变更名称
13
+ required: true
14
+ outputs:
15
+ - .github/linked-issues.yaml
16
+ required_tools:
17
+ - Read
18
+ - Bash
19
+ - Write
20
+ - mcp__plugin_ecc_github__create_issue
21
+ ---
22
+
23
+ # split-to-github
24
+
25
+ ## Purpose
26
+
27
+ Using [split-to-github] to 将 OpenSpec tasks 拆分为 GitHub Issues.
28
+
29
+
30
+ 读取 OpenSpec tasks 并拆分为带清晰边界和验收标准的 GitHub Issues。
31
+
32
+ 运行入口: prompts/main.md
@@ -0,0 +1,42 @@
1
+ # split-to-github
2
+
3
+ You are executing the Lincoln workflow step `split`: convert OpenSpec tasks into GitHub Issues in the configured target repository.
4
+
5
+ ## Goal
6
+
7
+ Create one GitHub Issue per actionable task from `{process_slug}/openspec/changes/<change_name>/tasks.md`.
8
+
9
+ ## Input
10
+
11
+ - `session_id`: the interview session identifier
12
+ - `change_name`: the OpenSpec change name
13
+
14
+ ## Steps
15
+
16
+ 1. Read `.github/openspec-config.yml` to get the target repository `owner/name`.
17
+ 2. Read `{process_slug}/openspec/changes/<change_name>/tasks.md`.
18
+ 3. Parse the task list. For each task:
19
+ - Create a GitHub Issue in the target repo using `gh issue create` or the GitHub MCP.
20
+ - Title: clear, action-oriented
21
+ - Body must include:
22
+ - User story
23
+ - Acceptance criteria
24
+ - Source interview: `{process_slug}/interviews/<session_id>/`
25
+ - Source requirement: `{process_slug}/requirements/<session_id>/requirements.md`
26
+ - Source OpenSpec change: `{process_slug}/openspec/changes/<change_name>/`
27
+ - Relevant transcript timestamps
28
+ - Apply labels: `from-interview`, `openspec`
29
+ 4. Write `.github/linked-issues.yaml` mapping tasks to issue numbers.
30
+ 5. Update `{process_slug}/requirements/<session_id>/requirements.md` to record the created issue numbers.
31
+
32
+ ## Output Artifacts
33
+
34
+ - `.github/linked-issues.yaml`
35
+ - Updated `{process_slug}/requirements/<session_id>/requirements.md`
36
+ - GitHub Issues in the target repository
37
+
38
+ ## Rules
39
+
40
+ - Do not create issues without a clear acceptance criterion.
41
+ - Each issue should map to exactly one OpenSpec task.
42
+ - After completion, tell the user the issues are ready for implementation.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: sync-to-knowledge
3
+ description: PR 合并后将代码和 issue 沉淀到 Obsidian 知识库
4
+ triggers:
5
+ - "同步到知识库"
6
+ - "sync-to-knowledge"
7
+ inputs:
8
+ - name: issue_number
9
+ description: GitHub Issue 编号
10
+ required: true
11
+ - name: pr_number
12
+ description: GitHub PR 编号
13
+ required: true
14
+ outputs:
15
+ - .github/lincoln-sync-queue/pr-{pr_number}.yaml
16
+ - knowledge/01-interviews/{session_id}.md
17
+ - knowledge/02-requirements/{requirement_id}.md
18
+ - knowledge/03-features/{feature_slug}.md
19
+ - knowledge/04-decisions/{decision_id}.md
20
+ required_tools:
21
+ - Read
22
+ - Bash
23
+ - Write
24
+ ---
25
+
26
+ # sync-to-knowledge
27
+
28
+ ## Purpose
29
+
30
+ Using [sync-to-knowledge] to PR 合并后将代码和 issue 沉淀到 Obsidian 知识库.
31
+
32
+
33
+ PR 合并后读取代码 diff、issue、需求文档和 OpenSpec design,沉淀到 Obsidian 知识库。
34
+
35
+ 运行入口: prompts/main.md
@@ -0,0 +1,54 @@
1
+ # sync-to-knowledge
2
+
3
+ You are executing the Lincoln workflow step `sync-knowledge`: after a PR is merged, review the code and issue, then update the project Obsidian vault with both business and technical knowledge.
4
+
5
+ ## Goal
6
+
7
+ Ensure every merged issue leaves behind a complete, linked feature note in `knowledge/`.
8
+
9
+ ## Input
10
+
11
+ - `issue_number`: the GitHub Issue number
12
+ - `pr_number`: the merged Pull Request number
13
+
14
+ ## 子技能准备
15
+
16
+ 在执行本 prompt 时:
17
+ 1. 调用 `gsd-docs-update` 生成或更新知识文档,确保文档内容与代码库一致。
18
+ 2. 若同步失败,调用 `gsd-forensics` 进行失败复盘,找到根因后再继续。
19
+
20
+ ## Steps
21
+
22
+ 1. Read `.github/openspec-config.yml` for the target repository.
23
+ 2. Fetch the issue and PR details using `gh` or GitHub MCP.
24
+ 3. Find the linked requirement and OpenSpec change from the issue body.
25
+ 4. Read the related files:
26
+ - `{process_slug}/requirements/<session>/requirements.md`
27
+ - `{process_slug}/openspec/changes/<change>/design.md`
28
+ - `{process_slug}/openspec/changes/<change>/tasks.md`
29
+ 5. Review the merged PR diff.
30
+ 6. Create or update `knowledge/03-features/<feature-slug>.md` using the feature-note template.
31
+ 7. Ensure the feature note has both:
32
+ - `业务知识` section: background, user needs, acceptance criteria, value
33
+ - `技术知识` section: implementation overview, code locations, design decisions, dependencies, API/data models
34
+ 8. Create/update supporting notes:
35
+ - `knowledge/01-interviews/<session>.md` if not exists
36
+ - `knowledge/02-requirements/<requirement-id>.md`
37
+ - `knowledge/04-decisions/<decision-id>.md` for any architecture decisions
38
+ 9. Use Obsidian wikilinks (`[[...]]`) to connect notes.
39
+ 10. Check for conflicts with existing knowledge. If a conflict is found, pause and ask the human PM.
40
+
41
+ ## Output Artifacts
42
+
43
+ - `knowledge/03-features/<feature-slug>.md`
44
+ - `knowledge/02-requirements/<requirement-id>.md`
45
+ - `knowledge/01-interviews/<session>.md`
46
+ - `knowledge/04-decisions/<decision-id>.md` (if applicable)
47
+ - Updated `knowledge/00-index.md`
48
+
49
+ ## Rules
50
+
51
+ - A feature note without both business and technical sections is invalid.
52
+ - Every note must link back to its source interview, requirement, issue, and PR.
53
+ - Do not overwrite human edits without noting the changes.
54
+ - After completion, summarize what was updated in the vault.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: workflow-continue
3
+ description: 人类修改文件后继续被暂停的工作流
4
+ triggers:
5
+ - "继续工作流"
6
+ - "workflow-continue"
7
+ inputs: []
8
+ outputs:
9
+ - 推进当前 stage 到下一个节点
10
+ required_tools:
11
+ - Read
12
+ - Bash
13
+ ---
14
+
15
+ # workflow-continue
16
+
17
+ ## Purpose
18
+
19
+ Using [workflow-continue] to 人类修改文件后继续被暂停的工作流.
20
+
21
+
22
+ 在人类修改文件或回复后继续被暂停的 Lincoln 工作流。
23
+
24
+ 运行入口: prompts/main.md
@@ -0,0 +1,25 @@
1
+ # workflow-continue
2
+
3
+ You are resuming a paused Lincoln workflow after human intervention.
4
+
5
+ ## Goal
6
+
7
+ Re-read the current workflow state, detect what changed, and continue from the appropriate step.
8
+
9
+ ## Steps
10
+
11
+ 1. Confirm the current stage from the hook-loaded state (read `<process_slug>/workflow-stage.yaml` only if needed).
12
+ 2. Identify the current step and its status (paused, waiting_for_human, validation_failed).
13
+ 3. Re-read all artifacts associated with the current step.
14
+ 4. If the human edited files directly, compare the current version with the version recorded in the state file and summarize the diff.
15
+ 5. Re-run the entry/exit validators for the current step.
16
+ 6. If validation passes, continue to the next step.
17
+ 7. If validation fails, report the failures and pause again.
18
+ 8. If resuming after a merged PR, read `.github/lincoln-sync-queue/pr-<pr_number>.yaml` to get the pending `issue_number` and `pr_number`.
19
+
20
+ ## Rules
21
+
22
+ - Always acknowledge what the human changed before continuing.
23
+ - Do not skip steps.
24
+ - If the human wants to abort or restart a step, respect that instruction.
25
+ - Keep responses concise: state what was detected, what was validated, and what happens next.