@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
@@ -22,9 +22,9 @@ packs:
22
22
  Seeds a fresh project's `agents/knowledge/` typed pages from
23
23
  **deterministic static analysis only** — directory names and known
24
24
  config filenames, never file content, never an LLM-invented claim.
25
- Fast first pass; the deeper analyzers (`project-analysis-*`,
26
- `standards-from-config`, `module-detect-on-the-fly`) remain the tools
27
- for filling in what this script cannot know.
25
+ This is the fast first pass; the deeper analyzers
26
+ (`project-analysis-*`, `standards-from-config`, `module-detect-on-the-fly`)
27
+ remain the tools for filling in what this script cannot know.
28
28
 
29
29
  ## Steps
30
30
 
@@ -81,8 +81,9 @@ Then:
81
81
  ./scripts-run src/scripts/generate_knowledge_index
82
82
  ```
83
83
 
84
- The team-sharing gate still applies at commit time — none of these
85
- pages should carry `visibility: private`.
84
+ The [team-sharing gate](../../../scripts/check_knowledge_sharing.ts)
85
+ still applies at commit time — none of these pages should carry
86
+ `visibility: private`.
86
87
 
87
88
  ### 4. Discard the rest
88
89
 
@@ -100,6 +101,6 @@ gitignored and regenerates on the next bootstrap run).
100
101
 
101
102
  ## See also
102
103
 
103
- - [`/team-knowledge consolidate`](consolidate.md) — the ongoing capture loop this one-shot seed feeds into.
104
- - [`standards-from-config`](../../skills/standards-from-config/SKILL.md) — the full pointer+digest derivation for coding standards.
105
- - [`project-analysis-core`](../../skills/project-analysis-core/SKILL.md) / [`module-detect-on-the-fly`](../../skills/module-detect-on-the-fly/SKILL.md) — the deeper analyzers for `modules.md`.
104
+ - [`/team-knowledge consolidate`](../consolidate/command.md) — the ongoing capture loop this one-shot seed feeds into.
105
+ - [`standards-from-config`](../../../skills/standards-from-config/SKILL.md) — the full pointer+digest derivation for coding standards.
106
+ - [`project-analysis-core`](../../../skills/project-analysis-core/SKILL.md) / [`module-detect-on-the-fly`](../../../skills/module-detect-on-the-fly/SKILL.md) — the deeper analyzers for `modules.md`.
@@ -24,7 +24,7 @@ Turns the gitignored, in-flight typed-observation events
24
24
  `context_stale` — see `src/scripts/_lib/knowledge_events.ts`) into
25
25
  committed `agents/knowledge/` pages. This is the ONLY path from intake
26
26
  to a tracked page — no skill or rule writes a tracked knowledge page
27
- mid-task (see [`knowledge-pages`](../../templates/contexts/knowledge-pages.md)
27
+ mid-task (see [`knowledge-pages`](../../../agent-src/templates/contexts/knowledge-pages.md)
28
28
  § Storage location).
29
29
 
30
30
  ## Steps
@@ -44,7 +44,7 @@ No pending topics → tell the user and stop. Nothing to do.
44
44
  ### 2. Triage each topic
45
45
 
46
46
  For each aggregate in the report, apply the same taxonomy
47
- [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md)
47
+ [`memory-consolidation`](../../../skills/memory-consolidation/SKILL.md)
48
48
  uses for engineering-memory facts:
49
49
 
50
50
  | Triage | Condition | Action |
@@ -61,7 +61,7 @@ events before deciding.
61
61
  ### 3. Draft and present the batch
62
62
 
63
63
  For every `NEW` / `EXTEND` / `CONFLICT` aggregate, draft the page
64
- content (following [`knowledge-pages`](../../templates/contexts/knowledge-pages.md) —
64
+ content (following [`knowledge-pages`](../../../agent-src/templates/contexts/knowledge-pages.md) —
65
65
  `date + what + why` for session entries, ≤ 200 lines per page) and
66
66
  present the full batch to the user:
67
67
 
@@ -81,7 +81,7 @@ present the full batch to the user:
81
81
 
82
82
  On approval:
83
83
 
84
- 1. Write each approved page (respecting the team-sharing gate —
84
+ 1. Write each approved page (respecting the [team-sharing gate](../../../scripts/check_knowledge_sharing.ts) —
85
85
  never set `visibility: private` on a page landing here).
86
86
  2. Regenerate the index: `./scripts-run src/scripts/generate_knowledge_index`.
87
87
  3. Clear the consumed intake: `./scripts-run src/scripts/consolidate_knowledge_events --commit`
@@ -96,9 +96,10 @@ On approval:
96
96
  land in the page, human resolves later.
97
97
  - Never writes a page with `visibility: private` (belongs in the
98
98
  ADR-100 global store instead).
99
- - Do NOT commit the written pages — that is the user's call.
99
+ - Do NOT commit the written pages — that is the user's call, per
100
+ [`commit-policy`](../../../rules/commit-policy.md).
100
101
 
101
102
  ## See also
102
103
 
103
- - [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md) — the sibling loop for the 5 fixed engineering-memory types; this command is its knowledge-page counterpart.
104
- - [`learning-to-rule-or-skill`](../../skills/learning-to-rule-or-skill/SKILL.md) — where a page's recurring topic graduates into a skill/rule once it crosses the skill-candidate threshold.
104
+ - [`memory-consolidation`](../../../skills/memory-consolidation/SKILL.md) — the sibling loop for the 5 fixed engineering-memory types; this command is its knowledge-page counterpart.
105
+ - [`learning-to-rule-or-skill`](../../../skills/learning-to-rule-or-skill/SKILL.md) — where a page's recurring topic graduates into a skill/rule once it crosses the skill-candidate threshold.
@@ -77,7 +77,10 @@ a wrapper is invoked directly.
77
77
 
78
78
  ## Sub-commands
79
79
 
80
- | Sub-command | Delegates to (Claude Code) | Purpose |
80
+ On Claude Code each sub-command **delegates** to the paired `/codex:*` command
81
+ rather than routing to an in-suite skill — the second column names that target.
82
+
83
+ | Sub-command | Routes to | Purpose |
81
84
  |---|---|---|
82
85
  | `/team review [--background]` | `/codex:review` | Cross-model review of the current working-tree / staged diff |
83
86
  | `/team adversarial <focus>` | `/codex:adversarial-review` | Adversarial cross-model review on a named focus — the escalation rung above the single-model `adversarial-review` skill |
@@ -131,7 +131,6 @@ Frontmatter must have `source: package`.
131
131
  ./scripts-run src/scripts/check_condensation # No 🔴 errors for this file
132
132
  ./scripts-run src/scripts/condense --generate-tools # Regenerate symlinks
133
133
  bash scripts/condense.sh --check # dist/agent-src/ in sync with source
134
- bash scripts/condense.sh --check-hashes # All hashes match
135
134
  ```
136
135
 
137
136
  Fix any issues before continuing.
@@ -99,3 +99,10 @@ any roadmap-producing flow), do **not** include commit steps unless
99
99
  the user explicitly requested them — commits are a delivery decision;
100
100
  roadmaps plan **work**. If the user explicitly wants commit steps,
101
101
  write them clearly (e.g. "Commit phase X: chore: …").
102
+
103
+ ## Migrated from `commit-policy` (kernel-budget relief, 2026-07-30)
104
+
105
+ ### See also
106
+
107
+ - [`scope-control`](../../../rules/scope-control.md) — git-ops permission gate (push, merge, branch, PR, tag).
108
+ - [`no-cheap-questions`](../../../rules/no-cheap-questions.md) — canonical Iron Law. · [`autonomous-execution`](../../../rules/autonomous-execution.md) · [`/commit`](../../commands/commit.md) · [`/commit:in-chunks`](../../commands/commit/in-chunks.md).
@@ -88,3 +88,19 @@ safe to remove or replace.
88
88
  - Reading a roadmap step listing files to delete as authorization to
89
89
  *commit* the deletion. The step authorizes the *edit*; the commit
90
90
  is row 6 of the Hard Floor and needs its own confirmation.
91
+
92
+ ## Migrated from `non-destructive-by-default` (kernel-budget relief, 2026-07-30)
93
+
94
+ ### Enforcement — stated honestly (`enforced_by: none`)
95
+
96
+ This floor has **no mechanical backstop**, and pretending otherwise would be the
97
+ failure it exists to prevent. No script can enforce "ask before you deploy" — the
98
+ obligation is to pause and surface, and the only thing that observes it is the
99
+ human in the loop. Adjacent hooks (`block-no-verify`) guard hook-bypass, not
100
+ destructive intent; claiming them here would inflate coverage, so they are not
101
+ claimed.
102
+
103
+ So this rule is load-bearing **and** unenforced. It is carried by the model
104
+ honouring it — which is why it is a kernel rule, why it is short, and why it is
105
+ counted as uncovered in the enforcement-coverage report rather than excluded
106
+ from it.
@@ -195,3 +195,64 @@ carry over. Concretely: *"arbeite eigenständig"* given for
195
195
  "Roadmap A" is consumed when Roadmap A's deliverable lands. A new
196
196
  named task (Roadmap B, ticket Y, "next slice") needs fresh
197
197
  authorization. See [`autonomous-execution § task-scope`](../../rules/autonomous-execution.md#task-scope--autonomy-is-bound-to-the-named-task).
198
+
199
+ ## Post-artifact hard stop — no auto-offer of execution
200
+
201
+ ```
202
+ ARTIFACT LANDED (ROADMAP / ADR / PLAN / PITCH / TICKET / DESIGN DOC)
203
+ → STOP. NEVER ASK "READY TO START?" / "BEGIN PHASE 1?" / "SOFORT
204
+ AUSFÜHREN?" / "SOLL ICH MIT E1.1 ANFANGEN?". EXECUTION STARTS ON A
205
+ LATER TURN WITH AN EXPLICIT EXECUTION VERB FROM THE USER.
206
+ ```
207
+
208
+ Authoring verbs (`create`, `draft`, `write`, `erstelle`, …) authorize
209
+ the artifact only. The moment the file is saved, the turn ends —
210
+ silence on execution. The artifact is the deliverable; the work it
211
+ plans is a **separate decision** the user pins on a later turn.
212
+
213
+ This anchor binds three command surfaces:
214
+
215
+ - [`/roadmap:create` Step 9](../../commands/roadmap/create.md) —
216
+ hand-back is a hard stop; never propose `/roadmap:process-*` after
217
+ save.
218
+ - [`/challenge-me vision` Step 6 (`!roadmap` branch)](../../commands/challenge-me/vision.md) —
219
+ routing into `/roadmap:create` ends at file save; the chain does
220
+ **not** chain into execution.
221
+ - `/adr:create`, `/feature-roadmap`, `/feature-plan`, any future
222
+ authoring command — same rule, no per-command opt-out.
223
+
224
+ **Anti-pattern catalogue** (each of these IS the violation, not a
225
+ near-miss):
226
+
227
+ - *"Roadmap fertig. Soll ich mit Phase A anfangen?"* — execution
228
+ offer disguised as a status line.
229
+ - Numbered options `1. Start now / 2. Review first / 3. Cancel`
230
+ after the save line — the user did not ask for an execution menu.
231
+ - *"Recommended next step: `/roadmap:process-phase`"* in the
232
+ hand-back — back-channels the same ask.
233
+ - Treating *"sieht gut aus"* / *"passt"* / *"alright"* / thumbs-up
234
+ as authorization to start. None of those are execution verbs.
235
+ - Soft-routing prose: *"the roadmap is ready, kicking off E1.1…"* —
236
+ hand-off to execution disguised as continuation.
237
+ - Council-review hop counted as an execution authorization: review
238
+ ends, agent jumps straight to Phase 1.
239
+
240
+ **Allowed**
241
+
242
+ - A single hand-back line citing the saved path and any regenerated
243
+ dashboard count.
244
+ - A "Recommended next step" line in the artifact body itself (e.g.
245
+ in a pitch) that **names a command** the user can copy — that is
246
+ reference material in the artifact, not a routing offer in the
247
+ reply.
248
+ - Continuing on the **same turn** if and only if the user already
249
+ used an explicit execution verb alongside the authoring verb
250
+ (*"create the roadmap and start Phase A"*). Mixed-verb handling:
251
+ default to authoring-only and ask; see [`Authoring vs.
252
+ implementation`](#authoring-vs-implementation--verb-discipline).
253
+
254
+ **Bypass** — the user resumes with an explicit execution verb on a
255
+ later turn: `implement`, `build`, `start Phase A`, `arbeite die
256
+ Roadmap ab`, `mach weiter mit Phase 1`. That verb — not the prior
257
+ authoring turn, not a council pass, not a thumbs-up — lifts the
258
+ post-artifact stop.
@@ -1,43 +1,45 @@
1
1
  # Reply close — work summary + PR link
2
2
 
3
3
  Lookup material for the reply-close carve-out in the
4
- [`direct-answers`](../../../rules/direct-answers.md) Brevity Iron Law. Rule body
5
- states the obligation in one line; this file is the detail.
4
+ [`direct-answers`](../../../rules/direct-answers.md) Brevity Iron Law. The rule
5
+ body states the obligation in one line; this file is the detail.
6
6
 
7
7
  ## The carve-out
8
8
 
9
9
  Brevity governs the reply **body**; the **close** is the exception.
10
10
 
11
- - Reply that landed **substantial work** — multi-step change, roadmap/branch
11
+ - A reply that landed **substantial work** — a multi-step change, roadmap/branch
12
12
  progress, or a created/updated PR — ends with **ONE** compact status summary at
13
13
  the very end, never mid-reply: what's done, what remains.
14
- - **Simple one-answer replies still skip the summary** (Brevity Iron Law unchanged
15
- for them). Summary is for work replies, not every turn.
14
+ - **Simple one-answer replies still skip the summary** (the Brevity Iron Law is
15
+ unchanged for them). The summary is for work replies, not every turn.
16
16
 
17
17
  ## PR link is the literal last line
18
18
 
19
- PR **created or updated this turn** → its raw GitHub URL is the **literal last
20
- line**, after the summary, nothing below it — so the user never hunts for it. One
21
- PR → one URL line.
19
+ If a PR was **created or updated this turn**, its raw GitHub URL is the **literal
20
+ last line** of the reply — after the summary, nothing below it — so the user never
21
+ hunts for it. One PR → one URL line.
22
22
 
23
23
  - Only when a PR was actually created/updated **this turn**. No PR → no link line.
24
- - Raw URL (not a masked markdown link) so it is unmistakable and clickable.
24
+ - The raw URL (not a masked markdown link) so it is unmistakable and clickable.
25
25
 
26
26
  ## Why it does not collide with sibling rules
27
27
 
28
- - **`language-and-tone`** last-line rule: a raw URL is language-neutral → satisfies
29
- the "every user-visible token mirrors the user's language" gate.
28
+ - **`language-and-tone`** last-line rule: a raw URL is language-neutral, so it
29
+ satisfies the "every user-visible token mirrors the user's language" gate.
30
30
  - **`no-pr-progress-comments`** / **`no-attribution-footers`**: those govern
31
- comments posted *on the PR*. Summary + URL here are the **chat reply body**, not
32
- a PR comment — neither applies.
33
- - **`user-interaction`**: a numbered-options block, when present, still comes last
34
- among interactive elements; the PR URL sits below it as the final line and is not
35
- an "open question" → does not trip the no-trailing-open-question rule.
31
+ comments posted *on the PR*. The summary and URL here are the **chat reply
32
+ body**, not a PR comment — so neither rule applies.
33
+ - **`user-interaction`**: a numbered-options block, when present, still comes
34
+ last among interactive elements; the PR URL sits below it as the final line and
35
+ is not an "open question," so it does not trip the no-trailing-open-question
36
+ rule.
36
37
 
37
38
  ## Failure modes
38
39
 
39
40
  - Burying the summary mid-reply, then continuing with more detail below it.
40
- - Emitting the summary for a trivial one-answer reply (brevity says skip).
41
- - Creating a PR but leaving its URL mid-reply, forcing the user to scroll/search.
41
+ - Emitting the summary for a trivial one-answer reply (brevity says skip it).
42
+ - Creating a PR but leaving its URL somewhere in the middle, forcing the user to
43
+ scroll/search.
42
44
  - Masking the URL behind link text so it is not obviously the PR.
43
45
  - Adding a PR-link line when no PR was created this turn.
@@ -25,7 +25,7 @@ Make descriptions "pushy" — explicit about when to fire:
25
25
  adjectives, drop the second example phrasing, or collapse a list — do
26
26
  **not** drop the trigger vocabulary or the `even if ...` tail.
27
27
 
28
- Source: [`skills/skill-creator` in `an external reference`](https://github.com/an external reference/blob/main/skills/skill-creator/SKILL.md).
28
+ Source: adapted from an external reference.
29
29
 
30
30
  **Litmus test:** Read the description cold, without the skill's body. If you
31
31
  cannot name at least two phrasings a user would realistically type that should
@@ -4,7 +4,7 @@ Lookup table for the `slash-command-routing-policy` rule. Lists the
4
4
  locked clusters and their sub-commands so the rule itself can stay at
5
5
  its current LOC while still reflecting the full surface. Source of
6
6
  truth for the cluster names is
7
- [`docs/contracts/command-clusters.md`](../../../../../../../docs/contracts/command-clusters.md);
7
+ [`docs/contracts/command-clusters.md`](../../../../../docs/contracts/command-clusters.md);
8
8
  this file mirrors that contract for runtime lookup. Linter:
9
9
  `scripts/check_cluster_patterns.ts` (verifies dispatcher shape).
10
10
 
@@ -12,17 +12,17 @@ when authoring or pre-review verification fires.
12
12
  1. **Create or edit** the file in `src/{path}` (e.g. `src/rules/`, `src/skills/`,
13
13
  `src/agent-src/`, `src/domains/<pack>/`)
14
14
  2. **Do NOT auto-condense.** Continue working.
15
- 3. **Before commit/push:** Check if condensation is needed
16
- (`bash src/scripts/condense.sh --changed`). If files need condensation,
17
- ask the user:
15
+ 3. **Before commit/push:** Check whether any projection is out of date
16
+ (`bash src/scripts/condense.sh --changed` — `dist != rewrite(src)`). If files
17
+ are listed, ask the user:
18
18
  ```
19
- > 📦 {N} dist/agent-src files need condensation before commit.
19
+ > 📦 {N} dist/agent-src files are out of date before commit.
20
20
  >
21
- > 1. Condense now — run /condense
22
- > 2. Later — commit without condensation
21
+ > 1. Sync now — run /condense
22
+ > 2. Later — commit without syncing
23
23
  ```
24
- 4. If condensing: run `/condense` command, then
25
- `bash src/scripts/condense.sh --mark-done {path}`
24
+ 4. If syncing: run the `/condense` command — `--sync` writes the projection,
25
+ nothing has to be marked afterwards.
26
26
 
27
27
  For new non-.md files (`.php`, configs):
28
28
  `bash src/scripts/condense.sh --sync` copies them automatically.
@@ -94,6 +94,5 @@ Commands have `disable-model-invocation: true` in their frontmatter.
94
94
  | Create new non-`.md` | Create in `src/`, run `bash src/scripts/condense.sh --sync` |
95
95
  | Create new command | Create in `src/agent-src/commands/`, sync, `./scripts-run src/scripts/condense --generate-tools` |
96
96
  | Delete a file | Delete from `src/` and `dist/agent-src/` |
97
- | Check what needs condensation | `bash src/scripts/condense.sh --changed` |
98
- | Mark file as condensed | `bash src/scripts/condense.sh --mark-done {path}` |
97
+ | Check which projections are out of date | `bash src/scripts/condense.sh --changed` |
99
98
  | Verify everything is in sync | `bash src/scripts/condense.sh --check` |
@@ -43,7 +43,7 @@ behavior. Cannot → read more.
43
43
  ## Consult memory before editing
44
44
 
45
45
  Invariants live in the memory layer; architectural rationale lives in ADRs.
46
- Via [`memory-access`](../../../../../../docs/guidelines/agent-infra/memory-access.md),
46
+ Via [`memory-access`](../../../../../docs/guidelines/agent-infra/memory-access.md),
47
47
  call `retrieve(types=["domain-invariants"], keys=<touched paths>, limit=3)` —
48
48
  a matching `domain-invariant` is a hard constraint. For *why* the current
49
49
  shape exists, check the ADR index `docs/decisions/INDEX.md`. Cite the `id` /
@@ -180,6 +180,17 @@ When processing multiple items (e.g., review comments, test failures), show prog
180
180
  **Comment 3/7** — `filename.php:42`
181
181
  ```
182
182
 
183
+ ## Bullet floor
184
+
185
+ Multi-step content earns bullets; each bullet is a complete 1–2-sentence
186
+ statement, never a fragment masquerading as a list item ("Faster." /
187
+ "Better UX." with no subject or verb). A decline or refusal is **never**
188
+ rendered as a bulleted list of reasons — declines are short prose (one or
189
+ two sentences), because a bulleted refusal reads as a checklist to argue
190
+ against rather than a direct answer.
191
+
192
+ Full example set: [`asking-and-brevity-examples § Bullet floor`](../../../../../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#bullet-floor).
193
+
183
194
  ## Summaries
184
195
 
185
196
  After completing a batch of actions, provide a summary table:
@@ -211,26 +211,37 @@ $ grep agent-engagement .gitignore
211
211
  The fastest path is the project's own validator — it enforces every
212
212
  rule listed above:
213
213
 
214
+ ```bash
215
+ # Validate every line against the schema + redaction floor
214
216
  ```bash
215
217
  # Validate every line against the schema + redaction floor
216
218
  node -e '
217
- import pathlib, sys
218
- sys.path.insert(0, ".agent-src.uncondensed/templates/scripts")
219
- from telemetry.engagement import EngagementSchemaError, parse_event
220
- log = pathlib.Path(".agent-engagement.jsonl")
221
- ok = bad = 0
222
- for i, line in enumerate(log.read_text().splitlines(), 1):
223
- if not line.strip():
224
- continue
225
- try:
226
- parse_event(line + "\n")
227
- ok += 1
228
- except EngagementSchemaError as e:
229
- bad += 1
230
- print(f"line {i}: {e}", file=sys.stderr)
231
- print(f"{ok} valid, {bad} rejected")
219
+ const fs = require("fs");
220
+ const lines = fs.readFileSync(".agent-engagement.jsonl", "utf8").split("
221
+ ").filter(Boolean);
222
+ let ok = 0, bad = 0;
223
+ for (const [i, line] of lines.entries()) {
224
+ try { JSON.parse(line); ok++; }
225
+ catch (e) { bad++; console.error(`line ${i+1}: ${e.message}`); }
226
+ }
227
+ console.log(`${ok} valid, ${bad} rejected`);
232
228
  '
233
229
 
230
+ # A bad-line spot-check that does not depend on the validator
231
+ node -e '
232
+ const fs = require("fs");
233
+ const forbidden = /[/\]|\.[a-z0-9]{1,10}$/i;
234
+ for (const line of fs.readFileSync(".agent-engagement.jsonl", "utf8").split("
235
+ ").filter(Boolean)) {
236
+ const obj = JSON.parse(line);
237
+ for (const kind of ["consulted", "applied"])
238
+ for (const ids of Object.values(obj[kind] ?? {}))
239
+ for (const v of ids)
240
+ if (forbidden.test(v) || v.length > 200) console.log("LEAK:", v);
241
+ }
242
+ '
243
+ ```
244
+
234
245
  # A bad-line spot-check that does not depend on the validator
235
246
  node -e '
236
247
  import json, pathlib, re
@@ -100,6 +100,9 @@ journey that self-suggests; the sub-command is reached by routing from the head
100
100
  always works. This keeps the proactive surface to a few journeys, not one
101
101
  entry point per mode (9.4.0 review; `road-to-surface-consolidation`, council
102
102
  2026-07-20). Standalone commands (no `sub:`) and cluster heads may be eligible.
103
+ Rationale: 160 eligible commands all competing to self-suggest IS the "190
104
+ gleichwertig sichtbare Einstiegspunkte" the review flags; the sub-command flip
105
+ collapses it without removing any command.
103
106
 
104
107
  ## Subordination — when to stay silent
105
108
 
@@ -21,20 +21,20 @@ A task is classified **delegable** when **any** of these holds:
21
21
  `parallelizable: steps | files | independent` in its frontmatter.
22
22
  - `steps` → ordered plan → `do-in-steps`.
23
23
  - `files` / `independent` → independent slices → `do-in-parallel`.
24
- 2. **Ordered-plan structure** — explicit ordered plan (numbered steps / a roadmap
25
- phase / a checklist) → `do-in-steps`. Deterministic markers:
26
- - `1. … 2. … 3.` numbered list in the user message.
27
- - References a roadmap phase or checklist.
28
- - "first … then … finally" with distinct deliverables.
29
- - "in N steps" or "phase by phase".
24
+ 2. **Ordered-plan structure** — the task is an explicit ordered plan (numbered
25
+ steps / a roadmap phase / a checklist) → `do-in-steps`. Deterministic markers:
26
+ - User message contains `1. … 2. … 3.` numbered list.
27
+ - User message references a roadmap phase or checklist.
28
+ - User message uses "first … then … finally" with distinct deliverables.
29
+ - User message says "in N steps" or "phase by phase".
30
30
  3. **Independent-slices structure** — N ≥ 3 independent targets of the same shape
31
31
  → `do-in-parallel`. Deterministic markers (N ≥ 3 of the same form):
32
- - N file paths, each a separate analysis/edit target.
33
- - N named modules/components for the same action.
32
+ - N file paths listed where each is a separate analysis/edit target.
33
+ - N named modules/components to perform the same action on.
34
34
  - N named test files, adapters, endpoints, or services to convert/review/audit.
35
- - "for each X in [list]" where list ≥ 3 items, no cross-item dependency.
36
- Do **not** fire on interdependent lists (e.g. "add these 3 sequential
37
- migrations") — those are ordered plans (signal 2).
35
+ - "for each X in [list]" where list has ≥ 3 items and no cross-item dependency.
36
+ Do **not** fire on lists where items are interdependent (e.g. "add these 3
37
+ sequential migrations") — those are ordered plans (signal 2).
38
38
 
39
39
  AND the **task-size floor** is cleared: the task's estimated size exceeds a
40
40
  minimum (trivial one-line edits never delegate — the dispatch overhead
@@ -58,9 +58,10 @@ dwarfs the work). Below the floor → in-session.
58
58
  ## Per-slice tier inference (v1.5 — deterministic, task-TYPE-keyed)
59
59
 
60
60
  Once a slice is classified **delegable**, a second deterministic table infers
61
- its `model_tier` (road-to-cost-aware-model-routing, council 2026-07-08).
62
- Keyed **exclusively on the classifier's task-TYPE outputs** — never raw size
63
- metrics; diff size anti-correlates with difficulty in refactoring domains.
61
+ its `model_tier` (road-to-cost-aware-model-routing, council 2026-07-08). The
62
+ inference is keyed **exclusively on the classifier's task-TYPE outputs** —
63
+ never on raw size metrics; diff size anti-correlates with difficulty in
64
+ refactoring domains.
64
65
 
65
66
  ```
66
67
  UNKNOWN / AMBIGUOUS → inherit (SESSION TIER). NEVER GUESS DOWN.
@@ -76,14 +77,42 @@ THEY NEVER CREATE ONE.
76
77
  | Delegable + synthesis / judgment (review, analysis slice) | `medium` — judge one tier up per the orchestration Iron Law |
77
78
  | Any other / ambiguous shape | `inherit` — session tier, no downshift |
78
79
 
79
- **Negative size guard:** slice scope exceeding the mechanical envelope
80
- (multi-file mutation, diff surface beyond single responsibility) loses `lite`
81
- candidacy, resolves one row down — size never argues FOR a downshift, only
82
- against one.
80
+ **Negative size guard:** a slice whose scope exceeds the mechanical envelope
81
+ (multi-file mutation, or a diff surface beyond a single responsibility) loses
82
+ its `lite` candidacy and resolves one row down — size never argues FOR a
83
+ downshift, only against one.
83
84
 
84
- Every inferred decision records `tier_source: "inferred"` in orchestration
85
- telemetry (static pins record `"static"`; session-tier runs `"inherit"`) so
86
- the evidence gate scores inferred routing separately from static pinning.
85
+ Every inferred decision records `tier_source: "inferred"` in the
86
+ orchestration telemetry (statically pinned tiers record `"static"`;
87
+ session-tier runs record `"inherit"`) so the evidence gate can score inferred
88
+ routing separately from static pinning.
89
+
90
+ ## Dispatch-primitive output — fork vs. named subagent (road-to-cache-economy Phase 4)
91
+
92
+ A third, ORTHOGONAL classifier output — independent of form and tier — on a
93
+ host that exposes a fork primitive alongside named-subagent dispatch:
94
+
95
+ ```
96
+ TOOL AND SCOPE FIT IS FIRST-ORDER. CACHE INHERITANCE IS SECOND-ORDER.
97
+ NEVER "ALWAYS FORK" — THE BENEFIT CANNOT BE PREDICTED BEFORE THE FORK HAPPENS.
98
+ ```
99
+
100
+ | Slice shape | `dispatch_primitive` |
101
+ |---|---|
102
+ | Continues the parent's task under IDENTICAL tools and constraints (no isolation need, no nested dispatch) | `fork` — its first request reads the parent's cache |
103
+ | Needs isolation, a different tool set, or nested dispatch | `subagent` — a fork cannot nest and cannot change tools |
104
+ | Ambiguous / host has no fork primitive | `subagent` — the only primitive this suite's `Agent`-tool dispatch uses today |
105
+
106
+ A fork forces background mode, which changes the tool set and therefore
107
+ invalidates the very prefix that motivated the fork — so a slice that would
108
+ need a different tool set mid-flight is a `subagent` candidate even when it
109
+ started as a fork candidate. This output never downgrades the form or tier
110
+ decisions above; it only picks the primitive once a `parallel` / `steps` /
111
+ `judge` form has already been selected. See
112
+ [`subagent-orchestration/SKILL.md`](../../skills/subagent-orchestration/SKILL.md)
113
+ § Form gate and
114
+ [`prompts/README.md`](../../skills/subagent-orchestration/prompts/README.md)
115
+ § Prompt-cache discipline for the full rationale.
87
116
 
88
117
  ## Lookup-class rung (L0 — road-to-lean-agent-init, BELOW the tiers)
89
118
 
@@ -100,7 +129,7 @@ NEVER A SILENTLY DEGRADED ANSWER. NO LLM CLASSIFIER FALLBACK (CUT C3).
100
129
 
101
130
  | Task pattern | Lookup class | Primitive |
102
131
  |---|---|---|
103
- | "where is X defined" / "confirm X's definition location" | `definition` | capped `rg` (definition-shaped patterns, `--max-count`); `code_graph query` only as opportunistic accelerant when an index is present + fresh + `hooks.code_graph.enabled: true` |
132
+ | "where is X defined" / "confirm X's definition location" | `definition` | capped `rg` (definition-shaped patterns, `--max-count`); `code_graph query` only as an opportunistic accelerant when an index is present + fresh + `hooks.code_graph.enabled: true` |
104
133
  | "who calls / imports X" / "confirm call sites" | `references` | capped `rg` (reference-shaped patterns); same optional `code_graph affected` accelerant clause |
105
134
  | "does string Y exist" / "probe candidate strings" | `string-existence` | FTS one-shot (`memory_lookup` for the knowledge corpus) or capped `rg -n --max-count` for the codebase |
106
135
  | "run report Z" / "run check_*" | `report-run` | direct script run, wrapped per the **measured** rtk allowlist (`internal/bench/rtk-savings/RESULTS.md` — wrap only the ~55%-savings class) |
@@ -112,21 +141,22 @@ recall 0.365 vs grep 0.797 on graph-shaped questions, root cause an **indexing
112
141
  gap** (TS arrow-function exports produce no symbol nodes) that hits structured
113
142
  lookups exactly as it hits NL retrieval — and the recorded consequence bound
114
143
  keeps `code_graph.enabled` false permanently. The accelerant clause is the
115
- escape hatch that bound names ("unless external evidence appears"); today
116
- inert.
117
-
118
- **Escalation, not degradation:** a primitive returning nothing (index miss,
119
- ambiguous pattern, absent report script) — **or an unusable result** (empty,
120
- ambiguous between candidates, or visibly off-target because the lookup
121
- pattern matched a task that was not actually a lookup, e.g. a dynamically
122
- constructed symbol name) — escalates to the regular classification path —
123
- answer-quality bar never drops. "Primitive ran but result unusable"
124
- escalates exactly like "class unknown". `unknown` resolves to the regular
125
- path (`inherit` semantics), never down-guessed.
126
-
127
- Correctness floor: golden comparison in `internal/bench/lean-init/`
128
- (primitive answer ≡ agent answer on ≥10 lookup tasks, incl. the four observed
129
- shapes); any mismatch is a routing bug, not a rounding error.
144
+ escape hatch that bound names ("unless external evidence appears"); today it
145
+ is inert.
146
+
147
+ **Escalation, not degradation:** a primitive that returns nothing (index miss,
148
+ pattern too ambiguous, report script absent) — **or an unusable result**
149
+ (empty, ambiguous between candidates, or visibly off-target because the
150
+ lookup pattern matched a task that was not actually a lookup, e.g. a
151
+ dynamically constructed symbol name) — escalates to the regular
152
+ classification path above — the answer quality bar never drops. The
153
+ "primitive ran but the result is unusable" case escalates exactly like the
154
+ "class unknown" case. `unknown` resolves to the regular path (`inherit`
155
+ semantics), never down-guessed.
156
+
157
+ Correctness floor: the golden comparison in `internal/bench/lean-init/`
158
+ (primitive answer ≡ agent answer on ≥10 lookup tasks, including the four
159
+ observed shapes); any mismatch is a routing bug, not a rounding error.
130
160
 
131
161
  ## v2+ (deferred, gated on Phase 6 evidence)
132
162
 
@@ -12,7 +12,7 @@ whether dispatch is physically possible on the host).
12
12
  | Key | Default | Purpose |
13
13
  |---|---|---|
14
14
  | `subagents.enabled` | `true` | Global master switch. `false` = the whole layer is off — the canonical kill-switch. No auto-dispatch, no routing, everything runs in-session. |
15
- | `subagents.auto` | `on` | Auto-dispatch mode: `off` \| `ask` \| `on`. Default `on` on subagent-capable hosts (flipped from `ask` 2026-07-09, ADR-117), `off` elsewhere. |
15
+ | `subagents.auto` | `on` | Auto-dispatch mode: `off` \| `ask` \| `on`. Shipped default `on` on subagent-capable hosts (flipped from `ask` 2026-07-09, ADR-117), `off` elsewhere. |
16
16
  | `subagents.downshift` | `true` | Route delegable sub-tasks to the lowest-capable tier (Phase 2). |
17
17
  | `subagents.quota_arbitrage` | `true` | Prefer a separate-quota-pool model where the host manifest allows it (Phase 2 bonus). |
18
18
  | `subagents.model_map` | `{}` | Optional per-tier model override for downshift routing. |
@@ -53,7 +53,7 @@ or `auto`-after-opt-in, act on them.
53
53
  - "Should we commit now or after the next change?" — answered by the
54
54
  commit-default in [`commit-policy`](../../rules/commit-policy.md), no need to ask.
55
55
  - "How should I split the commits?" — never asked; either you are
56
- invoked via `/commit-in-chunks` (split and commit) or you are not
56
+ invoked via `/commit:in-chunks` (split and commit) or you are not
57
57
  (don't commit at all).
58
58
  - "Should I run the linter / tests now or after the change?" — run
59
59
  what [`verify-before-complete`](../../rules/verify-before-complete.md)
@@ -129,12 +129,13 @@ knob. The per-dimension uncertainty score (see
129
129
  [`notes-first-reasoning`](../../rules/notes-first-reasoning.md)) feeds this
130
130
  decision. Engage per [`rdp-gate`](rdp-gate.md).
131
131
 
132
- **Concrete diminishing-returns stop-signal.** Operationalize "marginal evidence
133
- drops" so it is checkable, not vibes: when **two consecutive investigative probes**
134
- (a read, a grep, a query) yield **no new load-bearing information** — nothing that
135
- changes the plan or the hypothesis — stop gathering and act on what you have (or
136
- ask). The diminishing-returns twin of N=3: N=3 stops fruitless *fixing*, this stops
137
- fruitless *searching*. Never overrides the read-loop abort in
132
+ **Concrete diminishing-returns stop-signal.** "Marginal evidence drops" is
133
+ otherwise fuzzy; operationalize it so it is checkable, not vibes: when **two
134
+ consecutive investigative probes** (a read, a grep, a query) yield **no new
135
+ load-bearing information** — nothing that changes the plan or the hypothesis —
136
+ stop gathering and act on what you have (or ask). This is the diminishing-returns
137
+ twin of the N=3 hard cap: N=3 stops fruitless *fixing*, this stops fruitless
138
+ *searching*. It never overrides the read-loop abort in
138
139
  [`context-hygiene`](../../rules/context-hygiene.md) — that is the hard ceiling;
139
140
  this is the earlier soft signal.
140
141