productfoo 0.0.0-stage → 1.0.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 (498) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +338 -2
  3. package/bin/foo +3 -0
  4. package/bin/foo.mjs +42 -0
  5. package/commands/bug.md +31 -0
  6. package/commands/discovery.md +28 -0
  7. package/commands/ideate.md +27 -0
  8. package/commands/init.md +28 -0
  9. package/commands/pitch.md +27 -0
  10. package/commands/preview.md +25 -0
  11. package/commands/research.md +31 -0
  12. package/commands/roast.md +27 -0
  13. package/commands/spec.md +30 -0
  14. package/config/pricing.yaml +198 -0
  15. package/config/routing-policy.yaml +171 -0
  16. package/dist-public/src/activeModel.d.ts +83 -0
  17. package/dist-public/src/activeModel.js +331 -0
  18. package/dist-public/src/agentAdapters.d.ts +122 -0
  19. package/dist-public/src/agentAdapters.js +178 -0
  20. package/dist-public/src/agentState.d.ts +43 -0
  21. package/dist-public/src/agentState.js +177 -0
  22. package/dist-public/src/bugCapsule.d.ts +94 -0
  23. package/dist-public/src/bugCapsule.js +227 -0
  24. package/dist-public/src/bugCapture.d.ts +26 -0
  25. package/dist-public/src/bugCapture.js +251 -0
  26. package/dist-public/src/bugOwnerLog.d.ts +93 -0
  27. package/dist-public/src/bugOwnerLog.js +304 -0
  28. package/dist-public/src/bugReportStore.d.ts +48 -0
  29. package/dist-public/src/bugReportStore.js +860 -0
  30. package/dist-public/src/bugSpecContext.d.ts +7 -0
  31. package/dist-public/src/bugSpecContext.js +129 -0
  32. package/dist-public/src/channelFreshness.d.ts +25 -0
  33. package/dist-public/src/channelFreshness.js +194 -0
  34. package/dist-public/src/cli.d.ts +30 -0
  35. package/dist-public/src/cli.js +1667 -0
  36. package/dist-public/src/cliArgs.d.ts +7 -0
  37. package/dist-public/src/cliArgs.js +44 -0
  38. package/dist-public/src/codeCatalog.d.ts +41 -0
  39. package/dist-public/src/codeCatalog.js +197 -0
  40. package/dist-public/src/commandContract.d.ts +84 -0
  41. package/dist-public/src/commandContract.js +390 -0
  42. package/dist-public/src/commandUsage.d.ts +3 -0
  43. package/dist-public/src/commandUsage.js +30 -0
  44. package/dist-public/src/commands/agent.d.ts +60 -0
  45. package/dist-public/src/commands/agent.js +1353 -0
  46. package/dist-public/src/commands/asp.d.ts +8 -0
  47. package/dist-public/src/commands/asp.js +669 -0
  48. package/dist-public/src/commands/evalCmd.d.ts +4 -0
  49. package/dist-public/src/commands/evalCmd.js +405 -0
  50. package/dist-public/src/commands/login.d.ts +25 -0
  51. package/dist-public/src/commands/login.js +94 -0
  52. package/dist-public/src/commands/loop.d.ts +16 -0
  53. package/dist-public/src/commands/loop.js +619 -0
  54. package/dist-public/src/commands/reconcile.d.ts +41 -0
  55. package/dist-public/src/commands/reconcile.js +292 -0
  56. package/dist-public/src/commands/runtime.d.ts +1 -0
  57. package/dist-public/src/commands/runtime.js +36 -0
  58. package/dist-public/src/commands/scanRedact.d.ts +8 -0
  59. package/dist-public/src/commands/scanRedact.js +266 -0
  60. package/dist-public/src/commands/setup.d.ts +28 -0
  61. package/dist-public/src/commands/setup.js +398 -0
  62. package/dist-public/src/commands/shared.d.ts +17 -0
  63. package/dist-public/src/commands/shared.js +147 -0
  64. package/dist-public/src/commands/source.d.ts +1 -0
  65. package/dist-public/src/commands/source.js +134 -0
  66. package/dist-public/src/commands/specCmd.d.ts +24 -0
  67. package/dist-public/src/commands/specCmd.js +794 -0
  68. package/dist-public/src/commands/update.d.ts +61 -0
  69. package/dist-public/src/commands/update.js +244 -0
  70. package/dist-public/src/comprehensionSignal.d.ts +20 -0
  71. package/dist-public/src/comprehensionSignal.js +166 -0
  72. package/dist-public/src/conductor/diversity.d.ts +48 -0
  73. package/dist-public/src/conductor/diversity.js +423 -0
  74. package/dist-public/src/conductor/engine.d.ts +7 -0
  75. package/dist-public/src/conductor/engine.js +295 -0
  76. package/dist-public/src/conductor/families/ideate.d.ts +2 -0
  77. package/dist-public/src/conductor/families/ideate.js +255 -0
  78. package/dist-public/src/conductor/families/interview.d.ts +2 -0
  79. package/dist-public/src/conductor/families/interview.js +39 -0
  80. package/dist-public/src/conductor/families/specSwarm.d.ts +2 -0
  81. package/dist-public/src/conductor/families/specSwarm.js +146 -0
  82. package/dist-public/src/conductor/familyDelivery.d.ts +6 -0
  83. package/dist-public/src/conductor/familyDelivery.js +37 -0
  84. package/dist-public/src/conductor/familyPackArtifact.d.ts +4 -0
  85. package/dist-public/src/conductor/familyPackArtifact.js +260 -0
  86. package/dist-public/src/conductor/ideateDecision.d.ts +6 -0
  87. package/dist-public/src/conductor/ideateDecision.js +237 -0
  88. package/dist-public/src/conductor/pack.d.ts +26 -0
  89. package/dist-public/src/conductor/pack.js +75 -0
  90. package/dist-public/src/conductor/types.d.ts +111 -0
  91. package/dist-public/src/conductor/types.js +7 -0
  92. package/dist-public/src/configPath.d.ts +2 -0
  93. package/dist-public/src/configPath.js +7 -0
  94. package/dist-public/src/discoveryArtifacts.d.ts +54 -0
  95. package/dist-public/src/discoveryArtifacts.js +467 -0
  96. package/dist-public/src/discoveryCommand.d.ts +127 -0
  97. package/dist-public/src/discoveryCommand.js +2148 -0
  98. package/dist-public/src/discoveryConnections.d.ts +339 -0
  99. package/dist-public/src/discoveryConnections.js +613 -0
  100. package/dist-public/src/discoveryDocs.d.ts +129 -0
  101. package/dist-public/src/discoveryDocs.js +577 -0
  102. package/dist-public/src/discoveryEvidence.d.ts +59 -0
  103. package/dist-public/src/discoveryEvidence.js +198 -0
  104. package/dist-public/src/discoveryFireflies.d.ts +25 -0
  105. package/dist-public/src/discoveryFireflies.js +551 -0
  106. package/dist-public/src/discoveryGmail.d.ts +12 -0
  107. package/dist-public/src/discoveryGmail.js +466 -0
  108. package/dist-public/src/discoveryGong.d.ts +12 -0
  109. package/dist-public/src/discoveryGong.js +491 -0
  110. package/dist-public/src/discoveryLearningRouting.d.ts +90 -0
  111. package/dist-public/src/discoveryLearningRouting.js +405 -0
  112. package/dist-public/src/discoveryMatching.d.ts +26 -0
  113. package/dist-public/src/discoveryMatching.js +73 -0
  114. package/dist-public/src/discoveryOutlook.d.ts +12 -0
  115. package/dist-public/src/discoveryOutlook.js +492 -0
  116. package/dist-public/src/discoveryProcess.d.ts +221 -0
  117. package/dist-public/src/discoveryProcess.js +703 -0
  118. package/dist-public/src/discoveryProof.d.ts +143 -0
  119. package/dist-public/src/discoveryProof.js +529 -0
  120. package/dist-public/src/discoveryProviders.d.ts +152 -0
  121. package/dist-public/src/discoveryProviders.js +756 -0
  122. package/dist-public/src/discoveryReadiness.d.ts +219 -0
  123. package/dist-public/src/discoveryReadiness.js +672 -0
  124. package/dist-public/src/discoveryReconcile.d.ts +57 -0
  125. package/dist-public/src/discoveryReconcile.js +424 -0
  126. package/dist-public/src/discoverySlack.d.ts +12 -0
  127. package/dist-public/src/discoverySlack.js +452 -0
  128. package/dist-public/src/discoverySources.d.ts +56 -0
  129. package/dist-public/src/discoverySources.js +322 -0
  130. package/dist-public/src/discoverySync.d.ts +52 -0
  131. package/dist-public/src/discoverySync.js +151 -0
  132. package/dist-public/src/discoverySynthesis.d.ts +57 -0
  133. package/dist-public/src/discoverySynthesis.js +215 -0
  134. package/dist-public/src/discoveryTeams.d.ts +12 -0
  135. package/dist-public/src/discoveryTeams.js +516 -0
  136. package/dist-public/src/discoveryZoom.d.ts +12 -0
  137. package/dist-public/src/discoveryZoom.js +523 -0
  138. package/dist-public/src/elicitationSurface.d.ts +13 -0
  139. package/dist-public/src/elicitationSurface.js +77 -0
  140. package/dist-public/src/errorReport.d.ts +99 -0
  141. package/dist-public/src/errorReport.js +443 -0
  142. package/dist-public/src/errorTaxonomy.d.ts +84 -0
  143. package/dist-public/src/errorTaxonomy.js +189 -0
  144. package/dist-public/src/evalCalibration.d.ts +82 -0
  145. package/dist-public/src/evalCalibration.js +169 -0
  146. package/dist-public/src/evalChecks.d.ts +21 -0
  147. package/dist-public/src/evalChecks.js +295 -0
  148. package/dist-public/src/evalCompile.d.ts +56 -0
  149. package/dist-public/src/evalCompile.js +58 -0
  150. package/dist-public/src/evalImprove.d.ts +60 -0
  151. package/dist-public/src/evalImprove.js +175 -0
  152. package/dist-public/src/evalJudge.d.ts +47 -0
  153. package/dist-public/src/evalJudge.js +143 -0
  154. package/dist-public/src/evalLabels.d.ts +100 -0
  155. package/dist-public/src/evalLabels.js +287 -0
  156. package/dist-public/src/evalRecord.d.ts +68 -0
  157. package/dist-public/src/evalRecord.js +165 -0
  158. package/dist-public/src/evalRoast.d.ts +88 -0
  159. package/dist-public/src/evalRoast.js +249 -0
  160. package/dist-public/src/evidenceIntake.d.ts +66 -0
  161. package/dist-public/src/evidenceIntake.js +356 -0
  162. package/dist-public/src/feedback.d.ts +78 -0
  163. package/dist-public/src/feedback.js +294 -0
  164. package/dist-public/src/firefliesClient.d.ts +106 -0
  165. package/dist-public/src/firefliesClient.js +258 -0
  166. package/dist-public/src/firstMoveTensions.d.ts +10 -0
  167. package/dist-public/src/firstMoveTensions.js +93 -0
  168. package/dist-public/src/gitRun.d.ts +21 -0
  169. package/dist-public/src/gitRun.js +50 -0
  170. package/dist-public/src/githubReconcile.d.ts +94 -0
  171. package/dist-public/src/githubReconcile.js +205 -0
  172. package/dist-public/src/gmailNango.d.ts +131 -0
  173. package/dist-public/src/gmailNango.js +329 -0
  174. package/dist-public/src/gongNango.d.ts +118 -0
  175. package/dist-public/src/gongNango.js +308 -0
  176. package/dist-public/src/grammarGate.d.ts +13 -0
  177. package/dist-public/src/grammarGate.js +72 -0
  178. package/dist-public/src/harnessGates.d.ts +65 -0
  179. package/dist-public/src/harnessGates.js +168 -0
  180. package/dist-public/src/humanSurfaceEval.d.ts +19 -0
  181. package/dist-public/src/humanSurfaceEval.js +156 -0
  182. package/dist-public/src/ideate.d.ts +43 -0
  183. package/dist-public/src/ideate.js +255 -0
  184. package/dist-public/src/ideateContext.d.ts +11 -0
  185. package/dist-public/src/ideateContext.js +83 -0
  186. package/dist-public/src/index.d.ts +2 -0
  187. package/dist-public/src/index.js +4 -0
  188. package/dist-public/src/initCommand.d.ts +25 -0
  189. package/dist-public/src/initCommand.js +558 -0
  190. package/dist-public/src/interviewGate.d.ts +25 -0
  191. package/dist-public/src/interviewGate.js +126 -0
  192. package/dist-public/src/jsonFile.d.ts +2 -0
  193. package/dist-public/src/jsonFile.js +22 -0
  194. package/dist-public/src/loopBudget.d.ts +182 -0
  195. package/dist-public/src/loopBudget.js +494 -0
  196. package/dist-public/src/loopContracts.d.ts +35 -0
  197. package/dist-public/src/loopContracts.js +364 -0
  198. package/dist-public/src/machineState.d.ts +1 -0
  199. package/dist-public/src/machineState.js +9 -0
  200. package/dist-public/src/notionNango.d.ts +93 -0
  201. package/dist-public/src/notionNango.js +279 -0
  202. package/dist-public/src/orchestrationResult.d.ts +11 -0
  203. package/dist-public/src/orchestrationResult.js +73 -0
  204. package/dist-public/src/outlookNango.d.ts +124 -0
  205. package/dist-public/src/outlookNango.js +327 -0
  206. package/dist-public/src/packetCorrections.d.ts +40 -0
  207. package/dist-public/src/packetCorrections.js +172 -0
  208. package/dist-public/src/packetGlossary.d.ts +6 -0
  209. package/dist-public/src/packetGlossary.js +42 -0
  210. package/dist-public/src/packetIndex.d.ts +54 -0
  211. package/dist-public/src/packetIndex.js +744 -0
  212. package/dist-public/src/packetIndexEntry.d.ts +3 -0
  213. package/dist-public/src/packetIndexEntry.js +128 -0
  214. package/dist-public/src/packetIndexServe.d.ts +13 -0
  215. package/dist-public/src/packetIndexServe.js +113 -0
  216. package/dist-public/src/packetIndexWorker.d.ts +7 -0
  217. package/dist-public/src/packetIndexWorker.js +45 -0
  218. package/dist-public/src/packetLifecycle.d.ts +30 -0
  219. package/dist-public/src/packetLifecycle.js +127 -0
  220. package/dist-public/src/packetReconcile.d.ts +73 -0
  221. package/dist-public/src/packetReconcile.js +386 -0
  222. package/dist-public/src/packetStatus.d.ts +125 -0
  223. package/dist-public/src/packetStatus.js +770 -0
  224. package/dist-public/src/packetValidation.d.ts +17 -0
  225. package/dist-public/src/packetValidation.js +333 -0
  226. package/dist-public/src/packetVerify.d.ts +73 -0
  227. package/dist-public/src/packetVerify.js +303 -0
  228. package/dist-public/src/packetWrite.d.ts +52 -0
  229. package/dist-public/src/packetWrite.js +448 -0
  230. package/dist-public/src/pitch.d.ts +38 -0
  231. package/dist-public/src/pitch.js +154 -0
  232. package/dist-public/src/processMemo.d.ts +8 -0
  233. package/dist-public/src/processMemo.js +23 -0
  234. package/dist-public/src/productDetect.d.ts +30 -0
  235. package/dist-public/src/productDetect.js +376 -0
  236. package/dist-public/src/profile.d.ts +62 -0
  237. package/dist-public/src/profile.js +334 -0
  238. package/dist-public/src/questionModel.d.ts +46 -0
  239. package/dist-public/src/questionModel.js +74 -0
  240. package/dist-public/src/questionText.d.ts +7 -0
  241. package/dist-public/src/questionText.js +38 -0
  242. package/dist-public/src/redactConfig.d.ts +2 -0
  243. package/dist-public/src/redactConfig.js +11 -0
  244. package/dist-public/src/redactEngine.d.ts +59 -0
  245. package/dist-public/src/redactEngine.js +509 -0
  246. package/dist-public/src/redactGate.d.ts +63 -0
  247. package/dist-public/src/redactGate.js +209 -0
  248. package/dist-public/src/repoRead.d.ts +29 -0
  249. package/dist-public/src/repoRead.js +160 -0
  250. package/dist-public/src/research.d.ts +242 -0
  251. package/dist-public/src/research.js +1314 -0
  252. package/dist-public/src/researchCompletion.d.ts +34 -0
  253. package/dist-public/src/researchCompletion.js +123 -0
  254. package/dist-public/src/researchExecution.d.ts +47 -0
  255. package/dist-public/src/researchExecution.js +309 -0
  256. package/dist-public/src/researchFormat.d.ts +21 -0
  257. package/dist-public/src/researchFormat.js +77 -0
  258. package/dist-public/src/researchGate.d.ts +86 -0
  259. package/dist-public/src/researchGate.js +1036 -0
  260. package/dist-public/src/researchReceipt.d.ts +76 -0
  261. package/dist-public/src/researchReceipt.js +148 -0
  262. package/dist-public/src/researchRender.d.ts +2 -0
  263. package/dist-public/src/researchRender.js +267 -0
  264. package/dist-public/src/researchSigningKey.d.ts +19 -0
  265. package/dist-public/src/researchSigningKey.js +95 -0
  266. package/dist-public/src/riskClassify.d.ts +42 -0
  267. package/dist-public/src/riskClassify.js +149 -0
  268. package/dist-public/src/routines.d.ts +42 -0
  269. package/dist-public/src/routines.js +269 -0
  270. package/dist-public/src/routingPolicy.d.ts +172 -0
  271. package/dist-public/src/routingPolicy.js +646 -0
  272. package/dist-public/src/secretInput.d.ts +8 -0
  273. package/dist-public/src/secretInput.js +89 -0
  274. package/dist-public/src/selfCheck.d.ts +7 -0
  275. package/dist-public/src/selfCheck.js +473 -0
  276. package/dist-public/src/selfCheckCache.d.ts +29 -0
  277. package/dist-public/src/selfCheckCache.js +147 -0
  278. package/dist-public/src/severityClass.d.ts +15 -0
  279. package/dist-public/src/severityClass.js +22 -0
  280. package/dist-public/src/skillClientPolicy.d.ts +8 -0
  281. package/dist-public/src/skillClientPolicy.js +16 -0
  282. package/dist-public/src/skillLocal.d.ts +98 -0
  283. package/dist-public/src/skillLocal.js +463 -0
  284. package/dist-public/src/skillTreeDigest.d.ts +9 -0
  285. package/dist-public/src/skillTreeDigest.js +64 -0
  286. package/dist-public/src/slackNango.d.ts +62 -0
  287. package/dist-public/src/slackNango.js +208 -0
  288. package/dist-public/src/social/arxiv.d.ts +19 -0
  289. package/dist-public/src/social/arxiv.js +96 -0
  290. package/dist-public/src/social/github.d.ts +2 -0
  291. package/dist-public/src/social/github.js +78 -0
  292. package/dist-public/src/social/hackernews.d.ts +2 -0
  293. package/dist-public/src/social/hackernews.js +67 -0
  294. package/dist-public/src/social/index.d.ts +10 -0
  295. package/dist-public/src/social/index.js +79 -0
  296. package/dist-public/src/social/reddit.d.ts +2 -0
  297. package/dist-public/src/social/reddit.js +125 -0
  298. package/dist-public/src/social/types.d.ts +73 -0
  299. package/dist-public/src/social/types.js +61 -0
  300. package/dist-public/src/social/xml.d.ts +10 -0
  301. package/dist-public/src/social/xml.js +49 -0
  302. package/dist-public/src/social/youtube.d.ts +7 -0
  303. package/dist-public/src/social/youtube.js +217 -0
  304. package/dist-public/src/sourceIngress.d.ts +488 -0
  305. package/dist-public/src/sourceIngress.js +1651 -0
  306. package/dist-public/src/specAfter.d.ts +187 -0
  307. package/dist-public/src/specAfter.js +814 -0
  308. package/dist-public/src/specBudget.d.ts +124 -0
  309. package/dist-public/src/specBudget.js +424 -0
  310. package/dist-public/src/specDecisionSignals.d.ts +38 -0
  311. package/dist-public/src/specDecisionSignals.js +121 -0
  312. package/dist-public/src/specLinkedCommits.d.ts +7 -0
  313. package/dist-public/src/specLinkedCommits.js +107 -0
  314. package/dist-public/src/specSections.d.ts +105 -0
  315. package/dist-public/src/specSections.js +718 -0
  316. package/dist-public/src/statusGlyphs.d.ts +18 -0
  317. package/dist-public/src/statusGlyphs.js +75 -0
  318. package/dist-public/src/swarmCommand.d.ts +10 -0
  319. package/dist-public/src/swarmCommand.js +96 -0
  320. package/dist-public/src/teamsNango.d.ts +114 -0
  321. package/dist-public/src/teamsNango.js +301 -0
  322. package/dist-public/src/tokenStore.d.ts +10 -0
  323. package/dist-public/src/tokenStore.js +77 -0
  324. package/dist-public/src/trustEnvelope.d.ts +78 -0
  325. package/dist-public/src/trustEnvelope.js +392 -0
  326. package/dist-public/src/untrustedText.d.ts +6 -0
  327. package/dist-public/src/untrustedText.js +20 -0
  328. package/dist-public/src/updateNotice.d.ts +41 -0
  329. package/dist-public/src/updateNotice.js +290 -0
  330. package/dist-public/src/vendorYaml.d.ts +1 -0
  331. package/dist-public/src/vendorYaml.js +7374 -0
  332. package/dist-public/src/workflowRunActuals.d.ts +67 -0
  333. package/dist-public/src/workflowRunActuals.js +184 -0
  334. package/dist-public/src/zendeskDiscovery.d.ts +12 -0
  335. package/dist-public/src/zendeskDiscovery.js +513 -0
  336. package/dist-public/src/zendeskNango.d.ts +131 -0
  337. package/dist-public/src/zendeskNango.js +344 -0
  338. package/dist-public/src/zoomNango.d.ts +106 -0
  339. package/dist-public/src/zoomNango.js +351 -0
  340. package/docs/CHANGELOG.md +32 -0
  341. package/docs/THIRD_PARTY_NOTICES.md +36 -0
  342. package/package.json +71 -4
  343. package/schemas/bug-capsule-receipt.schema.json +54 -0
  344. package/schemas/bug-capsule.schema.json +189 -0
  345. package/schemas/discovery-evidence-envelope.schema.json +79 -0
  346. package/schemas/discovery-processing-receipt.schema.json +71 -0
  347. package/schemas/discovery-service-contract.schema.json +189 -0
  348. package/skills/AGENTS.md +32 -0
  349. package/skills/README.md +287 -0
  350. package/skills/bug/SKILL.md +49 -0
  351. package/skills/build-preview-spec/SKILL.md +103 -0
  352. package/skills/capture-external-artifact/SKILL.md +23 -0
  353. package/skills/capture-external-artifact/agents/openai.yaml +4 -0
  354. package/skills/capture-external-artifact/references/extractor-libraries.md +27 -0
  355. package/skills/check-spec-health/SKILL.md +45 -0
  356. package/skills/check-spec-health/agents/openai.yaml +4 -0
  357. package/skills/competitive-positioning/SKILL.md +86 -0
  358. package/skills/competitive-positioning/agents/openai.yaml +4 -0
  359. package/skills/cpo-lens/SKILL.md +398 -0
  360. package/skills/cpo-lens/agents/openai.yaml +4 -0
  361. package/skills/create-prd/SKILL.md +26 -0
  362. package/skills/create-prd/agents/openai.yaml +4 -0
  363. package/skills/customer-discovery/SKILL.md +192 -0
  364. package/skills/design-system/SKILL.md +49 -0
  365. package/skills/design-system/agents/openai.yaml +4 -0
  366. package/skills/discussion-guide/SKILL.md +75 -0
  367. package/skills/discussion-guide/agents/openai.yaml +4 -0
  368. package/skills/firecrawl-research-papers/SKILL.md +96 -0
  369. package/skills/firecrawl-research-papers/agents/openai.yaml +4 -0
  370. package/skills/foo-roast/SKILL.md +325 -0
  371. package/skills/generate-gtm-brief/SKILL.md +41 -0
  372. package/skills/generate-gtm-brief/agents/openai.yaml +4 -0
  373. package/skills/generate-gtm-brief/references/gtm-brief-template.md +56 -0
  374. package/skills/gong-quotes/SKILL.md +43 -0
  375. package/skills/gong-quotes/agents/openai.yaml +4 -0
  376. package/skills/grill-me/SKILL.md +27 -0
  377. package/skills/grill-me/agents/openai.yaml +4 -0
  378. package/skills/ideate/SKILL.md +180 -0
  379. package/skills/ideate/references/family-packs.md +5 -0
  380. package/skills/initiative-tracker/SKILL.md +23 -0
  381. package/skills/initiative-tracker/agents/openai.yaml +4 -0
  382. package/skills/interop-review/SKILL.md +25 -0
  383. package/skills/interop-review/agents/openai.yaml +4 -0
  384. package/skills/interview-me/SKILL.md +404 -0
  385. package/skills/interview-me/agents/openai.yaml +4 -0
  386. package/skills/loop-library-audit/SKILL.md +123 -0
  387. package/skills/pitch/SKILL.md +110 -0
  388. package/skills/pitch/references/opportunity-assessment.md +136 -0
  389. package/skills/pitch/references/prfaq-template.md +54 -0
  390. package/skills/pmm-release-briefing/SKILL.md +27 -0
  391. package/skills/pmm-release-briefing/agents/openai.yaml +4 -0
  392. package/skills/pmm-release-briefing/references/variant-generalized.md +16 -0
  393. package/skills/positioning-messaging/SKILL.md +70 -0
  394. package/skills/positioning-messaging/agents/openai.yaml +4 -0
  395. package/skills/positioning-messaging/references/guest-insights.md +1400 -0
  396. package/skills/preview-swarm/SKILL.md +418 -0
  397. package/skills/preview-swarm/agents/openai.yaml +4 -0
  398. package/skills/preview-swarm/references/html-effectiveness-build-previews.md +168 -0
  399. package/skills/product-copywriting/SKILL.md +127 -0
  400. package/skills/product-copywriting/agents/openai.yaml +4 -0
  401. package/skills/product-copywriting/references/foo-voice.md +26 -0
  402. package/skills/product-shape-interview/SKILL.md +219 -0
  403. package/skills/product-shape-interview/agents/openai.yaml +4 -0
  404. package/skills/ready-for-release/SKILL.md +39 -0
  405. package/skills/ready-for-release/agents/openai.yaml +4 -0
  406. package/skills/redact-transcripts/SKILL.md +23 -0
  407. package/skills/redact-transcripts/agents/openai.yaml +4 -0
  408. package/skills/research-brief/SKILL.md +48 -0
  409. package/skills/research-brief/agents/openai.yaml +4 -0
  410. package/skills/research-refresh/SKILL.md +63 -0
  411. package/skills/research-refresh/references/worked-cases.md +44 -0
  412. package/skills/review-loop/SKILL.md +200 -0
  413. package/skills/review-spec/SKILL.md +32 -0
  414. package/skills/review-spec/agents/openai.yaml +4 -0
  415. package/skills/rfc-from-research/SKILL.md +42 -0
  416. package/skills/rfc-from-research/agents/openai.yaml +4 -0
  417. package/skills/rfc-from-research/references/rfc-pattern.md +69 -0
  418. package/skills/skill-registry.yaml +810 -0
  419. package/skills/spec-cleanup/SKILL.md +103 -0
  420. package/skills/spec-cleanup/agents/openai.yaml +4 -0
  421. package/skills/spec-swarm/SKILL.md +87 -0
  422. package/skills/spec-swarm/agents/openai.yaml +4 -0
  423. package/skills/spec-swarm/template/SKILL.template.md +94 -0
  424. package/skills/spec-swarm/template/personas/accessibility-inclusion.md +40 -0
  425. package/skills/spec-swarm/template/personas/ai-technical-pm.md +69 -0
  426. package/skills/spec-swarm/template/personas/analytics-engineering.md +39 -0
  427. package/skills/spec-swarm/template/personas/applied-ai-eval.md +64 -0
  428. package/skills/spec-swarm/template/personas/business-gm-pm.md +67 -0
  429. package/skills/spec-swarm/template/personas/consumer-craft-pm.md +68 -0
  430. package/skills/spec-swarm/template/personas/content-design.md +40 -0
  431. package/skills/spec-swarm/template/personas/cpo.md +42 -0
  432. package/skills/spec-swarm/template/personas/data-science.md +42 -0
  433. package/skills/spec-swarm/template/personas/developer-experience.md +65 -0
  434. package/skills/spec-swarm/template/personas/dx-product.md +70 -0
  435. package/skills/spec-swarm/template/personas/field.md +43 -0
  436. package/skills/spec-swarm/template/personas/finance-cfo.md +40 -0
  437. package/skills/spec-swarm/template/personas/growth-pm.md +67 -0
  438. package/skills/spec-swarm/template/personas/platform-pm.md +67 -0
  439. package/skills/spec-swarm/template/personas/pmm.md +43 -0
  440. package/skills/spec-swarm/template/personas/principal-product-designer.md +42 -0
  441. package/skills/spec-swarm/template/personas/product-ops-program.md +41 -0
  442. package/skills/spec-swarm/template/personas/qa-release.md +41 -0
  443. package/skills/spec-swarm/template/personas/responsible-ai-safety.md +64 -0
  444. package/skills/spec-swarm/template/personas/security-privacy-legal.md +40 -0
  445. package/skills/spec-swarm/template/personas/strategy-competitive.md +41 -0
  446. package/skills/spec-swarm/template/personas/technical-architect.md +42 -0
  447. package/skills/spec-swarm/template/personas/technical-lead.md +43 -0
  448. package/skills/spec-swarm/template/personas/user-research.md +41 -0
  449. package/skills/spec-swarm-accessibility-inclusion/SKILL.md +95 -0
  450. package/skills/spec-swarm-accessibility-inclusion/agents/openai.yaml +4 -0
  451. package/skills/spec-swarm-ai-technical-pm/SKILL.md +124 -0
  452. package/skills/spec-swarm-analytics-engineering/SKILL.md +94 -0
  453. package/skills/spec-swarm-analytics-engineering/agents/openai.yaml +4 -0
  454. package/skills/spec-swarm-applied-ai-eval/SKILL.md +120 -0
  455. package/skills/spec-swarm-business-gm-pm/SKILL.md +122 -0
  456. package/skills/spec-swarm-consumer-craft-pm/SKILL.md +122 -0
  457. package/skills/spec-swarm-content-design/SKILL.md +95 -0
  458. package/skills/spec-swarm-content-design/agents/openai.yaml +4 -0
  459. package/skills/spec-swarm-cpo/SKILL.md +94 -0
  460. package/skills/spec-swarm-cpo/agents/openai.yaml +4 -0
  461. package/skills/spec-swarm-data-science/SKILL.md +95 -0
  462. package/skills/spec-swarm-data-science/agents/openai.yaml +4 -0
  463. package/skills/spec-swarm-developer-experience/SKILL.md +121 -0
  464. package/skills/spec-swarm-dx-product/SKILL.md +126 -0
  465. package/skills/spec-swarm-field/SKILL.md +96 -0
  466. package/skills/spec-swarm-field/agents/openai.yaml +4 -0
  467. package/skills/spec-swarm-finance-cfo/SKILL.md +95 -0
  468. package/skills/spec-swarm-finance-cfo/agents/openai.yaml +4 -0
  469. package/skills/spec-swarm-growth-pm/SKILL.md +122 -0
  470. package/skills/spec-swarm-platform-pm/SKILL.md +122 -0
  471. package/skills/spec-swarm-pmm/SKILL.md +96 -0
  472. package/skills/spec-swarm-pmm/agents/openai.yaml +4 -0
  473. package/skills/spec-swarm-principal-product-designer/SKILL.md +95 -0
  474. package/skills/spec-swarm-principal-product-designer/agents/openai.yaml +4 -0
  475. package/skills/spec-swarm-product-ops-program/SKILL.md +96 -0
  476. package/skills/spec-swarm-product-ops-program/agents/openai.yaml +4 -0
  477. package/skills/spec-swarm-qa-release/SKILL.md +96 -0
  478. package/skills/spec-swarm-qa-release/agents/openai.yaml +4 -0
  479. package/skills/spec-swarm-responsible-ai-safety/SKILL.md +120 -0
  480. package/skills/spec-swarm-security-privacy-legal/SKILL.md +95 -0
  481. package/skills/spec-swarm-security-privacy-legal/agents/openai.yaml +4 -0
  482. package/skills/spec-swarm-strategy-competitive/SKILL.md +96 -0
  483. package/skills/spec-swarm-strategy-competitive/agents/openai.yaml +4 -0
  484. package/skills/spec-swarm-technical-architect/SKILL.md +95 -0
  485. package/skills/spec-swarm-technical-architect/agents/openai.yaml +4 -0
  486. package/skills/spec-swarm-technical-lead/SKILL.md +96 -0
  487. package/skills/spec-swarm-technical-lead/agents/openai.yaml +4 -0
  488. package/skills/spec-swarm-user-research/SKILL.md +95 -0
  489. package/skills/spec-swarm-user-research/agents/openai.yaml +4 -0
  490. package/skills/strategy-check/SKILL.md +170 -0
  491. package/skills/strategy-check/agents/openai.yaml +4 -0
  492. package/skills/study-digest/SKILL.md +41 -0
  493. package/skills/synthetic-customer/SKILL.md +68 -0
  494. package/skills/update-cli-spec/SKILL.md +69 -0
  495. package/skills/update-cli-spec/agents/openai.yaml +4 -0
  496. package/skills/voc-researcher/SKILL.md +45 -0
  497. package/skills/voc-researcher/agents/openai.yaml +4 -0
  498. package/skills-lock.json +35 -0
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: spec-swarm-user-research
3
+ description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a user research perspective. Use inside spec-swarm or when the user wants research questions about customer evidence, missing interviews, evidence quality, user segments, research risk, and fastest de-risking path."
4
+ ---
5
+
6
+ # Spec Swarm: User Research
7
+
8
+ Sharpen the spec from a user research point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the research decision before moving on.
9
+
10
+ ## Usage
11
+
12
+ Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
13
+
14
+ ```text
15
+ Use $spec-swarm-user-research on <path-or-summary>
16
+ ```
17
+
18
+ ## productfoo voice for people
19
+
20
+ When briefing a person, give the recommendation, its concrete reason, what is
21
+ uncertain or disputed, and the useful next action. Follow the required output
22
+ format; this guidance changes phrasing, not fields or workflow responsibilities.
23
+
24
+ - Use concrete nouns and verbs. Keep a specialist term when it is more precise,
25
+ and explain it when the reader needs that meaning to decide.
26
+ - Say what you actually inspected and what it supports. Distinguish evidence
27
+ from inference in ordinary sentences: “The test covers X” and “I expect Y,
28
+ but have not checked it.” Name the specific unknown and what would settle it.
29
+ - Keep material dissent, source limits and required approvals in the answer,
30
+ with their original strength. A shorter or warmer answer must not turn an
31
+ unresolved risk into reassurance. Keep citations close to their claims.
32
+ - Be candid and respectful. Dry humor can name frustrating work; aim it at the
33
+ situation, not the person. Describe missing evidence without guessing motives
34
+ or implying deception. Do not invent feelings, experience, checks or praise.
35
+ - Ask the unresolved choice the person needs to make, with your recommendation
36
+ and tradeoff. Use the active workflow's question budget and consultation rules.
37
+ - End with the concrete next step. Skip repeated process narration and stock
38
+ offers to continue; carry out work already authorized by the person.
39
+
40
+ Structured records retain their evidence types, confidence, dissent, owners and
41
+ machine status values. Translate those distinctions for the reader; do not erase
42
+ them. Specialist lenses keep their craft. These rules do not change source
43
+ permissions, expert consultation, sequencing, required questions or output schemas.
44
+
45
+ ## Focus
46
+
47
+ - Evidence quality: what is observed, reported, inferred, or aspirational?
48
+ - Segment fit: whose problem is this, and whose evidence is missing?
49
+ - Research risk: what assumption would most likely invalidate the spec?
50
+ - Fastest de-risking: what small study, interview, quote search, or usability check would help most?
51
+ - Verbatim signal: what user language should shape the spec or UI?
52
+
53
+ ## Borrow From Existing Skills
54
+
55
+ - Triage product ideas only against approved evidence in the supplied artifact.
56
+ - Require attributed customer quotes; do not gather or invent them.
57
+ - Check for crisp study framing and interview questions without running a research workflow.
58
+ - `grill-me`: ask one question at a time with the recommended answer.
59
+
60
+ ## Expert Preflight Before User Questions
61
+
62
+ Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
63
+
64
+ ## Legible Judgment
65
+
66
+ For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
67
+
68
+ ## Question Selection
69
+
70
+ Ask only 2-3 questions total, one at a time. Prefer questions that expose:
71
+
72
+ - weak or missing customer evidence
73
+ - untested segment assumptions
74
+ - a research gap that changes MVP scope
75
+ - a claim that needs verbatim support
76
+ - an assumption that can be de-risked quickly
77
+
78
+ If the answer can be found in the spec, approved research, repo docs, quotes, or source evidence, inspect those sources instead of asking.
79
+
80
+ ## Output
81
+
82
+ For each question, return:
83
+
84
+ - `Question`: one user research question.
85
+ - `Recommended answer`: the answer the research lens would push toward, based on the available evidence.
86
+ - `Why it matters`: one sentence.
87
+ - `Likely spec impact`: evidence boundary, persona, acceptance check, research task, or non-goal.
88
+
89
+ Wait for the user's answer before asking the next question. Do not invent customer evidence.
90
+
91
+ ## Error Handling
92
+
93
+ - If no spec or packet is provided, ask for one before reviewing.
94
+ - If evidence is missing, ask what evidence should be authoritative instead of inventing it.
95
+ - If the question requires raw private content, ask for a summary or approved evidence boundary instead.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Spec Swarm: User Research"
3
+ short_description: "Ask research questions that sharpen a spec."
4
+ default_prompt: "Use $spec-swarm-user-research to ask the 2-3 user research questions this spec needs."
@@ -0,0 +1,170 @@
1
+ ---
2
+ name: strategy-check
3
+ description: "Use when the the user says \"check strategy alignment\", \"strategy drift\", \"coverage map\", or invokes /strategy-check."
4
+ ---
5
+
6
+ # Skill: Strategy Check
7
+
8
+ Check whether PRDs align with the active product strategy. Surfaces misalignment, stale strategy references, and coverage gaps across strategic objectives.
9
+
10
+ Two modes:
11
+ - **Single PRD**: `/strategy-check <feature-slug>` — scores one PRD against the active strategy
12
+ - **Portfolio coverage**: `/strategy-check --coverage` — maps all PRDs against strategic objectives
13
+
14
+ This skill is **advisory only** — it surfaces signal but does not block PRD status transitions.
15
+
16
+ ## Usage
17
+
18
+ ```
19
+ /strategy-check <feature-slug>
20
+ /strategy-check --coverage
21
+ ```
22
+
23
+ ## Examples
24
+
25
+ - `/strategy-check agentic-workflows` — Check alignment of the agentic workflows PRD
26
+ - `/strategy-check --coverage` — See which strategic objectives have strong/weak PRD coverage
27
+
28
+ ## Instructions
29
+
30
+ When this skill is invoked:
31
+
32
+ ### Step 1: Load the Active Strategy
33
+
34
+ 1. Glob `docs/strategy/*.md`
35
+ 2. Read the YAML frontmatter of each file. Find the file with `active: true`.
36
+ 3. **Error handling:**
37
+ - If **no file** has `active: true`: report "No active strategy found — create or activate a strategy file in `docs/strategy/`" and exit.
38
+ - If **multiple files** have `active: true`: warn the user listing the conflicting filenames. Use the file with the most recent `date` field. Suggest the PM fix the duplicate.
39
+ - If the active strategy file is **missing the `objectives` field**: report "Active strategy file `{filename}` is missing the `objectives` field in frontmatter" and exit.
40
+ 4. Extract the `objectives` array (each has `id`, `name`, `priority`) and the `deprioritized` array from frontmatter.
41
+ 5. Read the full prose body for richer context when judging alignment.
42
+ 6. Also read all inactive strategy files (`active: false`) to identify retired themes and objectives.
43
+
44
+ ### Step 2: Route by Mode
45
+
46
+ - If a `<feature-slug>` was provided → go to **Step 3: Single PRD Alignment Check**
47
+ - If `--coverage` was provided → go to **Step 4: Portfolio Coverage Map**
48
+
49
+ ### Step 3: Single PRD Alignment Check
50
+
51
+ 1. Read `docs/prds/<feature-slug>.md`. If it doesn't exist, report "No PRD found at `docs/prds/<feature-slug>.md` — check the filename or run `ls docs/prds/`" and exit.
52
+ 2. Parse the PRD's frontmatter and full content.
53
+ 3. **Alignment scoring:** For each objective in the active strategy, use your judgment to assess how strongly this PRD supports it:
54
+ - **High** — The PRD directly advances this objective; it's a primary focus
55
+ - **Medium** — The PRD partially supports this objective or enables it indirectly
56
+ - **Low** — Tangential connection only
57
+ - **None** — No meaningful connection
58
+ 4. **Stale reference detection:** Check if the PRD's content references themes, objectives, or terminology from older (inactive) strategy versions that are no longer in the active strategy. Examples: referencing "Unity" when the active strategy is "Marketing Harness", or citing objectives that have been retired.
59
+ 5. **Consistency check:** Read the PRD's freeform strategy alignment field (the text under "How does this project fit into <your-company>'s broader strategy?"). Compare what the PM wrote against the actual active objectives. Flag if the stated alignment is inconsistent with or contradicts your assessment.
60
+ 6. **Context note:** If the PRD was last modified before the active strategy's `date`, note this: "This PRD predates the current strategy (active since {date}). Alignment may need re-evaluation."
61
+ 7. Output the report (see **Step 5: Output Format — Single PRD**).
62
+
63
+ ### Step 4: Portfolio Coverage Map
64
+
65
+ 1. Glob `docs/prds/*.md`. Exclude `_manifest.md` and `TEMPLATE.md`.
66
+ 2. **Process PRDs one at a time** — read each PRD individually, assess alignment to each objective (high/medium/low/none), then move to the next. This avoids context window pressure.
67
+ - If a PRD has malformed frontmatter or cannot be read, **skip it with a warning** and continue to the next PRD. Do not abort the entire run.
68
+ 3. For each objective, count how many PRDs score "high" or "medium" alignment.
69
+ 4. **Coverage ratings:**
70
+ - **Strong**: 3+ PRDs with high/medium alignment
71
+ - **Good**: 2 PRDs with high/medium alignment
72
+ - **Light**: 1 PRD with high/medium alignment
73
+ - **Gap**: 0 PRDs with high/medium alignment
74
+ 5. **Unmapped PRDs:** List any PRDs where no objective scores above "low" alignment.
75
+ 6. **Stale references:** Flag PRDs that reference themes from inactive strategy versions.
76
+ 7. Output the report (see **Step 6: Output Format — Coverage Map**).
77
+
78
+ ### Step 5: Output Format — Single PRD
79
+
80
+ ```
81
+ Strategy Alignment Check: {feature name}
82
+ Active Strategy: {strategy title} ({strategy date})
83
+ ══════════════════════════════════════════════════════
84
+
85
+ ┌─────────────────────────────────────────────────┐
86
+ │ QUICK READ │
87
+ ├─────────────────────────────────────────────────┤
88
+ │ Primary alignment: {strongest objective match} │
89
+ │ Overall signal: {Strong / Moderate / Weak / None} │
90
+ │ {1-2 key observations} │
91
+ └─────────────────────────────────────────────────┘
92
+
93
+ Alignment by Objective:
94
+ ─────────────────────────────────────────────────────
95
+ OBJ-1: {name} {High/Med/Low/None}
96
+ {Brief rationale}
97
+
98
+ OBJ-2: {name} {High/Med/Low/None}
99
+ {Brief rationale}
100
+
101
+ [... for each objective]
102
+ ─────────────────────────────────────────────────────
103
+
104
+ Stale Strategy References:
105
+ {List any references to retired themes/objectives, or "None found"}
106
+
107
+ Strategy Field Consistency:
108
+ PM wrote: "{text from PRD strategy field}"
109
+ Assessment: {Consistent / Inconsistent — with explanation}
110
+
111
+ Suggestions:
112
+ - {Actionable suggestion, e.g., "Consider connecting this to OBJ-3 (Land new business agentically) — the migration tooling aspect is a strong fit"}
113
+ - {Actionable suggestion, e.g., "This references 'Unity' theme which was retired in the Apr 2026 strategy"}
114
+ ```
115
+
116
+ ### Step 6: Output Format — Coverage Map
117
+
118
+ ```
119
+ Strategy Coverage Map
120
+ Active Strategy: {strategy title} ({strategy date})
121
+ ══════════════════════════════════════════════════════
122
+
123
+ ┌─────────────────────────────────────────────────┐
124
+ │ QUICK READ │
125
+ ├─────────────────────────────────────────────────┤
126
+ │ {X} objectives covered, {Y} gaps │
127
+ │ {Z} PRDs unmapped to any objective │
128
+ │ {Key insight about portfolio balance} │
129
+ └─────────────────────────────────────────────────┘
130
+
131
+ Coverage by Objective:
132
+ ─────────────────────────────────────────────────────
133
+ OBJ-1 (P1): {name}
134
+ Coverage: {Strong/Good/Light/Gap} ({N} PRDs)
135
+ PRDs: {list of PRD names with alignment level}
136
+
137
+ OBJ-2 (P2): {name}
138
+ Coverage: {Strong/Good/Light/Gap} ({N} PRDs)
139
+ PRDs: {list of PRD names with alignment level}
140
+
141
+ [... for each objective]
142
+ ─────────────────────────────────────────────────────
143
+
144
+ Unmapped PRDs (no objective above "low"):
145
+ - {prd-name.md} — {brief description of what it covers}
146
+
147
+ Stale Strategy References:
148
+ - {prd-name.md} references "{retired theme}" from {old strategy date}
149
+
150
+ Skipped PRDs:
151
+ - {prd-name.md} — {reason, e.g., "malformed frontmatter"}
152
+
153
+ Summary:
154
+ Total PRDs scanned: {N}
155
+ Objectives with strong coverage: {N}
156
+ Objectives with gaps: {N}
157
+ PRDs with stale strategy refs: {N}
158
+ ```
159
+
160
+ ## Notes
161
+
162
+ - This skill uses LLM judgment to assess alignment — the same approach as `/cpo-lens`. It reads both the strategy frontmatter objectives and the PRD prose to reason about connections. It does not use keyword matching or embedding similarity.
163
+ - PRDs do **not** need to contain explicit objective IDs. The skill infers alignment from prose content. However, if a PRD's strategy field references objective IDs (e.g., "Supports OBJ-3"), the skill will use those as additional signal.
164
+ - When a new strategy version becomes active, existing PRDs are not retroactively flagged as "drifted." They appear as-is in the next alignment check — PRDs written for a previous strategy may appear as "unmapped" in the coverage map, which is expected and useful signal.
165
+ - The coverage map processes PRDs one at a time to avoid context window pressure. Expect 2-3 minutes for a full portfolio scan.
166
+
167
+ ## Error Handling
168
+
169
+ - If required files, tools, connectors, credentials, or source artifacts are unavailable, state the blocker clearly and continue only with safe local evidence.
170
+ - If the user request requires missing product judgment or source-boundary approval, ask one focused question before proceeding.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Strategy Check"
3
+ short_description: "Run the Strategy Check workflow."
4
+ default_prompt: "Use $strategy-check for the relevant workflow."
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: study-digest
3
+ description: "Use when approved sanitized study evidence needs a traceable synthesis, theme map, hypothesis update, or decision handoff."
4
+ ---
5
+
6
+ # Study Digest
7
+
8
+ ## Usage
9
+
10
+ Synthesize a study from approved sanitized evidence. Never ingest, quote, or
11
+ commit raw transcripts, recordings, private messages, or participant PII.
12
+
13
+ 1. Anchor the digest to the research brief's decision, questions, and hypotheses.
14
+ 2. Accept only approved sanitized discovery evidence, validated research papers,
15
+ or explicitly approved packet evidence. Source access alone is not approval.
16
+ 3. Cluster independent evidence into themes; separate observed behavior, stated
17
+ preference, interpretation, dissent, and unknowns.
18
+ 4. Use a verbatim quote only when the exact approved sanitized evidence contains
19
+ it. Never invent or reconstruct a quote from a summary or raw-content memory.
20
+ 5. Update each hypothesis as supported, refuted, mixed, or open. Present
21
+ implications and decisions for a person; do not auto-create requirements.
22
+
23
+ ### Source ledger
24
+
25
+ - **Sources used** — approved evidence reference, study/session scope, and trust label.
26
+ - **Sources omitted** — every optional session or evidence lane not used and why.
27
+ - **Trust status** — approved quote, sanitized observation, validated research, or inference.
28
+ - **Limits** — sample coverage, dissent, and decisions not established by evidence.
29
+
30
+ Every optional omission appears in the human summary and digest artifact. Return
31
+ in chat by default; write only to an explicitly requested local destination.
32
+
33
+ ## Error Handling
34
+
35
+ - If the study has no approved sanitized evidence, or a required approval or
36
+ brief is missing, return `status: blocked`, name what did not run, provide the
37
+ exact `next action`, and set `exit: nonzero`.
38
+ - If an optional source is unavailable, continue only when the remaining
39
+ evidence supports an honest synthesis and list the omission.
40
+ - If only raw material is offered, route it through the proof-gated discovery
41
+ flow; do not open or summarize the raw content here.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: synthetic-customer
3
+ description: "Use to draft a synthetic customer persona, generate testable hypotheses, or rehearse/lint an interview guide before talking to real people. Trigger on \"synthetic customer\", \"synthetic user\", \"draft a persona\", \"generate hypotheses\", \"rehearse my interview questions\", \"pressure-test this concept\", or when a discovery study needs a straw-man persona and hypothesis set to react to. This is a rehearsal and hypothesis layer, never an evidence layer: all output is agent-inference and must be validated with real customers before it informs a decision."
4
+ ---
5
+ ## Usage
6
+
7
+ Use this skill when its frontmatter description matches the user request. Follow the workflow and constraints below.
8
+
9
+ # Synthetic Customer
10
+
11
+ Role-play a grounded customer persona to do the cheap, pre-research work: draft a persona, generate testable hypotheses, and rehearse or lint an interview guide — so the real interview is sharper. This skill produces a straw-man to react to and a hypothesis backlog to validate. It never produces findings.
12
+
13
+ The product goal is legible judgment: show what is believed, how confident, on what grounding, and what a real customer still has to confirm. A synthetic customer is `agent-inference` — useful, labeled, and never smuggled into a spec or a report as if a real person decided it.
14
+
15
+ ## What this skill is for (and not for)
16
+
17
+ Legitimate jobs (all pre-research or augmentation):
18
+
19
+ - **Draft hypotheses.** From a target persona + a "what I want to prove/disprove", enumerate 3-6 candidate hypotheses, each with a belief, a starting confidence, and how a real interview would confirm or kill it.
20
+ - **Rehearse / lint an interview guide.** Run the guide against the persona; flag dead questions, leading questions, ambiguous items, and missing branches before real-participant time is spent.
21
+ - **Pressure-test a concept.** Surface likely objections, confusions, and reasons-not-to — as "what could be wrong", not "what users think".
22
+ - **Draft a straw-man workflow or journey.** A first pass to correct against real evidence, faster than a blank page.
23
+ - **Cover an edge persona for rehearsal** when the real segment is hard to recruit — to sharpen the real session, not replace it.
24
+
25
+ Never for: reporting synthetic output as user findings; feature prioritization; persona development as source of truth; predicting behavior, conversion, adoption, or willingness-to-pay; market sizing; sampling minority/niche segments as if representative; or any decision-grade number.
26
+
27
+ ## Hard Rules (encode the failure modes)
28
+
29
+ The research on LLM synthetic respondents is specific about how they mislead. Encode these as behavior:
30
+
31
+ - **Label everything `agent-inference`.** Every persona, hypothesis, and drafted question carries the label. Disclose synthetic provenance on every artifact.
32
+ - **Never present synthetic output as evidence or a validated finding.** If a whole run is synthetic-only, say so plainly and cap confidence.
33
+ - **Force refusal.** When the persona would not plausibly know something, say "a real [persona] wouldn't reliably know this" instead of inventing a confident answer. Grounded, refusal-capable personas are far less misleading than fluent ones.
34
+ - **Counter sycophancy.** Do not reveal the "right" answer or the product's goal to the persona. Actively ask for objections and reasons-not-to. Instruct the persona to stay in character, not to please the researcher.
35
+ - **Preserve variance; never collapse to the mean.** Synthetic output is systematically too agreeable and too low-variance. When generating multiple personas, spread them across a calibrated distribution and report the spread and dissent, not a consensus.
36
+ - **Ground in real artifacts, not adjectives.** Condition the persona on whatever real material exists (interview transcripts, tickets, segment data, analytics); the more real grounding, the less it is a stereotype machine. State the grounding level honestly.
37
+ - **No magnitudes.** Do not emit numbers that imply measurement (WTP, % who would, conversion). Synthetic magnitudes are often wrong-signed.
38
+
39
+ ## Posture — adapt to the user's interview competence
40
+
41
+ Detect or ask how grounded the user already is in customer interviews, and adjust:
42
+
43
+ - **Skilled interviewer:** run fast. A tight guide-lint and a hypothesis list; skip the coaching.
44
+ - **Novice or unsure:** coach. Explain each flagged leading question and each missing past-episode anchor, teach the quality bar (past behavior over speculation, one question at a time, don't lead), and show the fixed version.
45
+
46
+ ## Workflow
47
+
48
+ 1. **Frame.** Restate the target persona and what the user wants to prove or disprove. Note the grounding available (real artifacts vs none) and set confidence accordingly.
49
+ 2. **Persona.** Draft a persona card grounded in the available material: role, context, goals, constraints, current tools/workarounds, and what this persona plausibly would and would not know. Label `agent-inference`.
50
+ 3. **Hypotheses.** Produce 3-6 hypotheses, each as: `belief` (one sentence), `starting confidence` (low/medium/high, honest — synthetic-only defaults low), and `how a real interview confirms or kills it`.
51
+ 4. **Questions.** Draft a hypothesis-testing question set that obeys the quality bar: anchor on a specific past episode ("tell me about the last time…"), behavior over opinion, open over closed, one idea per question, never leading. Map each question to the hypothesis it tests.
52
+ 5. **Lint.** Run the leading-question / quality-bar lint over the set: flag hypotheticals ("would you…"), opinion-as-fact, double-barreled items, and any question that telegraphs the hypothesis. For a novice, explain and fix; for a skilled user, just flag.
53
+ 6. **Handoff.** Present the persona + labeled hypotheses + question set for the user to approve or edit. Nothing here is evidence — it is input for a real interview. Route an approved completed call through `customer-discovery`; its proof-gated in-memory flow commits only sanitized evidence, never the raw transcript.
54
+
55
+ ## Output
56
+
57
+ - `Persona`: card, grounding level, `agent-inference` label.
58
+ - `Hypotheses`: each with belief, starting confidence, and how a real interview would confirm/kill it.
59
+ - `Questions`: hypothesis-testing set, each mapped to a hypothesis, past-episode-anchored and non-leading.
60
+ - `Lint findings`: leading/hypothetical/opinion-as-fact/telegraphing flags, with fixes for a novice.
61
+ - `Caveat line`: the explicit reminder that all of this is synthetic and must be validated with real customers before it informs a decision.
62
+
63
+ ## Error Handling
64
+
65
+ - If no target persona or research goal is provided, ask one focused question before drafting; do not invent the study.
66
+ - If no real grounding material is available, say so, mark the run synthetic-only, cap confidence at `low`, and recommend the fastest way to get one real interview.
67
+ - If asked to produce findings, metrics, prioritization, or willingness-to-pay from synthetic output, refuse and explain that synthetic customers are a rehearsal/hypothesis layer, not evidence; offer the hypothesis + guide instead.
68
+ - If required source artifacts are unavailable, state the blocker and continue only with safe local evidence, labeled.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: update-cli-spec
3
+ description: "Use after adding, removing, renaming, or changing foo CLI commands, flags, runtime skill installation behavior, packet validation behavior, or command output; use when the user says update the CLI spec, sync the CLI docs, record the CLI change in the Adaptive Spec Packet, or make CLI behavior durable in spec/task/event artifacts."
4
+ ---
5
+
6
+ # Update CLI Spec
7
+
8
+ Keep executable CLI behavior, user-facing command docs, and the Adaptive Spec Packet contract aligned in one change.
9
+
10
+ ## Usage
11
+
12
+ Use this workflow whenever a CLI change affects how a user or agent should invoke `foo`, understand its output, install runtime skills, validate packets, or reconcile work.
13
+
14
+ 1. Identify the behavior change.
15
+ - Read the changed CLI files, tests, and command output.
16
+ - Determine whether the change is a new command, flag, validation rule, output contract, install behavior, or error path.
17
+ - Do not update spec artifacts from intent alone; verify the actual behavior or add tests that define it.
18
+
19
+ 2. Update executable coverage first when behavior changed.
20
+ - Add or update focused CLI tests for the new contract.
21
+ - Cover safety behavior for install, delete, overwrite, path, or runtime-environment changes.
22
+ - Prefer temp directories and explicit roots in tests so validation does not mutate the user's real runtime environment.
23
+
24
+ 3. Update tracked command documentation.
25
+ - Update `README.md` for clone/setup or top-level command workflows.
26
+ - Update other tracked docs only when they are committed artifacts.
27
+ - Treat `docs/` as local scratch unless the repo has explicitly changed that rule; do not rely on ignored docs as the only durable documentation.
28
+
29
+ 4. Update `specs/adaptive-spec-packet-v0/spec.md` when the CLI contract changed.
30
+ - Add or revise a requirement for durable behavior.
31
+ - Add or revise a decision when the change chooses a product or workflow direction.
32
+ - Add risk and validation bullets when the behavior has safety, portability, or trust implications.
33
+ - Add evidence links to the implementation, tests, and tracked docs.
34
+
35
+ 5. Update `specs/adaptive-spec-packet-v0/tasks.yaml`.
36
+ - Add a new task for new accepted CLI behavior.
37
+ - Mark it `done` only when tests and docs are complete.
38
+ - Include touched files, done checks, proof paths, completion metadata, and the corresponding event ID.
39
+ - Use UTC timestamps in task completion metadata.
40
+
41
+ 6. Append to `specs/adaptive-spec-packet-v0/events.jsonl`.
42
+ - Append exactly one JSON object per event; do not rewrite existing ledger lines.
43
+ - Use the next `evt_asp_###` ID.
44
+ - Include actor identity, skills or prompt modules when known, adapter/runtime when known, and a concise reason.
45
+ - Keep raw private notes, transcripts, prompts, and tool payloads out of the event.
46
+
47
+ 7. Validate before reporting completion.
48
+ - Run the CLI tests that cover the changed behavior.
49
+ - Run `bin/foo asp validate specs/adaptive-spec-packet-v0`.
50
+ - Run the root README skill checks if skill files or registry entries changed.
51
+ - Run the root README spec placement and duplicate `Spec ID` check when spec files changed.
52
+ - Manually smoke-test important commands when the change concerns install paths, symlinks, destructive operations, or outside-repo invocation.
53
+
54
+ ## Output
55
+
56
+ Report:
57
+
58
+ - The behavior that changed.
59
+ - The spec/docs/task/event artifacts updated.
60
+ - The exact validation commands and results.
61
+ - Any user-facing caveats, especially ignored docs, skipped destructive checks, or runtime roots not touched.
62
+
63
+ ## Error Handling
64
+
65
+ - If behavior cannot be verified, stop and say what evidence is missing; do not update packet truth from guesses.
66
+ - If a command touches a user runtime, use a temp root or dry-run equivalent first. Ask for explicit approval before mutating a real runtime root when the user did not request it.
67
+ - If `docs/` is ignored, mirror any durable user-facing documentation in a tracked artifact such as `README.md` or the packet spec.
68
+ - If event IDs or task IDs conflict, inspect existing packet files and choose the next unused ID rather than editing historical IDs.
69
+ - If validation fails, fix the source behavior or the spec artifact and rerun validation before claiming the CLI spec is updated.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Update CLI Spec"
3
+ short_description: "Keep CLI behavior and spec artifacts aligned"
4
+ default_prompt: "Use $update-cli-spec after changing CLI commands or runtime workflow behavior."
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: voc-researcher
3
+ description: "Use when approved customer evidence needs voice-of-customer synthesis, pain analysis, workaround mapping, or evidence-backed product triage."
4
+ ---
5
+
6
+ # Voice Of Customer Researcher
7
+
8
+ ## Usage
9
+
10
+ Produce a traceable VoC brief from approved evidence, not a connector inventory
11
+ or a model's idea of what customers probably think.
12
+
13
+ 1. Confirm the product question, segment, time window, and decision the evidence
14
+ may inform.
15
+ 2. Inventory source classes before reading: approved sanitized discovery
16
+ evidence, validated research, packet evidence, product analytics, and support
17
+ signals. Connector access is not source approval.
18
+ 3. Record each class as `used`, `omitted`, `blocked`, or `not applicable`.
19
+ Approved derived evidence is allowed; raw transcripts, private messages, PII,
20
+ and unapproved connector content are not.
21
+ 4. Synthesize pains, jobs, triggers, workarounds, frequency evidence, segment
22
+ differences, dissent, and gaps. Do not manufacture counts or quotes.
23
+ 5. Recommend only when at least one approved evidence lane supports the claim and
24
+ the coverage limits are visible. Zero approved evidence means no recommendation.
25
+
26
+ ### Source ledger
27
+
28
+ - **Sources used** — source class, scope, approval, date, and stable reference.
29
+ - **Sources omitted** — every optional source class not used and why.
30
+ - **Trust status** — approved sanitized evidence, validated research, metric, or inference.
31
+ - **Limits** — coverage, representativeness, missing lanes, and human judgment.
32
+
33
+ Every optional omission appears in both the human summary and the VoC artifact.
34
+ Write locally only when the user supplies a destination; never update a tracker
35
+ or send the brief.
36
+
37
+ ## Error Handling
38
+
39
+ - With zero approved evidence, return `status: blocked`, `did_not_run: VoC
40
+ recommendation`, `missing: approved evidence`, the exact `next action`, and
41
+ `exit: nonzero`. Do not recommend “park” or any other product decision.
42
+ - If a required source approval, receipt, or access grant is missing, name it and
43
+ stop; never silently fall back to another lane.
44
+ - If only optional sources are unavailable, proceed only with adequate remaining
45
+ evidence and list all omissions in the summary and artifact.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "VoC Researcher"
3
+ short_description: "Synthesize approved customer evidence without false recommendations."
4
+ default_prompt: "Use $voc-researcher for the relevant workflow."
@@ -0,0 +1,35 @@
1
+ {
2
+ "version": 1,
3
+ "skills": {
4
+ "design-taste-frontend": {
5
+ "source": "leonxlnx/taste-skill",
6
+ "sourceType": "github",
7
+ "skillPath": "skills/taste-skill/SKILL.md",
8
+ "computedHash": "6d838b246d0e35d0b53f4f23f98ba7a1dd561937e64f7d0c7553b0928e376c3e"
9
+ },
10
+ "find-skills": {
11
+ "source": "vercel-labs/skills",
12
+ "sourceType": "github",
13
+ "skillPath": "skills/find-skills/SKILL.md",
14
+ "computedHash": "9e1c8b3103f92fa8092568a44fe64858de7c5c9dc65ce4bea8f168080e889cfd"
15
+ },
16
+ "frontend-design": {
17
+ "source": "anthropics/skills",
18
+ "sourceType": "github",
19
+ "skillPath": "skills/frontend-design/SKILL.md",
20
+ "computedHash": "4eabc66183767153e404b39d1b839b1c37f2d82d86f0a0d7e880a579d8d62336"
21
+ },
22
+ "impeccable": {
23
+ "source": "pbakaus/impeccable",
24
+ "sourceType": "github",
25
+ "skillPath": ".agents/skills/impeccable/SKILL.md",
26
+ "computedHash": "f2a6bed082dd9bf7bf8b9244e6ac6eb80fc24ed8446425effe213655662dcab9"
27
+ },
28
+ "wireframe-spec": {
29
+ "source": "owl-listener/designer-skills",
30
+ "sourceType": "github",
31
+ "skillPath": "prototyping-testing/skills/wireframe-spec/SKILL.md",
32
+ "computedHash": "790a9e40f32453f4e2de4aac5ad8883a0aecb70b765b2201aa9370a37850bd37"
33
+ }
34
+ }
35
+ }