@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
@@ -0,0 +1,247 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ agents/.ai-video.xml.example
4
+ ============================
5
+
6
+ Operator-facing provider configuration for the /video:* command cluster.
7
+
8
+ Copy this file to `agents/.ai-video.xml` and fill in the API keys for the
9
+ providers you actually use. The real file is gitignored and MUST NEVER be
10
+ committed.
11
+
12
+ Loader: scripts/media/lib/load-config.sh
13
+ Redaction: scripts/media/lib/redact.sh
14
+ Docs: agents/reference/ai-video/README.md
15
+ -->
16
+ <ai-video version="1">
17
+
18
+ <!--
19
+ Defaults: pick which provider a /video:* run uses when the command
20
+ does not pass the image-provider / video-provider flags. Must match
21
+ a provider id="..." declared below.
22
+
23
+ Each provider carries a <lifecycle> tag — experimental | stable |
24
+ deprecated | community — per docs/contracts/provider-lifecycle.md.
25
+ Day-one shipped tiers are conservative: every adapter is
26
+ `experimental` until a maintainer captures a real-API smoke trace.
27
+ The agent refuses to *default* to a non-stable provider silently;
28
+ it surfaces the tier and asks before running.
29
+ -->
30
+ <default-image-provider>openai-images</default-image-provider>
31
+ <default-video-provider>gemini-veo</default-video-provider>
32
+
33
+ <!-- ============================================================ -->
34
+ <!-- Image providers -->
35
+ <!-- ============================================================ -->
36
+
37
+ <provider id="openai-images" kind="image">
38
+ <lifecycle>stable</lifecycle>
39
+ <api-key>sk-REPLACE-ME</api-key>
40
+ <endpoint>https://api.openai.com/v1</endpoint>
41
+ <default-model>gpt-image-1</default-model>
42
+ <dry-run>true</dry-run>
43
+ <tuning>
44
+ <aspect>16:9</aspect>
45
+ <quality>high</quality>
46
+ <best-of-n>4</best-of-n>
47
+ </tuning>
48
+ </provider>
49
+
50
+ <!-- ============================================================ -->
51
+ <!-- Video providers -->
52
+ <!-- ============================================================ -->
53
+
54
+ <provider id="higgsfield" kind="image+video">
55
+ <lifecycle>stable</lifecycle>
56
+ <api-key>hf-REPLACE-ME</api-key>
57
+ <endpoint>https://api.higgsfield.ai/v1</endpoint>
58
+ <default-model>higgsfield-soul</default-model>
59
+ <dry-run>true</dry-run>
60
+ <tuning>
61
+ <aspect>16:9</aspect>
62
+ <preset>cinematic</preset>
63
+ <max-duration>5</max-duration>
64
+ <best-of-n>2</best-of-n>
65
+ </tuning>
66
+ </provider>
67
+
68
+ <provider id="gemini-veo" kind="video">
69
+ <lifecycle>stable</lifecycle>
70
+ <api-key>AIza-REPLACE-ME</api-key>
71
+ <endpoint>https://generativelanguage.googleapis.com/v1beta</endpoint>
72
+ <default-model>veo-3.0-generate-001</default-model>
73
+ <dry-run>true</dry-run>
74
+ <tuning>
75
+ <aspect>16:9</aspect>
76
+ <fps>24</fps>
77
+ <max-duration>8</max-duration>
78
+ <audio-native>true</audio-native>
79
+ </tuning>
80
+ </provider>
81
+
82
+ <provider id="kling" kind="video">
83
+ <lifecycle>stable</lifecycle>
84
+ <access-key>kling-access-REPLACE-ME</access-key>
85
+ <secret-key>kling-secret-REPLACE-ME</secret-key>
86
+ <endpoint>https://api.klingai.com/v1</endpoint>
87
+ <default-model>kling-v2-master</default-model>
88
+ <dry-run>true</dry-run>
89
+ <tuning>
90
+ <aspect>16:9</aspect>
91
+ <fps>30</fps>
92
+ <max-duration>10</max-duration>
93
+ <audio-native>false</audio-native>
94
+ </tuning>
95
+ </provider>
96
+
97
+ <provider id="sora" kind="video">
98
+ <lifecycle>stable</lifecycle>
99
+ <api-key>sora-REPLACE-ME</api-key>
100
+ <endpoint>https://api.openai.com/v1</endpoint>
101
+ <default-model>sora-2</default-model>
102
+ <dry-run>true</dry-run>
103
+ <tuning>
104
+ <aspect>16:9</aspect>
105
+ <fps>30</fps>
106
+ <max-duration>20</max-duration>
107
+ <audio-native>true</audio-native>
108
+ </tuning>
109
+ </provider>
110
+
111
+ <!-- ============================================================ -->
112
+ <!-- Multiplexer providers — one adapter, many models -->
113
+ <!-- Model selection: top-level `model_id` stdin key overrides -->
114
+ <!-- <default-model>. Per-model capabilities: -->
115
+ <!-- scripts/ai-video/lib/model-capabilities/<id>.json -->
116
+ <!-- Kill-switch: <enabled>false</enabled> refuses every network -->
117
+ <!-- subcommand without editing procedures that name the provider.-->
118
+ <!-- ============================================================ -->
119
+
120
+ <provider id="fal" kind="video">
121
+ <lifecycle>stable</lifecycle>
122
+ <enabled>true</enabled>
123
+ <api-key>fal-REPLACE-ME</api-key>
124
+ <endpoint>https://queue.fal.run</endpoint>
125
+ <default-model>fal-ai/ltx-2/text-to-video</default-model>
126
+ <dry-run>true</dry-run>
127
+ <tuning>
128
+ <aspect>16:9</aspect>
129
+ <max-duration>10</max-duration>
130
+ <audio-native>false</audio-native>
131
+ </tuning>
132
+ </provider>
133
+
134
+ <provider id="replicate" kind="video">
135
+ <lifecycle>stable</lifecycle>
136
+ <enabled>true</enabled>
137
+ <api-key>r8_REPLACE-ME</api-key>
138
+ <endpoint>https://api.replicate.com/v1</endpoint>
139
+ <default-model>kwaivgi/kling-v2.1-master</default-model>
140
+ <dry-run>true</dry-run>
141
+ <tuning>
142
+ <aspect>16:9</aspect>
143
+ <max-duration>10</max-duration>
144
+ <audio-native>false</audio-native>
145
+ </tuning>
146
+ </provider>
147
+
148
+ <!--
149
+ Local ComfyUI (ADR-060 — container-primary sandbox). No api-key:
150
+ the adapter talks to YOUR ComfyUI. A loopback endpoint is assumed
151
+ to be the shipped container posture (read-only image, cap-drop ALL,
152
+ network-none at generation time — run line in the adapter header).
153
+ A NON-loopback endpoint is the remote escape hatch: isolation is
154
+ the operator's responsibility and the block must carry
155
+ <unsandboxed>accepted</unsandboxed> or the adapter refuses (exit 6).
156
+ Models: wan22-ti2v-5b (default, Apache-2.0) | ltx-2 (audio-sync).
157
+ Shipped workflow templates only — operator workflow JSONs are
158
+ rejected by design. macOS: no CUDA — container path is
159
+ reference-only; use the remote escape hatch.
160
+ -->
161
+ <provider id="comfyui" kind="video">
162
+ <lifecycle>experimental</lifecycle>
163
+ <enabled>true</enabled>
164
+ <endpoint>http://127.0.0.1:8188</endpoint>
165
+ <default-model>wan22-ti2v-5b</default-model>
166
+ <dry-run>true</dry-run>
167
+ <tuning>
168
+ <aspect>16:9</aspect>
169
+ <max-duration>5</max-duration>
170
+ <audio-native>false</audio-native>
171
+ </tuning>
172
+ </provider>
173
+
174
+ <!-- ============================================================ -->
175
+ <!-- Audio adapters (music-video orchestration) -->
176
+ <!-- Contract: scripts/ai-video/lib/audio-adapter-contract.md -->
177
+ <!-- local-cli adapters wrap an OPERATOR-installed tool (pip) — -->
178
+ <!-- no api-key element needed; <enabled>false</enabled> opts a -->
179
+ <!-- configured-but-unwanted adapter out (otherwise a missing CLI -->
180
+ <!-- is a loud config failure, never a silent probe fallback). -->
181
+ <!-- ============================================================ -->
182
+
183
+ <provider id="allin1" kind="audio-analysis">
184
+ <lifecycle>experimental</lifecycle>
185
+ <enabled>true</enabled>
186
+ <dry-run>true</dry-run>
187
+ </provider>
188
+
189
+ <provider id="whisperx" kind="lyrics">
190
+ <lifecycle>experimental</lifecycle>
191
+ <enabled>true</enabled>
192
+ <dry-run>true</dry-run>
193
+ </provider>
194
+
195
+ <!-- ============================================================ -->
196
+ <!-- Lip-sync post-process (v2 contract, kind="lipsync") -->
197
+ <!-- Sparse budget: lib/model-capabilities/syncso.json -->
198
+ <!-- ============================================================ -->
199
+
200
+ <!--
201
+ Local (MIT) lip-sync — offline alternative to syncso. Wraps an
202
+ OPERATOR-installed MuseTalk (github.com/TMElyralab/MuseTalk); the
203
+ wrapped entry point is configurable via the MUSETALK_CMD env var.
204
+ No api-key. Same sparse lipsync_budget discipline as syncso
205
+ (lib/model-capabilities/musetalk.json) — local renders are free but
206
+ the quality argument for sparseness is unchanged.
207
+ -->
208
+ <provider id="musetalk" kind="lipsync">
209
+ <lifecycle>experimental</lifecycle>
210
+ <enabled>true</enabled>
211
+ <dry-run>true</dry-run>
212
+ </provider>
213
+
214
+ <provider id="syncso" kind="lipsync">
215
+ <lifecycle>experimental</lifecycle>
216
+ <enabled>true</enabled>
217
+ <api-key>sk-REPLACE-ME</api-key>
218
+ <endpoint>https://api.sync.so</endpoint>
219
+ <default-model>lipsync-2</default-model>
220
+ <dry-run>true</dry-run>
221
+ </provider>
222
+
223
+ <!-- ============================================================ -->
224
+ <!-- Extra slot — future providers without schema bump -->
225
+ <!-- Use kind="image" | "video" | "image+video" | "audio-analysis"-->
226
+ <!-- | "lyrics" | "lipsync". -->
227
+ <!-- ============================================================ -->
228
+
229
+ <extra>
230
+ <!--
231
+ <provider id="my-future-backend" kind="video">
232
+ <lifecycle>experimental</lifecycle>
233
+ <api-key>REPLACE-ME</api-key>
234
+ <endpoint>https://example.invalid/v1</endpoint>
235
+ <default-model>example-1</default-model>
236
+ <dry-run>true</dry-run>
237
+ <tuning>
238
+ <aspect>16:9</aspect>
239
+ <fps>24</fps>
240
+ <max-duration>6</max-duration>
241
+ <audio-native>false</audio-native>
242
+ </tuning>
243
+ </provider>
244
+ -->
245
+ </extra>
246
+
247
+ </ai-video>
@@ -57,9 +57,9 @@ the last record from `agents/cost-tracking/sessions.jsonl`. If the file
57
57
  does not exist (tracker never run for this project), skip this step and
58
58
  note `cost ledger: not initialised` in the dashboard.
59
59
 
60
- Extract from latest record:
60
+ Extract from the latest record:
61
61
 
62
- - `total_usd` — dollars spent in current session
62
+ - `total_usd` — dollars spent in the current session
63
63
  - `by_model[]` — per-tier (haiku / sonnet / opus) input / output / cache split
64
64
  - `budget.tier` — `under` / `50` / `75` / `90` / `100` (from `node scripts/cost/budget.mjs check`)
65
65
 
@@ -68,19 +68,20 @@ implementation: [`scripts/cost/track.mjs`](../../scripts/cost/track.mjs).
68
68
 
69
69
  ### 3b. Read telegraph delta + per-conversation cost lens
70
70
 
71
- Run two read-only Python helpers (stdlib-only, no-op safe if JSONL missing):
71
+ Run two read-only Python helpers (both stdlib-only, both no-op safe if the
72
+ JSONL is missing):
72
73
 
73
74
  - `./scripts-run src/scripts/telegraph_stats --format json` — per-session +
74
- per-conversation + lifetime telegraph delta. Honors suspended
75
- multiplier (see [`docs/contracts/telegraph-telemetry.md`](../docs/contracts/telegraph-telemetry.md)) — delta reads `0` while suspended; display version + ACTIVE/SUSPENDED state regardless.
75
+ per-conversation + lifetime telegraph delta. Honors the suspended
76
+ multiplier (see [`docs/contracts/telegraph-telemetry.md`](../docs/contracts/telegraph-telemetry.md)) — delta reads `0` while suspended; display the version + ACTIVE/SUSPENDED state regardless.
76
77
  - `./scripts-run src/scripts/cost_by_conversation --format json` — per-conversation
77
- total cost + model breakdown for current conversation, sourced
78
- from same `agents/cost-tracking/sessions.jsonl` ledger.
78
+ total cost + model breakdown for the current conversation, sourced
79
+ from the same `agents/cost-tracking/sessions.jsonl` ledger.
79
80
 
80
- Surface in dashboard as one line:
81
+ Surface in the dashboard as one line:
81
82
  `[telegraph: {lifetime.delta_tokens:+,} tok lifetime · {current_conv.delta_tokens:+,} this conv · multiplier v{multiplier_version} {ACTIVE|SUSPENDED}] · [conv cost: ${current_conv.total_cost_usd:.4f}]`.
82
83
 
83
- If both JSONLs missing or empty, omit line silently.
84
+ If both JSONLs are missing or empty, omit the line silently.
84
85
 
85
86
  ### 4. Calculate freshness thresholds
86
87
 
@@ -113,7 +114,7 @@ Use Markdown tables and headings — NOT ASCII box art (breaks in non-monospace
113
114
 
114
115
  **💵 Session cost (measured)**
115
116
 
116
- If ledger exists, render:
117
+ If the ledger exists, render:
117
118
 
118
119
  | | |
119
120
  |---|---|
@@ -122,7 +123,7 @@ If ledger exists, render:
122
123
  | 🎯 Budget tier | {emoji} {tier} ({utilization_pct}% of cap) |
123
124
 
124
125
  Tier-emoji map: `under` / `50` → ✅ · `75` → ⚠️ · `90` → ⚠️⚠️ · `100` → ❌.
125
- If ledger does not exist, render `Session cost: not initialised — run \`task cost:track\` to start measuring`.
126
+ If the ledger does not exist, render `Session cost: not initialised — run \`task cost:track\` to start measuring`.
126
127
 
127
128
  **⚡ Freshness**
128
129
 
@@ -7,7 +7,7 @@ visibility: internal
7
7
  cluster: agents
8
8
  sub: user
9
9
  skills: [agents]
10
- description: Apply a buffered observation to .agent-user.md after explicit user confirmation; bumps last_updated and drops the applied observations from the buffer.
10
+ description: Apply a buffered observation to .agent-user.md or the global profile.md after explicit user confirmation; bumps last_updated and drops the applied observations from the buffer.
11
11
  argument-hint: "[field]"
12
12
  suggestion:
13
13
  eligible: false
@@ -20,9 +20,16 @@ packs:
20
20
 
21
21
  # /agents user accept
22
22
 
23
- Apply a buffered observation from
24
- [`.agent-user.observations.jsonl`](../../../../../docs/contracts/agent-user-schema.md#observation-buffer)
25
- to `.agent-user.md` after explicit confirmation.
23
+ Apply a buffered observation from either
24
+ [the project-local or the global observation buffer](../../../../../docs/contracts/agent-user-schema.md#observation-buffer)
25
+ to the matching profile file — `.agent-user.md` for a project-local
26
+ observation, the global `~/.event4u/agent-config/user/profile.md` for a
27
+ global one (ADR-138, road-to-global-user-memory Phase 2) — after
28
+ explicit confirmation.
29
+
30
+ This is the **only** step in the learning channel that writes a profile
31
+ file. Everything upstream (the miner, the buffers, `/agents user review`)
32
+ only ever proposes.
26
33
 
27
34
  Use when:
28
35
 
@@ -40,34 +47,77 @@ ls .agent-user.md 2>/dev/null
40
47
  ls .agent-user.observations.jsonl 2>/dev/null
41
48
  ```
42
49
 
43
- Either missing → print "Run `/agents user init` and accumulate
44
- observations first." and stop.
50
+ Resolve the global buffer/profile paths via
51
+ `user_global_observations.resolveGlobalObservationsPath()` /
52
+ `agent_user_profile.resolveGlobalProfilePath()`.
53
+
54
+ Both the project-local file/buffer AND the global profile/buffer
55
+ missing → print "Run `/agents user init` and accumulate observations
56
+ first." and stop. Otherwise proceed with whichever layer(s) have a
57
+ buffered observation.
45
58
 
46
- ### 2. Resolve target field
59
+ ### 2. Resolve target field + layer
47
60
 
48
- | Invocation | Resolved field |
61
+ | Invocation | Resolved field + layer |
49
62
  |---|---|
50
- | Handed off from `/agents user review` option 1 | The most-frequent field |
51
- | `/agents user accept <field>` | `<field>` (must match the schema enum) |
52
- | `/agents user accept` with no arg | Print the field list, ask which |
63
+ | Handed off from `/agents user review` option 1 | The most-frequent field, with the layer `review` reported it under |
64
+ | Handed off from `/agents user review` option 4 (a promotion candidate) | The candidate's `suggest` text, layer `global` — see § 2b below, skip straight to step 4 with the promotion framing |
65
+ | `/agents user accept <field>` | `<field>` (must match the schema enum); if both layers have an observation for it, ask which layer |
66
+ | `/agents user accept` with no arg | Print the field list (both layers), ask which |
53
67
 
54
68
  Invalid field → print the schema enum and stop.
55
69
 
56
- ### 3. Compute proposed change
70
+ ### 2b. Promotion candidates need a `promotion_reason` (road-to-global-user-memory Phase 3)
71
+
72
+ A candidate handed off from review option 4 has `seen_count ≥ 3` and a
73
+ `seen_in[]` project list — human-confirmed recurrence across that many
74
+ DIFFERENT projects (per
75
+ [`findPromotionCandidates`](../../../../../src/scripts/_lib/user_global_observations.ts)).
76
+ Crossing that threshold is candidacy only; it never auto-promotes
77
+ (mirroring ADR-121's rule that a knowledge card has no auto-`shareable`
78
+ path). Before step 4's confirmation, collect one additional line from the
79
+ user:
80
+
81
+ ```
82
+ This observation recurred in {seen_count} projects: {seen_in joined by ", "}.
83
+
84
+ Why should this generalise to your global profile?
85
+ > {free-text promotion_reason — required, no default}
86
+ ```
57
87
 
58
- For the resolved field:
88
+ An empty answer is not accepted — re-ask once, then fall back to
89
+ "Cancel" if the user still declines to give a reason. The
90
+ `promotion_reason` is shown in step 4's confirmation block (below) but is
91
+ **never written to `profile.md`** — see § 3 write below; it exists to make
92
+ the human's judgment call visible in this transcript, not to persist
93
+ alongside the fact.
59
94
 
60
- 1. Read every matching observation from the buffer.
61
- 2. Pick the **latest** `suggest` value (most recent `ts` wins).
62
- 3. Read the current value from `.agent-user.md`.
95
+ ### 3. Compute proposed change
96
+
97
+ For the resolved field + layer — or, for a promotion candidate (§ 2b),
98
+ the single matched buffer entry:
99
+
100
+ 1. Read every matching observation from that layer's buffer only —
101
+ `.agent-user.observations.jsonl` for `project`,
102
+ `user_global_observations.readGlobalObservations()` for `global`.
103
+ 2. Pick the **latest** `suggest` value (most recent `ts` wins). For a
104
+ promotion candidate, the proposed value is
105
+ [`promotionValueFor(candidate)`](../../../../../src/scripts/_lib/user_global_observations.ts) —
106
+ the fact text ONLY, never the `context` or `seen_in` metadata attached
107
+ to it.
108
+ 3. Read the current value from that layer's profile file
109
+ (`.agent-user.md` or the global `profile.md`) — NOT the merged
110
+ effective value, so the confirmation shows exactly what this layer
111
+ will change.
63
112
  4. If they match, print "No change — current value already matches
64
113
  the latest observation." and skip to step 6.
65
114
 
66
115
  ### 4. Confirm
67
116
 
68
117
  ```
69
- Apply this change to .agent-user.md?
118
+ Apply this change to {.agent-user.md | the global profile}?
70
119
 
120
+ layer : {project | global}
71
121
  field : {field}
72
122
  current : "{current_value}"
73
123
  proposed: "{proposed_value}"
@@ -76,7 +126,15 @@ Apply this change to .agent-user.md?
76
126
 
77
127
  > 1. Apply
78
128
  > 2. Skip — keep current value, drop these observations from the buffer
79
- > 3. Cancel — leave .agent-user.md and buffer untouched
129
+ > 3. Cancel — leave the profile and buffer untouched
130
+ ```
131
+
132
+ For a promotion candidate, append two lines above `> 1. Apply` instead of
133
+ `source`/`evidence`:
134
+
135
+ ```
136
+ seen in : {seen_count} projects ({seen_in joined by ", "})
137
+ reason : "{promotion_reason from § 2b}"
80
138
  ```
81
139
 
82
140
  One question per turn. Wait for the user's number.
@@ -85,24 +143,40 @@ One question per turn. Wait for the user's number.
85
143
 
86
144
  On `1. Apply`:
87
145
 
88
- 1. Rewrite the targeted field in `.agent-user.md` frontmatter.
89
- Preserve every other field byte-for-byte (use a YAML round-trip
90
- loader that keeps formatting).
91
- 2. Bump `last_updated` to today (ISO `YYYY-MM-DD`).
92
- 3. Validate the result: schema present, ≤100 lines, privacy floor
93
- clean. Any violation → roll back and print the error.
94
- 4. Drop **all** applied observations for that field from the buffer
95
- (rewrite the JSONL minus matching lines).
96
-
97
- On `2. Skip`: leave `.agent-user.md` untouched but still drop the
98
- observations for that field from the buffer.
146
+ - **`project` layer:** rewrite the targeted field in `.agent-user.md`
147
+ frontmatter, preserving every other field (a YAML round-trip loader
148
+ that keeps formatting), bump `last_updated` to today (ISO
149
+ `YYYY-MM-DD`), validate ≤100 lines + privacy floor clean — any
150
+ violation rolls back and prints the error.
151
+ - **`global` layer:** call
152
+ [`applyObservationToGlobalProfile(field, value, { today })`](../../../../src/scripts/_lib/agent_user_profile.ts) —
153
+ it round-trips the existing `profile.md` (or starts from empty),
154
+ sets the field, bumps `last_updated`, and throws (never partially
155
+ writes) if the result would exceed the global layer's own 100-line
156
+ cap. A thrown error is the roll-back signal — print it and stop. For a
157
+ promotion candidate, `value` is `promotionValueFor(candidate)` — the
158
+ `promotion_reason` collected in § 2b is shown in step 4's confirmation
159
+ only; it is **never** passed to `applyObservationToGlobalProfile` and
160
+ never appears in `profile.md`, alongside `context`/`seen_in`, which are
161
+ likewise never written. This is the only generalisation path, and it
162
+ leaves the durable profile with zero project references (see
163
+ [`agent-user-schema.md § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3)).
164
+
165
+ Either layer: drop **all** applied observations for that field from
166
+ **that layer's own buffer only** (rewrite the JSONL minus matching
167
+ lines) — never touch the other layer's buffer. For a promoted candidate,
168
+ this drops only the ONE matched buffer entry (identified in § 2b), not
169
+ every `notes`-field entry in the buffer.
170
+
171
+ On `2. Skip`: leave the profile untouched but still drop the
172
+ observations for that field from that layer's buffer.
99
173
 
100
174
  On `3. Cancel`: stop without any write.
101
175
 
102
176
  ### 6. Confirm
103
177
 
104
178
  ```
105
- ✅ .agent-user.md updated ({field}: "{old}" → "{new}", last_updated: YYYY-MM-DD).
179
+ ✅ {layer} profile updated ({field}: "{old}" → "{new}", last_updated: YYYY-MM-DD).
106
180
  Buffer: {n} observations removed, {m} remaining.
107
181
  ```
108
182
 
@@ -115,11 +189,22 @@ Do NOT commit. Do NOT auto-chain to a second field.
115
189
  - Never write without explicit confirmation in step 4.
116
190
  - Never bypass the privacy-floor scan, even if the buffer writer
117
191
  already redacted.
192
+ - Never write to the layer the observation did NOT come from — an
193
+ observation buffered as `global` writes `profile.md`, never
194
+ `.agent-user.md`, and vice versa.
195
+ - Never accept a promotion candidate without a non-empty
196
+ `promotion_reason` (§ 2b) — a `seen_count ≥ 3` tally is candidacy, not
197
+ authorization.
198
+ - Never write `context` or `seen_in` to `profile.md` — a promotion writes
199
+ `promotionValueFor(candidate)`, the fact text only.
118
200
  - Mirror the user's language for prompts per
119
201
  [`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
120
202
 
121
203
  ## See also
122
204
 
123
205
  - Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../../docs/contracts/agent-user-schema.md#observation-buffer).
206
+ - Project attribution + promotion: [`agent-user-schema § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3).
207
+ - Global write primitive: [`agent_user_profile.applyObservationToGlobalProfile`](../../../../src/scripts/_lib/agent_user_profile.ts).
208
+ - Promotion primitives: [`findPromotionCandidates`, `promotionValueFor`](../../../../../src/scripts/_lib/user_global_observations.ts).
124
209
  - Parent: [`/agents user`](../user.md).
125
210
  - Sibling: [`/agents user review`](review.md), [`/agents user update`](update.md).
@@ -0,0 +1,147 @@
1
+ ---
2
+ model_tier: medium
3
+ name: agents-user-delete
4
+ pack: meta
5
+ tier: 2
6
+ visibility: internal
7
+ cluster: agents
8
+ sub: user
9
+ skills: [agents]
10
+ description: Delete one buffered global observation, purge every observation attributed to a project, or revoke a field from the global profile.md — each writes an append-only tombstone before deleting.
11
+ argument-hint: "[observation <id> | project <path> | profile-field <field>]"
12
+ suggestion:
13
+ eligible: false
14
+ rationale: "Mutates the global observation buffer or profile.md — only run from /agents user review, /agents user show --audit, or explicit user invocation."
15
+ workspaces:
16
+ - agent-config-maintainer
17
+ packs:
18
+ - meta
19
+ ---
20
+
21
+ # /agents user delete
22
+
23
+ Delete something the learning channel wrote to the **global** layer —
24
+ road-to-global-user-memory Phase 4, the delete counterpart of
25
+ [`/agents user accept`](accept.md). Every deletion writes an
26
+ append-only tombstone to the revocation ledger BEFORE the underlying
27
+ file is rewritten without it — see
28
+ [`agent-user-schema § Delete, revoke, and audit`](../../../../../docs/contracts/agent-user-schema.md#delete-revoke-and-audit-road-to-global-user-memory-phase-4).
29
+
30
+ Three targets, one per invocation:
31
+
32
+ | Target | Removes | Backing function |
33
+ |---|---|---|
34
+ | `observation <id>` | ONE buffered line from `observations.jsonl` | [`deleteGlobalObservation`](../../../../../src/scripts/_lib/user_global_observations.ts) |
35
+ | `project <path>` | EVERY observation attributed (`context.project_path`) to that project | [`purgeProjectContext`](../../../../../src/scripts/_lib/user_global_observations.ts) |
36
+ | `profile-field <field>` | A field's value from the global `profile.md` | [`revokeGlobalProfileField`](../../../../../src/scripts/_lib/agent_user_profile.ts) |
37
+
38
+ Use when:
39
+
40
+ - [`/agents user show --audit`](show.md) or
41
+ [`/agents user review`](review.md) surfaced something the user wants
42
+ gone.
43
+ - A project was deleted and its buffered facts should not linger
44
+ forever (`project <path>`).
45
+ - A promoted or accepted profile field turned out to be wrong
46
+ (`profile-field <field>`).
47
+
48
+ Never runs autonomously — always asks before writing, exactly like
49
+ `accept`.
50
+
51
+ ## Steps
52
+
53
+ ### 1. Resolve the target
54
+
55
+ | Invocation | Target |
56
+ |---|---|
57
+ | `/agents user delete observation <id>` | The buffered observation whose `observationId` equals `<id>` (shown by `/agents user show --audit` or `/agents user review`) |
58
+ | `/agents user delete project <path>` | Every observation whose `context.project_path` equals `<path>` |
59
+ | `/agents user delete profile-field <field>` | `<field>` in the global `profile.md` (must match the schema enum) |
60
+ | No argument | Print the target-kind table above and ask which; then ask for the id/path/field |
61
+
62
+ Invalid `<field>` → print the schema enum and stop. No observation
63
+ matches `<id>` → print "No buffered observation with that id." and
64
+ stop (no tombstone is written for a no-op — see the backing functions'
65
+ `deleted: false` / `purgedCount: 0` contract).
66
+
67
+ ### 2. Confirm
68
+
69
+ ```
70
+ Delete this from the global user-memory layer?
71
+
72
+ target : {observation <id> | project <path> | profile-field <field>}
73
+ current: {for profile-field — the current value; for observation/project — the suggest text(s) that will be removed}
74
+
75
+ > 1. Delete — write a tombstone, then remove
76
+ > 2. Cancel — leave everything untouched
77
+ ```
78
+
79
+ For `project <path>`, list every matched observation's `suggest` text
80
+ before asking, so the user confirms the actual scope, not just a count.
81
+
82
+ One question per turn. Wait for the user's number.
83
+
84
+ ### 3. Ask for a reason
85
+
86
+ ```
87
+ Why is this being deleted? (one line, becomes the tombstone's `reason`)
88
+ > {free-text reason}
89
+ ```
90
+
91
+ An empty answer is not accepted — re-ask once, then default to `"no
92
+ reason given"` if the user still declines (mirrors
93
+ [`user_global_revocations.appendTombstone`](../../../../../src/scripts/_lib/user_global_revocations.ts)'s
94
+ own fallback, so a user who truly has nothing to say is never blocked).
95
+
96
+ ### 4. Write
97
+
98
+ On `1. Delete`, call the matching function with today's date and the
99
+ step-3 reason:
100
+
101
+ - `observation <id>` →
102
+ [`deleteGlobalObservation(id, reason, { today })`](../../../../../src/scripts/_lib/user_global_observations.ts).
103
+ - `project <path>` →
104
+ [`purgeProjectContext(path, reason, { today })`](../../../../../src/scripts/_lib/user_global_observations.ts).
105
+ - `profile-field <field>` →
106
+ [`revokeGlobalProfileField(field, reason, { today })`](../../../../../src/scripts/_lib/agent_user_profile.ts).
107
+
108
+ Each function writes its tombstone(s) BEFORE the buffer/profile
109
+ rewrite — never call `fs`/the file directly from this command; always
110
+ go through the function so the tombstone-before-delete order holds.
111
+
112
+ On `2. Cancel`: stop without any write, without any tombstone.
113
+
114
+ ### 5. Confirm
115
+
116
+ ```
117
+ ✅ Deleted ({target}). Tombstone recorded: {entity_id}, {revoked_at}.
118
+ ```
119
+
120
+ For `project <path>`, report the count: `✅ Purged {n} observation(s) from {path}. {n} tombstone(s) recorded.`
121
+
122
+ Do NOT commit. Do NOT auto-chain to a second deletion.
123
+
124
+ ## Rules
125
+
126
+ - One target per invocation. Run the command again for the next
127
+ deletion.
128
+ - Never delete without explicit confirmation in step 2 and a reason
129
+ from step 3.
130
+ - Never write to a file directly — every deletion goes through
131
+ `deleteGlobalObservation`, `purgeProjectContext`, or
132
+ `revokeGlobalProfileField` so the tombstone always precedes the
133
+ delete.
134
+ - Never touch project-local `.agent-user.md` or its buffer from this
135
+ command — this leaf covers the global layer only. A project-local
136
+ fact is deleted by editing `.agent-user.md` directly (it never left
137
+ the project) or via [`/agents user review`](review.md)'s existing
138
+ "clear a buffer" option.
139
+ - Mirror the user's language for prompts per
140
+ [`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
141
+
142
+ ## See also
143
+
144
+ - Schema: [`agent-user-schema § Delete, revoke, and audit`](../../../../../docs/contracts/agent-user-schema.md#delete-revoke-and-audit-road-to-global-user-memory-phase-4) — the write→delete mapping and the ADR-121 reuse this command exposes.
145
+ - Audit source: [`/agents user show --audit`](show.md) — the read surface that surfaces what there is to delete.
146
+ - Parent: [`/agents user`](../user.md).
147
+ - Sibling: [`/agents user review`](review.md), [`/agents user accept`](accept.md) — the write side this command undoes.