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,103 @@
1
+ ---
2
+ name: spec-cleanup
3
+ description: Use when a draft Adaptive Spec Packet, PRD-like spec, or spec-swarm output needs cleanup before implementation, commit, validation, or handoff; especially when requirement order, release tiers, JSON contracts, task mapping, reconciliation, privacy boundaries, or implementation readiness may drift.
4
+ ---
5
+
6
+ # Spec Cleanup
7
+
8
+ Finalize a spec after interview or swarm work so an implementation agent can build from it without inventing product, contract, privacy, or sequencing decisions.
9
+
10
+ This is not another expert panel. It is the deterministic cleanup pass that converts good product thinking into an implementable packet.
11
+
12
+ ## Usage
13
+
14
+ Use after `spec-swarm`, after major packet edits, or before implementation begins:
15
+
16
+ ```text
17
+ Use $spec-cleanup on <packet-dir-or-spec-path>
18
+ ```
19
+
20
+ For Adaptive Spec Packets, read `spec.md`, `tasks.yaml`, and `events.jsonl`. For PRD-like specs, read the spec and any linked tasks, decisions, acceptance criteria, design notes, or validation plan.
21
+
22
+ If the user asks to apply cleanup, edit the packet. If the user asks for review only, return findings and concrete amendments without editing.
23
+
24
+ ## Cleanup Checks
25
+
26
+ Run these checks in order.
27
+
28
+ 1. Release tier and ordering
29
+ - Group requirements by `core`, `next increment`, `later`, and `deferred` when scope spans multiple releases.
30
+ - Keep documentation requirements beside the capability they document when docs are part of making that capability usable.
31
+ - Move unresolved hosted, privacy, auth, commercial, or runtime-adapter decisions out of core unless the packet already specifies the control.
32
+ - Do not let a later increment block validation or shipment of the core slice.
33
+
34
+ 2. Contract readiness
35
+ - Agent-facing commands need stable JSON fields, schema version, status, errors, handoff, next actions, and exit behavior.
36
+ - CLI behavior needs exact flags, accepted values, empty states, error states, approval states, and examples when agents will consume it.
37
+ - Analytics or event work needs event identity, timestamps, enums, dedupe behavior, denominator rules, and corrupt-record handling.
38
+ - Reject "parseable JSON" as a completion bar when the product depends on stable machine-readable output.
39
+
40
+ 3. Task mapping and sequencing
41
+ - Every task must reference the requirements it implements.
42
+ - Dependencies must reflect release order, not a single all-or-nothing chain.
43
+ - Split validation setup from final validation when the validator is meant to guard the work.
44
+ - Do not let broad packet-maintenance tasks bless unrelated packet self-edits. Packet edits should map to a requirement, event, or explicit maintenance reason.
45
+
46
+ 4. Human and agent workflow
47
+ - Define when prompts appear, whether they are blocking, how users skip or defer, and what non-interactive agents should do.
48
+ - Low-quality or low-rating flows should ask whether the user wants to reroute; never assume reroute.
49
+ - Review surfaces should show what changes, why, risk, provenance, approval boundary, resume command, and no-op or conflict states.
50
+
51
+ 5. Privacy, security, and source boundaries
52
+ - Treat raw prompts, qualitative feedback, customer context, private strategy, transcripts, and small-count aggregates as sensitive by default.
53
+ - Hosted sync or export needs explicit consent, included and excluded fields, local-only proof for dry runs, retention assumptions, and auth or tenancy boundaries.
54
+ - Generated local ledgers should be gitignored and have a local access or retention story when they can contain sensitive context.
55
+
56
+ 6. Implementation readiness
57
+ - Replace vague language such as "handle", "support analytics", "reviewable", "lightweight", or "agent-friendly" with testable behavior.
58
+ - Keep open questions only when the implementation can proceed safely without answering them.
59
+ - Add acceptance checks for fixture outputs, negative cases, stale decisions, privacy boundaries, and reconciliation findings.
60
+
61
+ ## Output
62
+
63
+ When editing, produce:
64
+
65
+ - A short summary of packet changes.
66
+ - Any human-judgment decisions still required.
67
+ - Validation commands run and their results.
68
+ - Drift or reconciliation caveats, especially if the packet still has unrelated dirty files.
69
+
70
+ When reviewing only, produce:
71
+
72
+ | Finding | Severity | Evidence | Proposed cleanup |
73
+ | --- | --- | --- | --- |
74
+
75
+ Use severity:
76
+
77
+ - `P0`: implementation would be unsafe or cross an unresolved approval/privacy boundary.
78
+ - `P1`: implementers will invent behavior or the core release cannot ship cleanly.
79
+ - `P2`: product quality, analytics, or workflow signal will be weak but not blocking.
80
+
81
+ ## Validation
82
+
83
+ After editing an Adaptive Spec Packet:
84
+
85
+ ```bash
86
+ bin/foo asp validate <packet-dir>
87
+ ```
88
+
89
+ If implementation-relevant files changed for the same packet, also run the packet reconciliation command supported by that packet, usually:
90
+
91
+ ```bash
92
+ bin/foo asp reconcile <packet-dir> --git-diff
93
+ ```
94
+
95
+ If the packet has no validator, state that clearly and do the closest structural check manually: required files, duplicate spec IDs, task refs, event JSONL validity, and changed-file mapping.
96
+
97
+ ## Error Handling
98
+
99
+ - If the artifact is missing or not identifiable, ask for the packet directory or spec path.
100
+ - If source files are unavailable, report exactly which cleanup checks could not run.
101
+ - If cleanup would require product judgment, source-boundary approval, privacy policy, or release appetite, ask one focused question and explain the default assumption you would otherwise carry.
102
+ - If validation fails after edits, fix the packet or report the failing command and do not claim the packet is implementation-ready.
103
+ - If unrelated worktree changes are present, do not stage, revert, or reconcile them as part of this skill unless the user explicitly asks.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Spec Cleanup"
3
+ short_description: "Finalize specs before implementation so requirements, tasks, contracts, privacy boundaries, and validation are build-ready."
4
+ default_prompt: "Use $spec-cleanup on this spec or packet before implementation."
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: spec-swarm
3
+ description: "Leaf craft for productfoo's spec-swarm runs: how to be a good role lens inside the private run contract that `foo swarm` hands to the coding harness. The conductor owns the choreography; this skill holds only the per-lens craft."
4
+ ---
5
+
6
+ ## Human-facing voice
7
+
8
+ Before writing for a person, load `foo skill product-copywriting/references/foo-voice.md`
9
+ and apply it within this skill's required output format. Keep the evidence record
10
+ and workflow responsibilities intact. If the reference cannot be loaded, report
11
+ the delivery gap and preserve evidence, uncertainty and dissent explicitly.
12
+
13
+
14
+ # spec-swarm (leaf craft)
15
+
16
+ `foo swarm <spec-path>` prepares the record and privately hands the coding
17
+ harness its run contract. Execute that handoff without quoting or reproducing
18
+ its roster or choreography in user-facing output. This skill adds only the
19
+ craft — how to be sharp *inside* a lens. It contains no
20
+ orchestration; if this file and the emitted contract disagree about
21
+ sequencing or budgets, the contract wins.
22
+
23
+ ## Lens craft (one candidate at a time, grill-me shaped)
24
+
25
+ - Form ONE candidate question, then its **recommended answer** — a lens that
26
+ asks without recommending is offloading judgment, not exercising it.
27
+ - Ground the recommendation in **evidence you can point to**: a spec line, a
28
+ code path, a test, a decision id. "The validation bar at line 115 checks X"
29
+ beats "the spec seems to lack X."
30
+ - Prefer **decision-forcing** over critique: a good question changes the
31
+ requirement, the boundary, the risk posture, or the validation bar; a
32
+ generic observation changes nothing.
33
+ - **Drop answered questions with the citation** — finding that the packet
34
+ already decided it (and saying where) is a contribution, not a wasted turn.
35
+ - Type every judgment honestly: `repo-evidence` (a source you inspected),
36
+ `approved-context`, `role-expertise` (your canon, no direct proof),
37
+ `agent-inference` (plausible synthesis — label it), `user-judgment` (taste,
38
+ risk appetite, strategy — only the user's). Collapsing these types is the
39
+ cardinal sin: the boundary between them is what the swarm exists to show.
40
+ - Carry one **dissent/caveat** line even when you agree — the caveat you
41
+ almost didn't write is usually the finding.
42
+
43
+ ## Question-quality sources by role
44
+
45
+ Borrow sharpening moves from the skill library: CPO → `cpo-lens` (outcome,
46
+ lifecycle, trust); Designer → `design-system` (states, hierarchy); Architect →
47
+ `ce-plan`, `interop-review` (boundaries, primitives); Security → `ready-for-release`,
48
+ `privacy-source-interview` (data handling, consent); Eval → golden sets, judge
49
+ calibration, no "demo looked good"; GTM/Field → `positioning-messaging`,
50
+ `competitive-positioning`; Growth/Business → value metric, willingness to pay,
51
+ payback. Steal the *question shape*, not the checklist.
52
+
53
+ ## Common craft failures
54
+
55
+ - Six generic reviews instead of six distinct lenses.
56
+ - Asking the user what another lens or the repo could answer.
57
+ - Presenting inference as fact; hiding confidence or evidence gaps behind
58
+ polished prose.
59
+ - Fake precision in cost, impact, or ROI numbers.
60
+ - Restating another lens's question with your role's vocabulary.
61
+
62
+ ## Usage
63
+
64
+ ```text
65
+ foo swarm specs/<packet>/spec.md
66
+ foo swarm "approved intake summary: <summary>" --depth fast
67
+ foo swarm check swarms/2026-07-08-<slug>.md
68
+ Use $spec-swarm on <path-or-summary>
69
+ ```
70
+
71
+ Run the CLI first; it hands the coding harness the contract this craft plugs into. If no
72
+ artifact is provided, ask for the spec path or approved intake summary before
73
+ starting. After accepted swarm changes, the contract's REPORT phase names the
74
+ finalization gate: run `$spec-cleanup` on the packet before implementation —
75
+ until then the spec is swarm-reviewed, not implementation-ready.
76
+
77
+ ## Error Handling
78
+
79
+ - **Spec or packet missing** — ask for it before any lens runs.
80
+ - **Contract missing** (skill invoked without a `foo swarm` run) — run the
81
+ CLI first; do not improvise the roster, budget, or report shape from memory.
82
+ - **A lens has no distinct question** — skip that lens and say why; padding
83
+ the roster is worse than a short swarm.
84
+ - **Artifact too thin or a product-shape rewrite without approved intake** —
85
+ route back to `interview-me` instead of manufacturing questions.
86
+ - **Asked to implement during the swarm** — stop and hand off; the swarm
87
+ surfaces judgment, it does not build.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Spec Swarm"
3
+ short_description: "Run cross-functional role lenses over a spec."
4
+ default_prompt: "Use $spec-swarm to sharpen this spec across Product, Design, Engineering, Data Science, and GTM."
@@ -0,0 +1,94 @@
1
+ <!--
2
+ SKILL.template.md — the single canonical skeleton for every spec-swarm-<persona> skill.
3
+
4
+ The 25 skills/spec-swarm-<persona>/SKILL.md files are GENERATED from this
5
+ template plus one data block per persona in template/personas/<persona>.md.
6
+ Do not hand-edit a generated SKILL.md; edit this template or the persona
7
+ data block and run:
8
+
9
+ node scripts/build-swarm-skills.mjs # regenerate all 25
10
+ node scripts/build-swarm-skills.mjs --verify # CI drift check
11
+
12
+ Placeholder syntax (resolved by scripts/build-swarm-skills.mjs):
13
+ {{field}} inline substitution from the persona data block
14
+ {{#if field}} {{/if}} marker lines; block kept only when field present
15
+
16
+ Spec packet: specs/swarm-template-v0 (swarm_template_v0).
17
+ -->
18
+ ---
19
+ name: {{name}}
20
+ description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from {{description_pov}} perspective. Use inside spec-swarm or when the user wants {{description_wants}}"
21
+ ---
22
+
23
+ # Spec Swarm: {{title}}
24
+
25
+ {{#if intro}}
26
+ {{intro}}
27
+ {{/if}}
28
+ {{#if intro_pov}}
29
+ Sharpen the spec from {{intro_pov}} point of view{{intro_flavor}}. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the {{intro_decision}} decision before moving on.{{intro_extra}}
30
+ {{/if}}
31
+
32
+ ## Usage
33
+
34
+ Use inside `spec-swarm` or directly on a draft {{usage_artifacts}}:
35
+
36
+ ```text
37
+ Use ${{name}} on <path-or-summary>
38
+ ```
39
+
40
+ {{foo_voice}}
41
+
42
+ ## Focus
43
+
44
+ {{focus}}
45
+
46
+ {{#if borrow}}
47
+ ## Borrow From Existing Skills
48
+
49
+ {{borrow}}
50
+
51
+ {{/if}}
52
+ {{#if grounding}}
53
+ ## Grounding
54
+
55
+ {{grounding}}
56
+
57
+ ## Question Bank
58
+
59
+ Draw the swarm's questions from this ranked bank; each forces a decision, exposes risk, or improves validation.
60
+
61
+ {{question_bank}}
62
+
63
+ {{/if}}
64
+ ## Expert Preflight Before User Questions
65
+
66
+ 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.
67
+
68
+ ## Legible Judgment
69
+
70
+ 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.
71
+
72
+ ## Question Selection
73
+
74
+ Ask only 2-3 questions total, one at a time{{question_bank_clause}}. Prefer questions that expose:
75
+
76
+ {{question_selection}}
77
+
78
+ If the answer can be found in {{sources}}, inspect those sources instead of asking.
79
+
80
+ ## Output
81
+
82
+ For each question, return:
83
+
84
+ - `Question`: {{question}}
85
+ - `Recommended answer`: the answer {{lens}} would push toward, based on the available evidence.
86
+ - `Why it matters`: one sentence.
87
+ - `Likely spec impact`: {{spec_impact}}
88
+
89
+ Wait for the user's answer before asking the next question. {{guardrails}}
90
+
91
+ ## Error Handling
92
+
93
+ - If no spec or packet is provided, ask for one before reviewing.
94
+ {{error_handling}}
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: spec-swarm-accessibility-inclusion
3
+ title: "Accessibility Inclusion"
4
+ description_pov: "an accessibility and inclusion"
5
+ description_wants: "questions about keyboard access, assistive technology, readability, inclusive states, enterprise accessibility risk, and equitable product behavior."
6
+ question: "one accessibility/inclusion question."
7
+ spec_impact: "accessibility requirement, state requirement, acceptance check, design constraint, or validation bar."
8
+ sources: "the spec, prototype, design system, tests, screenshots, or accessibility notes"
9
+ guardrails: "Do not treat accessibility as visual polish."
10
+ intro_pov: "an accessibility and inclusion"
11
+ intro_decision: "accessibility"
12
+ ---
13
+
14
+ ## Focus
15
+
16
+ - Keyboard access: can the core workflow be completed without a mouse?
17
+ - Assistive tech: what states, labels, and regions need semantic support?
18
+ - Readability: do dense dashboards, numbers, and confidence labels remain understandable?
19
+ - Inclusive states: what happens for missing, partial, conflicting, or low-confidence evidence?
20
+ - Enterprise risk: what accessibility requirement could block adoption?
21
+
22
+ ## Borrow From Existing Skills
23
+
24
+ - `ce-frontend-design`: semantic HTML, focus states, contrast, accessibility quality floor, and visual verification.
25
+ - `design-system`: existing design-system fit and ThisProduct-specific UI conventions.
26
+ - Make accessibility testable in acceptance criteria whenever it is relevant.
27
+ - `grill-me`: ask one question at a time with the recommended answer.
28
+
29
+ ## Question Selection
30
+
31
+ - inaccessible core workflow
32
+ - missing semantic/focus requirements
33
+ - unreadable dense information hierarchy
34
+ - status language that excludes or misleads
35
+ - enterprise accessibility blocker
36
+
37
+ ## Error Handling
38
+
39
+ - If UI details are not yet known, ask for testable accessibility requirements rather than visual implementation.
40
+ - If accessibility cannot be verified yet, include it in the validation bar.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: spec-swarm-ai-technical-pm
3
+ title: "AI / Technical PM"
4
+ description_pov: "an AI/technical product-manager"
5
+ description_wants: "product-shaping questions about whether a problem needs a model, how reliability tier dictates UX, designing for non-deterministic failure, the moving model frontier, prototype-first validation, and the durable moat — distinct from eval craft."
6
+ question: "one AI/technical product question."
7
+ spec_impact: "model-vs-no-model decision, reliability-tier UX requirement, human-in-the-loop boundary, timing/trigger, or non-goal."
8
+ sources: "the spec, repo, eval fixtures, prototypes, or approved evidence"
9
+ guardrails: "Do not let \"the demo worked\" stand in for a reliability tier. Do not treat non-determinism as an edge case. This is the product-shaping lens; route measurement and judge calibration to the Applied-AI Eval seat."
10
+ intro_pov: "an AI/technical product-manager's"
11
+ intro_flavor: " — the \"half researcher, half engineer\" archetype"
12
+ intro_decision: "model-shaping"
13
+ intro_extra: " This seat owns the product judgment around the model: what the frontier makes newly possible, whether a problem even needs a model, how the reliability tier dictates the UX, where the human stays in the loop, and whether now is the moment. It is upstream of eval craft: it decides what to build and whether to build it now; the Applied-AI Eval seat decides whether the built thing is measured and trustworthy."
14
+ ---
15
+
16
+ ## Focus
17
+
18
+ - Need-a-model: which parts are genuinely fuzzy/natural-language problems, and which are deterministic logic routed through an LLM out of habit?
19
+ - Reliability tier dictates UX: a 60% vs 95% vs 99.5% model is three different products (UI density, automation level, review surface).
20
+ - Design for the failure: what happens the 1-5% of the time it is confidently wrong, and how badly does that hit the user?
21
+ - The moving frontier: build for the slope, not the snapshot; build-now vs wait-for-the-model.
22
+ - Moat and validation: where is defensibility once the base model is commoditized, and did we fake the AI / prototype before building it?
23
+
24
+ ## Grounding
25
+
26
+ This lens carries the working judgment of AI product builders:
27
+
28
+ - Aakash Gupta — distance-from-the-end-user dictates eval rigor, the harness/evals as the durable moat (not how you wired the agent today), minimum viable quality, build-vs-wait on the capability curve.
29
+ - Lenny AI guests — Kevin Weil (reliability tier → product), Alex Komoroske (design for squishiness; the 1% that punches the user), Asha Sharma ("build for the slope, not the snapshot"), Nick Turley (the 2X-smarter test; evals as the lingua franca), Marily Nika (fake the AI first; MVQ), Brendan Foody ("the eval is the PRD"), Aparna Chennapragada ("prompt sets are the new PRDs; demos before memos").
30
+ - Scott Belsky — "unless you're building the core models, design advantages will outperform tech advantages"; disruptive interfaces capture value as models commoditize.
31
+
32
+ Marquee quotes (short, attributed):
33
+
34
+ - "If the model gets it right 60% of the time, you build a very different product than if 95% versus 99.5%." — Kevin Weil
35
+ - "Even at 99% accuracy, if it punches the user in the face 1% of the time, that's not a viable product." — Alex Komoroske
36
+ - "You have to build for the slope instead of the snapshot of where you are." — Asha Sharma
37
+ - "If the way you've wired together your agent today is your differentiator, you're highly likely to fail." — Ankur Goyal
38
+ - "Fake what the AI is going to be doing… don't build the model for your MVP." — Marily Nika
39
+
40
+ This lens shares the "evals are the PRD" idea with the Applied-AI Eval seat but from the opposite end — here it is the what-to-build spec; there it is the measurement apparatus.
41
+
42
+ ## Question Bank
43
+
44
+ 1. Does this even need a model? Which parts are genuinely natural-language/fuzzy-judgment, and which are deterministic logic routed through an LLM out of habit?
45
+ 2. What is the model's hit rate, and have we designed a different product for 60% vs 95% vs 99.5%? Match UI density and automation to the reliability tier.
46
+ 3. What happens the 1-5% of the time it is confidently wrong — and how badly does that failure hit the user? Average accuracy is a vanity metric.
47
+ 4. Are we building for the slope or the snapshot? Is this on the capability curve so it improves for free, or is it scaffolding the labs will delete?
48
+ 5. Build now or wait for the model? What specific capability threshold flips this from non-viable to viable, and what is the trigger to ship?
49
+ 6. Does the feature pass the 2X-smarter test — does it get meaningfully better as the model gets smarter, or is it orthogonal to model progress?
50
+ 7. What is the human-in-the-loop design — where does control stay with the user, where do low-confidence cases escalate, and has the agent earned its autonomy?
51
+ 8. Did we fake the AI first (hardcoded / Wizard-of-Oz / Figma) to validate the problem before investing in a model or pipeline?
52
+ 9. Is the eval the actual spec for this feature, and does it encode the use cases this product must be good at?
53
+ 10. Have we priced in non-determinism as the default (same input, different output, confident either way) with an escape hatch — not as an edge case?
54
+ 11. How does required eval rigor scale with distance from the end user and the stakes (a reviewed copilot vs an unverifiable healthcare action)?
55
+ 12. Where is the moat once the base model is commoditized — context/memory, the harness and evals, or a data flywheel — rather than how the agent is wired today?
56
+
57
+ ## Question Selection
58
+
59
+ - a deterministic problem dressed up as an AI feature
60
+ - a UX that ignores the model's actual reliability tier
61
+ - a confident-wrong failure mode with no fallback or escape hatch
62
+ - a bet on today's snapshot rather than the capability slope
63
+ - a moat that is just how the agent is wired this week
64
+
65
+ ## Error Handling
66
+
67
+ - If the reliability tier is unknown, recommend a prototype / faked-AI test to find it before committing the UX.
68
+ - If the spec involves an autonomous loop, route to the loop contract (B4) and the Responsible-AI & Agent Safety seat.
69
+ - If the question is eval measurement (judge calibration, golden sets), defer to the Applied-AI Eval seat.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: spec-swarm-analytics-engineering
3
+ title: "Analytics Engineering"
4
+ description_pov: "an analytics engineering"
5
+ description_wants: "questions about event names, source ownership, semantic layers, metric freshness, instrumentation feasibility, and whether non-technical users can query the data."
6
+ question: "one analytics engineering question."
7
+ spec_impact: "source contract, event requirement, freshness rule, semantic definition, or validation check."
8
+ sources: "the spec, repo, tests, fixture data, analytics docs, or spec packet files"
9
+ guardrails: "Do not invent event names or data sources."
10
+ intro_pov: "an analytics engineering"
11
+ intro_decision: "instrumentation"
12
+ ---
13
+
14
+ ## Focus
15
+
16
+ - Source ownership: where does each metric or status field come from?
17
+ - Event contract: what literal event, state, or table powers the signal?
18
+ - Freshness and reliability: how stale can the data be before the UI misleads?
19
+ - Semantic layer: can non-technical users query or understand the metric?
20
+ - Schema drift: what happens when upstream sources change?
21
+
22
+ ## Borrow From Existing Skills
23
+
24
+ - `ce-product-pulse`: metric-source routing, source windows, and stale-data skepticism.
25
+ - Check freshness, missing verification, and stale open questions without inventing a health score.
26
+ - `grill-me`: ask one question at a time with the recommended answer.
27
+
28
+ ## Question Selection
29
+
30
+ - metrics without source ownership
31
+ - event names or states that do not exist yet
32
+ - stale or laggy signals presented as current
33
+ - semantic definitions that block self-serve use
34
+ - brittle upstream dependency assumptions
35
+
36
+ ## Error Handling
37
+
38
+ - If no source exists for a metric, mark the metric as unavailable or proposed, not implemented.
39
+ - If instrumentation ownership is unclear, ask for the owner or propose an explicit open question.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: spec-swarm-applied-ai-eval
3
+ title: "Applied-AI Eval & Agent Reliability"
4
+ description_pov: "an applied-AI evaluation and agent-reliability"
5
+ description_wants: "questions about eval design for non-deterministic output, LLM-as-judge calibration, error analysis, golden sets, regression harnesses, agent loop reliability, and demos that look good but are not measured."
6
+ question: "one applied-AI eval or agent-reliability question."
7
+ spec_impact: "eval requirement, acceptance check, validation bar, reliability guardrail, or non-goal."
8
+ sources: "the spec, repo, eval fixtures, tests, traces, analytics docs, spec packet files, or approved evidence"
9
+ guardrails: "Do not accept \"the demo looked good\" as evidence. Do not treat an unvalidated judge as a measurement. Do not invent pass rates or agreement numbers."
10
+ intro_pov: "an applied-AI evaluation and agent-reliability"
11
+ intro_decision: "measurement"
12
+ intro_extra: " The goal is to refuse \"the demo looked good\" and \"we will add evals later\": treat the eval suite — and the measurement apparatus itself (the judge, the golden set, the annotation tool) — as first-class artifacts that must be validated, and treat any autonomous loop as something whose failure modes must be observable."
13
+ ---
14
+
15
+ ## Focus
16
+
17
+ - Eval from real data: is there an error-analysis loop over real traces before any automated metric exists?
18
+ - Judge calibration: for any LLM-as-judge, what is the judge–human agreement and the tolerated false-pass rate?
19
+ - Right metric, right task: a task-specific eval tied to a decision, not a generic benchmark or a vibe check.
20
+ - Agent reliability: where is autonomy constrained, control flow owned, and failure attributed to its first upstream step?
21
+ - Regression over time: golden-set provenance, criteria drift, online sampling, and a realistic target pass rate.
22
+
23
+ ## Grounding
24
+
25
+ This lens carries the working judgment of practitioners who built eval systems for shipped LLM/agent products. Use their reflexes as question sources:
26
+
27
+ - Hamel Husain — error analysis (open then axial coding to saturation), LLM-as-judge as a "trick to make people look at their data," a single Principal Domain Expert who owns pass/fail, binary over Likert.
28
+ - Shreya Shankar — "Who Validates the Validators?", the three gulfs (comprehension, specification, generalization), criteria drift, synthesizing assertions from observed failures.
29
+ - Eugene Yan — task-specific evals (NLI for factual consistency, precision/recall for classification), judge biases (position, verbosity, self-preference), fixing the eval process rather than buying a tool.
30
+ - Jason Liu — the six RAG evals (the Q/C/A relationships), retrieval precision/recall as leading indicators.
31
+ - Chip Huyen — functional correctness vs similarity-to-reference vs AI-as-judge; evaluation-driven development; per-component eval pipelines.
32
+ - Bryan Bischof — the failure funnel (attribute the first upstream failure), a suite of granular evaluators over one "god metric."
33
+ - Dex Horthy ("12-Factor Agents") — constrain autonomy, own the control flow and context window, human-in-the-loop via tool calls; "mostly software with the LLM at just the right points."
34
+
35
+ Also flag stale open questions and claims without evidence, and enforce the loop contract (B4) when the spec involves an autonomous loop.
36
+
37
+ ## Question Bank
38
+
39
+ 1. What is the eval plan, and does it start from real traces? Show the error-analysis loop (open then axial coding on real outputs to saturation) before any automated metric. No eval plan is a spec gap, not a detail.
40
+ 2. Who is the single Principal Domain Expert who owns "good vs bad," and what is the binary pass/fail definition? A committee or a vague 1–5 rubric is a red flag.
41
+ 3. For any LLM-as-judge, what is the judge–human agreement (true-positive and true-negative rate, or Cohen's κ) on held-out labels, and what false-pass rate are we accepting? An unvalidated judge is not a measurement.
42
+ 4. Which failures are deterministic enough for a code assertion or schema check, and which genuinely need a judge? Do not pay for a judge where a regex suffices.
43
+ 5. What is the eval metric per task type, and why is it not a generic benchmark? (Task-specific signal, not MMLU, ROUGE, or "looks fine.")
44
+ 6. If this is retrieval-augmented, which of the six Q/C/A relationships are measured, and is retrieval precision/recall (the leading indicator) instrumented first?
45
+ 7. If this is an agent or loop, where is autonomy constrained and the control flow owned, and where are the human-in-the-loop checkpoints? Does it actually need a loop, or is it mostly deterministic software?
46
+ 8. What is the failure funnel for the multi-step flow, and how do we attribute a failure to its first upstream step rather than cascaded downstream noise?
47
+ 9. Which of the three gulfs is the real blocker — comprehension (we do not understand the data), specification (we cannot state intent), or generalization (it breaks on production) — and are we about to fix the wrong one?
48
+ 10. What is the golden/eval set, how was it built (real vs synthetic), and how do we guard against criteria drift and benchmark contamination over time?
49
+ 11. What does the annotation / trace-viewing tool look like? If looking at data has friction, the eval program stalls; this is the highest-ROI infrastructure line.
50
+ 12. What is the online-vs-offline split — how do we keep sampling and annotating production traffic after launch, not just pass a static suite — and is the target pass rate realistic (a perfect score means the suite is too easy)?
51
+
52
+ ## Question Selection
53
+
54
+ - a spec with no eval plan, or evals deferred until "later"
55
+ - an LLM-as-judge with no measured agreement against human labels
56
+ - a generic benchmark or demo standing in for a task-specific eval
57
+ - an autonomous loop with unconstrained control flow or no failure attribution
58
+ - a target metric with no provenance, or a suspiciously perfect pass rate
59
+
60
+ ## Error Handling
61
+
62
+ - If there is no eval data yet, recommend the smallest error-analysis loop on real or synthetic traces instead of a fabricated metric.
63
+ - If output is non-deterministic and no judge is validated, mark quality claims as unverified rather than clearing them.
64
+ - If the spec involves an autonomous loop without a verification check or terminal states, route to the loop contract (B4) before clearing reliability.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: spec-swarm-business-gm-pm
3
+ title: "Business / GM PM"
4
+ description_pov: "a business/GM product-manager"
5
+ description_wants: "questions about value capture, monetization, pricing and packaging, the value metric, margins and unit economics, willingness to pay, and force-ranking growth vs engagement vs monetization."
6
+ question: "one business/monetization product question."
7
+ spec_impact: "value metric, packaging/tier change, margin guardrail, monetization owner, or non-goal."
8
+ sources: "the spec, repo, pricing page, cost model, or approved evidence"
9
+ guardrails: "Do not accept fake precision in pricing, margin, or ROI. Do not treat a model change as an optimization. A beautiful, well-positioned, well-funded feature can still be a business mistake."
10
+ intro_pov: "a business/GM product-manager's"
11
+ intro_flavor: " — the \"half MBA\" archetype"
12
+ intro_decision: "monetization"
13
+ intro_extra: " This seat owns the instinct: where is value created, where is it captured, and is the math viable for the business. It treats pricing, packaging, the value metric, and unit economics as product decisions, and it is the only seat that force-ranks growth vs engagement vs monetization."
14
+ ---
15
+
16
+ ## Focus
17
+
18
+ - Value metric: what do we charge on (seat, usage, transaction, outcome), and does it scale with both the value the customer gets and our cost to serve?
19
+ - Value capture vs creation: where is value captured, and is positioning (not the feature) doing the capture?
20
+ - Unit economics: margins, cost to serve, and whether any power user's cost can break the model.
21
+ - Willingness to pay: have we actually asked, and is "free" a deliberate strategy with a defined role?
22
+ - The force-rank: does this serve growth, engagement, or monetization — and which one wins here?
23
+
24
+ ## Grounding
25
+
26
+ This lens carries the working judgment of monetization-minded operators:
27
+
28
+ - Aakash Gupta — the value metric and its criteria, the subscription↔usage spectrum, AI pricing models and cost variance ("best users are most expensive users"), "your pricing problem is a positioning problem," the pricing dead zone, growing/skimming/following.
29
+ - Elena Verna — freemium as business strategy (not a CRO tactic), the monetization council (optimizations vs model changes), monetization "colors," reverse trials, payback over LTV:CAC, team network effects for B2B value capture.
30
+ - The Lenny canon — Madhavan Ramanujam (willingness to pay before the roadmap), business-as-one-equation / ARR bridge, gross vs contribution margin.
31
+
32
+ Marquee quotes (short, attributed):
33
+
34
+ - "Your best users are your most expensive users." — via Aakash Gupta
35
+ - "99% of these pricing dilemmas are actually just positioning dilemmas in disguise." — via Aakash Gupta
36
+ - "You cannot prioritize a product roadmap without having a willingness to pay conversation." — Madhavan Ramanujam
37
+ - "LTV is loaded with endless assumptions, which make LTV an entirely useless operating metric." — Elena Verna
38
+ - "The core problem isn't strategy. It's ownership." — Elena Verna, on monetization
39
+
40
+ ## Question Bank
41
+
42
+ 1. What is the value metric we charge on (seat, usage, transaction, outcome), and does it scale with both the value the customer gets and our cost to serve?
43
+ 2. Can any single power user's cost to serve break the unit economics — and where is the guardrail? (Margins are thin when LLM/API costs are in the loop.)
44
+ 3. Where exactly is value captured vs created — and is positioning, not the feature, doing the capture?
45
+ 4. Have we asked even one customer what they would pay, before setting the roadmap?
46
+ 5. Are we force-ranking engagement over monetization — and does the north star measure value we can capture, not just value delivered?
47
+ 6. What is the customer-acquisition payback period (months to recoup CAC), not the CAC:LTV ratio?
48
+ 7. Does this hit revenue or contribution margin — and is this an optimization (ship it) or a model change (price, value metric, plans, limits — needs an owner/approval)?
49
+ 8. Is "free" a deliberate business strategy with a defined role, and does it leave enough value unmet to drive the upgrade?
50
+ 9. Does each tier/package have a job? Is any tier under ~10% of customers, or any feature used by under ~30% of a plan (kill it or make it an add-on)?
51
+ 10. In B2B: does value compound across a team (team network effects), or does it stop at one user — and is the price high enough to fund the motion it needs (the dead zone)?
52
+ 11. Is this pricing move a one-way or two-way door — can we grandfather existing users and test new prices on new users first?
53
+ 12. If we convert a predictable model to a variable one (credits/usage), how do we over-communicate so we do not torch trust?
54
+
55
+ ## Question Selection
56
+
57
+ - a value metric that does not scale with cost to serve
58
+ - a power-user cost that can break margins
59
+ - a roadmap set with no willingness-to-pay conversation
60
+ - "free" as a bolt-on rather than a strategy
61
+ - a model change (price/metric/plans) with no owner
62
+
63
+ ## Error Handling
64
+
65
+ - If pricing/cost facts are unknown, mark them as model-change review triggers rather than clearing viability.
66
+ - If the question is capital allocation or cost control, defer to the Finance/CFO seat; this lens owns the revenue/value-capture side as a product decision.
67
+ - If the question is positioning or launch narrative, defer to PMM; this lens turns positioning into the commercial model.