@event4u/agent-config 9.9.0 → 9.11.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 (479) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +212 -194
  3. package/README.md +13 -16
  4. package/agents/templates/.ai-council.yml.example +481 -0
  5. package/agents/templates/.ai-video.xml.example +247 -0
  6. package/dist/agent-src/commands/agent-status.md +12 -11
  7. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  8. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  9. package/dist/agent-src/commands/agents/user/review.md +65 -28
  10. package/dist/agent-src/commands/agents/user/show.md +82 -29
  11. package/dist/agent-src/commands/agents/user/update.md +2 -2
  12. package/dist/agent-src/commands/agents/user.md +16 -3
  13. package/dist/agent-src/commands/check-current-md.md +0 -10
  14. package/dist/agent-src/commands/condense.md +28 -97
  15. package/dist/agent-src/commands/cost/report.md +7 -0
  16. package/dist/agent-src/commands/fix/portability.md +0 -8
  17. package/dist/agent-src/commands/fix/refs.md +0 -8
  18. package/dist/agent-src/commands/humanize.md +2 -2
  19. package/dist/agent-src/commands/jira-ticket.md +1 -1
  20. package/dist/agent-src/commands/memory/load.md +11 -0
  21. package/dist/agent-src/commands/optimize/skills.md +1 -1
  22. package/dist/agent-src/commands/pr/create.md +4 -4
  23. package/dist/agent-src/commands/profile/show.md +3 -3
  24. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  25. package/dist/agent-src/commands/security-audit-config.md +1 -1
  26. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  27. package/dist/agent-src/commands/tdd.md +21 -0
  28. package/dist/agent-src/commands/team/delegate.md +2 -2
  29. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  30. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  31. package/dist/agent-src/commands/team.md +4 -1
  32. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  33. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  34. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  35. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  36. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  37. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  38. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  40. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  41. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  42. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  43. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  44. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  45. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  46. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  47. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  49. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  50. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  51. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  52. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  53. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  54. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  55. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  56. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  57. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  58. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  59. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  60. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  61. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  62. package/dist/agent-src/ghostwriter/README.md +2 -2
  63. package/dist/agent-src/packs/README.md +1 -1
  64. package/dist/agent-src/personas/README.md +5 -5
  65. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  66. package/dist/agent-src/personas/backend-architect.md +24 -23
  67. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  68. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  69. package/dist/agent-src/personas/product-owner.md +41 -38
  70. package/dist/agent-src/personas/qa.md +13 -13
  71. package/dist/agent-src/personas/security-engineer.md +22 -22
  72. package/dist/agent-src/presets/README.md +3 -3
  73. package/dist/agent-src/profiles/README.md +3 -3
  74. package/dist/agent-src/rules/active-remediation.md +2 -2
  75. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  76. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  77. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  78. package/dist/agent-src/rules/broken-access-control.md +4 -4
  79. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  80. package/dist/agent-src/rules/code-provenance.md +2 -2
  81. package/dist/agent-src/rules/commit-policy.md +4 -9
  82. package/dist/agent-src/rules/communication-through-line.md +5 -5
  83. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  84. package/dist/agent-src/rules/design-fidelity.md +1 -1
  85. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  86. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  87. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  88. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  89. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  90. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  92. package/dist/agent-src/rules/history-discipline.md +1 -1
  93. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  94. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  95. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  96. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  97. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  98. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  99. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  100. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  101. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  102. package/dist/agent-src/rules/persona-governance.md +2 -2
  103. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  104. package/dist/agent-src/rules/preservation-guard.md +10 -2
  105. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  106. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  107. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  108. package/dist/agent-src/rules/scale-discipline.md +1 -1
  109. package/dist/agent-src/rules/scope-control.md +1 -1
  110. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  111. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  112. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  113. package/dist/agent-src/rules/session-canary.md +1 -1
  114. package/dist/agent-src/rules/skill-quality.md +1 -1
  115. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  116. package/dist/agent-src/rules/source-of-truth.md +6 -5
  117. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  118. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  119. package/dist/agent-src/rules/think-before-action.md +5 -5
  120. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  121. package/dist/agent-src/rules/token-efficiency.md +2 -2
  122. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  123. package/dist/agent-src/rules/user-interaction.md +12 -0
  124. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  125. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  126. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  127. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  128. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  129. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  130. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  131. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  132. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  133. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  134. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  135. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  136. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  137. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  138. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  139. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  140. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  141. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  142. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  143. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  144. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  145. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  146. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  147. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  148. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  149. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  150. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  151. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  152. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  153. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  154. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  155. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  156. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  157. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  158. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +21 -7
  159. package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
  160. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  161. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  162. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  163. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  164. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  165. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  166. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  167. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  168. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  169. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  170. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  171. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  172. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  173. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  174. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  175. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  176. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  177. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  178. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  179. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  180. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  181. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  182. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  183. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  184. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  185. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  186. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  187. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  188. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  189. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  190. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  191. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  192. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  193. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  194. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  195. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  196. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  197. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  198. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  199. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  200. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  201. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  202. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  203. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  204. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  205. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  206. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  207. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  208. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  209. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  210. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  211. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  212. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  213. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  214. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  215. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  216. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  217. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  218. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  219. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  220. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  221. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  222. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  223. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  224. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  225. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  226. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  227. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  228. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  229. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  230. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  231. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  232. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  233. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  234. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  235. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  236. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  237. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  238. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  239. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  240. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  241. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  242. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  243. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  244. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  245. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  246. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  247. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  248. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  249. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  250. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  251. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  252. package/dist/agent-src/templates/contexts.md +1 -1
  253. package/dist/agent-src/templates/features.md +1 -1
  254. package/dist/agent-src/templates/roadmaps.md +125 -116
  255. package/dist/agent-src/templates/rule.md +2 -1
  256. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  257. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  258. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  259. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  260. package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  261. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  262. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  263. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  264. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  265. package/dist/agent-src/templates/scripts/work_engine/state.ts +21 -4
  266. package/dist/agent-src/user-types/README.md +8 -8
  267. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  268. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  269. package/dist/agent-src/user-types/truck-driver.md +22 -20
  270. package/dist/cli/initRouting.js +74 -11
  271. package/dist/cli/initRouting.js.map +1 -1
  272. package/dist/cli/main.js +14 -3
  273. package/dist/cli/main.js.map +1 -1
  274. package/dist/cli/python/workspace_roles.js +2 -2
  275. package/dist/cli/python/workspace_roles.js.map +1 -1
  276. package/dist/cli-delegate/chunk-4SV3XGFA.js +6910 -0
  277. package/dist/cli-delegate/chunk-736JCWLM.js +1104 -0
  278. package/dist/cli-delegate/chunk-7DSAMZFU.js +356 -0
  279. package/dist/cli-delegate/chunk-7HQ52DHU.js +74 -0
  280. package/dist/cli-delegate/chunk-BJGXZNPM.js +266 -0
  281. package/dist/cli-delegate/chunk-FTAISGDQ.js +117 -0
  282. package/dist/cli-delegate/chunk-GME3Q44L.js +82 -0
  283. package/dist/cli-delegate/chunk-GRRPEPRN.js +336 -0
  284. package/dist/cli-delegate/chunk-HJ6DAJHR.js +502 -0
  285. package/dist/cli-delegate/chunk-IR7P7JWA.js +872 -0
  286. package/dist/cli-delegate/chunk-J55WI3RR.js +47 -0
  287. package/dist/cli-delegate/chunk-MCJYCQPF.js +35 -0
  288. package/dist/cli-delegate/chunk-NDJLNC6Q.js +169 -0
  289. package/dist/cli-delegate/chunk-OMIVVCG2.js +26 -0
  290. package/dist/cli-delegate/chunk-OY53J6II.js +7336 -0
  291. package/dist/cli-delegate/chunk-RDGRHAAB.js +259 -0
  292. package/dist/cli-delegate/chunk-TFG57JJM.js +1969 -0
  293. package/dist/cli-delegate/chunk-XX6TOPD7.js +715 -0
  294. package/dist/cli-delegate/chunk-YMFO6FDN.js +10603 -0
  295. package/dist/cli-delegate/cmd_analyze_session.js +294 -0
  296. package/dist/cli-delegate/cmd_conformance.js +646 -0
  297. package/dist/cli-delegate/cmd_converge.js +326 -0
  298. package/dist/cli-delegate/cmd_doctor.js +144 -0
  299. package/dist/cli-delegate/cmd_explain.js +2508 -0
  300. package/dist/cli-delegate/cmd_export.js +296 -0
  301. package/dist/cli-delegate/cmd_fleet.js +332 -0
  302. package/dist/cli-delegate/cmd_memory_get.js +3878 -0
  303. package/dist/cli-delegate/cmd_migrate.js +11 -0
  304. package/dist/cli-delegate/cmd_preflight.js +270 -0
  305. package/dist/cli-delegate/cmd_prune.js +444 -0
  306. package/dist/cli-delegate/cmd_refresh.js +28 -0
  307. package/dist/cli-delegate/cmd_settings_check.js +574 -0
  308. package/dist/cli-delegate/cmd_settings_migrate.js +223 -0
  309. package/dist/cli-delegate/cmd_sync.js +264 -0
  310. package/dist/cli-delegate/cmd_uninstall.js +656 -0
  311. package/dist/cli-delegate/cmd_update.js +425 -0
  312. package/dist/cli-delegate/cmd_upgrade.js +444 -0
  313. package/dist/cli-delegate/cmd_validate.js +305 -0
  314. package/dist/cli-delegate/cmd_versions.js +370 -0
  315. package/dist/discovery/deprecation-report.md +1 -1
  316. package/dist/discovery/discovery-manifest.json +100 -67
  317. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  318. package/dist/discovery/discovery-manifest.summary.md +4 -4
  319. package/dist/discovery/orphan-report.md +1 -1
  320. package/dist/discovery/packs.json +16 -10
  321. package/dist/discovery/trust-report.md +2 -2
  322. package/dist/discovery/workspaces.json +7 -5
  323. package/dist/hooks/dispatch.js +186 -12
  324. package/dist/install/emit_host_rules_cli.js +2 -1
  325. package/dist/install/emit_host_rules_cli.js.map +1 -1
  326. package/dist/install/install.mjs +418 -378
  327. package/dist/install/rule_scope.js +5 -1
  328. package/dist/install/rule_scope.js.map +1 -1
  329. package/dist/install/toolDetection.js +40 -12
  330. package/dist/install/toolDetection.js.map +1 -1
  331. package/dist/install/wizard-plan.js +2 -2
  332. package/dist/install/wizard-plan.js.map +1 -1
  333. package/dist/mcp/registry-manifest.json +3 -3
  334. package/dist/mcp/server.json +2 -2
  335. package/dist/mcp/server.mjs +2194 -1003
  336. package/dist/router.json +1 -1
  337. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  338. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  339. package/dist/scripts/condense.js +234 -217
  340. package/dist/scripts/condense.js.map +1 -1
  341. package/dist/server/schemas/settings.js +4 -0
  342. package/dist/server/schemas/settings.js.map +1 -1
  343. package/dist/shared/userMd/utils.js +30 -0
  344. package/dist/shared/userMd/utils.js.map +1 -1
  345. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  346. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  347. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  348. package/package.json +4 -2
  349. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  350. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  351. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  352. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  353. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  354. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  355. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  356. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  357. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  358. package/src/agent-src/templates/scripts/work_engine/state.ts +21 -4
  359. package/src/config/agent-settings.template.yml +32 -2
  360. package/src/config/ci-local-parity.yml +142 -0
  361. package/src/config/discovery/packs.yml +7 -0
  362. package/src/config/evaluator-budgets.json +1 -1
  363. package/src/config/gate-coverage.yml +127 -0
  364. package/src/config/pack-size-budget.json +27 -0
  365. package/src/config/preamble-payload-budget.json +44 -0
  366. package/src/install/emit_host_rules_cli.ts +2 -1
  367. package/src/install/rule_scope.ts +5 -1
  368. package/src/install/toolDetection.ts +39 -8
  369. package/src/install/wizard-plan.ts +2 -2
  370. package/src/scripts/_cli/cmd_conformance.ts +2 -1
  371. package/src/scripts/_cli/cmd_converge.ts +2 -1
  372. package/src/scripts/_cli/cmd_doctor.ts +292 -15
  373. package/src/scripts/_cli/cmd_export.ts +2 -1
  374. package/src/scripts/_cli/cmd_fleet.ts +2 -1
  375. package/src/scripts/_cli/cmd_migrate.ts +2 -1
  376. package/src/scripts/_cli/cmd_preflight.ts +2 -1
  377. package/src/scripts/_cli/cmd_refresh.ts +2 -1
  378. package/src/scripts/_cli/cmd_update.ts +2 -1
  379. package/src/scripts/_cli/cmd_upgrade.ts +2 -1
  380. package/src/scripts/_cli/cmd_versions.ts +2 -1
  381. package/src/scripts/_cli/detection_report.ts +480 -0
  382. package/src/scripts/_dispatch.bash +52 -14
  383. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  384. package/src/scripts/_lib/agents_overlay.ts +9 -0
  385. package/src/scripts/_lib/anchor_eval.ts +311 -0
  386. package/src/scripts/_lib/cc_transcript.ts +316 -0
  387. package/src/scripts/_lib/changelog_eras.ts +103 -9
  388. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  389. package/src/scripts/_lib/confusables.ts +101 -0
  390. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  391. package/src/scripts/_lib/environment_detector.ts +441 -0
  392. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  393. package/src/scripts/_lib/package_root.ts +72 -0
  394. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  395. package/src/scripts/_lib/preservation_migration.ts +291 -0
  396. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  397. package/src/scripts/_lib/scan_scope.ts +115 -0
  398. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  399. package/src/scripts/_lib/user_global_observations.ts +830 -0
  400. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  401. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  402. package/src/scripts/ai_council/blind_review.ts +0 -0
  403. package/src/scripts/ai_council/budget_guard.ts +90 -11
  404. package/src/scripts/ai_council/bundler.ts +2 -2
  405. package/src/scripts/ai_council/clients.ts +59 -3
  406. package/src/scripts/ai_council/config.ts +53 -7
  407. package/src/scripts/ai_council/modes.ts +68 -2
  408. package/src/scripts/ai_council/orchestrator.ts +54 -9
  409. package/src/scripts/ai_council/transport_resolver.ts +331 -0
  410. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  411. package/src/scripts/anchor_eval_falsify.ts +198 -0
  412. package/src/scripts/anchor_scoring_run.ts +239 -0
  413. package/src/scripts/annotate_discovery.ts +1 -65
  414. package/src/scripts/bench_quality_run.ts +168 -4
  415. package/src/scripts/cache_realization_report.ts +782 -0
  416. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  417. package/src/scripts/check_augment_description_cap.ts +15 -4
  418. package/src/scripts/check_bundle_path_leakage.ts +10 -4
  419. package/src/scripts/check_ci_local_parity.ts +317 -0
  420. package/src/scripts/check_condensation.ts +96 -191
  421. package/src/scripts/check_context_paths.ts +38 -9
  422. package/src/scripts/check_dependency_floors.ts +153 -0
  423. package/src/scripts/check_gate_coverage.ts +299 -0
  424. package/src/scripts/check_iron_law_prominence.ts +22 -1
  425. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  426. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  427. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  428. package/src/scripts/check_originality_freshness.ts +167 -0
  429. package/src/scripts/check_pack_size.ts +188 -0
  430. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  431. package/src/scripts/check_proposal.ts +0 -0
  432. package/src/scripts/check_references.ts +0 -1
  433. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  434. package/src/scripts/check_site_links.ts +62 -3
  435. package/src/scripts/ci_status.ts +0 -0
  436. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  437. package/src/scripts/code_graph/build.ts +0 -0
  438. package/src/scripts/command_suggester/types.ts +0 -0
  439. package/src/scripts/compile_router.ts +10 -14
  440. package/src/scripts/condense.sh +3 -4
  441. package/src/scripts/condense.ts +247 -228
  442. package/src/scripts/cost/track.mjs +168 -33
  443. package/src/scripts/cost_summary.ts +33 -1
  444. package/src/scripts/council_cli.ts +51 -5
  445. package/src/scripts/discovery_graph.ts +0 -0
  446. package/src/scripts/encoding_corpus.ts +500 -0
  447. package/src/scripts/encoding_corpus_report.ts +216 -0
  448. package/src/scripts/evaluator_umbrella.sh +34 -1
  449. package/src/scripts/generate_index.ts +19 -2
  450. package/src/scripts/install-hooks.sh +2 -2
  451. package/src/scripts/learning_sidecar.ts +0 -0
  452. package/src/scripts/lint_confusables.ts +10 -72
  453. package/src/scripts/lint_eval_fixture_citations.ts +113 -0
  454. package/src/scripts/lint_featured_skills.ts +0 -0
  455. package/src/scripts/lint_hidden_unicode.ts +208 -0
  456. package/src/scripts/lint_load_context.ts +17 -5
  457. package/src/scripts/lint_new_skill_gate.ts +9 -3
  458. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  459. package/src/scripts/lint_originality.ts +1 -1
  460. package/src/scripts/lint_skill_originality.ts +1 -1
  461. package/src/scripts/lint_ticket_buildable.ts +1 -1
  462. package/src/scripts/lint_ui_stack_bundles.ts +170 -0
  463. package/src/scripts/mcp_server/tools.ts +4 -4
  464. package/src/scripts/measure_scope_dedup.ts +224 -0
  465. package/src/scripts/memory_lookup.ts +0 -0
  466. package/src/scripts/mine_session.ts +98 -0
  467. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  468. package/src/scripts/preamble_byte_census.ts +574 -0
  469. package/src/scripts/probe_skill_registration.ts +2 -2
  470. package/src/scripts/redact_hook_capture.ts +13 -0
  471. package/src/scripts/release.ts +65 -10
  472. package/src/scripts/router_telemetry.ts +1 -1
  473. package/src/scripts/second_brain_retrieval.ts +14 -4
  474. package/src/scripts/skill_linter.ts +5 -0
  475. package/src/scripts/surface-tiers.yml +2 -0
  476. package/src/scripts/validate_pack_yaml.ts +0 -0
  477. package/src/server/schemas/settings.ts +8 -0
  478. package/src/shared/userMd/utils.ts +31 -0
  479. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -7,7 +7,7 @@ visibility: internal
7
7
  cluster: agents
8
8
  sub: user
9
9
  skills: [agents]
10
- description: List buffered observations from .agent-user.observations.jsonl with numbered options to inspect or accept individually.
10
+ description: List buffered observations from the project-local and global observation buffers with numbered options to inspect or accept individually.
11
11
  suggestion:
12
12
  eligible: false
13
13
  rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
@@ -19,14 +19,17 @@ packs:
19
19
 
20
20
  # /agents user review
21
21
 
22
- List the buffered observations in `.agent-user.observations.jsonl`
23
- and let the user choose which to inspect or accept.
22
+ List the buffered observations across BOTH observation buffers —
23
+ project-local `.agent-user.observations.jsonl` and the global
24
+ `~/.event4u/agent-config/user/observations.jsonl` (ADR-138,
25
+ road-to-global-user-memory Phase 2) — and let the user choose which to
26
+ inspect or accept.
24
27
 
25
28
  Use when:
26
29
 
27
30
  - You want to see what the agent has learned about your preferences.
28
- - You suspect `.agent-user.md` is out of date and want a curated
29
- diff before editing.
31
+ - You suspect `.agent-user.md` (or the global `profile.md`) is out of
32
+ date and want a curated diff before editing.
30
33
  - You want to dismiss observations the agent collected.
31
34
 
32
35
  Read-only by itself — actual changes go through
@@ -35,57 +38,90 @@ Read-only by itself — actual changes go through
35
38
 
36
39
  ## Steps
37
40
 
38
- ### 1. Locate buffer
41
+ ### 1. Locate buffers
39
42
 
40
43
  ```bash
41
44
  ls .agent-user.observations.jsonl 2>/dev/null
42
45
  ```
43
46
 
44
- | State | Action |
47
+ Resolve the global buffer's path via `user_global_observations.
48
+ resolveGlobalObservationsPath()` — it honours the config-home override
49
+ env var and the legacy fallback root exactly like every other global
50
+ artefact, so never hard-code either path here.
51
+
52
+ | State (either buffer) | Action |
45
53
  |---|---|
46
- | Missing or empty | Print "No buffered observations. The agent has not learned anything new." and stop |
47
- | Present | Proceed |
54
+ | Both missing or empty | Print "No buffered observations. The agent has not learned anything new." and stop |
55
+ | At least one present | Proceed with whichever buffer(s) exist |
48
56
 
49
57
  ### 2. Parse + group
50
58
 
51
- Read every line as JSON. Drop malformed lines silently (one-line
52
- warning at the end with the count). Group by `field`:
59
+ Read every line as JSON from BOTH buffers via
60
+ [`user_global_observations.readGlobalObservations`](../../../../src/scripts/_lib/user_global_observations.ts)
61
+ for the global one, and the equivalent tolerant parse for the
62
+ project-local file. Drop malformed lines silently (one-line warning at
63
+ the end with the combined count; `readGlobalObservations` already
64
+ reports `droppedMalformed` / `droppedUnknownField`). Group by `field`
65
+ ACROSS both buffers, tagging each observation with its layer:
53
66
 
54
67
  ```
55
- .agent-user.observations.jsonl — {n} observations across {k} fields
68
+ Buffered observations — {n} across {k} fields ({p} project-local, {g} global)
56
69
 
57
70
  1. style.pace ({n}× since {oldest_ts})
58
- latest suggest: "rapid" — evidence: user said 'mach kürzer' 3× this session
71
+ latest suggest: "rapid" [global] — evidence: user said 'mach kürzer' 3× this session
59
72
  2. identity.nickname ({n}× since {oldest_ts})
60
- latest suggest: "Matze" — evidence: user signed last 3 messages "— Matze"
73
+ latest suggest: "Matze" [project] — evidence: user signed last 3 messages "— Matze"
61
74
  3. language ({n}× since {oldest_ts})
62
- latest suggest: "de" — evidence: last 12 messages in German, .agent-user.md says "en"
75
+ latest suggest: "de" [global] — evidence: last 12 messages in German, profile says "en"
76
+ ```
77
+
78
+ Sort by frequency (most observations first, combined across both
79
+ layers), then by recency. When the SAME field has observations in both
80
+ layers, list the most-recent one first and note both counts.
81
+
82
+ ### 2a. Promotion candidates (road-to-global-user-memory Phase 3)
83
+
84
+ Separately from the field grouping above, call
85
+ [`findPromotionCandidates`](../../../../../src/scripts/_lib/user_global_observations.ts)
86
+ over the global buffer's entries. Any observation with `seen_count ≥ 3`
87
+ (`PROMOTION_SEEN_COUNT_THRESHOLD`) is project-attributed, human-confirmed
88
+ recurring evidence across that many DIFFERENT projects — surface it as
89
+ its own block, ahead of the field list:
90
+
91
+ ```
92
+ Promotion candidates — seen in 3+ projects:
93
+
94
+ 1. "always use pnpm instead of npm for installs" — seen in 3 projects (acme-web, acme-api, acme-mobile)
63
95
  ```
64
96
 
65
- Sort by frequency (most observations first), then by recency.
97
+ This is candidacy only, never a promotion — crossing the threshold makes
98
+ `/agents user accept` able to offer promoting it, nothing more (see
99
+ [`agent-user-schema.md § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3)).
66
100
 
67
101
  ### 3. Ask
68
102
 
69
103
  ```
70
- > 1. Accept the most-frequent suggestion ({field} → {value})
104
+ > 1. Accept the most-frequent suggestion ({field} [{layer}] → {value})
71
105
  > 2. Inspect a specific field
72
- > 3. Clear the buffer (discard all)
73
- > 4. Cancel
106
+ > 3. Clear a buffer (project-local, global, or both)
107
+ > 4. Promote a candidate from step 2a (only shown when ≥ 1 exists)
108
+ > 5. Cancel
74
109
  ```
75
110
 
76
111
  | Choice | Action |
77
112
  |---|---|
78
- | 1 | Hand off to [`/agents user accept`](accept.md) with the chosen field |
79
- | 2 | Print every observation for that field with evidence + ts, then re-ask |
80
- | 3 | Truncate `.agent-user.observations.jsonl` to zero bytes; print confirmation |
81
- | 4 | Stop without changes |
113
+ | 1 | Hand off to [`/agents user accept`](accept.md) with the chosen field AND layer |
114
+ | 2 | Print every observation for that field (both layers) with evidence + ts, then re-ask |
115
+ | 3 | Ask which buffer(s) to truncate, then truncate the chosen file(s) to zero bytes; print confirmation |
116
+ | 4 | Hand off to [`/agents user accept`](accept.md) with the chosen promotion candidate — `accept` collects the mandatory `promotion_reason` before writing anything |
117
+ | 5 | Stop without changes |
82
118
 
83
119
  One question per turn. Wait for the user's number.
84
120
 
85
121
  ### 4. Privacy-floor verify
86
122
 
87
123
  Before printing any observation's `evidence` text, scan it for the
88
- [exclusions list](../../../../../../../../docs/contracts/agent-user-schema.md#explicit-exclusions).
124
+ [exclusions list](../../../../../docs/contracts/agent-user-schema.md#explicit-exclusions).
89
125
  Match → replace the offending substring with `[redacted]` in the
90
126
  rendered output.
91
127
 
@@ -100,14 +136,15 @@ turn.
100
136
 
101
137
  ## Rules
102
138
 
103
- - Read-only on `.agent-user.md`. Only `accept` writes to the persona
104
- file.
105
- - Buffer is the only mutable artefact (truncate via option 3).
139
+ - Read-only on `.agent-user.md` AND the global `profile.md`. Only
140
+ `accept` writes to either persona file.
141
+ - Both buffers are the only mutable artefacts (truncate via option 3).
106
142
  - Mirror the user's language for prompts per
107
143
  [`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
108
144
 
109
145
  ## See also
110
146
 
111
- - Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../../../../../docs/contracts/agent-user-schema.md#observation-buffer).
147
+ - Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../../docs/contracts/agent-user-schema.md#observation-buffer).
148
+ - Global buffer implementation: [`user_global_observations.ts`](../../../../src/scripts/_lib/user_global_observations.ts).
112
149
  - Parent: [`/agents user`](../user.md).
113
150
  - Sibling: [`/agents user accept`](accept.md), [`/agents user update`](update.md).
@@ -7,7 +7,8 @@ visibility: internal
7
7
  cluster: agents
8
8
  sub: user
9
9
  skills: [agents]
10
- description: Read-only render of .agent-user.md — prints the persona summary the host agent loads at session start.
10
+ description: Read-only render of the effective (merged) user profile — global profile.md plus project .agent-user.md. --audit renders the global layer raw for delete/revoke decisions.
11
+ argument-hint: "[--audit]"
11
12
  suggestion:
12
13
  eligible: false
13
14
  rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
@@ -19,50 +20,71 @@ packs:
19
20
 
20
21
  # /agents user show
21
22
 
22
- Read-only render of the project-root `.agent-user.md` per
23
- [`docs/contracts/agent-user-schema.md`](../../../../../../../../../../../docs/contracts/agent-user-schema.md).
23
+ Read-only render of the **effective, merged** user profile — the
24
+ global `~/.event4u/agent-config/user/profile.md` layer plus the
25
+ project-root `.agent-user.md` layer — per
26
+ [`docs/contracts/agent-user-schema.md`](../../../../../docs/contracts/agent-user-schema.md)
27
+ and its Loader contract / merge rule (ADR-138).
24
28
 
25
29
  Use when:
26
30
 
27
31
  - You want to see what persona the host agent currently loads.
28
- - You want to confirm `last_updated` is fresh (≤90 days).
32
+ - You want to confirm the **effective** `last_updated` is fresh (≤90 days).
29
33
  - You want a paste-ready summary for handoff or onboarding.
30
34
 
31
35
  Does **not** edit, observe, or buffer anything. Pure read.
32
36
 
37
+ Called with `--audit` (road-to-global-user-memory Phase 4): renders the
38
+ GLOBAL layer's raw holdings instead of the merged effective profile —
39
+ see [§ Audit mode](#audit-mode---audit) below. Use `--audit` when
40
+ deciding what to delete via [`/agents user delete`](delete.md).
41
+
33
42
  ## Steps
34
43
 
35
- ### 1. Locate the file
44
+ ### 1. Locate both layers
36
45
 
37
46
  ```bash
38
47
  ls .agent-user.md 2>/dev/null
48
+ ls ~/.event4u/agent-config/user/profile.md 2>/dev/null
49
+ ls ~/.config/agent-config/user/profile.md 2>/dev/null # legacy fallback
39
50
  ```
40
51
 
41
- | State | Action |
42
- |---|---|
43
- | Present | Proceed |
44
- | Missing | Print "No `.agent-user.md` found at project root. Run `/agents user init` to create one." and stop |
52
+ | Project file | Global file | Action |
53
+ |---|---|---|
54
+ | Present | Present or absent | Proceed — project layer wins per field it declares |
55
+ | Missing | Present | Proceed — render sourced entirely from the global layer |
56
+ | Missing | Missing | Print "No `.agent-user.md` and no global profile found. Run `/agents user init` to create one, or set up the global profile." and stop |
45
57
 
46
- ### 2. Parse frontmatter
58
+ ### 2. Parse frontmatter — per layer
47
59
 
48
- Parse the YAML frontmatter and the body (everything after the second
49
- `---`). Validate against the locked v1 schema:
60
+ Parse each present layer's YAML frontmatter and body (everything after
61
+ the second `---`) independently. Per layer:
50
62
 
51
63
  - `version` is `1`.
52
- - `identity.name`, `language`, `role`, `style.pace`,
53
- `voice_sample`, `last_updated` are all present.
54
- - File is ≤100 lines total.
64
+ - File is ≤100 lines total — the cap applies **per layer**, never as a
65
+ shared total across both files.
66
+
67
+ Any violation → print a one-line warning identifying the layer, the
68
+ missing/malformed field, and continue with the render (so the user can
69
+ fix it via `/agents user update`).
70
+
71
+ ### 3. Merge
55
72
 
56
- Any violation → print a one-line warning identifying the missing /
57
- malformed field and continue with the render (so the user can fix it
58
- via `/agents user update`).
73
+ Apply the deepest-wins merge rule per
74
+ [`agent-user-schema.md § Global profile layer`](../../../../../docs/contracts/agent-user-schema.md#global-profile-layer-adr-138):
75
+ for each field (`identity.name`, `language`, `role`, `style.pace`,
76
+ `voice_sample`, `last_updated`), the project layer's value wins when
77
+ present, otherwise the global layer's value is used. `# Notes`
78
+ concatenates both layers' text under `[global]` / `[project]` markers
79
+ when both carry content.
59
80
 
60
- ### 3. Render
81
+ ### 4. Render
61
82
 
62
- Print the persona in this exact shape:
83
+ Print the merged persona in this exact shape:
63
84
 
64
85
  ```
65
- .agent-user.md ({n} lines, last_updated: YYYY-MM-DD{staleness_marker})
86
+ Effective user profile ({staleness_marker})
87
+ sources: identity.name={global|project}, style.pace={global|project}, …
66
88
 
67
89
  Identity : {nickname or name} ({name} if nickname is set)
68
90
  Language : {language}
@@ -75,15 +97,20 @@ Print the persona in this exact shape:
75
97
 
76
98
  Notes
77
99
  ─────────────
78
- {body, indented 2 spaces; "(empty)" if no notes}
100
+ {merged notes, indented 2 spaces; "(empty)" if neither layer has notes}
79
101
  ```
80
102
 
81
- Where `{staleness_marker}` is:
103
+ Where `{staleness_marker}` reflects the **effective** `last_updated`
104
+ (the merged value, not necessarily the project file's own date):
82
105
 
83
- - empty when `last_updated` is within 90 days.
106
+ - empty when within 90 days.
84
107
  - ` ⚠️ >90 days` when older (per the schema staleness rule).
85
108
 
86
- ### 4. Loader hint
109
+ The `sources:` line lists only the fields that resolved to a
110
+ non-default value, so a project-only or global-only user sees a
111
+ single-source line and is not confused by an empty cascade.
112
+
113
+ ### 5. Loader hint
87
114
 
88
115
  If the host-agent loader has NOT yet picked up the file this session
89
116
  (detect via session memory if available), print one line:
@@ -94,13 +121,39 @@ If the host-agent loader has NOT yet picked up the file this session
94
121
 
95
122
  Otherwise omit — agent already knows.
96
123
 
97
- ### 5. Stop
124
+ ### 6. Stop
98
125
 
99
126
  Do NOT chain to other `/agents user *` commands. Do NOT commit.
100
127
 
128
+ ## Audit mode (`--audit`)
129
+
130
+ Road-to-global-user-memory Phase 4. Renders what the GLOBAL layer
131
+ currently holds — `profile.md`'s fields, the observation buffer's entry
132
+ count and per-field counts, promotion candidates, and the revocation
133
+ ledger's tombstone count — without the user reading raw JSONL. This is
134
+ the global layer only; the project-local `.agent-user.md` never leaves
135
+ the project it lives in, so there is nothing to audit for it here.
136
+
137
+ 1. Call
138
+ [`renderGlobalMemoryAudit()`](../../../../../src/scripts/_lib/user_global_memory_audit.ts).
139
+ 2. Print its `text` verbatim — every value it contains already passed
140
+ the same
141
+ [`knowledge_global_redaction.redaction_scan`](../../../../../src/scripts/_lib/knowledge_global_redaction.ts)
142
+ gate the write path runs; nothing here needs a second scan.
143
+ 3. If `revocationCount > 0`, add one line: "Run `/agents user delete
144
+ --show-revoked` to see what was deleted and why." (a stub for a
145
+ future `--show-revoked` flag; today the count is sufficient — the
146
+ full ledger is inspectable via
147
+ [`user_global_revocations.loadTombstones`](../../../../../src/scripts/_lib/user_global_revocations.ts)
148
+ for a maintainer who needs it).
149
+ 4. Stop. Do NOT chain to `--audit`'s own delete follow-up — hand the
150
+ user to [`/agents user delete`](delete.md) explicitly if they name
151
+ something to remove.
152
+
101
153
  ## Rules
102
154
 
103
- - Read-only. Never write `.agent-user.md` from this command.
155
+ - Read-only. Never write `.agent-user.md` or the global `profile.md`
156
+ from this command — including `--audit` mode.
104
157
  - Never print fields the schema does not define — even if they exist
105
158
  in the file. (Forward-compat: an unexpected field is a warning, not
106
159
  a render target.)
@@ -110,6 +163,6 @@ Do NOT chain to other `/agents user *` commands. Do NOT commit.
110
163
 
111
164
  ## See also
112
165
 
113
- - Schema: [`agent-user-schema`](../../../../../../../../../../../docs/contracts/agent-user-schema.md).
166
+ - Schema: [`agent-user-schema`](../../../../../docs/contracts/agent-user-schema.md) — see § Global profile layer for the merge rule this command renders, and § Delete, revoke, and audit for `--audit`'s contract.
114
167
  - Parent: [`/agents user`](../user.md).
115
- - Sibling: [`/agents user init`](init.md), [`/agents user update`](update.md).
168
+ - Sibling: [`/agents user init`](init.md), [`/agents user update`](update.md), [`/agents user delete`](delete.md) — the delete/revoke counterpart `--audit` informs.
@@ -61,7 +61,7 @@ When called with `--validate` (or after the user confirms "done"):
61
61
 
62
62
  1. Read `.agent-user.md`.
63
63
  2. Parse frontmatter; check every required field per
64
- [`agent-user-schema § Field reference`](../../../../../../../docs/contracts/agent-user-schema.md#field-reference).
64
+ [`agent-user-schema § Field reference`](../../../../../docs/contracts/agent-user-schema.md#field-reference).
65
65
  3. Check file size ≤100 lines.
66
66
  4. Run the privacy-floor scan (same as `init` step 4): credentials,
67
67
  third-party PII, financial figures, health/legal status.
@@ -99,6 +99,6 @@ Do NOT commit. Do NOT chain to another `/agents user *` command.
99
99
 
100
100
  ## See also
101
101
 
102
- - Schema: [`agent-user-schema`](../../../../../../../docs/contracts/agent-user-schema.md).
102
+ - Schema: [`agent-user-schema`](../../../../../docs/contracts/agent-user-schema.md).
103
103
  - Parent: [`/agents user`](../user.md).
104
104
  - Sibling: [`/agents user init`](init.md), [`/agents user show`](show.md), [`/agents user review`](review.md).
@@ -25,6 +25,18 @@ Sub-dispatcher for the user-persona file
25
25
  single, project-root, gitignored Markdown file that captures who the
26
26
  user is and how they want the agent to address them.
27
27
 
28
+ Since ADR-138, a weaker global layer
29
+ (`~/.event4u/agent-config/user/profile.md`) sits beneath the
30
+ project-local file — see
31
+ [`agent-user-schema.md § Global profile layer`](../../../docs/contracts/agent-user-schema.md#global-profile-layer-adr-138)
32
+ for the merge rule. `init` and `update` operate on the **project-local**
33
+ file only; `review` and `accept` cover BOTH layers' observation buffers
34
+ (road-to-global-user-memory Phase 2/3); `show` renders the merged,
35
+ effective profile by default, or the global layer's raw holdings with
36
+ `--audit`; `delete` removes something the global learning channel wrote
37
+ — an observation, a project's worth of observations, or a promoted
38
+ profile field — with a tombstone in every case (Phase 4).
39
+
28
40
  **Why this is its own cluster:** `AGENTS.md` describes the *project*
29
41
  to the agent. `.agent-user.md` describes the *user* to the agent.
30
42
  Two distinct primitives — same `/agents` family for discoverability,
@@ -35,10 +47,11 @@ separate sub-commands for separation of concerns.
35
47
  | Sub-sub-command | Routes to | Purpose |
36
48
  |---|---|---|
37
49
  | `/agents user init` | `commands/agents/user/init.md` | Short interview → creates `.agent-user.md` |
38
- | `/agents user show` | `commands/agents/user/show.md` | Read-only render of the persona |
39
- | `/agents user review` | `commands/agents/user/review.md` | List buffered observations from `.agent-user.observations.jsonl` |
40
- | `/agents user accept` | `commands/agents/user/accept.md` | Apply a buffered observation with confirmation |
50
+ | `/agents user show` | `commands/agents/user/show.md` | Read-only render of the persona; `--audit` renders the global layer's raw holdings |
51
+ | `/agents user review` | `commands/agents/user/review.md` | List buffered observations from both the project-local and the global buffer |
52
+ | `/agents user accept` | `commands/agents/user/accept.md` | Apply a buffered observation (either layer) with confirmation |
41
53
  | `/agents user update` | `commands/agents/user/update.md` | Open in IDE for manual edit; validate on save |
54
+ | `/agents user delete` | `commands/agents/user/delete.md` | Delete an observation, purge a project's observations, or revoke a profile field — with a tombstone |
42
55
 
43
56
  Schema contract:
44
57
  [`docs/contracts/agent-user-schema.md`](../../../docs/contracts/agent-user-schema.md).
@@ -109,16 +109,6 @@ After all fixes, re-run:
109
109
  ./scripts-run src/scripts/check_md_language <path> [<path> …]
110
110
  ```
111
111
 
112
- ### 6. Mark hashes (only if `.agent-src.uncondensed/` was edited)
113
-
114
- For each modified source file:
115
-
116
- ```bash
117
- ./scripts-run src/scripts/condense --mark-done "{relative_path}"
118
- ```
119
-
120
- This keeps `.condensation-hashes.json` consistent with the new content.
121
-
122
112
  ## Rules
123
113
 
124
114
  - **Never edit `.augment/` directly** — it's a generated projection.
@@ -23,8 +23,8 @@ packs:
23
23
  Condense agent config `.md` files from `src/` into token-efficient telegraph format
24
24
  and write the condensed output to `dist/agent-src/`.
25
25
 
26
- Uses SHA-256 hashes to track which source files changed since last condensation.
27
- Only changed files need recondensation — saving tokens and time.
26
+ The projection is deterministic: `dist == rewrite(src)` byte-for-byte. A file is
27
+ out of date only when its projection does not match that rewrite.
28
28
 
29
29
  ## Step 1: Sync non-.md files
30
30
 
@@ -41,99 +41,37 @@ changed `.md` files that need condensation.
41
41
  bash scripts/condense.sh --changed
42
42
  ```
43
43
 
44
- This lists only `.md` files whose source has changed since the last condensation (based on
45
- stored SHA-256 hashes). If no files changed → you're done.
44
+ This lists only `.md` files whose projection is out of date (`dist != rewrite(src)`).
45
+ If no files are listed → you're done.
46
46
 
47
47
  If you need to see ALL files regardless of change status:
48
48
  `bash scripts/condense.sh --list`.
49
49
 
50
- ## Step 3: Condense each changed .md file
51
-
52
- **Core principle:** Condensation must improve execution quality, not just reduce length.
53
- A condensed file should be easier to scan, easier to trigger, and easier to execute than the original.
54
-
55
- For each changed `.md` file:
56
-
57
- 1. Read the source from `src/{path}`
58
- 2. Condense the prose using these rules:
59
- - **Remove:** articles (a, an, the), filler (just, really, basically, actually, simply, essentially),
60
- pleasantries, hedging, connective fluff (however, furthermore, additionally),
61
- redundant wording, obvious framework knowledge, repeated explanations, decorative prose
62
- - **Shorten:** "in order to" → "to", "make sure to" → "ensure", use short synonyms
63
- - **Abbreviate** common terms when context is unambiguous: `DB`, `auth`,
64
- `config`, `req`, `res`, `fn`, `impl`, `env`, `deps`, `ctx`. Skip if it
65
- would be the first occurrence of the concept in the file, or if the
66
- abbreviation collides with a domain term (e.g. `auth` stays
67
- `authentication` inside an auth-module file). Never abbreviate inside
68
- code blocks, frontmatter, file paths, command strings, or Iron Law
69
- fenced blocks.
70
- - **Arrows for causality:** `X causes Y` / `X leads to Y` / `X, then Y`
71
- → `X → Y`. Keep arrows out of code blocks, frontmatter, and Iron Law
72
- fenced blocks; only the surrounding prose uses them. (The example
73
- phrases here are intentionally backticked so the inline-code
74
- protection skips them — never strip those backticks.)
75
- - **Fragments OK:** "Run tests before commit" not "You should always run tests before committing"
76
- - **Drop:** "you should", "make sure to", "remember to" — state action directly
77
- - **Merge** redundant bullets that say the same thing differently
78
- - **Prefer** bullets over prose, direct instructions over explanatory paragraphs, one-line decisions over paragraphs
79
- 3. **Copy-paste first, condense second:**
80
- Before condensing ANY prose, extract and set aside these elements from the source.
81
- They go into the condensed output **unchanged, byte-for-byte**:
82
- - **All code blocks** (``` fenced or indented) — copy EVERY code block from source to output FIRST
83
- - **YAML frontmatter** — copy verbatim
84
- - **All inline code** (`backtick content`)
85
- - **All URLs, links, file paths, commands**
86
- - **All H1/H2 headings** — exact text preserved
87
- - **Tables** (structure preserved, condense cell text only)
88
- - **Technical terms, library names, API names**
89
- - **Dates, version numbers, numeric values**
90
- Then condense ONLY the prose around these preserved elements.
91
- 4. **NEVER remove (even if verbose):**
92
- - Trigger clarity (When to use / description)
93
- - Decision hints that prevent mistakes
94
- - Concrete validation checks
95
- - Gotchas based on real failure patterns
96
- - Anti-patterns that prevent recurring failures
97
- - **Iron Law sections** — see "Iron Laws — do not touch" below
98
- 5. **Enrich (SKILL.md files only):** During condensation, also improve agent-effectiveness:
99
- - **Validation steps:** If a Procedure ends with a vague validation ("check if it works"),
100
- replace with concrete checks (expected output, commands to verify, specific conditions)
101
- - **Mini examples:** If no `Examples` section exists, add a short safe/unsafe or good/bad example
102
- (2-4 lines max — not a tutorial)
103
- - **Output format:** If the Output format section is vague ("explain everything"), sharpen it to
104
- specific numbered expectations ("1. Code snippet 2. Where to register 3. Gotcha if relevant")
105
- - **Anti-patterns:** If the same mistake keeps recurring, add a short anti-patterns section
106
- - **Do NOT invent content.** Only concretize what the source implies. If the source says
107
- "validate copy/paste safety", you can add "Check: no nested backticks, fully selectable".
108
- But don't add unrelated sections.
109
- - **Do NOT condense weak skills.** If the source has no procedure or no validation, fix structure first.
110
- - **Reference skill:** See `src/skills/skill-writing/SKILL.md` for the gold standard
111
- 6. Write the condensed output to `dist/agent-src/{path}`
112
- 7. **MANDATORY: Run condensation quality check on this file:**
50
+ ## Step 3: nothing to condense — the projection is a deterministic copy
113
51
 
114
- ```bash
115
- ./scripts-run src/scripts/check_condensation --format text 2>&1 | grep "{path}"
116
- ```
117
-
118
- If the output contains 🔴 (error) for this file: **STOP. Fix the condensed file before continuing.**
119
- Common errors and how to fix them:
120
- - `lost_code_blocks` → You dropped a code block. Copy ALL code blocks from source.
121
- - `modified_code_block` → Code block content changed. Replace with exact source content.
122
- - `frontmatter_mismatch` → YAML frontmatter differs. Copy verbatim from source.
52
+ **ADR-201 (accepted 2026-07-29) removed the LLM prose rewrite from this command.**
53
+ `.md` is copied verbatim and path-rewritten by `condense.sh --sync`; there is no
54
+ per-file condensation step for the agent to perform any more.
123
55
 
124
- **Do NOT call `mark-done` until this file has zero 🔴 errors.**
56
+ Why it was removed, measured with exact `tiktoken cl100k_base` over 429 artefacts:
57
+ 0 of them saved >= 500 tok, the aggregate saving was 0.86%, 267/429 pairs were
58
+ byte-identical, and the 9 always-loaded kernel rules came out **36 tokens worse**.
59
+ Determinism failed by construction — the hash covered the source and never the
60
+ output, so divergence was undetectable, and it went undetected three times in a
61
+ single session.
125
62
 
126
- 8. Show word count: `{original} → {condensed} words ({saved}% saved)`
127
- 9. **Mark as done:** `bash scripts/condense.sh --mark-done {path}`
63
+ The instruction that used to live here already demanded *"copy EVERY code block
64
+ from source to output FIRST, unchanged, byte-for-byte"*. It was clear, and it was
65
+ broken anyway in six artefacts — corrupting template blocks users copy verbatim —
66
+ because nothing checked it. That is the case for removing the rewrite rather than
67
+ restating the rule more firmly.
128
68
 
129
- ### Batch processing
69
+ What survives is the one deterministic transform: `apply_path_rewriter` fixes
70
+ relative links so they resolve from the delivered location (`../../docs/…` →
71
+ `../docs/…`, ~38 artefacts). It runs automatically on every copy.
130
72
 
131
- When condensing multiple files, process them in batches of ~10.
132
- Mark each file done after writing it. After each batch, show a progress summary:
133
-
134
- ```
135
- Batch 1/5 complete: 10 files, avg 42% saved
136
- ```
73
+ **If you were sent here to condense a file: don't.** Edit `src/`, run
74
+ `--sync`, and let Step 4 verify that `dist == rewrite(src)` byte-for-byte.
137
75
 
138
76
  ## Step 4: Final verification gate
139
77
 
@@ -143,7 +81,7 @@ Run BOTH checks. Both must pass before finishing.
143
81
  bash scripts/condense.sh --check
144
82
  ```
145
83
 
146
- Must show ✅ (hashes in sync).
84
+ Must show ✅ (`dist/agent-src/` in sync with source).
147
85
 
148
86
  ```bash
149
87
  ./scripts-run src/scripts/check_condensation
@@ -162,14 +100,6 @@ Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
162
100
  - `full` → multi-line table with per-category stats (files condensed,
163
101
  avg savings).
164
102
 
165
- ## Hash management
166
-
167
- - Hashes are stored in `.augment/.condensation-hashes.json` (committed to Git).
168
- - `bash scripts/condense.sh --sync` automatically cleans up hashes for deleted source files.
169
- - `bash scripts/condense.sh --mark-all-done` marks ALL current `.md` files as condensed
170
- (useful after an initial full condensation or when bootstrapping the hash file).
171
- - A file with no stored hash is always treated as "changed".
172
-
173
103
  ## Iron Laws — do not touch
174
104
 
175
105
  Sections under headings matching `Iron Law`, `Iron Laws`, or `The Iron Law` (any
@@ -202,7 +132,9 @@ If an Iron Law section genuinely contains filler (rare): edit the SOURCE in
202
132
 
203
133
  ## Condensation quality checklist
204
134
 
205
- **Also apply the `preservation-guard` rule** — strongest validation, example, anti-pattern, and decision hints must survive condensation. Iron Laws are non-negotiable.
135
+ **Also apply the [preservation-guard](../rules/preservation-guard.md) rule** — strongest validation, example, anti-pattern, and decision hints must survive condensation. Iron Laws are non-negotiable.
136
+
137
+ See also: [markdown-safe-codeblocks](../rules/markdown-safe-codeblocks.md) for fenced-block hygiene.
206
138
 
207
139
  After condensing each file, verify:
208
140
 
@@ -237,4 +169,3 @@ Unsafe (DO NOT do this):
237
169
  - **Only write to `.augment/`** — the condensed output directory.
238
170
  - **Preserve ALL technical content** — only condense natural language prose.
239
171
  - **YAML frontmatter** in command/skill files must be preserved exactly.
240
- - **Always run `bash scripts/condense.sh --mark-done {path}`** after writing each condensed file.
@@ -37,6 +37,13 @@ Emits a Markdown summary of the session (model breakdown, per-tier cost,
37
37
  total USD) and appends a JSON record to
38
38
  `agents/cost-tracking/sessions.jsonl`.
39
39
 
40
+ The summary now also reports a **replay dedup ratio** and splits **main session vs
41
+ subagent legs**. Both matter for reading the number honestly: Claude Code replays
42
+ the same assistant turn into many transcripts, so before the dedup fix this report
43
+ overstated tokens and cost by roughly 2x — and the overstatement grew with
44
+ conversation length. Any cost figure quoted from a run before that fix should be
45
+ treated as pre-dedup.
46
+
40
47
  If `track.mjs` exits 2 with `no Claude Code project dir`, the user is not in
41
48
  a Claude Code session — surface that and stop.
42
49
 
@@ -91,14 +91,6 @@ After all fixes, re-run:
91
91
  ./scripts-run src/scripts/check_portability
92
92
  ```
93
93
 
94
- ### 6. Mark hashes
95
-
96
- For each modified file:
97
-
98
- ```bash
99
- ./scripts-run src/scripts/condense --mark-done "{relative_path}"
100
- ```
101
-
102
94
  ## Rules
103
95
 
104
96
  - **Always fix in `src/`** — never edit `.augment/` directly.
@@ -88,14 +88,6 @@ After all fixes:
88
88
 
89
89
  Show final result.
90
90
 
91
- ### 6. Mark hashes
92
-
93
- For each modified file:
94
-
95
- ```bash
96
- ./scripts-run src/scripts/condense --mark-done "{relative_path}"
97
- ```
98
-
99
91
  ## Rules
100
92
 
101
93
  - **Always fix in `src/`** — never edit `dist/agent-src/` or `.augment/` directly.
@@ -35,7 +35,7 @@ counterpart to the write-engine's built-in step 4b audit.
35
35
  - `/humanize <path>` — read the file at `<path>` (read-only).
36
36
  - `/humanize --voice=<ghostwriter-slug|me>` — optionally resolve a voice
37
37
  via the write-engine's style-source resolution (§ 1 of the
38
- [`write-engine`](../docs/contracts/write-engine.md) contract):
38
+ [`write-engine`](../../docs/contracts/write-engine.md) contract):
39
39
  a ghostwriter slug loads `agents/reference/ghostwriter/<slug>.md`, `me`
40
40
  loads `.agent-user.md`. The resolved fingerprint takes precedence over
41
41
  humanizer defaults (a voice that legitimately uses em dashes wins). No
@@ -96,7 +96,7 @@ never reworded, never dropped.
96
96
 
97
97
  - [`humanizer`](../../../src/skills/humanizer/SKILL.md) — the skill this
98
98
  command wraps.
99
- - [`write-engine § 4b`](../docs/contracts/write-engine.md) — the
99
+ - [`write-engine § 4b`](../../docs/contracts/write-engine.md) — the
100
100
  built-in audit for ghostwriter/post-as drafts.
101
101
  - [`content-quoting-floor`](../../../src/rules/content-quoting-floor.md)
102
102
  — quoted text is never rewritten.