@slope-dev/slope 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +243 -0
  3. package/dist/cli/commands/auto-card.d.ts +2 -0
  4. package/dist/cli/commands/auto-card.d.ts.map +1 -0
  5. package/dist/cli/commands/auto-card.js +267 -0
  6. package/dist/cli/commands/auto-card.js.map +1 -0
  7. package/dist/cli/commands/briefing.d.ts +2 -0
  8. package/dist/cli/commands/briefing.d.ts.map +1 -0
  9. package/dist/cli/commands/briefing.js +133 -0
  10. package/dist/cli/commands/briefing.js.map +1 -0
  11. package/dist/cli/commands/card.d.ts +2 -0
  12. package/dist/cli/commands/card.d.ts.map +1 -0
  13. package/dist/cli/commands/card.js +144 -0
  14. package/dist/cli/commands/card.js.map +1 -0
  15. package/dist/cli/commands/claim.d.ts +2 -0
  16. package/dist/cli/commands/claim.d.ts.map +1 -0
  17. package/dist/cli/commands/claim.js +99 -0
  18. package/dist/cli/commands/claim.js.map +1 -0
  19. package/dist/cli/commands/classify.d.ts +2 -0
  20. package/dist/cli/commands/classify.d.ts.map +1 -0
  21. package/dist/cli/commands/classify.js +70 -0
  22. package/dist/cli/commands/classify.js.map +1 -0
  23. package/dist/cli/commands/dashboard.d.ts +4 -0
  24. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  25. package/dist/cli/commands/dashboard.js +156 -0
  26. package/dist/cli/commands/dashboard.js.map +1 -0
  27. package/dist/cli/commands/distill.d.ts +2 -0
  28. package/dist/cli/commands/distill.d.ts.map +1 -0
  29. package/dist/cli/commands/distill.js +91 -0
  30. package/dist/cli/commands/distill.js.map +1 -0
  31. package/dist/cli/commands/escalate.d.ts +2 -0
  32. package/dist/cli/commands/escalate.d.ts.map +1 -0
  33. package/dist/cli/commands/escalate.js +136 -0
  34. package/dist/cli/commands/escalate.js.map +1 -0
  35. package/dist/cli/commands/extract.d.ts +2 -0
  36. package/dist/cli/commands/extract.d.ts.map +1 -0
  37. package/dist/cli/commands/extract.js +147 -0
  38. package/dist/cli/commands/extract.js.map +1 -0
  39. package/dist/cli/commands/flows.d.ts +2 -0
  40. package/dist/cli/commands/flows.d.ts.map +1 -0
  41. package/dist/cli/commands/flows.js +156 -0
  42. package/dist/cli/commands/flows.js.map +1 -0
  43. package/dist/cli/commands/guard.d.ts +15 -0
  44. package/dist/cli/commands/guard.d.ts.map +1 -0
  45. package/dist/cli/commands/guard.js +207 -0
  46. package/dist/cli/commands/guard.js.map +1 -0
  47. package/dist/cli/commands/hook.d.ts +2 -0
  48. package/dist/cli/commands/hook.d.ts.map +1 -0
  49. package/dist/cli/commands/hook.js +299 -0
  50. package/dist/cli/commands/hook.js.map +1 -0
  51. package/dist/cli/commands/init.d.ts +6 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/init.js +421 -0
  54. package/dist/cli/commands/init.js.map +1 -0
  55. package/dist/cli/commands/map.d.ts +10 -0
  56. package/dist/cli/commands/map.d.ts.map +1 -0
  57. package/dist/cli/commands/map.js +591 -0
  58. package/dist/cli/commands/map.js.map +1 -0
  59. package/dist/cli/commands/next.d.ts +2 -0
  60. package/dist/cli/commands/next.d.ts.map +1 -0
  61. package/dist/cli/commands/next.js +28 -0
  62. package/dist/cli/commands/next.js.map +1 -0
  63. package/dist/cli/commands/plan.d.ts +2 -0
  64. package/dist/cli/commands/plan.d.ts.map +1 -0
  65. package/dist/cli/commands/plan.js +54 -0
  66. package/dist/cli/commands/plan.js.map +1 -0
  67. package/dist/cli/commands/plugin.d.ts +2 -0
  68. package/dist/cli/commands/plugin.d.ts.map +1 -0
  69. package/dist/cli/commands/plugin.js +118 -0
  70. package/dist/cli/commands/plugin.js.map +1 -0
  71. package/dist/cli/commands/release.d.ts +2 -0
  72. package/dist/cli/commands/release.d.ts.map +1 -0
  73. package/dist/cli/commands/release.js +64 -0
  74. package/dist/cli/commands/release.js.map +1 -0
  75. package/dist/cli/commands/report.d.ts +2 -0
  76. package/dist/cli/commands/report.d.ts.map +1 -0
  77. package/dist/cli/commands/report.js +68 -0
  78. package/dist/cli/commands/report.js.map +1 -0
  79. package/dist/cli/commands/review-state.d.ts +11 -0
  80. package/dist/cli/commands/review-state.d.ts.map +1 -0
  81. package/dist/cli/commands/review-state.js +193 -0
  82. package/dist/cli/commands/review-state.js.map +1 -0
  83. package/dist/cli/commands/review.d.ts +2 -0
  84. package/dist/cli/commands/review.d.ts.map +1 -0
  85. package/dist/cli/commands/review.js +53 -0
  86. package/dist/cli/commands/review.js.map +1 -0
  87. package/dist/cli/commands/roadmap.d.ts +2 -0
  88. package/dist/cli/commands/roadmap.d.ts.map +1 -0
  89. package/dist/cli/commands/roadmap.js +283 -0
  90. package/dist/cli/commands/roadmap.js.map +1 -0
  91. package/dist/cli/commands/session.d.ts +2 -0
  92. package/dist/cli/commands/session.d.ts.map +1 -0
  93. package/dist/cli/commands/session.js +232 -0
  94. package/dist/cli/commands/session.js.map +1 -0
  95. package/dist/cli/commands/standup.d.ts +2 -0
  96. package/dist/cli/commands/standup.d.ts.map +1 -0
  97. package/dist/cli/commands/standup.js +117 -0
  98. package/dist/cli/commands/standup.js.map +1 -0
  99. package/dist/cli/commands/status.d.ts +2 -0
  100. package/dist/cli/commands/status.d.ts.map +1 -0
  101. package/dist/cli/commands/status.js +148 -0
  102. package/dist/cli/commands/status.js.map +1 -0
  103. package/dist/cli/commands/tournament.d.ts +2 -0
  104. package/dist/cli/commands/tournament.d.ts.map +1 -0
  105. package/dist/cli/commands/tournament.js +60 -0
  106. package/dist/cli/commands/tournament.js.map +1 -0
  107. package/dist/cli/commands/validate.d.ts +2 -0
  108. package/dist/cli/commands/validate.d.ts.map +1 -0
  109. package/dist/cli/commands/validate.js +74 -0
  110. package/dist/cli/commands/validate.js.map +1 -0
  111. package/dist/cli/config.d.ts +2 -0
  112. package/dist/cli/config.d.ts.map +1 -0
  113. package/dist/cli/config.js +2 -0
  114. package/dist/cli/config.js.map +1 -0
  115. package/dist/cli/guards/commit-nudge.d.ts +7 -0
  116. package/dist/cli/guards/commit-nudge.d.ts.map +1 -0
  117. package/dist/cli/guards/commit-nudge.js +50 -0
  118. package/dist/cli/guards/commit-nudge.js.map +1 -0
  119. package/dist/cli/guards/compaction.d.ts +8 -0
  120. package/dist/cli/guards/compaction.d.ts.map +1 -0
  121. package/dist/cli/guards/compaction.js +79 -0
  122. package/dist/cli/guards/compaction.js.map +1 -0
  123. package/dist/cli/guards/explore.d.ts +8 -0
  124. package/dist/cli/guards/explore.d.ts.map +1 -0
  125. package/dist/cli/guards/explore.js +78 -0
  126. package/dist/cli/guards/explore.js.map +1 -0
  127. package/dist/cli/guards/hazard.d.ts +7 -0
  128. package/dist/cli/guards/hazard.d.ts.map +1 -0
  129. package/dist/cli/guards/hazard.js +43 -0
  130. package/dist/cli/guards/hazard.js.map +1 -0
  131. package/dist/cli/guards/next-action.d.ts +28 -0
  132. package/dist/cli/guards/next-action.d.ts.map +1 -0
  133. package/dist/cli/guards/next-action.js +196 -0
  134. package/dist/cli/guards/next-action.js.map +1 -0
  135. package/dist/cli/guards/push-nudge.d.ts +7 -0
  136. package/dist/cli/guards/push-nudge.d.ts.map +1 -0
  137. package/dist/cli/guards/push-nudge.js +53 -0
  138. package/dist/cli/guards/push-nudge.js.map +1 -0
  139. package/dist/cli/guards/review-tier.d.ts +7 -0
  140. package/dist/cli/guards/review-tier.d.ts.map +1 -0
  141. package/dist/cli/guards/review-tier.js +108 -0
  142. package/dist/cli/guards/review-tier.js.map +1 -0
  143. package/dist/cli/guards/scope-drift.d.ts +7 -0
  144. package/dist/cli/guards/scope-drift.d.ts.map +1 -0
  145. package/dist/cli/guards/scope-drift.js +47 -0
  146. package/dist/cli/guards/scope-drift.js.map +1 -0
  147. package/dist/cli/guards/stop-check.d.ts +7 -0
  148. package/dist/cli/guards/stop-check.d.ts.map +1 -0
  149. package/dist/cli/guards/stop-check.js +34 -0
  150. package/dist/cli/guards/stop-check.js.map +1 -0
  151. package/dist/cli/guards/subagent-gate.d.ts +7 -0
  152. package/dist/cli/guards/subagent-gate.d.ts.map +1 -0
  153. package/dist/cli/guards/subagent-gate.js +39 -0
  154. package/dist/cli/guards/subagent-gate.js.map +1 -0
  155. package/dist/cli/guards/version-check.d.ts +8 -0
  156. package/dist/cli/guards/version-check.d.ts.map +1 -0
  157. package/dist/cli/guards/version-check.js +49 -0
  158. package/dist/cli/guards/version-check.js.map +1 -0
  159. package/dist/cli/guards/workflow-gate.d.ts +7 -0
  160. package/dist/cli/guards/workflow-gate.d.ts.map +1 -0
  161. package/dist/cli/guards/workflow-gate.js +31 -0
  162. package/dist/cli/guards/workflow-gate.js.map +1 -0
  163. package/dist/cli/hooks-config.d.ts +9 -0
  164. package/dist/cli/hooks-config.d.ts.map +1 -0
  165. package/dist/cli/hooks-config.js +21 -0
  166. package/dist/cli/hooks-config.js.map +1 -0
  167. package/dist/cli/index.d.ts +19 -0
  168. package/dist/cli/index.d.ts.map +1 -0
  169. package/dist/cli/index.js +282 -0
  170. package/dist/cli/index.js.map +1 -0
  171. package/dist/cli/loader.d.ts +2 -0
  172. package/dist/cli/loader.d.ts.map +1 -0
  173. package/dist/cli/loader.js +2 -0
  174. package/dist/cli/loader.js.map +1 -0
  175. package/dist/cli/metaphor.d.ts +6 -0
  176. package/dist/cli/metaphor.d.ts.map +1 -0
  177. package/dist/cli/metaphor.js +26 -0
  178. package/dist/cli/metaphor.js.map +1 -0
  179. package/dist/cli/registries/api-registry.d.ts +11 -0
  180. package/dist/cli/registries/api-registry.d.ts.map +1 -0
  181. package/dist/cli/registries/api-registry.js +42 -0
  182. package/dist/cli/registries/api-registry.js.map +1 -0
  183. package/dist/cli/registries/file-registry.d.ts +13 -0
  184. package/dist/cli/registries/file-registry.d.ts.map +1 -0
  185. package/dist/cli/registries/file-registry.js +55 -0
  186. package/dist/cli/registries/file-registry.js.map +1 -0
  187. package/dist/cli/registries/index.d.ts +7 -0
  188. package/dist/cli/registries/index.d.ts.map +1 -0
  189. package/dist/cli/registries/index.js +20 -0
  190. package/dist/cli/registries/index.js.map +1 -0
  191. package/dist/cli/store.d.ts +3 -0
  192. package/dist/cli/store.d.ts.map +1 -0
  193. package/dist/cli/store.js +13 -0
  194. package/dist/cli/store.js.map +1 -0
  195. package/dist/cli/template-generator.d.ts +15 -0
  196. package/dist/cli/template-generator.d.ts.map +1 -0
  197. package/dist/cli/template-generator.js +562 -0
  198. package/dist/cli/template-generator.js.map +1 -0
  199. package/dist/core/advisor.d.ts +63 -0
  200. package/dist/core/advisor.d.ts.map +1 -0
  201. package/dist/core/advisor.js +395 -0
  202. package/dist/core/advisor.js.map +1 -0
  203. package/dist/core/briefing.d.ts +103 -0
  204. package/dist/core/briefing.d.ts.map +1 -0
  205. package/dist/core/briefing.js +380 -0
  206. package/dist/core/briefing.js.map +1 -0
  207. package/dist/core/builder.d.ts +70 -0
  208. package/dist/core/builder.d.ts.map +1 -0
  209. package/dist/core/builder.js +175 -0
  210. package/dist/core/builder.js.map +1 -0
  211. package/dist/core/ci-signals.d.ts +10 -0
  212. package/dist/core/ci-signals.d.ts.map +1 -0
  213. package/dist/core/ci-signals.js +145 -0
  214. package/dist/core/ci-signals.js.map +1 -0
  215. package/dist/core/config.d.ts +48 -0
  216. package/dist/core/config.d.ts.map +1 -0
  217. package/dist/core/config.js +42 -0
  218. package/dist/core/config.js.map +1 -0
  219. package/dist/core/constants.d.ts +14 -0
  220. package/dist/core/constants.d.ts.map +1 -0
  221. package/dist/core/constants.js +44 -0
  222. package/dist/core/constants.js.map +1 -0
  223. package/dist/core/dashboard.d.ts +40 -0
  224. package/dist/core/dashboard.d.ts.map +1 -0
  225. package/dist/core/dashboard.js +413 -0
  226. package/dist/core/dashboard.js.map +1 -0
  227. package/dist/core/dispersion.d.ts +12 -0
  228. package/dist/core/dispersion.d.ts.map +1 -0
  229. package/dist/core/dispersion.js +164 -0
  230. package/dist/core/dispersion.js.map +1 -0
  231. package/dist/core/escalation.d.ts +52 -0
  232. package/dist/core/escalation.d.ts.map +1 -0
  233. package/dist/core/escalation.js +105 -0
  234. package/dist/core/escalation.js.map +1 -0
  235. package/dist/core/flows.d.ts +44 -0
  236. package/dist/core/flows.d.ts.map +1 -0
  237. package/dist/core/flows.js +123 -0
  238. package/dist/core/flows.js.map +1 -0
  239. package/dist/core/formatter.d.ts +23 -0
  240. package/dist/core/formatter.d.ts.map +1 -0
  241. package/dist/core/formatter.js +301 -0
  242. package/dist/core/formatter.js.map +1 -0
  243. package/dist/core/guard.d.ts +124 -0
  244. package/dist/core/guard.d.ts.map +1 -0
  245. package/dist/core/guard.js +185 -0
  246. package/dist/core/guard.js.map +1 -0
  247. package/dist/core/handicap.d.ts +22 -0
  248. package/dist/core/handicap.d.ts.map +1 -0
  249. package/dist/core/handicap.js +111 -0
  250. package/dist/core/handicap.js.map +1 -0
  251. package/dist/core/index.d.ts +55 -0
  252. package/dist/core/index.d.ts.map +1 -0
  253. package/dist/core/index.js +62 -0
  254. package/dist/core/index.js.map +1 -0
  255. package/dist/core/leaderboard.d.ts +32 -0
  256. package/dist/core/leaderboard.d.ts.map +1 -0
  257. package/dist/core/leaderboard.js +98 -0
  258. package/dist/core/leaderboard.js.map +1 -0
  259. package/dist/core/loader.d.ts +17 -0
  260. package/dist/core/loader.d.ts.map +1 -0
  261. package/dist/core/loader.js +68 -0
  262. package/dist/core/loader.js.map +1 -0
  263. package/dist/core/metaphor.d.ts +73 -0
  264. package/dist/core/metaphor.d.ts.map +1 -0
  265. package/dist/core/metaphor.js +73 -0
  266. package/dist/core/metaphor.js.map +1 -0
  267. package/dist/core/metaphors/baseball.d.ts +3 -0
  268. package/dist/core/metaphors/baseball.d.ts.map +1 -0
  269. package/dist/core/metaphors/baseball.js +89 -0
  270. package/dist/core/metaphors/baseball.js.map +1 -0
  271. package/dist/core/metaphors/dnd.d.ts +3 -0
  272. package/dist/core/metaphors/dnd.d.ts.map +1 -0
  273. package/dist/core/metaphors/dnd.js +89 -0
  274. package/dist/core/metaphors/dnd.js.map +1 -0
  275. package/dist/core/metaphors/gaming.d.ts +3 -0
  276. package/dist/core/metaphors/gaming.d.ts.map +1 -0
  277. package/dist/core/metaphors/gaming.js +89 -0
  278. package/dist/core/metaphors/gaming.js.map +1 -0
  279. package/dist/core/metaphors/golf.d.ts +3 -0
  280. package/dist/core/metaphors/golf.d.ts.map +1 -0
  281. package/dist/core/metaphors/golf.js +89 -0
  282. package/dist/core/metaphors/golf.js.map +1 -0
  283. package/dist/core/metaphors/index.d.ts +8 -0
  284. package/dist/core/metaphors/index.d.ts.map +1 -0
  285. package/dist/core/metaphors/index.js +17 -0
  286. package/dist/core/metaphors/index.js.map +1 -0
  287. package/dist/core/metaphors/matrix.d.ts +3 -0
  288. package/dist/core/metaphors/matrix.d.ts.map +1 -0
  289. package/dist/core/metaphors/matrix.js +89 -0
  290. package/dist/core/metaphors/matrix.js.map +1 -0
  291. package/dist/core/metaphors/tennis.d.ts +3 -0
  292. package/dist/core/metaphors/tennis.d.ts.map +1 -0
  293. package/dist/core/metaphors/tennis.js +89 -0
  294. package/dist/core/metaphors/tennis.js.map +1 -0
  295. package/dist/core/pipeline.d.ts +39 -0
  296. package/dist/core/pipeline.d.ts.map +1 -0
  297. package/dist/core/pipeline.js +158 -0
  298. package/dist/core/pipeline.js.map +1 -0
  299. package/dist/core/player.d.ts +51 -0
  300. package/dist/core/player.d.ts.map +1 -0
  301. package/dist/core/player.js +101 -0
  302. package/dist/core/player.js.map +1 -0
  303. package/dist/core/plugins.d.ts +33 -0
  304. package/dist/core/plugins.d.ts.map +1 -0
  305. package/dist/core/plugins.js +176 -0
  306. package/dist/core/plugins.js.map +1 -0
  307. package/dist/core/pr-signals.d.ts +23 -0
  308. package/dist/core/pr-signals.d.ts.map +1 -0
  309. package/dist/core/pr-signals.js +178 -0
  310. package/dist/core/pr-signals.js.map +1 -0
  311. package/dist/core/registry.d.ts +20 -0
  312. package/dist/core/registry.d.ts.map +1 -0
  313. package/dist/core/registry.js +62 -0
  314. package/dist/core/registry.js.map +1 -0
  315. package/dist/core/report.d.ts +50 -0
  316. package/dist/core/report.d.ts.map +1 -0
  317. package/dist/core/report.js +392 -0
  318. package/dist/core/report.js.map +1 -0
  319. package/dist/core/roadmap.d.ts +74 -0
  320. package/dist/core/roadmap.d.ts.map +1 -0
  321. package/dist/core/roadmap.js +389 -0
  322. package/dist/core/roadmap.js.map +1 -0
  323. package/dist/core/roles.d.ts +23 -0
  324. package/dist/core/roles.d.ts.map +1 -0
  325. package/dist/core/roles.js +107 -0
  326. package/dist/core/roles.js.map +1 -0
  327. package/dist/core/standup.d.ts +44 -0
  328. package/dist/core/standup.d.ts.map +1 -0
  329. package/dist/core/standup.js +164 -0
  330. package/dist/core/standup.js.map +1 -0
  331. package/dist/core/store.d.ts +43 -0
  332. package/dist/core/store.d.ts.map +1 -0
  333. package/dist/core/store.js +11 -0
  334. package/dist/core/store.js.map +1 -0
  335. package/dist/core/team-handicap.d.ts +59 -0
  336. package/dist/core/team-handicap.d.ts.map +1 -0
  337. package/dist/core/team-handicap.js +227 -0
  338. package/dist/core/team-handicap.js.map +1 -0
  339. package/dist/core/tournament.d.ts +12 -0
  340. package/dist/core/tournament.d.ts.map +1 -0
  341. package/dist/core/tournament.js +249 -0
  342. package/dist/core/tournament.js.map +1 -0
  343. package/dist/core/types.d.ts +339 -0
  344. package/dist/core/types.d.ts.map +1 -0
  345. package/dist/core/types.js +4 -0
  346. package/dist/core/types.js.map +1 -0
  347. package/dist/core/validation.d.ts +23 -0
  348. package/dist/core/validation.d.ts.map +1 -0
  349. package/dist/core/validation.js +140 -0
  350. package/dist/core/validation.js.map +1 -0
  351. package/dist/index.d.ts +4 -0
  352. package/dist/index.d.ts.map +1 -0
  353. package/dist/index.js +9 -0
  354. package/dist/index.js.map +1 -0
  355. package/dist/mcp/index.d.ts +17 -0
  356. package/dist/mcp/index.d.ts.map +1 -0
  357. package/dist/mcp/index.js +363 -0
  358. package/dist/mcp/index.js.map +1 -0
  359. package/dist/mcp/index.test.d.ts +2 -0
  360. package/dist/mcp/index.test.d.ts.map +1 -0
  361. package/dist/mcp/index.test.js +497 -0
  362. package/dist/mcp/index.test.js.map +1 -0
  363. package/dist/mcp/registry.d.ts +17 -0
  364. package/dist/mcp/registry.d.ts.map +1 -0
  365. package/dist/mcp/registry.js +708 -0
  366. package/dist/mcp/registry.js.map +1 -0
  367. package/dist/mcp/sandbox.d.ts +15 -0
  368. package/dist/mcp/sandbox.d.ts.map +1 -0
  369. package/dist/mcp/sandbox.js +153 -0
  370. package/dist/mcp/sandbox.js.map +1 -0
  371. package/dist/store/index.d.ts +40 -0
  372. package/dist/store/index.d.ts.map +1 -0
  373. package/dist/store/index.js +324 -0
  374. package/dist/store/index.js.map +1 -0
  375. package/dist/tokens/colors.d.ts +47 -0
  376. package/dist/tokens/colors.d.ts.map +1 -0
  377. package/dist/tokens/colors.js +56 -0
  378. package/dist/tokens/colors.js.map +1 -0
  379. package/dist/tokens/css.d.ts +3 -0
  380. package/dist/tokens/css.d.ts.map +1 -0
  381. package/dist/tokens/css.js +58 -0
  382. package/dist/tokens/css.js.map +1 -0
  383. package/dist/tokens/index.d.ts +5 -0
  384. package/dist/tokens/index.d.ts.map +1 -0
  385. package/dist/tokens/index.js +6 -0
  386. package/dist/tokens/index.js.map +1 -0
  387. package/dist/tokens/spacing.d.ts +23 -0
  388. package/dist/tokens/spacing.d.ts.map +1 -0
  389. package/dist/tokens/spacing.js +28 -0
  390. package/dist/tokens/spacing.js.map +1 -0
  391. package/dist/tokens/typography.d.ts +28 -0
  392. package/dist/tokens/typography.d.ts.map +1 -0
  393. package/dist/tokens/typography.js +34 -0
  394. package/dist/tokens/typography.js.map +1 -0
  395. package/package.json +69 -0
@@ -0,0 +1,89 @@
1
+ export const tennis = {
2
+ id: 'tennis',
3
+ name: 'Tennis',
4
+ description: 'Sprints are sets, tickets are points, and your ranking tracks improvement. Aces, volleys, and match strategy.',
5
+ vocabulary: {
6
+ sprint: 'set',
7
+ ticket: 'point',
8
+ scorecard: 'match report',
9
+ handicapCard: 'player ranking',
10
+ briefing: 'pre-match scouting',
11
+ perfectScore: 'ace',
12
+ onTarget: 'game point',
13
+ review: 'post-match',
14
+ },
15
+ clubs: {
16
+ driver: 'Power Serve',
17
+ long_iron: 'Baseline Rally',
18
+ short_iron: 'Approach Shot',
19
+ wedge: 'Drop Shot',
20
+ putter: 'Tap-in',
21
+ },
22
+ shotResults: {
23
+ fairway: 'In Play',
24
+ green: 'Winner',
25
+ in_the_hole: 'Ace',
26
+ missed_long: 'Long (out of bounds)',
27
+ missed_short: 'Short (into net)',
28
+ missed_left: 'Wide Left',
29
+ missed_right: 'Wide Right',
30
+ },
31
+ hazards: {
32
+ bunker: 'Double Fault',
33
+ water: 'Unforced Error',
34
+ ob: 'Foot Fault',
35
+ rough: 'Bad Bounce',
36
+ trees: 'Net Cord',
37
+ },
38
+ conditions: {
39
+ wind: 'Wind',
40
+ rain: 'Rain Delay',
41
+ frost_delay: 'Schedule Delay',
42
+ altitude: 'Surface Change',
43
+ pin_position: 'Opponent Shift',
44
+ },
45
+ specialPlays: {
46
+ gimme: 'Walkover',
47
+ mulligan: 'Let (replay)',
48
+ provisional: 'Challenge',
49
+ lay_up: 'Moonball',
50
+ scramble: 'Doubles Rally',
51
+ },
52
+ missDirections: {
53
+ long: 'Long (over-hit)',
54
+ short: 'Short (under-hit)',
55
+ left: 'Wide Left',
56
+ right: 'Wide Right',
57
+ },
58
+ scoreLabels: {
59
+ eagle: 'Bagel Set',
60
+ birdie: 'Break of Serve',
61
+ par: 'Game Point',
62
+ bogey: 'Deuce',
63
+ double_bogey: 'Broken Serve',
64
+ triple_plus: 'Bageled',
65
+ },
66
+ sprintTypes: {
67
+ feature: 'Offensive Set',
68
+ feedback: 'Return Game',
69
+ infra: 'Court Maintenance',
70
+ bugfix: 'Error Correction',
71
+ research: 'Film Study',
72
+ flow: 'Rally',
73
+ 'test-coverage': 'Practice Match',
74
+ },
75
+ trainingTypes: {
76
+ driving_range: 'Serve Practice',
77
+ chipping_practice: 'Volley Drills',
78
+ putting_practice: 'Touch Practice',
79
+ lessons: 'Coaching Session',
80
+ },
81
+ nutrition: {
82
+ hydration: 'Hydration',
83
+ diet: 'Match Fitness',
84
+ recovery: 'Recovery',
85
+ supplements: 'Equipment',
86
+ stretching: 'Warm-up',
87
+ },
88
+ };
89
+ //# sourceMappingURL=tennis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tennis.js","sourceRoot":"","sources":["../../../src/core/metaphors/tennis.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAuB;IACxC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,+GAA+G;IAE5H,UAAU,EAAE;QACV,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,cAAc;QACzB,YAAY,EAAE,gBAAgB;QAC9B,QAAQ,EAAE,oBAAoB;QAC9B,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,YAAY;KACrB;IAED,KAAK,EAAE;QACL,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,eAAe;QAC3B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,QAAQ;KACjB;IAED,WAAW,EAAE;QACX,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;KAC3B;IAED,OAAO,EAAE;QACP,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,gBAAgB;QACvB,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,UAAU;KAClB;IAED,UAAU,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,gBAAgB;KAC/B;IAED,YAAY,EAAE;QACZ,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,eAAe;KAC1B;IAED,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;KACpB;IAED,WAAW,EAAE;QACX,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,SAAS;KACvB;IAED,WAAW,EAAE;QACX,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,YAAY;QACtB,IAAI,EAAE,OAAO;QACb,eAAe,EAAE,gBAAgB;KAClC;IAED,aAAa,EAAE;QACb,aAAa,EAAE,gBAAgB;QAC/B,iBAAiB,EAAE,eAAe;QAClC,gBAAgB,EAAE,gBAAgB;QAClC,OAAO,EAAE,kBAAkB;KAC5B;IAED,SAAS,EAAE;QACT,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,SAAS;KACtB;CACF,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { SlopeEvent } from './types.js';
2
+ import type { RecurringPattern, CommonIssuesFile } from './briefing.js';
3
+ /** An event cluster — events grouped by area and type */
4
+ export interface EventCluster {
5
+ type: string;
6
+ area: string;
7
+ sprints: number[];
8
+ events: SlopeEvent[];
9
+ description: string;
10
+ }
11
+ /** A candidate for promotion to common issues */
12
+ export interface PromotionCandidate {
13
+ cluster: EventCluster;
14
+ reason: string;
15
+ suggestedPattern: RecurringPattern;
16
+ }
17
+ /** Result of running the pipeline */
18
+ export interface PipelineResult {
19
+ clusters: EventCluster[];
20
+ candidates: PromotionCandidate[];
21
+ promoted: number;
22
+ skipped: number;
23
+ }
24
+ /**
25
+ * Cluster events by type + area, tracking which sprints they appear in.
26
+ */
27
+ export declare function clusterEvents(events: SlopeEvent[]): EventCluster[];
28
+ /**
29
+ * Find promotion candidates — clusters that appear in enough sprints.
30
+ */
31
+ export declare function findPromotionCandidates(clusters: EventCluster[], threshold?: number): PromotionCandidate[];
32
+ /**
33
+ * Run the full pipeline: cluster events → find candidates → promote to common issues.
34
+ * Respects existing manual entries — does not overwrite patterns without source: 'telemetry'.
35
+ */
36
+ export declare function runPipeline(events: SlopeEvent[], existingIssues: CommonIssuesFile, options?: {
37
+ threshold?: number;
38
+ }): PipelineResult;
39
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAexE,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAuBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAgClE;AAqBD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,GAAE,MAAoC,GAC9C,kBAAkB,EAAE,CA6BtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAAE,EACpB,cAAc,EAAE,gBAAgB,EAChC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,cAAc,CA6ChB"}
@@ -0,0 +1,158 @@
1
+ // SLOPE — Event-to-Common-Issues Pipeline
2
+ // Analyzes events across sprints to detect recurring patterns and
3
+ // promote them to common issues entries.
4
+ /** Minimum sprint appearances to trigger promotion */
5
+ const DEFAULT_PROMOTION_THRESHOLD = 2;
6
+ /** Category mapping from event type to common-issues category */
7
+ const EVENT_TYPE_TO_CATEGORY = {
8
+ failure: 'build',
9
+ dead_end: 'approach',
10
+ scope_change: 'scope',
11
+ hazard: 'general',
12
+ compaction: 'context',
13
+ decision: 'architecture',
14
+ };
15
+ /**
16
+ * Extract the area from an event — uses ticket_key prefix or data fields.
17
+ */
18
+ function extractArea(event) {
19
+ // Use data.file or data.area if present
20
+ if (event.data.file && typeof event.data.file === 'string') {
21
+ // Extract directory: "packages/core/src/foo.ts" → "packages/core/src"
22
+ const parts = event.data.file.split('/');
23
+ return parts.length > 1 ? parts.slice(0, -1).join('/') : event.data.file;
24
+ }
25
+ if (event.data.area && typeof event.data.area === 'string') {
26
+ return event.data.area;
27
+ }
28
+ // Fall back to ticket prefix: "S10-1" → "S10"
29
+ if (event.ticket_key) {
30
+ const match = event.ticket_key.match(/^([A-Za-z]+\d+)/);
31
+ return match ? match[1] : event.ticket_key;
32
+ }
33
+ return 'general';
34
+ }
35
+ /**
36
+ * Cluster events by type + area, tracking which sprints they appear in.
37
+ */
38
+ export function clusterEvents(events) {
39
+ const clusterMap = new Map();
40
+ for (const event of events) {
41
+ const area = extractArea(event);
42
+ const key = `${event.type}:${area}`;
43
+ if (!clusterMap.has(key)) {
44
+ clusterMap.set(key, {
45
+ type: event.type,
46
+ area,
47
+ sprints: [],
48
+ events: [],
49
+ description: '',
50
+ });
51
+ }
52
+ const cluster = clusterMap.get(key);
53
+ cluster.events.push(event);
54
+ if (event.sprint_number !== undefined && !cluster.sprints.includes(event.sprint_number)) {
55
+ cluster.sprints.push(event.sprint_number);
56
+ }
57
+ }
58
+ // Build descriptions from event data
59
+ for (const cluster of clusterMap.values()) {
60
+ cluster.sprints.sort((a, b) => a - b);
61
+ cluster.description = buildClusterDescription(cluster);
62
+ }
63
+ return [...clusterMap.values()];
64
+ }
65
+ function buildClusterDescription(cluster) {
66
+ const latestEvent = cluster.events[cluster.events.length - 1];
67
+ const parts = [];
68
+ if (latestEvent.data.error)
69
+ parts.push(String(latestEvent.data.error));
70
+ else if (latestEvent.data.description)
71
+ parts.push(String(latestEvent.data.description));
72
+ else if (latestEvent.data.desc)
73
+ parts.push(String(latestEvent.data.desc));
74
+ else if (latestEvent.data.reason)
75
+ parts.push(String(latestEvent.data.reason));
76
+ else if (latestEvent.data.approach)
77
+ parts.push(`Dead end: ${latestEvent.data.approach}`);
78
+ else if (latestEvent.data.choice)
79
+ parts.push(`Decision: ${latestEvent.data.choice}`);
80
+ if (parts.length === 0) {
81
+ parts.push(`${cluster.type} in ${cluster.area}`);
82
+ }
83
+ parts.push(`(${cluster.events.length} occurrence(s) across sprint(s) ${cluster.sprints.join(', ')})`);
84
+ return parts.join(' ');
85
+ }
86
+ /**
87
+ * Find promotion candidates — clusters that appear in enough sprints.
88
+ */
89
+ export function findPromotionCandidates(clusters, threshold = DEFAULT_PROMOTION_THRESHOLD) {
90
+ const candidates = [];
91
+ for (const cluster of clusters) {
92
+ if (cluster.sprints.length >= threshold) {
93
+ // Only promote miss-indicating event types
94
+ if (cluster.type === 'decision' || cluster.type === 'compaction')
95
+ continue;
96
+ const nextId = Date.now() + candidates.length;
97
+ candidates.push({
98
+ cluster,
99
+ reason: `${cluster.type} in ${cluster.area} appeared in ${cluster.sprints.length} sprint(s): ${cluster.sprints.join(', ')}`,
100
+ suggestedPattern: {
101
+ id: nextId,
102
+ title: `[telemetry] ${cluster.type} in ${cluster.area}`,
103
+ category: EVENT_TYPE_TO_CATEGORY[cluster.type] ?? 'general',
104
+ sprints_hit: [...cluster.sprints],
105
+ gotcha_refs: [],
106
+ description: cluster.description,
107
+ prevention: `Check ${cluster.area} area before starting — recurring ${cluster.type} pattern detected from telemetry.`,
108
+ reported_by: [...new Set(cluster.events
109
+ .map(e => e.data.player ?? e.data.session_player)
110
+ .filter(Boolean))],
111
+ },
112
+ });
113
+ }
114
+ }
115
+ return candidates;
116
+ }
117
+ /**
118
+ * Run the full pipeline: cluster events → find candidates → promote to common issues.
119
+ * Respects existing manual entries — does not overwrite patterns without source: 'telemetry'.
120
+ */
121
+ export function runPipeline(events, existingIssues, options = {}) {
122
+ const clusters = clusterEvents(events);
123
+ const candidates = findPromotionCandidates(clusters, options.threshold);
124
+ let promoted = 0;
125
+ let skipped = 0;
126
+ // Determine next ID from existing patterns
127
+ const maxExistingId = existingIssues.recurring_patterns.reduce((max, p) => Math.max(max, p.id), 0);
128
+ let nextId = maxExistingId + 1;
129
+ for (const candidate of candidates) {
130
+ // Check if this pattern already exists (by title match)
131
+ const existing = existingIssues.recurring_patterns.find(p => p.title === candidate.suggestedPattern.title);
132
+ if (existing) {
133
+ // Update sprints_hit on existing telemetry pattern
134
+ const newSprints = candidate.cluster.sprints.filter(s => !existing.sprints_hit.includes(s));
135
+ if (newSprints.length > 0) {
136
+ existing.sprints_hit.push(...newSprints);
137
+ existing.sprints_hit.sort((a, b) => a - b);
138
+ existing.description = candidate.suggestedPattern.description;
139
+ // Merge reported_by arrays (union, deduplicated)
140
+ const candidateReporters = candidate.suggestedPattern.reported_by ?? [];
141
+ const existingReporters = existing.reported_by ?? [];
142
+ existing.reported_by = [...new Set([...existingReporters, ...candidateReporters])];
143
+ promoted++;
144
+ }
145
+ else {
146
+ skipped++;
147
+ }
148
+ }
149
+ else {
150
+ // Add new pattern with sequential ID
151
+ candidate.suggestedPattern.id = nextId++;
152
+ existingIssues.recurring_patterns.push(candidate.suggestedPattern);
153
+ promoted++;
154
+ }
155
+ }
156
+ return { clusters, candidates, promoted, skipped };
157
+ }
158
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { GolfScorecard, HandicapCard } from './types.js';
2
+ import type { CommonIssuesFile, RecurringPattern } from './briefing.js';
3
+ /** Default player name when scorecard has no player field */
4
+ export declare const DEFAULT_PLAYER = "default";
5
+ /** Per-player handicap result */
6
+ export interface PlayerHandicap {
7
+ player: string;
8
+ scorecardCount: number;
9
+ handicapCard: HandicapCard;
10
+ }
11
+ /**
12
+ * Extract unique sorted player names from scorecards.
13
+ * Scorecards without a player field are attributed to DEFAULT_PLAYER.
14
+ */
15
+ export declare function extractPlayers(scorecards: GolfScorecard[]): string[];
16
+ /**
17
+ * Filter scorecards to those belonging to a specific player.
18
+ * Scorecards without a player field match DEFAULT_PLAYER.
19
+ */
20
+ export declare function filterScorecardsByPlayer(scorecards: GolfScorecard[], player: string): GolfScorecard[];
21
+ /**
22
+ * Compute handicap cards for all players found in scorecards.
23
+ * Each player gets an independent HandicapCard from their own scorecards.
24
+ */
25
+ export declare function computePlayerHandicaps(scorecards: GolfScorecard[]): PlayerHandicap[];
26
+ /**
27
+ * Compute handicap card for a single player.
28
+ * Returns zeroed stats if no scorecards match.
29
+ */
30
+ export declare function computePlayerHandicap(scorecards: GolfScorecard[], player: string): PlayerHandicap;
31
+ export type ReporterSeverity = 'low' | 'medium' | 'high';
32
+ /**
33
+ * Compute severity from reporter count.
34
+ * 1 reporter = low, 2 = medium, 3+ = high.
35
+ * Deduplicates reporters before counting.
36
+ */
37
+ export declare function computeReporterSeverity(reporters: string[]): ReporterSeverity;
38
+ /**
39
+ * Merge new patterns into existing common issues, accumulating reporters
40
+ * and unioning sprints_hit. Patterns are matched by id.
41
+ */
42
+ export declare function mergeHazardIndices(issues: CommonIssuesFile, newPatterns: RecurringPattern[], reporter: string): CommonIssuesFile;
43
+ /**
44
+ * Filter hazards by visibility: team-wide shows all,
45
+ * player filter shows only those reported by that player (or with no reporters).
46
+ */
47
+ export declare function filterHazardsByVisibility(issues: CommonIssuesFile, opts: {
48
+ player?: string;
49
+ teamWide?: boolean;
50
+ }): CommonIssuesFile;
51
+ //# sourceMappingURL=player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/core/player.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGxE,6DAA6D;AAC7D,eAAO,MAAM,cAAc,YAAY,CAAC;AAExC,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAMpE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,EAAE,EAC3B,MAAM,EAAE,MAAM,GACb,aAAa,EAAE,CAEjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,CAGpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,EAAE,EAC3B,MAAM,EAAE,MAAM,GACb,cAAc,CAOhB;AAID,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAK7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,gBAAgB,EAAE,EAC/B,QAAQ,EAAE,MAAM,GACf,gBAAgB,CA2BlB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C,gBAAgB,CAWlB"}
@@ -0,0 +1,101 @@
1
+ import { computeHandicapCard } from './handicap.js';
2
+ /** Default player name when scorecard has no player field */
3
+ export const DEFAULT_PLAYER = 'default';
4
+ /**
5
+ * Extract unique sorted player names from scorecards.
6
+ * Scorecards without a player field are attributed to DEFAULT_PLAYER.
7
+ */
8
+ export function extractPlayers(scorecards) {
9
+ const players = new Set();
10
+ for (const sc of scorecards) {
11
+ players.add(sc.player ?? DEFAULT_PLAYER);
12
+ }
13
+ return [...players].sort();
14
+ }
15
+ /**
16
+ * Filter scorecards to those belonging to a specific player.
17
+ * Scorecards without a player field match DEFAULT_PLAYER.
18
+ */
19
+ export function filterScorecardsByPlayer(scorecards, player) {
20
+ return scorecards.filter(sc => (sc.player ?? DEFAULT_PLAYER) === player);
21
+ }
22
+ /**
23
+ * Compute handicap cards for all players found in scorecards.
24
+ * Each player gets an independent HandicapCard from their own scorecards.
25
+ */
26
+ export function computePlayerHandicaps(scorecards) {
27
+ const players = extractPlayers(scorecards);
28
+ return players.map(player => computePlayerHandicap(scorecards, player));
29
+ }
30
+ /**
31
+ * Compute handicap card for a single player.
32
+ * Returns zeroed stats if no scorecards match.
33
+ */
34
+ export function computePlayerHandicap(scorecards, player) {
35
+ const filtered = filterScorecardsByPlayer(scorecards, player);
36
+ return {
37
+ player,
38
+ scorecardCount: filtered.length,
39
+ handicapCard: computeHandicapCard(filtered),
40
+ };
41
+ }
42
+ /**
43
+ * Compute severity from reporter count.
44
+ * 1 reporter = low, 2 = medium, 3+ = high.
45
+ * Deduplicates reporters before counting.
46
+ */
47
+ export function computeReporterSeverity(reporters) {
48
+ const unique = new Set(reporters);
49
+ if (unique.size >= 3)
50
+ return 'high';
51
+ if (unique.size >= 2)
52
+ return 'medium';
53
+ return 'low';
54
+ }
55
+ /**
56
+ * Merge new patterns into existing common issues, accumulating reporters
57
+ * and unioning sprints_hit. Patterns are matched by id.
58
+ */
59
+ export function mergeHazardIndices(issues, newPatterns, reporter) {
60
+ const existing = new Map();
61
+ for (const p of issues.recurring_patterns) {
62
+ existing.set(p.id, { ...p, reported_by: [...(p.reported_by ?? [])] });
63
+ }
64
+ for (const np of newPatterns) {
65
+ const ex = existing.get(np.id);
66
+ if (ex) {
67
+ // Merge: union sprints, accumulate reporter
68
+ const sprintSet = new Set([...ex.sprints_hit, ...np.sprints_hit]);
69
+ ex.sprints_hit = [...sprintSet].sort((a, b) => a - b);
70
+ const reporters = ex.reported_by ?? [];
71
+ if (!reporters.includes(reporter)) {
72
+ reporters.push(reporter);
73
+ }
74
+ ex.reported_by = reporters;
75
+ }
76
+ else {
77
+ // New pattern
78
+ existing.set(np.id, {
79
+ ...np,
80
+ reported_by: [reporter],
81
+ });
82
+ }
83
+ }
84
+ return { recurring_patterns: [...existing.values()] };
85
+ }
86
+ /**
87
+ * Filter hazards by visibility: team-wide shows all,
88
+ * player filter shows only those reported by that player (or with no reporters).
89
+ */
90
+ export function filterHazardsByVisibility(issues, opts) {
91
+ if (opts.teamWide || (!opts.player && !opts.teamWide)) {
92
+ return issues;
93
+ }
94
+ const filtered = issues.recurring_patterns.filter(p => {
95
+ if (!p.reported_by || p.reported_by.length === 0)
96
+ return true;
97
+ return p.reported_by.includes(opts.player);
98
+ });
99
+ return { recurring_patterns: filtered };
100
+ }
101
+ //# sourceMappingURL=player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/core/player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type PluginType = 'metaphor' | 'guard';
2
+ export interface PluginManifest {
3
+ type: PluginType;
4
+ id: string;
5
+ name: string;
6
+ version?: string;
7
+ description?: string;
8
+ }
9
+ export interface DiscoveredPlugin {
10
+ manifest: PluginManifest;
11
+ filePath: string;
12
+ }
13
+ export interface PluginLoadResult {
14
+ loaded: DiscoveredPlugin[];
15
+ errors: Array<{
16
+ filePath: string;
17
+ error: string;
18
+ }>;
19
+ }
20
+ export interface PluginsConfig {
21
+ enabled?: string[];
22
+ disabled?: string[];
23
+ }
24
+ export declare function validatePluginManifest(raw: unknown): {
25
+ valid: boolean;
26
+ errors: string[];
27
+ };
28
+ export declare function discoverPlugins(cwd: string): DiscoveredPlugin[];
29
+ export declare function isPluginEnabled(id: string, config?: PluginsConfig): boolean;
30
+ export declare function loadPluginMetaphors(cwd: string, config?: PluginsConfig): PluginLoadResult;
31
+ export declare function loadPluginGuards(cwd: string, config?: PluginsConfig): PluginLoadResult;
32
+ export declare function loadPlugins(cwd: string, config?: PluginsConfig): PluginLoadResult;
33
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBzF;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA2C/D;AAID,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAY3E;AAID,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAqCzF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAmDtF;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAQjF"}