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,488 @@
1
+ export type IngressPath = "mcp" | "nango" | "custom" | "browser";
2
+ export type ApprovalState = "excluded" | "approved" | "revoked";
3
+ export type SourceId = {
4
+ ingress_path: IngressPath;
5
+ provider: string;
6
+ connection_id: string;
7
+ external_id?: string;
8
+ };
9
+ export type EvidenceClass = "system_of_record" | "reference" | "communication" | "support_context" | "decision_context" | "context_only" | "approved_source_artifact";
10
+ export type Sensitivity = "low" | "medium" | "high";
11
+ export type Classification = {
12
+ source_category: string;
13
+ authority: "authoritative" | "supporting" | "context_only";
14
+ sensitivity: Sensitivity;
15
+ evidence_class: EvidenceClass;
16
+ model_exposure: "summary_only" | "full";
17
+ registered: boolean;
18
+ };
19
+ export declare const EVIDENCE_CLASS_GLOSS: Record<EvidenceClass, string>;
20
+ export declare const SOURCE_CATEGORY_REGISTRY: Record<string, Omit<Classification, "registered">>;
21
+ export declare const MOST_RESTRICTIVE_DEFAULT: Classification;
22
+ export declare function classifyProvider(provider: string): Classification;
23
+ export type NotionApprovedScope = {
24
+ page_ids?: string[];
25
+ database_ids?: string[];
26
+ window: {
27
+ from: string;
28
+ to: string;
29
+ };
30
+ };
31
+ export declare function parseNotionScope(raw: string): NotionApprovedScope;
32
+ export declare function notionScopeValidationError(raw: string): string | null;
33
+ export declare function notionScopeAllowsSelection(scope: string | undefined, selection: {
34
+ page_id?: string;
35
+ database_id?: string;
36
+ }): boolean;
37
+ export declare function sourceKey(id: Pick<SourceId, "provider" | "connection_id" | "external_id">): string;
38
+ export type CompanyCanonicalSourceIdentity<Provider extends string = string> = {
39
+ foo_workspace: string;
40
+ provider: Provider;
41
+ canonical_connection_key: string;
42
+ };
43
+ export type GongCanonicalSourceIdentity = CompanyCanonicalSourceIdentity<"gong">;
44
+ export type ZoomCanonicalSourceIdentity = CompanyCanonicalSourceIdentity<"zoom">;
45
+ export declare function gongCanonicalSourceIdentity(input: {
46
+ foo_workspace: string;
47
+ canonical_connection_key: string;
48
+ }): GongCanonicalSourceIdentity;
49
+ export declare function gongWorkspaceSourceId(identity: GongCanonicalSourceIdentity): SourceId;
50
+ export declare function zoomCanonicalSourceIdentity(input: {
51
+ foo_workspace: string;
52
+ canonical_connection_key: string;
53
+ }): ZoomCanonicalSourceIdentity;
54
+ export declare function zoomWorkspaceSourceId(identity: ZoomCanonicalSourceIdentity): SourceId;
55
+ export type DiscoveryConnectionReady = {
56
+ event: "discovery_connection_ready";
57
+ connection_owner: "workspace" | "user";
58
+ admin_ref?: string;
59
+ connection_ref: string;
60
+ };
61
+ export declare function gongConnectionReady(input: {
62
+ connection_ref: string;
63
+ admin_ref: string;
64
+ }): DiscoveryConnectionReady;
65
+ export declare function zoomConnectionReady(input: {
66
+ connection_ref: string;
67
+ admin_ref: string;
68
+ }): DiscoveryConnectionReady;
69
+ export declare function firefliesConnectionReady(input: {
70
+ connection_ref: string;
71
+ }): DiscoveryConnectionReady;
72
+ export declare class MemberConnectionRefusal extends Error {
73
+ readonly action: "disconnect" | "rotate" | "revoke";
74
+ readonly actor_ref: string;
75
+ constructor(action: "disconnect" | "rotate" | "revoke", actor_ref: string, provider?: string);
76
+ }
77
+ export declare class PersonalCredentialRefused extends Error {
78
+ readonly handoff: string;
79
+ constructor(provider?: string);
80
+ }
81
+ export type CompanyConnectionGrant = {
82
+ grant_ref: string;
83
+ member_ref: string;
84
+ };
85
+ export type GongConnectionGrant = CompanyConnectionGrant;
86
+ export type CompanyConnection<Provider extends string = string> = {
87
+ identity: CompanyCanonicalSourceIdentity<Provider>;
88
+ connection_ref: string;
89
+ connection_owner: "workspace";
90
+ connection_owner_role: "admin";
91
+ admin_ref: string;
92
+ connected: boolean;
93
+ members: string[];
94
+ session_refs: Array<{
95
+ session_ref: string;
96
+ member_ref: string;
97
+ }>;
98
+ grants: CompanyConnectionGrant[];
99
+ queued_lanes: Array<{
100
+ lane_ref: string;
101
+ member_ref: string;
102
+ }>;
103
+ unconsumed_receipts: Array<{
104
+ receipt_ref: string;
105
+ member_ref: string;
106
+ }>;
107
+ };
108
+ export type GongCompanyConnection = CompanyConnection<"gong">;
109
+ export type ZoomCompanyConnection = CompanyConnection<"zoom">;
110
+ export declare function connectCompanyConnection<Provider extends string>(input: {
111
+ identity: CompanyCanonicalSourceIdentity<Provider>;
112
+ connection_ref: string;
113
+ admin_ref: string;
114
+ presented_credential: {
115
+ issued_for: "company" | "personal";
116
+ };
117
+ }): CompanyConnection<Provider>;
118
+ export declare function disconnectCompanyConnection(state: CompanyConnection, actor_ref: string): CompanyConnection;
119
+ export declare function revokeCompanyConnection(state: CompanyConnection, actor_ref: string): CompanyConnection;
120
+ export declare function rotateCompanyConnection(state: CompanyConnection, actor_ref: string, next: {
121
+ connection_ref: string;
122
+ }): CompanyConnection;
123
+ export declare function assertCanApproveScope(state: CompanyConnection, actor_ref: string): void;
124
+ export declare function removeWorkspaceMember(state: CompanyConnection, member_ref: string): {
125
+ connection: CompanyConnection;
126
+ lapsed: {
127
+ session_refs: string[];
128
+ grants: string[];
129
+ queued_lanes: string[];
130
+ unconsumed_receipts: string[];
131
+ };
132
+ };
133
+ export type TeamsCanonicalSourceIdentity = {
134
+ foo_workspace: string;
135
+ provider: "microsoft-teams";
136
+ tenant_id: string;
137
+ };
138
+ export declare function teamsCanonicalSourceIdentity(input: {
139
+ foo_workspace: string;
140
+ tenant_id: string;
141
+ }): TeamsCanonicalSourceIdentity;
142
+ export declare function teamsTenantSourceId(identity: TeamsCanonicalSourceIdentity): SourceId;
143
+ export declare function teamsConnectionReady(input: {
144
+ connection_ref: string;
145
+ admin_ref: string;
146
+ }): DiscoveryConnectionReady;
147
+ export declare class TeamsMemberConnectionRefusal extends Error {
148
+ readonly action: "disconnect" | "rotate" | "revoke" | "transfer";
149
+ readonly actor_ref: string;
150
+ constructor(action: "disconnect" | "rotate" | "revoke" | "transfer", actor_ref: string);
151
+ }
152
+ export declare class TeamsPersonalCredentialRefused extends Error {
153
+ readonly handoff: string;
154
+ constructor();
155
+ }
156
+ export type TeamsConnectionGrant = {
157
+ grant_ref: string;
158
+ member_ref: string;
159
+ };
160
+ export type TeamsTenantConnection = {
161
+ identity: TeamsCanonicalSourceIdentity;
162
+ connection_ref: string;
163
+ connection_owner: "workspace";
164
+ connection_owner_role: "admin";
165
+ admin_ref: string;
166
+ connected: boolean;
167
+ members: string[];
168
+ session_refs: Array<{
169
+ session_ref: string;
170
+ member_ref: string;
171
+ }>;
172
+ grants: TeamsConnectionGrant[];
173
+ queued_lanes: Array<{
174
+ lane_ref: string;
175
+ member_ref: string;
176
+ }>;
177
+ unconsumed_receipts: Array<{
178
+ receipt_ref: string;
179
+ member_ref: string;
180
+ }>;
181
+ };
182
+ export declare function connectTeamsTenantConnection(input: {
183
+ identity: TeamsCanonicalSourceIdentity;
184
+ connection_ref: string;
185
+ admin_ref: string;
186
+ presented_credential: {
187
+ issued_for: "tenant" | "personal";
188
+ };
189
+ }): TeamsTenantConnection;
190
+ export declare function disconnectTeamsTenantConnection(state: TeamsTenantConnection, actor_ref: string): TeamsTenantConnection;
191
+ export declare function revokeTeamsTenantConnection(state: TeamsTenantConnection, actor_ref: string): TeamsTenantConnection;
192
+ export declare function rotateTeamsTenantConnection(state: TeamsTenantConnection, actor_ref: string, next: {
193
+ connection_ref: string;
194
+ }): TeamsTenantConnection;
195
+ export declare function assertCanApproveTeamsScope(state: TeamsTenantConnection, actor_ref: string): void;
196
+ export declare function removeTeamsWorkspaceMember(state: TeamsTenantConnection, member_ref: string): {
197
+ connection: TeamsTenantConnection;
198
+ lapsed: {
199
+ session_refs: string[];
200
+ grants: string[];
201
+ queued_lanes: string[];
202
+ unconsumed_receipts: string[];
203
+ };
204
+ };
205
+ export declare function transferTeamsTenantConnection(state: TeamsTenantConnection, input: {
206
+ actor_ref: string;
207
+ next_admin_ref: string;
208
+ second_admin_confirmation: {
209
+ confirmed_by: string;
210
+ };
211
+ }): TeamsTenantConnection;
212
+ export declare class SourceWriteRefused extends Error {
213
+ constructor(action: string);
214
+ }
215
+ export declare function refuseSourceWrite(action: string): never;
216
+ export declare function minimizeSummary(text: string): string;
217
+ type PacketConnectionState = CompanyConnection | TeamsTenantConnection;
218
+ export declare function loadPacketConnectionState(packetDir: string, source: Pick<SourceId, "provider" | "connection_id">): PacketConnectionState | null;
219
+ export declare function savePacketConnectionState(packetDir: string, source: Pick<SourceId, "provider" | "connection_id">, state: PacketConnectionState): void;
220
+ export type SlackScope = {
221
+ channel_ids: string[];
222
+ thread_ts?: string[];
223
+ window: {
224
+ start?: string;
225
+ end?: string;
226
+ };
227
+ };
228
+ export declare const SLACK_SCOPE_LIMITS: {
229
+ readonly policy_version: "slack-scope-0.1";
230
+ readonly max_channels_per_scope: 10;
231
+ readonly max_threads_per_scope: 25;
232
+ };
233
+ export declare const SLACK_CHANNEL_ID: RegExp;
234
+ export declare const SLACK_THREAD_SELECTOR: RegExp;
235
+ export declare function slackScopeValidationError(scope: SlackScope): string | null;
236
+ export declare function approvalStates(packetDir: string): Map<string, {
237
+ state: ApprovalState;
238
+ scope?: string;
239
+ scopes: string[];
240
+ }>;
241
+ export type DiscoveredServer = {
242
+ ingress_path?: IngressPath;
243
+ provider: string;
244
+ connection_id: string;
245
+ };
246
+ export type DiscoverRow = SourceId & {
247
+ source_category: string;
248
+ evidence_class: EvidenceClass;
249
+ evidence_class_label: string;
250
+ sensitivity: Sensitivity;
251
+ approval_state: ApprovalState;
252
+ registered: boolean;
253
+ discovered_at: string;
254
+ };
255
+ export declare function loadSurface(surfacePath: string): DiscoveredServer[];
256
+ export declare function discover(packetDir: string, servers: DiscoveredServer[], at: string): DiscoverRow[];
257
+ export declare function approve(packetDir: string, id: SourceId, opts: {
258
+ packet: string;
259
+ scope: string;
260
+ by: string;
261
+ at: string;
262
+ }): {
263
+ approved: boolean;
264
+ idempotent: boolean;
265
+ };
266
+ export declare function revoke(packetDir: string, id: SourceId, opts: {
267
+ packet: string;
268
+ by: string;
269
+ at: string;
270
+ priorScope?: string;
271
+ }): {
272
+ revoked: boolean;
273
+ purged: number;
274
+ event_digest: string;
275
+ };
276
+ export type BrowserConnection = {
277
+ provider: string;
278
+ team_ref: string;
279
+ connection_ref: string;
280
+ revoked_at?: string | null;
281
+ };
282
+ export declare function browserConnectionRef(input: {
283
+ team_ref: string;
284
+ connection_ref: string;
285
+ }): string;
286
+ export declare function browserConnectionSourceId(conn: BrowserConnection): SourceId;
287
+ export declare function browserConnectionReady(conn: BrowserConnection, admin_ref: string): DiscoveryConnectionReady;
288
+ export type BrowserIngressStage = "liveness" | "approval";
289
+ export type BrowserIngressDecision = {
290
+ allowed: true;
291
+ classification: Classification;
292
+ approval_state: "approved";
293
+ } | {
294
+ allowed: false;
295
+ stage: BrowserIngressStage;
296
+ reason: string;
297
+ classification: Classification;
298
+ approval_state: ApprovalState;
299
+ };
300
+ export declare function browserIngressDecision(packetDir: string, conn: BrowserConnection): BrowserIngressDecision;
301
+ export declare function recordSummary(packetDir: string, id: SourceId, opts: {
302
+ selection: string;
303
+ summary: string;
304
+ at: string;
305
+ }): {
306
+ recorded: boolean;
307
+ reason?: string;
308
+ };
309
+ export type ClaimDirection = "supports" | "contradicts";
310
+ export declare function recordClaim(packetDir: string, id: SourceId, opts: {
311
+ selection: string;
312
+ claim: string;
313
+ cites_task: string;
314
+ direction: ClaimDirection;
315
+ at: string;
316
+ }): {
317
+ recorded: boolean;
318
+ reason?: string;
319
+ };
320
+ export declare function appendSourceConflictEvent(packetDir: string, opts: {
321
+ source_id: SourceId;
322
+ conflicts: Array<{
323
+ criterion_id: string;
324
+ status?: string;
325
+ check_kind?: string;
326
+ }>;
327
+ note: string;
328
+ }, at: string): void;
329
+ export declare function appendIntegrationRecord(packetDir: string, record: Record<string, unknown>): void;
330
+ export type Receipt = {
331
+ schema_version: "0.1";
332
+ packet: string;
333
+ generated_at: string;
334
+ discovered: DiscoverRow[];
335
+ selected_and_read: Array<{
336
+ source_id: SourceId;
337
+ selection: string;
338
+ evidence_class_label: string;
339
+ }>;
340
+ claims: Array<{
341
+ source_id: SourceId;
342
+ selection: string;
343
+ cites_task: string;
344
+ direction: ClaimDirection;
345
+ evidence_class_label: string;
346
+ }>;
347
+ out_of_selection_scope: string;
348
+ excluded_after_evaluation: Array<{
349
+ source_id: SourceId;
350
+ reason: string;
351
+ }>;
352
+ summarized: number;
353
+ revoked: SourceId[];
354
+ coverage_note: string;
355
+ };
356
+ export declare function buildReceipt(packetDir: string, servers: DiscoveredServer[], at: string): Receipt;
357
+ export type LinearSelection = {
358
+ unit: "issue" | "project";
359
+ connection_id: string;
360
+ external_id: string;
361
+ url: string;
362
+ };
363
+ export declare function parseLinearSource(spec: string): LinearSelection;
364
+ export type LinearCandidate = {
365
+ source_id: SourceId & {
366
+ external_id: string;
367
+ };
368
+ evidence_authority: "approved-private-context";
369
+ title: string;
370
+ intent: string;
371
+ url: string;
372
+ state: string;
373
+ };
374
+ export type LinearPayload = {
375
+ title?: string;
376
+ description?: string;
377
+ state?: string;
378
+ };
379
+ export declare function buildLinearCandidate(selection: LinearSelection, payload: LinearPayload): LinearCandidate;
380
+ export declare const LINEAR_READONLY_TOOLS: Set<string>;
381
+ export declare function assertLinearReadOnlyTool(toolName: string): void;
382
+ export type JiraRawIssue = {
383
+ key: string;
384
+ summary: string;
385
+ status: string;
386
+ assignee_display?: string;
387
+ updated: string;
388
+ remote_links?: Array<{
389
+ url?: string;
390
+ title?: string;
391
+ }>;
392
+ };
393
+ export declare function jiraIssueProject(key: string): string;
394
+ export declare function jiraSiteHost(site: string): string;
395
+ export declare function parseJiraSource(raw: unknown): JiraRawIssue;
396
+ export type JiraScope = {
397
+ projects: string[];
398
+ jql?: string;
399
+ window: string;
400
+ };
401
+ export declare function parseJiraScope(raw: unknown): JiraScope;
402
+ export declare function jiraScopeString(scope: JiraScope): string;
403
+ export declare function parseJiraScopeString(scope: string): JiraScope;
404
+ export declare function jiraScopeCoversIssue(scope: JiraScope, issue: JiraRawIssue): boolean;
405
+ export type JiraCandidate = {
406
+ source_id: SourceId & {
407
+ external_id: string;
408
+ };
409
+ evidence_authority: "approved-private-context";
410
+ title: string;
411
+ intent: string;
412
+ url: string;
413
+ status: string;
414
+ updated: string;
415
+ };
416
+ export declare function buildJiraCandidate(input: {
417
+ site: string;
418
+ issue: JiraRawIssue;
419
+ }): JiraCandidate;
420
+ export declare const JIRA_READONLY_TOOLS: Set<string>;
421
+ export declare function assertJiraReadOnlyTool(toolName: string): void;
422
+ export type GithubSelection = {
423
+ unit: "pr" | "repo";
424
+ connection_id: string;
425
+ external_id: string;
426
+ owner: string;
427
+ repo: string;
428
+ pr?: number;
429
+ url: string;
430
+ };
431
+ export declare function parseGithubSource(spec: string): GithubSelection;
432
+ export declare function githubSourceId(selection: GithubSelection): SourceId;
433
+ export type GithubLinkage = {
434
+ linked: boolean;
435
+ authority: "foo-spec-trailer" | "none";
436
+ corroborating: string[];
437
+ };
438
+ export declare function githubLinkageForSpec(opts: {
439
+ specId: string;
440
+ commitMessages: string[];
441
+ branch?: string;
442
+ prBody?: string;
443
+ }): GithubLinkage;
444
+ export declare const GITHUB_READONLY_TOOLS: Set<string>;
445
+ export declare function assertGithubReadOnlyTool(toolName: string): void;
446
+ export type GithubPrEvidence = {
447
+ number?: number;
448
+ external_id?: string;
449
+ branch?: string;
450
+ body?: string;
451
+ title?: string;
452
+ commits?: Array<{
453
+ message?: string;
454
+ files?: string[];
455
+ }>;
456
+ merged?: boolean;
457
+ state?: string;
458
+ checks?: Array<{
459
+ name?: string;
460
+ conclusion?: string;
461
+ }>;
462
+ files_changed?: string[];
463
+ };
464
+ export type GithubFixture = GithubPrEvidence & {
465
+ pulls?: GithubPrEvidence[];
466
+ };
467
+ export type GithubSelectionReport = {
468
+ schema_version: "0.1";
469
+ packet: string;
470
+ source_id: SourceId;
471
+ unit: "pr" | "repo";
472
+ approval_state: ApprovalState;
473
+ linked: Array<{
474
+ external_id: string;
475
+ authority: GithubLinkage["authority"];
476
+ corroborating: string[];
477
+ }>;
478
+ unlinked_excluded: number;
479
+ note: string;
480
+ };
481
+ export declare function githubSelectionReport(opts: {
482
+ packet: string;
483
+ selection: GithubSelection;
484
+ approvalState: ApprovalState;
485
+ specId: string;
486
+ fixture?: GithubFixture;
487
+ }): GithubSelectionReport;
488
+ export {};