@event4u/agent-config 9.9.0 → 9.10.0

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 (384) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +153 -194
  3. package/README.md +1 -1
  4. package/dist/agent-src/commands/agent-status.md +12 -11
  5. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  6. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  7. package/dist/agent-src/commands/agents/user/review.md +65 -28
  8. package/dist/agent-src/commands/agents/user/show.md +82 -29
  9. package/dist/agent-src/commands/agents/user/update.md +2 -2
  10. package/dist/agent-src/commands/agents/user.md +16 -3
  11. package/dist/agent-src/commands/check-current-md.md +0 -10
  12. package/dist/agent-src/commands/condense.md +28 -97
  13. package/dist/agent-src/commands/cost/report.md +7 -0
  14. package/dist/agent-src/commands/fix/portability.md +0 -8
  15. package/dist/agent-src/commands/fix/refs.md +0 -8
  16. package/dist/agent-src/commands/humanize.md +2 -2
  17. package/dist/agent-src/commands/jira-ticket.md +1 -1
  18. package/dist/agent-src/commands/memory/load.md +11 -0
  19. package/dist/agent-src/commands/optimize/skills.md +1 -1
  20. package/dist/agent-src/commands/pr/create.md +4 -4
  21. package/dist/agent-src/commands/profile/show.md +3 -3
  22. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  23. package/dist/agent-src/commands/security-audit-config.md +1 -1
  24. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  25. package/dist/agent-src/commands/tdd.md +21 -0
  26. package/dist/agent-src/commands/team/delegate.md +2 -2
  27. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  28. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  29. package/dist/agent-src/commands/team.md +4 -1
  30. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  31. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  32. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  33. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  34. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  35. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  36. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  37. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  38. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  40. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  41. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  42. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  43. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  44. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  45. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  46. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  47. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  48. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  49. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  50. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  51. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  52. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  53. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  55. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  56. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  57. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  58. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  59. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  60. package/dist/agent-src/ghostwriter/README.md +2 -2
  61. package/dist/agent-src/packs/README.md +1 -1
  62. package/dist/agent-src/personas/README.md +5 -5
  63. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  64. package/dist/agent-src/personas/backend-architect.md +24 -23
  65. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  66. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  67. package/dist/agent-src/personas/product-owner.md +41 -38
  68. package/dist/agent-src/personas/qa.md +13 -13
  69. package/dist/agent-src/personas/security-engineer.md +22 -22
  70. package/dist/agent-src/presets/README.md +3 -3
  71. package/dist/agent-src/profiles/README.md +3 -3
  72. package/dist/agent-src/rules/active-remediation.md +2 -2
  73. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  74. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  75. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  76. package/dist/agent-src/rules/broken-access-control.md +4 -4
  77. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  78. package/dist/agent-src/rules/code-provenance.md +2 -2
  79. package/dist/agent-src/rules/commit-policy.md +4 -9
  80. package/dist/agent-src/rules/communication-through-line.md +5 -5
  81. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  82. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  83. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  84. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  85. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  86. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  87. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  88. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  89. package/dist/agent-src/rules/history-discipline.md +1 -1
  90. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  92. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  93. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  94. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  95. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  96. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  97. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  98. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  99. package/dist/agent-src/rules/persona-governance.md +2 -2
  100. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  101. package/dist/agent-src/rules/preservation-guard.md +10 -2
  102. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  103. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  104. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  105. package/dist/agent-src/rules/scale-discipline.md +1 -1
  106. package/dist/agent-src/rules/scope-control.md +1 -1
  107. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  108. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  109. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  110. package/dist/agent-src/rules/session-canary.md +1 -1
  111. package/dist/agent-src/rules/skill-quality.md +1 -1
  112. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  113. package/dist/agent-src/rules/source-of-truth.md +6 -5
  114. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  115. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  116. package/dist/agent-src/rules/think-before-action.md +5 -5
  117. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  118. package/dist/agent-src/rules/token-efficiency.md +2 -2
  119. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  120. package/dist/agent-src/rules/user-interaction.md +12 -0
  121. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  122. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  123. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  124. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  125. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  126. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  127. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  128. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  129. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  130. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  131. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  132. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  133. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  134. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  135. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  136. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  137. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  138. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  139. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  140. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  141. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  142. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  143. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  144. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  145. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  146. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  147. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  148. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  149. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  150. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  151. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  152. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  153. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  154. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  155. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
  156. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  157. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  158. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  159. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  160. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  161. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  162. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  163. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  164. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  165. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  166. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  167. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  168. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  169. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  170. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  171. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  172. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  173. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  174. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  175. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  176. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  177. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  178. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  179. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  180. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  181. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  182. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  183. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  184. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  185. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  186. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  187. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  188. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  189. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  190. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  191. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  192. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  193. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  194. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  195. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  196. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  197. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  198. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  199. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  200. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  201. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  202. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  203. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  204. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  205. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  206. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  207. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  208. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  209. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  210. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  211. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  212. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  213. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  214. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  215. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  216. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  217. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  218. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  219. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  220. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  221. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  222. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  223. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  224. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  225. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  226. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  227. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  228. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  229. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  230. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  231. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  232. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  233. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  234. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  235. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  236. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  237. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  238. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  239. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  240. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  241. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  242. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  243. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  244. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  245. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  246. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  247. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  248. package/dist/agent-src/templates/contexts.md +1 -1
  249. package/dist/agent-src/templates/features.md +1 -1
  250. package/dist/agent-src/templates/roadmaps.md +125 -116
  251. package/dist/agent-src/templates/rule.md +2 -1
  252. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  253. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  254. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  255. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  256. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  257. package/dist/agent-src/user-types/README.md +8 -8
  258. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  259. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  260. package/dist/agent-src/user-types/truck-driver.md +22 -20
  261. package/dist/cli/python/workspace_roles.js +2 -2
  262. package/dist/cli/python/workspace_roles.js.map +1 -1
  263. package/dist/discovery/deprecation-report.md +1 -1
  264. package/dist/discovery/discovery-manifest.json +88 -62
  265. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  266. package/dist/discovery/discovery-manifest.summary.md +3 -3
  267. package/dist/discovery/orphan-report.md +1 -1
  268. package/dist/discovery/packs.json +6 -5
  269. package/dist/discovery/trust-report.md +2 -2
  270. package/dist/discovery/workspaces.json +5 -4
  271. package/dist/hooks/dispatch.js +186 -12
  272. package/dist/install/install.mjs +8 -0
  273. package/dist/mcp/registry-manifest.json +3 -3
  274. package/dist/mcp/server.json +2 -2
  275. package/dist/mcp/server.mjs +1199 -857
  276. package/dist/router.json +1 -1
  277. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  278. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  279. package/dist/scripts/condense.js +234 -217
  280. package/dist/scripts/condense.js.map +1 -1
  281. package/dist/server/schemas/settings.js +4 -0
  282. package/dist/server/schemas/settings.js.map +1 -1
  283. package/dist/shared/userMd/utils.js +30 -0
  284. package/dist/shared/userMd/utils.js.map +1 -1
  285. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  286. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  287. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  288. package/package.json +1 -1
  289. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  290. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  291. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  292. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  293. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  294. package/src/config/agent-settings.template.yml +32 -2
  295. package/src/config/ci-local-parity.yml +142 -0
  296. package/src/config/gate-coverage.yml +127 -0
  297. package/src/config/preamble-payload-budget.json +44 -0
  298. package/src/scripts/_cli/cmd_doctor.ts +78 -2
  299. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  300. package/src/scripts/_lib/agents_overlay.ts +9 -0
  301. package/src/scripts/_lib/anchor_eval.ts +311 -0
  302. package/src/scripts/_lib/cc_transcript.ts +316 -0
  303. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  304. package/src/scripts/_lib/confusables.ts +101 -0
  305. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  306. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  307. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  308. package/src/scripts/_lib/preservation_migration.ts +291 -0
  309. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  310. package/src/scripts/_lib/scan_scope.ts +115 -0
  311. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  312. package/src/scripts/_lib/user_global_observations.ts +830 -0
  313. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  314. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  315. package/src/scripts/ai_council/blind_review.ts +0 -0
  316. package/src/scripts/ai_council/budget_guard.ts +90 -11
  317. package/src/scripts/ai_council/bundler.ts +2 -2
  318. package/src/scripts/ai_council/clients.ts +59 -3
  319. package/src/scripts/ai_council/config.ts +38 -0
  320. package/src/scripts/ai_council/orchestrator.ts +54 -9
  321. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  322. package/src/scripts/anchor_eval_falsify.ts +198 -0
  323. package/src/scripts/anchor_scoring_run.ts +239 -0
  324. package/src/scripts/annotate_discovery.ts +1 -65
  325. package/src/scripts/bench_quality_run.ts +168 -4
  326. package/src/scripts/cache_realization_report.ts +782 -0
  327. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  328. package/src/scripts/check_augment_description_cap.ts +15 -4
  329. package/src/scripts/check_ci_local_parity.ts +317 -0
  330. package/src/scripts/check_condensation.ts +96 -191
  331. package/src/scripts/check_context_paths.ts +38 -9
  332. package/src/scripts/check_gate_coverage.ts +299 -0
  333. package/src/scripts/check_iron_law_prominence.ts +22 -1
  334. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  335. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  336. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  337. package/src/scripts/check_originality_freshness.ts +167 -0
  338. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  339. package/src/scripts/check_proposal.ts +0 -0
  340. package/src/scripts/check_references.ts +0 -1
  341. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  342. package/src/scripts/check_site_links.ts +62 -3
  343. package/src/scripts/ci_status.ts +0 -0
  344. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  345. package/src/scripts/code_graph/build.ts +0 -0
  346. package/src/scripts/command_suggester/types.ts +0 -0
  347. package/src/scripts/compile_router.ts +10 -14
  348. package/src/scripts/condense.sh +3 -4
  349. package/src/scripts/condense.ts +247 -228
  350. package/src/scripts/cost/track.mjs +168 -33
  351. package/src/scripts/cost_summary.ts +33 -1
  352. package/src/scripts/council_cli.ts +45 -3
  353. package/src/scripts/discovery_graph.ts +0 -0
  354. package/src/scripts/encoding_corpus.ts +500 -0
  355. package/src/scripts/encoding_corpus_report.ts +216 -0
  356. package/src/scripts/generate_index.ts +19 -2
  357. package/src/scripts/install-hooks.sh +2 -2
  358. package/src/scripts/learning_sidecar.ts +0 -0
  359. package/src/scripts/lint_confusables.ts +10 -72
  360. package/src/scripts/lint_featured_skills.ts +0 -0
  361. package/src/scripts/lint_hidden_unicode.ts +208 -0
  362. package/src/scripts/lint_load_context.ts +17 -5
  363. package/src/scripts/lint_new_skill_gate.ts +9 -3
  364. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  365. package/src/scripts/lint_originality.ts +1 -1
  366. package/src/scripts/lint_skill_originality.ts +1 -1
  367. package/src/scripts/lint_ticket_buildable.ts +1 -1
  368. package/src/scripts/mcp_server/tools.ts +4 -4
  369. package/src/scripts/measure_scope_dedup.ts +224 -0
  370. package/src/scripts/memory_lookup.ts +0 -0
  371. package/src/scripts/mine_session.ts +98 -0
  372. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  373. package/src/scripts/preamble_byte_census.ts +574 -0
  374. package/src/scripts/probe_skill_registration.ts +2 -2
  375. package/src/scripts/redact_hook_capture.ts +13 -0
  376. package/src/scripts/release.ts +65 -10
  377. package/src/scripts/router_telemetry.ts +1 -1
  378. package/src/scripts/second_brain_retrieval.ts +14 -4
  379. package/src/scripts/skill_linter.ts +5 -0
  380. package/src/scripts/surface-tiers.yml +2 -0
  381. package/src/scripts/validate_pack_yaml.ts +0 -0
  382. package/src/server/schemas/settings.ts +8 -0
  383. package/src/shared/userMd/utils.ts +31 -0
  384. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -30,10 +30,10 @@ install:
30
30
 
31
31
  ## When to use
32
32
 
33
- When someone wants the best tips for a prediction / betting pool
33
+ Use when someone wants the best tips for a prediction / betting pool
34
34
  (kicktipp-style company pools — football WM, basketball WM, …) and the
35
- target is **pool points**, not match truth. Triggered by
36
- [`/prediction-pool`](../../commands/prediction-pool.md) (Steps 3–5) or directly
35
+ target is **pool points**, not match truth. Triggered by the
36
+ [`/prediction-pool`](../../commands/prediction-pool.md) command (Steps 3–5) or directly
37
37
  when a user asks to optimize / maximize their pool picks.
38
38
 
39
39
  **The one idea that makes this skill correct:** the highest-probability
@@ -48,22 +48,22 @@ more. **Always optimize the pool's points, never the truth of the match.**
48
48
  parsed (Procedure step 1). Strategy is a function of the rules.
49
49
  - **Answer EVERY open question.** A pool has scores *and* bonus / award /
50
50
  special questions ("which team supplies the top scorer?", "most yellow
51
- cards?", "champion?"). Scorelines only, bonus questions blank = a **failed
52
- run** — enumerate every open question in step 1, carry each to an answer
53
- (steps 5–6). No silent skips.
54
- - **Odds are the primary signal — multi-book consensus, not one book.**
55
- Bookmaker probabilities already fold in form, squad, injuries, travel,
56
- climate. Build the base from a **consensus across the 5–10 biggest
57
- publicly-viewable books** (step 2), de-vigged, **sharpness-weighted** —
58
- never mirror a single portal. Override only with *current* info (confirmed
51
+ cards?", "champion?"). Producing scorelines only and leaving the bonus
52
+ questions blank is a **failed run** — enumerate every open question in
53
+ step 1 and carry each to an answer (steps 5–6). No silent skips.
54
+ - **Odds are the primary signal — as a multi-book consensus, not one book.**
55
+ Bookmaker / market probabilities already fold in form, squad, injuries,
56
+ travel, climate. Build the base from a **consensus across the 5–10 biggest
57
+ publicly-viewable books** (step 2), de-vigged, **sharpness-weighted** — never
58
+ mirror a single portal. Only override with *current* information (confirmed
59
59
  lineups, late injuries, suspensions, manager change).
60
60
  - **No invented numbers.** Emit no probability you cannot derive from real
61
- odds or **actually executed** code. Tournament/outright/award numbers come
62
- from real markets **or** the executed Poisson helper — never a claimed
61
+ odds or from **actually executed** code. Tournament/outright/award numbers
62
+ come from real markets **or** the executed Poisson helper — never a claimed
63
63
  "I ran 10,000 simulations".
64
- - **Scorelines computed, not guessed.** EV-max tip per match from the executed
65
- grid optimiser (`score_ev.ts`, step 4a), never the eye. A 3:2 / 4:1 / 1:4 in
66
- the output = signature of a skipped computation.
64
+ - **Scorelines are computed, not guessed.** The EV-max tip per match comes
65
+ from the executed grid optimiser (`score_ev.ts`, step 4a), never the eye. A
66
+ 3:2 / 4:1 / 1:4 in the output is the signature of a skipped computation.
67
67
  - **One-sentence justification** per answer. Short.
68
68
 
69
69
  ## Procedure
@@ -73,42 +73,44 @@ more. **Always optimize the pool's points, never the truth of the match.**
73
73
  From the pool's rule page, extract and document:
74
74
 
75
75
  - Points for **exact result** / **goal (point) difference** / **tendency**.
76
- - **Every bonus / award / special question** (champion, top scorer, "team of
77
- the top scorer", group winners, most cards, longest unbeaten,
78
- will-there-be-a-red-card, over/under totals …). **Write them all down as an
79
- explicit checklist** — this list is the run's contract; every entry must
80
- reach an answer.
76
+ - **Every bonus / award / special question** the pool asks (champion, top
77
+ scorer, "team of the top scorer", group winners, most cards, longest
78
+ unbeaten, will-there-be-a-red-card, over/under totals …). **Write them all
79
+ down as an explicit checklist** — this list is the run's contract; every
80
+ entry must reach an answer.
81
81
  - **Joker / multiplier** rules, per-question point weights.
82
- - **Quote / rarity** scoring (rare correct tips score more)? — flips strategy
83
- toward contrarian (step 4).
84
- - Special scorings, **per-question deadlines**, **strategy limits** (e.g. max
85
- N identical tips).
82
+ - **Quote / rarity** scoring (rare correct tips score more)? — flips the
83
+ whole strategy toward contrarian (step 4).
84
+ - Special scorings, **per-question deadlines**, and **strategy limits**
85
+ (e.g. max N identical tips).
86
86
  - **The goal**: place well, or *win* a large pool? (changes variance — step 4.)
87
87
 
88
88
  ### 2. Build the data base — a consensus across the major books
89
89
 
90
- Primary signal: current bookmaker odds, **aggregated across the 5–10 biggest
91
- publicly-viewable books**, not a single portal:
90
+ Primary signal: current bookmaker odds, but **aggregated across the 5–10
91
+ biggest publicly-viewable books**, not a single portal:
92
92
 
93
- 1. **Collect** odds for each market (1X2, exact-score, outrights, and each
94
- special/award market a bonus question needs) from several books.
93
+ 1. **Collect** the odds for each market (1X2, exact-score, outrights, and
94
+ each special/award market a bonus question needs) from several books.
95
95
  Odds-comparison aggregators (Oddschecker, Oddsportal / Betexplorer) show
96
- many books at once; supplement with named books. Book list + weighting
97
- recipe in [`reference/odds-and-bonus.md`](reference/odds-and-bonus.md).
96
+ many books at once; supplement with named books. Concrete book list and
97
+ the weighting recipe live in [`reference/odds-and-bonus.md`](reference/odds-and-bonus.md).
98
98
  2. **De-vig each book** independently (remove its margin) → per-book implied
99
99
  probabilities. Raw odds sum to >100%; never treat them as probabilities.
100
100
  3. **Aggregate with a healthy weighting**, not a blind average: weight
101
- **sharp, low-margin books higher** (Pinnacle, Betfair Exchange),
102
- recreational books lower; weighted mean or trimmed median so one outlier
103
- book cannot swing the base. Result = the **consensus probability** — the
104
- calibration base.
105
- 4. **Single-book outlier = flag, not truth** — investigate *why* (priced-in
106
- injury? stale line?) before moving off consensus. Cross-portal agreement is
107
- signal; one portal disagreeing is a prompt to check, not to follow.
108
-
109
- Secondary (only when it adds signal the consensus has not absorbed): confirmed
110
- lineups, injuries, suspensions, manager change, recent form, home advantage,
111
- head-to-head, rest/travel, weather, model forecasts (Opta), Elo/SPI ratings.
101
+ **sharp, low-margin books higher** (Pinnacle, Betfair Exchange) and
102
+ recreational books lower; use a weighted mean or a trimmed median so one
103
+ outlier book cannot swing the base. The result is the **consensus
104
+ probability** — the calibration base.
105
+ 4. **Treat a single book's outlier as a flag, not a truth** — investigate
106
+ *why* (a known injury already priced? a stale line?) before moving off
107
+ consensus. Cross-portal agreement is signal; one portal disagreeing is a
108
+ prompt to check, not to follow.
109
+
110
+ Secondary (only when it adds signal the consensus has not yet absorbed):
111
+ confirmed lineups, injuries, suspensions, manager change, recent form, home
112
+ advantage, head-to-head, rest/travel, weather, model forecasts (Opta),
113
+ Elo/SPI ratings.
112
114
 
113
115
  ### 3. Per-match probabilities (sport block)
114
116
 
@@ -141,8 +143,9 @@ step-1 rules** — not the prettiest match.
141
143
 
142
144
  #### 4a. The EV-max scoreline is computed, never eyeballed
143
145
 
144
- Don't hand-pick a scoreline. Run the executed grid optimiser — builds the full
145
- Poisson score grid, returns the EV-max tip under the step-1 point tiers:
146
+ Do **not** hand-pick a scoreline. Run the executed grid optimiser — it builds
147
+ the full Poisson score grid and returns the expected-points-max tip under the
148
+ step-1 point tiers:
146
149
 
147
150
  ```bash
148
151
  npx tsx node_modules/@event4u/agent-config/src/scripts/prediction-pool/score_ev.ts --lh <home-xg> --la <away-xg> \
@@ -151,45 +154,48 @@ npx tsx node_modules/@event4u/agent-config/src/scripts/prediction-pool/score_ev.
151
154
  --tendency <t> --diff <d> --exact <e> # batch, prints a ranked table
152
155
  ```
153
156
 
154
- Two facts the grid makes unavoidable, intuition gets wrong:
155
-
156
- - **High scorelines almost never EV-max.** Under partial points a moderate
157
- favourite peaks at **1:0 / 2:0 / 2:1**; **1:0 wins surprisingly often**, top
158
- of the surface is *flat* (1:0 vs 2:1 vs 2:0 within hundredths). 3:2 / 4:1 /
159
- 1:4 never optimal — such a tip means the grid wasn't run.
160
- - **Draws under-tipped.** A correct draw banks the goal-difference tier on
161
- every draw scoreline, so in a close match (xG within ~0.4) a 1:1 can
162
- out-score a 1:0 — and for low-scoring even games (λ ≲ 1.0/side) a 0:0 is the
163
- EV-max. Let the grid decide; the eye tips too few draws.
164
-
165
- - **Standard fixed-point scoring + goal "place well"** → tip the grid's EV-max
166
- per match. **No contrarian** — only your tip scores, tipping "different"
167
- burns EV.
168
- - **Quote / rarity scoring** → weigh rarer-but-plausible results against payout;
169
- take rarity when `payout × probability` wins (raise `--exact` or post-process
170
- the ranked table by the multiplier).
157
+ Two facts the grid makes unavoidable — and intuition gets wrong:
158
+
159
+ - **High scorelines are almost never EV-max.** Under any partial-points rule a
160
+ moderate favourite peaks at **1:0 / 2:0 / 2:1**; **1:0 wins surprisingly
161
+ often**, and the top of the EV surface is *flat* (1:0 vs 2:1 vs 2:0 separated
162
+ by hundredths). A 3:2 / 4:1 / 1:4 tip is never the optimum — if a tip like
163
+ that appears, the grid was not run.
164
+ - **Draws are under-tipped.** A correctly-tipped draw banks the goal-difference
165
+ tier on every draw scoreline, so in a close match (xG within ~0.4) a 1:1 can
166
+ out-score a 1:0. The grid surfaces this; the eye does not. People tip too few
167
+ draws — let the computation, not the gut, decide.
168
+
169
+ - **Standard fixed-point scoring + goal "place well"** → tip the grid's
170
+ EV-max per match. **No contrarian** — only your tip matters for your score,
171
+ so deliberately tipping "different" just burns EV.
172
+ - **Quote / rarity scoring** → weigh rarer-but-plausible results against their
173
+ higher payout; take rarity when `payout × probability` wins (raise `--exact`
174
+ weight or post-process the ranked table by the multiplier).
171
175
 
172
176
  #### 4b. Large pool, goal "win it" — measure P(finish 1st), don't guess
173
177
 
174
- Goal = **win** a large pool → target flips from E(points) to **P(finish ahead
175
- of the field)**; pure EV-max converges with the crowd, can't open a gap.
176
- Measure it with the executed field simulator, not a "rough Kelly" hand-wave:
178
+ When the goal is to **win** a large pool (not place), the target flips from
179
+ E(points) to **P(finish ahead of the whole field)** — and pure EV-max converges
180
+ with the crowd, so it cannot open a gap. Measure it with the executed field
181
+ simulator instead of a "rough Kelly" hand-wave:
177
182
 
178
183
  ```bash
179
184
  npx tsx node_modules/@event4u/agent-config/src/scripts/prediction-pool/pool_winsim.ts pool.json --runs 4000 --max-flips 4
180
185
  ```
181
186
 
182
- Models the field as softmax-EV tippers, reports `P(win)` for EV-max-everywhere,
183
- then greedily reports **which few tips to flip** off EV-max (EV cost + P(win)
184
- gain each). Read it as the field threshold, empirically:
187
+ It models the field as softmax-EV tippers, reports `P(win)` for the
188
+ EV-max-everywhere baseline, then greedily reports **which few tips to flip**
189
+ off EV-max (and the EV cost + P(win) gain of each). Read the output as the
190
+ field threshold, empirically:
185
191
 
186
- - Pool **N < 20** → sim shows flips barely move P(win); maximize EV, ignore the
187
- field.
188
- - **20 ≤ N < 100 and in the prize positions** → maximize EV.
189
- - **N ≥ 100, or outside the top ~20%** → take the sim's suggested flips: a
190
- handful of higher-variance scorelines on high-consensus matches lift P(win)
191
- most per unit EV given up. Flip only what the sim says pays — variance you
192
- don't need is wasted EV.
192
+ - Pool **N < 20** → the sim shows flips barely move P(win); maximize EV, ignore
193
+ the field.
194
+ - **20 ≤ N < 100 and you are in the prize positions** → maximize EV.
195
+ - **N ≥ 100, or you are outside the top ~20%** → take the simulator's
196
+ suggested flips: a handful of higher-variance scorelines on high-consensus
197
+ matches lift P(win) most per unit of EV given up. Flip only what the sim says
198
+ pays — variance you don't need is wasted EV.
193
199
 
194
200
  Respect all strategy limits from step 1 (max identical tips, etc.).
195
201
 
@@ -200,8 +206,9 @@ question type — full taxonomy + per-type method in
200
206
  [`reference/odds-and-bonus.md`](reference/odds-and-bonus.md):
201
207
 
202
208
  - **Tournament structure** (group winners, KO rounds, finalists, champion):
203
- real **outright market odds** ("to win group", "to reach final", "outright
204
- winner") aggregated per step 2, **or** the executed Poisson simulator:
209
+ use real **outright market odds** ("to win group", "to reach final",
210
+ "outright winner") aggregated per step 2, **or** the executed Poisson
211
+ tournament simulator:
205
212
 
206
213
  ```bash
207
214
  npx tsx node_modules/@event4u/agent-config/src/scripts/prediction-pool/poisson_sim.ts <teams-xg.json> --runs 20000
@@ -214,18 +221,18 @@ question type — full taxonomy + per-type method in
214
221
  - **Award / player markets** (top scorer, most assists, "which team supplies
215
222
  the top scorer", golden boot, most cards): use the matching **special
216
223
  market** — e.g. aggregate per-player "top goalscorer" odds **by team** to
217
- answer "which team has the top scorer". No clean market → derive from a
218
- stated model (squad strength × games-expected) and **label it a model
219
- estimate**, not a market number.
224
+ answer "which team has the top scorer". Where no clean market exists, derive
225
+ from a stated model (e.g. squad strength × games-expected) and **label it
226
+ as a model estimate**, not a market number.
220
227
 
221
- - **Binary / over-under specials** (red card yes/no, over/under total
222
- goals/cards): de-vig the consensus probability for the line, pick the EV-max
223
- side under the question's point weight.
228
+ - **Binary / over-under specials** (will there be a red card, over/under total
229
+ goals/cards): take the de-vigged consensus probability for the line and pick
230
+ the EV-max side under the question's point weight.
224
231
 
225
232
  Optimize every answer on the same expected-points basis as the scores. Re-run
226
233
  as late as each question's deadline allows: re-check confirmed lineups,
227
- injuries, suspensions, odds movement, then adjust. The per-question deadline is
228
- the only hard constraint.
234
+ injuries, suspensions, and odds movement, then adjust. The per-question
235
+ deadline is the only hard constraint.
229
236
 
230
237
  ## Output format
231
238
 
@@ -238,59 +245,61 @@ the only hard constraint.
238
245
  `Books used` names the consensus base (e.g. "consensus of 7 books, sharp-weighted").
239
246
 
240
247
  2. **Bonus & special answers** — one row per open question from the step-1
241
- checklist, **every entry answered** (none blank):
248
+ checklist, **every entry answered** (none left blank):
242
249
 
243
250
  ```
244
251
  Question | Answer | Prob / EV | Risk | 1-line reason | Source (market / model)
245
252
  ```
246
253
 
247
254
  3. **Group standings and the full bracket** where the event has them.
248
- 4. **Self-check note** — (a) tips reconcile with
249
- [`reference/ev-fixtures.md`](reference/ev-fixtures.md) (known rules + odds →
250
- known-good EV tip); (b) bonus table has the **same number of rows as the
251
- step-1 checklist** — a shorter table means a question was dropped. If your
252
- method disagrees with a fixture, your method is wrong — find the error
253
- (usually a forgotten partial-points term, un-de-vigged odds, or following
254
- one book instead of the consensus), don't ship the tip.
255
+ 4. **Self-check note** — (a) confirm the tips reconcile with
256
+ [`reference/ev-fixtures.md`](reference/ev-fixtures.md) (known pool rules +
257
+ market odds → a known-good EV tip); (b) confirm the bonus table has the
258
+ **same number of rows as the step-1 checklist** — a shorter table means a
259
+ question was dropped. If your method disagrees with a fixture, your method
260
+ is wrong — find the error (usually a forgotten partial-points term,
261
+ un-de-vigged odds, or following one book instead of the consensus), don't
262
+ ship the tip.
255
263
 
256
264
  Handed back to [`/prediction-pool`](../../commands/prediction-pool.md) for the approval
257
265
  gate — the skill never enters or submits anything.
258
266
 
259
267
  ## Gotcha
260
268
 
261
- - **Answering only the scores.** Bonus / award questions carry real points;
262
- leaving them blank because they are "not a scoreline" forfeits them. The
263
- step-1 checklist exists so every question is answered.
269
+ - **Answering only the scores.** A pool's bonus / award questions carry real
270
+ points; leaving them blank because they are "not a scoreline" silently
271
+ forfeits them. The step-1 checklist exists so every question is answered.
264
272
  - **Following one portal.** A single book can be stale or shaded; build the
265
- base from a sharp-weighted consensus across several; an outlier is a flag to
266
- investigate, not a number to copy.
267
- - **Tipping the modal result, not the EV-maximal one.** The single most likely
268
- scoreline rarely maximizes partial points — run `score_ev.ts` across the
269
- result grid, don't eyeball the favourite.
270
- - **Hand-picking a high scoreline.** 3:2 / 4:1 / 1:4 never EV-max under partial
271
- points — moderate favourites peak at 1:0 / 2:0 / 2:1. A high tip = grid
272
- skipped; run `score_ev.ts`.
273
+ base from a sharp-weighted consensus across several and treat an outlier as
274
+ a flag to investigate, not a number to copy.
275
+ - **Tipping the modal result, not the EV-maximal one.** The single most
276
+ likely scoreline rarely maximizes partial points — run `score_ev.ts` across
277
+ the result grid, don't eyeball the favourite.
278
+ - **Hand-picking a high scoreline.** 3:2 / 4:1 / 1:4 are never EV-max under
279
+ partial-points rules — moderate favourites peak at 1:0 / 2:0 / 2:1. A high
280
+ tip in the output means the grid was skipped; run `score_ev.ts`.
273
281
  - **Under-tipping draws.** A correct draw banks the goal-difference tier on
274
- every draw scoreline, so a close match can want 1:1 (or 0:0). Let the grid
282
+ every draw scoreline, so in a close match a 1:1 can beat a 1:0. Let the grid
275
283
  decide; the eye tips too few draws.
276
- - **"Rough Kelly" variance for a large pool.** Don't guess deviation amount —
277
- run `pool_winsim.ts`; returns the exact flips that raise P(finish 1st) most
278
- per unit EV given up.
279
- - **Forgetting to de-vig.** Raw bookmaker odds sum to >100%; treating them as
280
- probabilities inflates the favourite. Remove the margin **per book** before
281
- aggregating.
282
- - **Contrarian under fixed points.** Deviating "to stand out" only helps under
283
- quote/rarity rules or a win-a-large-pool goal — otherwise it burns EV.
284
- - **Claimed-but-unrun simulation.** "I ran 10,000 tournaments" without
285
- executing `poisson_sim.ts` is hallucinated — run the code or use outright odds.
284
+ - **"Rough Kelly" variance for a large pool.** Don't guess how much to deviate
285
+ — run `pool_winsim.ts`; it returns the exact flips that raise P(finish 1st)
286
+ most per unit of EV given up.
287
+ - **Forgetting to de-vig.** Raw bookmaker odds sum to >100%; treating them
288
+ as probabilities inflates the favourite. Remove the margin **per book**
289
+ before aggregating.
290
+ - **Contrarian under fixed points.** Deviating "to stand out" only helps
291
+ under quote/rarity rules or a win-a-large-pool goal — otherwise it burns EV.
292
+ - **Claimed-but-unrun simulation.** Numbers like "I ran 10,000 tournaments"
293
+ without executing `poisson_sim.ts` are hallucinated — run the code or use
294
+ outright odds.
286
295
 
287
296
  ## Do NOT
288
297
 
289
298
  - Leave any open pool question (bonus / award / special) unanswered.
290
299
  - Build the base from a single bookmaker, or skip de-vigging before aggregating.
291
300
  - Tip the most likely result instead of the EV-maximal one.
292
- - Hand-pick a scoreline instead of running `score_ev.ts` — never emit a
293
- 3:2 / 4:1 / 1:4 tip, never EV-max under partial points.
301
+ - Hand-pick a scoreline instead of running `score_ev.ts` — and never emit a
302
+ 3:2 / 4:1 / 1:4 tip, which is never EV-max under partial points.
294
303
  - Go contrarian under standard fixed-point scoring with a "place well" goal.
295
304
  - Guess large-pool variance ("rough Kelly") instead of running `pool_winsim.ts`.
296
305
  - Report Monte-Carlo numbers without running `poisson_sim.ts` / `pool_winsim.ts`.
@@ -301,14 +310,14 @@ gate — the skill never enters or submits anything.
301
310
 
302
311
  - [`/prediction-pool`](../../commands/prediction-pool.md) — the orchestrator (event,
303
312
  persistence, Playwright entry, gates).
304
- - [`reference/odds-and-bonus.md`](reference/odds-and-bonus.md) — major-book list
305
- + sharpness-weighted consensus recipe, and the bonus / award / special
313
+ - [`reference/odds-and-bonus.md`](reference/odds-and-bonus.md) — the major-book
314
+ list + sharpness-weighted consensus recipe, and the bonus / award / special
306
315
  question taxonomy with a per-type method.
307
316
  - [`reference/ev-fixtures.md`](reference/ev-fixtures.md) — known-good
308
317
  rules+odds → EV examples.
309
318
  - `node_modules/@event4u/agent-config/src/scripts/prediction-pool/score_ev.ts` —
310
- executed exact-score EV optimiser (step 4a; λ + rule → EV-max scoreline).
319
+ the executed exact-score EV optimiser (step 4a; λ + rule → EV-max scoreline).
311
320
  - `node_modules/@event4u/agent-config/src/scripts/prediction-pool/pool_winsim.ts` —
312
- executed field model + P(finish 1st) simulator and flip-finder (step 4b).
321
+ the executed field model + P(finish 1st) simulator and flip-finder (step 4b).
313
322
  - `node_modules/@event4u/agent-config/src/scripts/prediction-pool/poisson_sim.ts` —
314
323
  the executed tournament simulator (step 5).
@@ -26,15 +26,15 @@ EV-max tip : 1:0 (EV 1.574)
26
26
  2:0 1.477
27
27
  ```
28
28
 
29
- **Reasoning:** top of the EV surface is **flat** — 1:0, 2:1, 2:0 all bank the
30
- tendency (2) plus goal-difference (3) on many neighbours, within hundredths of
31
- each other. Grid puts **1:0 narrowly first**; eyeballing the modal *result*
32
- (2:1) lands a near-tie, not the optimum. Run the grid — don't assert the
33
- favourite's "obvious" score.
29
+ **Reasoning:** the top of the EV surface is **flat** — 1:0, 2:1 and 2:0 all
30
+ bank the tendency (2) plus goal-difference (3) on many neighbours and sit
31
+ within hundredths of each other. The grid puts **1:0 narrowly first**;
32
+ eyeballing the modal *result* (2:1) lands a near-tie, not the optimum. Run the
33
+ grid — do not assert the favourite's "obvious" score.
34
34
 
35
- **Known-good tip:** **1:0 home** (2:1 essentially tied; with the real de-vigged
36
- λ either can lead — the grid decides). (Risk: low.) **Not** contrarian — under
37
- fixed points only your own tip scores, so deviating costs EV.
35
+ **Known-good tip:** **1:0 home** (2:1 essentially tied; with the real
36
+ de-vigged λ either can lead — the grid decides). (Risk: low.) **Not**
37
+ contrarian — under fixed points only your own tip scores, so deviating costs EV.
38
38
 
39
39
  ---
40
40
 
@@ -63,17 +63,17 @@ the multiplier; take the max.
63
63
  **Match (football):** a near-coin-flip favourite, Home 52% / Draw 26% /
64
64
  Away 22%.
65
65
 
66
- **Reasoning:** N ≥ 100 and you behind → pure EV converges with the field, can't
67
- create the gap; target is **P(finish 1st)**, not E(points). Don't guess the
68
- variance: run `pool_winsim.ts` with the pool's `N` and your `my_lead`. Shows
69
- P(win) collapsing under EV-max-everywhere, returns the **specific flips**
70
- (higher-variance scorelines on high-consensus matches) that raise P(win) most
71
- per unit EV given up.
66
+ **Reasoning:** with N ≥ 100 and you behind, pure EV converges with the field
67
+ and cannot create the gap you need — the target is **P(finish 1st)**, not
68
+ E(points). Don't guess the variance: run `pool_winsim.ts` with the pool's `N`
69
+ and your `my_lead`. It shows P(win) collapsing under EV-max-everywhere and
70
+ returns the **specific flips** (higher-variance scorelines on high-consensus
71
+ matches) that raise P(win) most per unit of EV given up.
72
72
 
73
73
  **Known-good tip:** EV-max on the safe matches; the **simulator's suggested
74
74
  flips** on the 2–4 matches it names, to manufacture upside. (Risk: high —
75
- intentional.) Verify the sim shows a P(win) gain — flips not moving it (small
76
- N) → don't add variance you don't need.
75
+ intentional.) Verify the sim shows a P(win) gain — if flips don't move it
76
+ (small N), don't add variance you don't need.
77
77
 
78
78
  ---
79
79
 
@@ -94,18 +94,18 @@ spread). Tip the winner plus the modal margin bucket.
94
94
 
95
95
  ## Fixture 5 — multi-book consensus (de-vig per book, sharp-weighted)
96
96
 
97
- **Rule:** any — checks the **odds base**, not the EV map.
97
+ **Rule:** any — this fixture checks the **odds base**, not the EV map.
98
98
 
99
99
  **Market (football, 1X2):** two books.
100
100
  - Book S (sharp, weight 3): 1.80 / 3.60 / 4.50 → de-vig 0.526 / 0.263 / 0.210.
101
101
  - Book R (recreational, weight 1): 1.75 / 3.50 / 4.20 → de-vig 0.522 / 0.261 / 0.217.
102
102
 
103
103
  **Reasoning:** de-vig **each book** first (raw `1/o` sums to >1; normalise),
104
- then sharp-weighted mean per outcome and renormalise. Aggregating raw odds, or
105
- using one book, is wrong.
104
+ then take the sharp-weighted mean per outcome and renormalise. Aggregating
105
+ the raw odds, or using one book, is wrong.
106
106
 
107
- **Known-good base:** **Home 0.525 / Draw 0.262 / Away 0.212.** A run that fed
108
- the EV grid one book's raw odds has the wrong base — fix it before the tip.
107
+ **Known-good base:** **Home 0.525 / Draw 0.262 / Away 0.212.** A run that
108
+ fed the EV grid one book's raw odds has the wrong base — fix it before the tip.
109
109
 
110
110
  ---
111
111
 
@@ -115,16 +115,16 @@ the EV grid one book's raw odds has the wrong base — fix it before the tip.
115
115
  scorer?"
116
116
 
117
117
  **Market (top-goalscorer outright, de-vigged player probabilities):**
118
- - Team A: A1 14%, A2 5% → team A total **19%**.
119
- - Team B: B1 16% → team B total **16%**.
120
- - Team C: C1 9%, C2 4% → team C total **13%**.
118
+ - Team A: player A1 14%, player A2 5% → team A total **19%**.
119
+ - Team B: player B1 16% → team B total **16%**.
120
+ - Team C: player C1 9%, player C2 4% → team C total **13%**.
121
121
 
122
- **Reasoning:** the most-likely *player* (B1, 16%) is on team B, but the
123
- question asks the **team** — sum each squad's players. Team A 19% beats team B
124
- 16%. Answer the asked question, not the adjacent one.
122
+ **Reasoning:** the single most-likely *player* (B1 at 16%) belongs to team B,
123
+ but the question asks for the **team** — sum each squad's players. Team A's
124
+ 19% beats team B's 16%. Answer the asked question, not the adjacent one.
125
125
 
126
- **Known-good answer:** **Team A.** (Source: market, aggregated by team. Risk:
127
- medium.) **Not** team B — the modal-player trap.
126
+ **Known-good answer:** **Team A.** (Source: market, aggregated by team.
127
+ Risk: medium.) **Not** team B — that is the modal-player trap.
128
128
 
129
129
  ---
130
130
 
@@ -137,7 +137,7 @@ medium.) **Not** team B — the modal-player trap.
137
137
  | Match (λ) | EV-max | a high tip's EV | verdict |
138
138
  |---|---|---|---|
139
139
  | Senegal–Iraq (2.0:0.7) | **1:0** (1.881) | 4:1 ≈ 1.55 | high tip leaks ~0.33 |
140
- | Qatar–Switzerland (0.6:2.1) | **0:1** (1.981) | 1:4 ≈ 1.65 | tipping the underdog's goals = costliest move on the board |
140
+ | Qatar–Switzerland (0.6:2.1) | **0:1** (1.981) | 1:4 ≈ 1.65 | tipping the underdog's goals is the costliest move on the board |
141
141
  | Spain–CapeVerde (2.3:0.6) | **2:0** (2.033) | 3:1 ≈ 1.88 | only at λ ≳ 2.3 does 2:0 edge past 1:0; never higher |
142
142
 
143
143
  **Reasoning:** under partial points the value sits in the tendency and
@@ -147,8 +147,9 @@ only near λ ≈ 2.3–2.4; above that, never. **3:2 / 4:1 / 4:2 / 1:4 are never
147
147
  EV-max.** Adding goals — especially the underdog's — only shrinks the hit
148
148
  probability without protecting the diff/tendency points.
149
149
 
150
- **Known-good behaviour:** any 3:2 / 4:x / x:4 tip in the run → the grid wasn't
151
- run; `score_ev.ts` is the gate. (Risk: low; correctness fixture, not strategy.)
150
+ **Known-good behaviour:** if the run emits any 3:2 / 4:x / x:4 tip, the grid
151
+ was not run — `score_ev.ts` is the gate. (Risk: low; this is a correctness
152
+ fixture, not a strategy one.)
152
153
 
153
154
  ---
154
155
 
@@ -168,8 +169,8 @@ run; `score_ev.ts` is the gate. (Risk: low; correctness fixture, not strategy.)
168
169
  goal-difference tier (3) on *every* draw scoreline, so in a **low-scoring even
169
170
  match (λ ≲ 1.0/side) the draw — usually 0:0 — is the EV-max**, tied with 1:1.
170
171
  As λ rises past ~1.1 a one-goal win edges ahead, but the draw stays in the top
171
- tips. Grid surfaces this; intuition suppresses it.
172
+ tips. The grid surfaces this; intuition suppresses it.
172
173
 
173
174
  **Known-good behaviour:** a tip set with **near-zero draws across many
174
- low-scoring even matches** is a red flag — re-run `score_ev.ts`, let the grid
175
- decide, don't default every close game to 1:0.
175
+ low-scoring even matches** is a red flag — re-run `score_ev.ts` and let the
176
+ grid decide, don't default every close game to 1:0.