@event4u/agent-config 9.9.0 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +153 -194
  3. package/README.md +1 -1
  4. package/dist/agent-src/commands/agent-status.md +12 -11
  5. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  6. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  7. package/dist/agent-src/commands/agents/user/review.md +65 -28
  8. package/dist/agent-src/commands/agents/user/show.md +82 -29
  9. package/dist/agent-src/commands/agents/user/update.md +2 -2
  10. package/dist/agent-src/commands/agents/user.md +16 -3
  11. package/dist/agent-src/commands/check-current-md.md +0 -10
  12. package/dist/agent-src/commands/condense.md +28 -97
  13. package/dist/agent-src/commands/cost/report.md +7 -0
  14. package/dist/agent-src/commands/fix/portability.md +0 -8
  15. package/dist/agent-src/commands/fix/refs.md +0 -8
  16. package/dist/agent-src/commands/humanize.md +2 -2
  17. package/dist/agent-src/commands/jira-ticket.md +1 -1
  18. package/dist/agent-src/commands/memory/load.md +11 -0
  19. package/dist/agent-src/commands/optimize/skills.md +1 -1
  20. package/dist/agent-src/commands/pr/create.md +4 -4
  21. package/dist/agent-src/commands/profile/show.md +3 -3
  22. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  23. package/dist/agent-src/commands/security-audit-config.md +1 -1
  24. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  25. package/dist/agent-src/commands/tdd.md +21 -0
  26. package/dist/agent-src/commands/team/delegate.md +2 -2
  27. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  28. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  29. package/dist/agent-src/commands/team.md +4 -1
  30. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  31. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  32. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  33. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  34. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  35. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  36. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  37. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  38. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  40. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  41. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  42. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  43. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  44. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  45. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  46. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  47. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  48. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  49. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  50. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  51. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  52. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  53. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  54. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  55. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  56. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  57. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  58. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  59. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  60. package/dist/agent-src/ghostwriter/README.md +2 -2
  61. package/dist/agent-src/packs/README.md +1 -1
  62. package/dist/agent-src/personas/README.md +5 -5
  63. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  64. package/dist/agent-src/personas/backend-architect.md +24 -23
  65. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  66. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  67. package/dist/agent-src/personas/product-owner.md +41 -38
  68. package/dist/agent-src/personas/qa.md +13 -13
  69. package/dist/agent-src/personas/security-engineer.md +22 -22
  70. package/dist/agent-src/presets/README.md +3 -3
  71. package/dist/agent-src/profiles/README.md +3 -3
  72. package/dist/agent-src/rules/active-remediation.md +2 -2
  73. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  74. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  75. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  76. package/dist/agent-src/rules/broken-access-control.md +4 -4
  77. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  78. package/dist/agent-src/rules/code-provenance.md +2 -2
  79. package/dist/agent-src/rules/commit-policy.md +4 -9
  80. package/dist/agent-src/rules/communication-through-line.md +5 -5
  81. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  82. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  83. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  84. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  85. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  86. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  87. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  88. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  89. package/dist/agent-src/rules/history-discipline.md +1 -1
  90. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  92. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  93. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  94. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  95. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  96. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  97. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  98. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  99. package/dist/agent-src/rules/persona-governance.md +2 -2
  100. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  101. package/dist/agent-src/rules/preservation-guard.md +10 -2
  102. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  103. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  104. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  105. package/dist/agent-src/rules/scale-discipline.md +1 -1
  106. package/dist/agent-src/rules/scope-control.md +1 -1
  107. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  108. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  109. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  110. package/dist/agent-src/rules/session-canary.md +1 -1
  111. package/dist/agent-src/rules/skill-quality.md +1 -1
  112. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  113. package/dist/agent-src/rules/source-of-truth.md +6 -5
  114. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  115. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  116. package/dist/agent-src/rules/think-before-action.md +5 -5
  117. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  118. package/dist/agent-src/rules/token-efficiency.md +2 -2
  119. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  120. package/dist/agent-src/rules/user-interaction.md +12 -0
  121. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  122. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  123. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  124. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  125. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  126. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  127. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  128. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  129. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  130. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  131. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  132. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  133. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  134. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  135. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  136. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  137. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  138. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  139. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  140. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  141. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  142. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  143. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  144. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  145. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  146. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  147. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  148. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  149. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  150. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  151. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  152. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  153. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  154. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  155. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
  156. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  157. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  158. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  159. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  160. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  161. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  162. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  163. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  164. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  165. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  166. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  167. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  168. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  169. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  170. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  171. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  172. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  173. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  174. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  175. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  176. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  177. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  178. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  179. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  180. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  181. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  182. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  183. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  184. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  185. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  186. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  187. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  188. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  189. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  190. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  191. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  192. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  193. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  194. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  195. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  196. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  197. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  198. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  199. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  200. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  201. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  202. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  203. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  204. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  205. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  206. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  207. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  208. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  209. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  210. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  211. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  212. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  213. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  214. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  215. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  216. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  217. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  218. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  219. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  220. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  221. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  222. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  223. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  224. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  225. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  226. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  227. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  228. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  229. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  230. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  231. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  232. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  233. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  234. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  235. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  236. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  237. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  238. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  239. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  240. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  241. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  242. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  243. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  244. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  245. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  246. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  247. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  248. package/dist/agent-src/templates/contexts.md +1 -1
  249. package/dist/agent-src/templates/features.md +1 -1
  250. package/dist/agent-src/templates/roadmaps.md +125 -116
  251. package/dist/agent-src/templates/rule.md +2 -1
  252. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  253. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  254. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  255. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  256. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  257. package/dist/agent-src/user-types/README.md +8 -8
  258. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  259. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  260. package/dist/agent-src/user-types/truck-driver.md +22 -20
  261. package/dist/cli/python/workspace_roles.js +2 -2
  262. package/dist/cli/python/workspace_roles.js.map +1 -1
  263. package/dist/discovery/deprecation-report.md +1 -1
  264. package/dist/discovery/discovery-manifest.json +88 -62
  265. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  266. package/dist/discovery/discovery-manifest.summary.md +3 -3
  267. package/dist/discovery/orphan-report.md +1 -1
  268. package/dist/discovery/packs.json +6 -5
  269. package/dist/discovery/trust-report.md +2 -2
  270. package/dist/discovery/workspaces.json +5 -4
  271. package/dist/hooks/dispatch.js +186 -12
  272. package/dist/install/install.mjs +8 -0
  273. package/dist/mcp/registry-manifest.json +3 -3
  274. package/dist/mcp/server.json +2 -2
  275. package/dist/mcp/server.mjs +1199 -857
  276. package/dist/router.json +1 -1
  277. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  278. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  279. package/dist/scripts/condense.js +234 -217
  280. package/dist/scripts/condense.js.map +1 -1
  281. package/dist/server/schemas/settings.js +4 -0
  282. package/dist/server/schemas/settings.js.map +1 -1
  283. package/dist/shared/userMd/utils.js +30 -0
  284. package/dist/shared/userMd/utils.js.map +1 -1
  285. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  286. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  287. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  288. package/package.json +1 -1
  289. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  290. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  291. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  292. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
  293. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
  294. package/src/config/agent-settings.template.yml +32 -2
  295. package/src/config/ci-local-parity.yml +142 -0
  296. package/src/config/gate-coverage.yml +127 -0
  297. package/src/config/preamble-payload-budget.json +44 -0
  298. package/src/scripts/_cli/cmd_doctor.ts +78 -2
  299. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  300. package/src/scripts/_lib/agents_overlay.ts +9 -0
  301. package/src/scripts/_lib/anchor_eval.ts +311 -0
  302. package/src/scripts/_lib/cc_transcript.ts +316 -0
  303. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  304. package/src/scripts/_lib/confusables.ts +101 -0
  305. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  306. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  307. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  308. package/src/scripts/_lib/preservation_migration.ts +291 -0
  309. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  310. package/src/scripts/_lib/scan_scope.ts +115 -0
  311. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  312. package/src/scripts/_lib/user_global_observations.ts +830 -0
  313. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  314. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  315. package/src/scripts/ai_council/blind_review.ts +0 -0
  316. package/src/scripts/ai_council/budget_guard.ts +90 -11
  317. package/src/scripts/ai_council/bundler.ts +2 -2
  318. package/src/scripts/ai_council/clients.ts +59 -3
  319. package/src/scripts/ai_council/config.ts +38 -0
  320. package/src/scripts/ai_council/orchestrator.ts +54 -9
  321. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  322. package/src/scripts/anchor_eval_falsify.ts +198 -0
  323. package/src/scripts/anchor_scoring_run.ts +239 -0
  324. package/src/scripts/annotate_discovery.ts +1 -65
  325. package/src/scripts/bench_quality_run.ts +168 -4
  326. package/src/scripts/cache_realization_report.ts +782 -0
  327. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  328. package/src/scripts/check_augment_description_cap.ts +15 -4
  329. package/src/scripts/check_ci_local_parity.ts +317 -0
  330. package/src/scripts/check_condensation.ts +96 -191
  331. package/src/scripts/check_context_paths.ts +38 -9
  332. package/src/scripts/check_gate_coverage.ts +299 -0
  333. package/src/scripts/check_iron_law_prominence.ts +22 -1
  334. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  335. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  336. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  337. package/src/scripts/check_originality_freshness.ts +167 -0
  338. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  339. package/src/scripts/check_proposal.ts +0 -0
  340. package/src/scripts/check_references.ts +0 -1
  341. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  342. package/src/scripts/check_site_links.ts +62 -3
  343. package/src/scripts/ci_status.ts +0 -0
  344. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  345. package/src/scripts/code_graph/build.ts +0 -0
  346. package/src/scripts/command_suggester/types.ts +0 -0
  347. package/src/scripts/compile_router.ts +10 -14
  348. package/src/scripts/condense.sh +3 -4
  349. package/src/scripts/condense.ts +247 -228
  350. package/src/scripts/cost/track.mjs +168 -33
  351. package/src/scripts/cost_summary.ts +33 -1
  352. package/src/scripts/council_cli.ts +45 -3
  353. package/src/scripts/discovery_graph.ts +0 -0
  354. package/src/scripts/encoding_corpus.ts +500 -0
  355. package/src/scripts/encoding_corpus_report.ts +216 -0
  356. package/src/scripts/generate_index.ts +19 -2
  357. package/src/scripts/install-hooks.sh +2 -2
  358. package/src/scripts/learning_sidecar.ts +0 -0
  359. package/src/scripts/lint_confusables.ts +10 -72
  360. package/src/scripts/lint_featured_skills.ts +0 -0
  361. package/src/scripts/lint_hidden_unicode.ts +208 -0
  362. package/src/scripts/lint_load_context.ts +17 -5
  363. package/src/scripts/lint_new_skill_gate.ts +9 -3
  364. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  365. package/src/scripts/lint_originality.ts +1 -1
  366. package/src/scripts/lint_skill_originality.ts +1 -1
  367. package/src/scripts/lint_ticket_buildable.ts +1 -1
  368. package/src/scripts/mcp_server/tools.ts +4 -4
  369. package/src/scripts/measure_scope_dedup.ts +224 -0
  370. package/src/scripts/memory_lookup.ts +0 -0
  371. package/src/scripts/mine_session.ts +98 -0
  372. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  373. package/src/scripts/preamble_byte_census.ts +574 -0
  374. package/src/scripts/probe_skill_registration.ts +2 -2
  375. package/src/scripts/redact_hook_capture.ts +13 -0
  376. package/src/scripts/release.ts +65 -10
  377. package/src/scripts/router_telemetry.ts +1 -1
  378. package/src/scripts/second_brain_retrieval.ts +14 -4
  379. package/src/scripts/skill_linter.ts +5 -0
  380. package/src/scripts/surface-tiers.yml +2 -0
  381. package/src/scripts/validate_pack_yaml.ts +0 -0
  382. package/src/server/schemas/settings.ts +8 -0
  383. package/src/shared/userMd/utils.ts +31 -0
  384. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -91,7 +91,7 @@ EVER REACHES THE LOG STREAM. ALLOWLISTED STRUCTURED FIELDS ONLY.
91
91
  Required patterns:
92
92
 
93
93
  1. **Allowlisted structured fields only.** Log `user_id`, `tenant_id`, `request_id`, `event_type` — never `user` or `request` blobs.
94
- 2. **PII-exclusion-by-construction (preferred over redaction).** Make the log/event **type physically incapable** of holding free-form content — struct of allowlisted scalars, no `payload`/`body`/`extra: any`. A type that cannot carry a phone number has no scrubber to fail; redaction (next) is the fallback when a content field is unavoidable.
94
+ 2. **PII-exclusion-by-construction (preferred over redaction).** Where possible, make the log/event **type physically incapable** of holding free-form content — a struct of allowlisted scalar fields, no `payload`/`body`/`extra: any`. A type that cannot carry a phone number has no scrubber to fail; redaction (next item) is the fallback when a content field is unavoidable, not the first line of defence.
95
95
  3. **Logger-level redaction.** Configure the logger to scrub `email`, `phone`, `name`, `address`, `token`, `password`, `card_number`, `iban` keys recursively from any payload.
96
96
  4. **No raw exception payloads.** Exceptions captured by Sentry / Bugsnag must scrub the request body via the SDK's `before_send` hook.
97
97
  5. **No log-and-forget for auth flows.** Login / password-reset / token-mint logs never include the credential itself, only the actor + outcome.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  type: "auto"
3
3
  tier: "2a"
4
- description: "When the repo ships an external code-graph index (a graph.json-shaped artifact or a SCIP index), query IT first for codebase-structure questions — do not grep from scratch"
4
+ description: "Repo ships a code-graph index (graph.json-shaped or SCIP) — query IT first for codebase-structure questions, do not grep from scratch"
5
5
  triggers:
6
6
  - keyword: "scip"
7
7
  - keyword: "code-graph"
@@ -18,6 +18,12 @@ packs: [meta]
18
18
 
19
19
  # Fast-Path Marker Visibility
20
20
 
21
+ When a decision resolves through the low-impact council fast-path (corpus
22
+ match, fuzzy match, or any other `decision_resolution.classes.low_impact`
23
+ opt-in route), the dispatcher emits a transparency marker. The host agent
24
+ **must** surface that marker verbatim — never swallow it, never paraphrase
25
+ it, never fold it into a same-sounding summary.
26
+
21
27
  ## The Iron Law
22
28
 
23
29
  ```
@@ -25,23 +31,53 @@ EVERY LOW-IMPACT COUNCIL FAST-PATH REPLY OPENS WITH THE EXACT MARKER.
25
31
  NEVER PARAPHRASE. NEVER SWALLOW. NEVER SUBSTITUTE THE AGENT'S OWN VERDICT.
26
32
  ```
27
33
 
28
- Markers (from `scripts/ai_council/low_impact.ts`):
34
+ Applies to **every** fast-path outcome:
29
35
 
30
36
  - **Resolved** — `> Resolved via low-impact council fast-path: <verdict>.`
31
37
  - **Unavailable** — `> Low-impact council unavailable (no opted-in members) — escalating to user.`
32
38
  - **Split** — `> Low-impact council split — escalating to user (<m1>: X / <m2>: Y):`
33
39
  - **Aborted** — `> Low-impact council aborted (token cap) — escalating to user:`
34
40
 
35
- Verbatim = first non-whitespace line, English (no translation), no emoji prefix, no merged numbered-options. Marker is the only audit signal that distinguishes fast-path from local deliberation. See `.agent-src.uncondensed/rules/fast-path-marker-visibility.md` for full failure modes.
41
+ Markers from `scripts/ai_council/low_impact.ts`. Wording is normative —
42
+ case, punctuation, and the leading `> ` blockquote prefix all matter so
43
+ that downstream agents and tooling can pattern-match.
44
+
45
+ ## What "verbatim" means
46
+
47
+ - First non-whitespace line of the reply is the marker.
48
+ - No prose, greeting, or restating-the-question above it.
49
+ - No translation: the marker is English even when the user wrote in
50
+ another language. `language-and-tone` Iron-Law mirror applies to the
51
+ prose **after** the marker, not the marker itself.
52
+ - No emoji decoration, no trailing rationale on the same line.
53
+ - The marker appears **once**. Subsequent prose explains the verdict.
54
+
55
+ ## Why
56
+
57
+ The marker is the only audit signal that distinguishes a fast-path
58
+ resolution from the agent's own reasoning. Swallowing it converts an
59
+ opt-in observability surface into a silent substitution — the user can no
60
+ longer tell whether the council bypassed their judgement or the agent
61
+ deliberated locally. This is the same failure mode that `direct-answers
62
+ § Iron Law 2` forbids for invented facts, applied to dispatch provenance.
36
63
 
37
64
  ## Failure modes
38
65
 
39
- - Opening with `Found it` / `Looks like` / `Here's the verdict` — drops the marker. **Violation.**
40
- - Translating the marker to non-English. **Violation.**
66
+ - Opening with `Found it` / `Looks like` / `Here's the verdict` — drops
67
+ the marker. **Violation.**
68
+ - Translating the marker to German / Spanish / any non-English. **Violation.**
41
69
  - Adding emoji prefix (`✅ Resolved via …`) — alters the literal. **Violation.**
42
- - Indenting beyond the leading `> ` — breaks pattern match. **Violation.**
70
+ - Indenting the marker beyond the leading `> ` — breaks pattern match. **Violation.**
43
71
  - Merging marker into a numbered-options block. **Violation.**
44
72
 
45
- Scope: `low_impact` class only. `high_impact` and `user_required` never reach fast-path.
73
+ ## Scope
74
+
75
+ Only fires for `low_impact` dispatch outcomes. `high_impact` and
76
+ `user_required` classes never reach the fast-path and have no marker —
77
+ this rule does not constrain their output.
78
+
79
+ ## See also
46
80
 
47
- See: [`ai-council-config § Low-impact council opt-in`](../docs/contracts/ai-council-config.md#low-impact-council-opt-in), [`direct-answers`](direct-answers.md) (invented-facts Iron Law kin).
81
+ - [`ai-council-config § Low-impact council opt-in`](../docs/contracts/ai-council-config.md#low-impact-council-opt-in)
82
+ - [`direct-answers`](direct-answers.md) — invented-facts Iron Law (provenance kin).
83
+ - `scripts/ai_council/low_impact.ts` — marker source.
@@ -36,7 +36,7 @@ trust:
36
36
  human_review_required: true
37
37
  ---
38
38
  <!-- agent-config:human-review-banner -->
39
- > HUMAN REVIEW REQUIRED · trust: advisory · owner: finance
39
+ > HUMAN REVIEW REQUIRED · trust: advisory · owner: unknown
40
40
 
41
41
  # Finance Safety Floor
42
42
 
@@ -3,9 +3,9 @@ type: "auto"
3
3
  tier: "2a"
4
4
  description: "Editing a generic skill/rule/command — no single-stack mandates; carve-out pointers instead"
5
5
  triggers:
6
- - path_prefix: ".agent-src.uncondensed/skills/"
7
- - path_prefix: ".agent-src.uncondensed/rules/"
8
- - path_prefix: ".agent-src.uncondensed/commands/"
6
+ - path_prefix: "src/skills/"
7
+ - path_prefix: "src/rules/"
8
+ - path_prefix: "src/agent-src/commands/"
9
9
  - keyword: "FormRequest"
10
10
  - keyword: "PHPStan"
11
11
  - keyword: "php artisan"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  type: "auto"
3
3
  tier: "2a"
4
- description: "Change history done right — audit coverage, cheapest-sufficient tier (default: row-level audit log; event sourcing only by waiver), audit hygiene + privacy interlocks."
4
+ description: "Change history — audit coverage, cheapest-sufficient tier (default row-level audit log; event sourcing by waiver), hygiene + privacy interlocks"
5
5
  triggers:
6
6
  - keyword: "audit"
7
7
  - keyword: "audit log"
@@ -30,7 +30,7 @@ trust:
30
30
  human_review_required: true
31
31
  ---
32
32
  <!-- agent-config:human-review-banner -->
33
- > HUMAN REVIEW REQUIRED · trust: advisory · owner: legal
33
+ > HUMAN REVIEW REQUIRED · trust: advisory · owner: unknown
34
34
 
35
35
  # Legal Safety Floor
36
36
 
@@ -23,11 +23,11 @@ enforced_by:
23
23
  Prompt injection is not solvable at the model layer (OWASP LLM01). It is
24
24
  contained **architecturally**: a tool/skill/command becomes dangerous only when
25
25
  it combines all three legs of the *lethal trifecta*. Remove one leg and an
26
- injected instruction can do no consequential harm. This is the agentic attack
27
- surface OWASP's Agentic Security Initiative (ASI Top 10) catalogues — excessive
28
- agency, tool misuse, confused-deputy data exfiltration; the Least-Agency
29
- discipline in [`tool-safety`](tool-safety.md) is the same defence applied to the
30
- tool grant.
26
+ injected instruction can do no consequential harm. This is the agentic
27
+ attack surface OWASP's Agentic Security Initiative (ASI Top 10) catalogues —
28
+ excessive agency, tool misuse, and confused-deputy data exfiltration; the
29
+ Least-Agency discipline in [`tool-safety`](tool-safety.md) is the same defence
30
+ applied to the tool grant.
31
31
 
32
32
  ## The Iron Law
33
33
 
@@ -21,17 +21,17 @@ NO SECRETS. NO EMAILS. NO PROJECT PATHS. NO CUSTOMER NAMES.
21
21
  NO INTERNAL HOSTNAMES. NO MONEY. NO BUSINESS SQL. NO LONG CODE.
22
22
  ```
23
23
 
24
- Redactor lives in `scripts/ai_council/redact_low_impact_entry.ts`
24
+ The redactor lives in `scripts/ai_council/redact_low_impact_entry.ts`
25
25
  and runs at **both** gates:
26
26
 
27
27
  1. **Write gate** — every intake append to
28
28
  `agents/decisions/low-impact-decisions.md` (Phase 12 § Step 2).
29
29
  2. **Upstream gate** — every `/memory learn-low-impact` PR draft,
30
- before diff leaves repo (Phase 12 § Step 5).
30
+ before the diff leaves the repo (Phase 12 § Step 5).
31
31
 
32
- Failure at either gate refuses the operation, surfaces offending
33
- pattern, asks user to rephrase. Redactor never auto-rewrites — silent
34
- rewriting is soft gate, this is hard.
32
+ A failure at either gate refuses the operation, surfaces the
33
+ offending pattern, and asks the user to rephrase. The redactor never
34
+ auto-rewrites — silent rewriting is a soft gate, this is hard.
35
35
 
36
36
  ## Forbidden-content classes (8)
37
37
 
@@ -54,9 +54,10 @@ rewriting is soft gate, this is hard.
54
54
 
55
55
  ## When to invoke
56
56
 
57
- - Host agent just received user intake trigger (see
57
+ - The host agent has just received a user intake trigger (see
58
58
  `scripts/ai_council/low_impact_intake.TRIGGER_PHRASES`).
59
- - Host agent about to write entry to corpus or open `/memory learn-low-impact` PR.
59
+ - The host agent is about to write an entry to the corpus or to
60
+ open a `/memory learn-low-impact` PR.
60
61
 
61
62
  ## What to surface on refusal
62
63
 
@@ -66,7 +67,8 @@ One-line marker:
66
67
  > Low-impact corpus refused — <category>: <snippet…>. Rephrase or skip.
67
68
  ```
68
69
 
69
- Then agent stops intake/upstream flow. No silent retry, no auto-rewrite.
70
+ Then the agent stops the intake / upstream flow. No silent retry, no
71
+ auto-rewrite.
70
72
 
71
73
  ## See also
72
74
 
@@ -42,11 +42,11 @@ MEDIA POLICIES IN agents/settings/policies/media/ BEFORE EMITTING THE PROMPT TO
42
42
  THE PROVIDER. REFUSE-AND-SURFACE OVER GUESS-AND-RENDER.
43
43
  ```
44
44
 
45
- Routes agent to project-local media governance policy layer at [`agents/settings/policies/media/`](../../agents/settings/policies/media/) when video / image / voice surface fires. Policies are LLM-readable decision frameworks consulted in-session, not Python-enforced gates — see [`agents/settings/policies/media/README.md § Enforcement model`](../../agents/settings/policies/media/README.md) for full agent-in-the-loop contract.
45
+ This rule routes the agent to the **project-local** media governance policy layer at [`agents/settings/policies/media/`](../../agents/settings/policies/media/) whenever a video / image / voice surface fires. The policies themselves are LLM-readable decision frameworks consulted in-session, not Python-enforced gates — see [`agents/settings/policies/media/README.md § Enforcement model`](../../agents/settings/policies/media/README.md) for the full agent-in-the-loop contract.
46
46
 
47
47
  ## What this rule surfaces
48
48
 
49
- Any trigger match → agent loads into context:
49
+ When any trigger above matches in the user prompt or in a tool invocation, the agent loads into context:
50
50
 
51
51
  - [`agents/settings/policies/media/likeness.md`](../../agents/settings/policies/media/likeness.md) — real person's visual likeness.
52
52
  - [`agents/settings/policies/media/style.md`](../../agents/settings/policies/media/style.md) — named living artist's distinctive style.
@@ -56,30 +56,30 @@ Any trigger match → agent loads into context:
56
56
  - [`agents/settings/policies/media/brand-impersonation.md`](../../agents/settings/policies/media/brand-impersonation.md) — brand / broadcaster identity imitation.
57
57
  - [`agents/settings/policies/media/transparency.md`](../../agents/settings/policies/media/transparency.md) — provenance metadata (C2PA, SynthID).
58
58
 
59
- Each policy carries own trigger block → within active context agent narrows from superset to policies whose specific patterns actually fired (e.g. prompt naming public figure → `public-figures.md` + `disclosure.md`; `--no-disclosure` → `disclosure.md` standalone).
59
+ Each policy carries its own trigger block, so within the active context the agent narrows from this superset to the policies whose specific patterns actually fired (e.g., a prompt naming a public figure activates `public-figures.md` and `disclosure.md`; a prompt requesting `--no-disclosure` activates `disclosure.md` standalone).
60
60
 
61
61
  ## Why project-local, not `.agent-src.uncondensed/rules/`
62
62
 
63
- Seven media policies live under [`agents/settings/policies/media/`](../../agents/settings/policies/media/), not as `.agent-src.uncondensed/rules/domain-safety-media-*.md`, for three reasons:
63
+ The seven media policies live under [`agents/settings/policies/media/`](../../agents/settings/policies/media/), not as `.agent-src.uncondensed/rules/domain-safety-media-*.md`, for three reasons:
64
64
 
65
- 1. **Consumed by skills + adapters**, not surfaced as standalone always-loaded prose. Cost non-trivial (7 × ~80 lines = ~560 lines always-context if hoisted to rules), and most sessions never touch video / image / voice surface.
66
- 2. **Enforcement model project-local** — working precedent (`/ghostwriter:*` mandatory footer in `write-engine.md`) + audit log (session transcripts) are project artifacts. Rules under `.agent-src.uncondensed/` are tool-portable governance; these policies are domain-specific bindings.
67
- 3. **Extraction to reusable domain pack explicitly deferred** until second non-video domain (audio, image, docs, exports) lands with overlapping execution surfaces. Until then, one-domain abstraction structurally premature — policies stay project-local, routing rule on-demand bridge.
65
+ 1. **They are consumed by skills and adapters**, not surfaced as standalone always-loaded prose. The cost is non-trivial (7 × ~80 lines = ~560 lines into the always-context if hoisted to rules), and most sessions never touch a video / image / voice surface.
66
+ 2. **The enforcement model is project-local** — the working precedent (`/ghostwriter:*` mandatory footer in `write-engine.md`) and the audit log (session transcripts) are project artifacts. Rules under `.agent-src.uncondensed/` are tool-portable governance; these policies are domain-specific bindings.
67
+ 3. **Extraction to a reusable domain pack is explicitly deferred** until a second non-video domain (audio, image, docs, exports) lands with overlapping execution surfaces. Until then, a one-domain abstraction is structurally premature — the policies stay project-local and the routing rule is the on-demand bridge.
68
68
 
69
- This routing rule is the bridge: sits in always-loaded rule set so trigger keywords surface project-local policies into context on demand, without paying full always-loaded cost.
69
+ This routing rule is the bridge: it sits in the always-loaded rule set so the trigger keywords surface the project-local policies into context on demand, without paying the full always-loaded cost.
70
70
 
71
71
  ## CI reachability guarantee
72
72
 
73
- [`scripts/lint_media_policy_linkage.ts`](../../scripts/lint_media_policy_linkage.ts) fails build if any policy file under `agents/settings/policies/media/` not linked from:
73
+ [`scripts/lint_media_policy_linkage.ts`](../../scripts/lint_media_policy_linkage.ts) fails the build if any policy file under `agents/settings/policies/media/` is not linked from:
74
74
 
75
75
  - this routing rule, **or**
76
76
  - a skill's `## Policies` see-also block, **or**
77
77
  - another policy file's `## See also` block.
78
78
 
79
- Policy that no skill, rule, or sibling policy references → silent policy. CI check is structural reachability guarantee that agent-in-the-loop model rests on.
79
+ A policy that no skill, rule, or sibling policy references is a silent policy. The CI check is the structural reachability guarantee that the agent-in-the-loop model rests on.
80
80
 
81
81
  ## See also
82
82
 
83
- - [`agents/settings/policies/media/README.md`](../../agents/settings/policies/media/README.md) — full enforcement-model contract.
84
- - [`ask-when-uncertain`](ask-when-uncertain.md) — single-question refusal-path discipline every policy depends on.
85
- - [`docs/contracts/write-engine.md`](../docs/contracts/write-engine.md) — prose-disclosure precedent extended to media by [`disclosure.md`](../../agents/settings/policies/media/disclosure.md).
83
+ - [`agents/settings/policies/media/README.md`](../../agents/settings/policies/media/README.md) — the full enforcement-model contract.
84
+ - [`ask-when-uncertain`](ask-when-uncertain.md) — the single-question refusal-path discipline every policy depends on.
85
+ - [`docs/contracts/write-engine.md`](../docs/contracts/write-engine.md) — the prose-disclosure precedent extended to media by [`disclosure.md`](../../agents/settings/policies/media/disclosure.md).
@@ -30,23 +30,41 @@ WRONG-SINGER-ON-WRONG-LINE IS A RENDER-MONEY-BURNING FAILURE.
30
30
  MAP → SIGN-OFF → RENDER. NO BLIND BATCHES.
31
31
  ```
32
32
 
33
- For audio-synced video (lip-sync, beat-aligned cuts, music videos), truth for **timing** + **who-sings-what** is the **actual audio** — transcribed to timestamped lines with a singer per segment. A creative skeleton (story / Drehbuch) encodes *intent*, not the delivered audio; a guessed stretch makes it worse. Lip-sync amplifies every mismatch — wrong mouth on wrong words is instantly, glaringly wrong, and the render already cost money.
33
+ When generating audio-synced video (lip-sync, beat-aligned cuts, music
34
+ videos), the source of truth for **timing** and **who-sings-what** is the
35
+ **actual audio artifact** — transcribed to timestamped lines with a
36
+ singer per segment. A creative skeleton (story / Drehbuch) encodes
37
+ *intent*, not the *delivered* audio; a guessed stretch factor makes it
38
+ worse. Lip-sync amplifies every mismatch — the wrong mouth on the wrong
39
+ words is instantly, glaringly wrong, and the render already cost money.
34
40
 
35
41
  ## What this requires
36
42
 
37
- 1. **Transcribe the real audio** → timestamped lines (OpenAI `/v1/audio/transcriptions` or whisper). Probe gives duration; transcript gives structure. Build `<project>/vocal-map.json`: `[{start, end, text, singer}]`.
38
- 2. **Label singers onto the transcribed timeline**, never the reverse. A who-sings doc only *labels* lines; never *defines* the timeline.
39
- 3. **Align cuts to real lyrical/musical phrases** — not arbitrary fixed-length windows.
40
- 4. **Each vocal line lip-syncs to its OWN singer.** Never cross-assign one character's mouth onto another's part.
41
- 5. **Sign-off gate** — surface the vocal map (timestamp → line → singer → shot) for explicit operator approval **before** any paid render.
42
- 6. **Lip-sync sparingly** — only where a frontal close-up of the correct singer supports it; model lip-sync on singing is imperfect, so use cinematic motion (dop) for the rest.
43
+ 1. **Transcribe the real audio** → timestamped lines (OpenAI
44
+ `/v1/audio/transcriptions` or whisper). The probe gives duration; the
45
+ transcript gives structure. Build `<project>/vocal-map.json`:
46
+ `[{start, end, text, singer}]`.
47
+ 2. **Label singers onto the transcribed timeline**, never the reverse. A
48
+ who-sings doc only *labels* lines; it never *defines* the timeline.
49
+ 3. **Align cuts to real lyrical/musical phrases** — not arbitrary
50
+ fixed-length windows.
51
+ 4. **Each vocal line lip-syncs to its OWN singer.** Never cross-assign one
52
+ character's mouth onto another's part.
53
+ 5. **Sign-off gate** — surface the vocal map (timestamp → line → singer →
54
+ shot) for explicit operator approval **before** any paid render.
55
+ 6. **Lip-sync sparingly** — only where a frontal close-up of the correct
56
+ singer supports it; model lip-sync on singing is imperfect, so use
57
+ cinematic motion (dop) for the rest.
43
58
 
44
59
  ## Failure modes
45
60
 
46
- - Stretched `story.md` as singer/timing source → one character mouths another's lines (canonical odins-beard failure).
47
- - Fixed 5s windows landing off-phrase → jarring cuts + weird mouth motion.
48
- - Firing a multi-clip batch before the vocal map is approved → budget burned on throwaway output.
49
- - Trusting a guessed time-stretch to "match" the song length.
61
+ - Using a stretched `story.md` as the singer/timing source → one character
62
+ ends up mouthing another's lines (the canonical odins-beard failure).
63
+ - Chunking the song into fixed 5s windows that land off-phrase → jarring
64
+ cuts + weird mouth motion.
65
+ - Firing a multi-clip render batch before the vocal map is approved →
66
+ budget burned on output that must be thrown away.
67
+ - Trusting a guessed time-stretch factor to "match" the song length.
50
68
 
51
69
  ## See also
52
70
 
@@ -9,7 +9,7 @@ packs: [meta]
9
9
 
10
10
  # No Cheap Questions
11
11
 
12
- Cheap = context answers it, an option breaches an Iron Law, choices differ only in sequencing/format, or one option dominates. Mode-independent; autonomy never lifts the floor.
12
+ Cheap = context answers it, an option breaches an Iron Law, choices differ only in sequencing/format, or one dominates. Mode-independent; autonomy never lifts the floor.
13
13
 
14
14
  ## The Iron Laws
15
15
 
@@ -19,7 +19,7 @@ NEVER OFFER AN IRON-LAW-VIOLATING OPTION.
19
19
  NEVER NUMBER CHOICES WITHOUT A REAL TRADE-OFF.
20
20
  ```
21
21
 
22
- Cheap-class catalog + IL 3 (no paternalistic state-assuming options): [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
22
+ Cheap-class catalog + IL 3 (no state-assuming options): [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
23
23
 
24
24
  ## Iron Law 4 — No Continuation Prompts Under Autonomous Mandate
25
25
 
@@ -39,7 +39,7 @@ USER AUTHORIZES X ("COMMIT" / "PUSH" / "OPEN PR" / "DEPLOY")
39
39
  "DO THE PREREQ" vs "SKIP AND BREAK THE GATE".
40
40
  ```
41
41
 
42
- Prereq catalog + halt conditions: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
42
+ Prereq catalog + halts: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
43
43
 
44
44
  ## Iron Law 6 — Destination Already Stated, Never Re-Ask
45
45
 
@@ -48,7 +48,7 @@ USER NAMED THE DESTINATION → DO NOT RE-ASK.
48
48
  NO BRANCH-BASE INVENTORY, NO "WHICH BRANCH?", NO "NEW PR?".
49
49
  ```
50
50
 
51
- Triggers + scope-control interaction: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
51
+ Triggers + scope-control interplay: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
52
52
 
53
53
  ## Pre-Send Self-Check — MANDATORY before every question
54
54
 
@@ -65,8 +65,8 @@ Silent, before any numbered-options block. Any "yes" → don't ask:
65
65
  9. Prereq for user-authorized action? IL 5, execute silently.
66
66
  10. Destination (branch / PR) already named? IL 6, never re-ask.
67
67
  11. Cleanup of gitignored / auto-pruned / TTL-managed artefact? Self-managing — state inline, never offer.
68
- 12. Numbered option contains a commit-message body, "message preview", or "Vorschlag falls Du committen willst"? Disguised commit ask — `commit-policy` violation, drop it.
69
- 13. Commit authorized + asking "one commit or multiple?", "how should I split?", "which chunk first?"? Forbidden — `commit-policy § Always split into logical chunks`. Pick the split, state inline, execute.
70
- 14. Artifact just landed (roadmap / ADR / plan / pitch / ticket) + offering "ready to start Phase 1?", "begin execution?", or a `/roadmap:process-*` menu? Forbidden — `scope-control § Authoring vs. implementation` + `scope-mechanics § Post-artifact hard stop`. Authoring verbs never inherit execution authorization. Emit the hand-back line, stop the turn.
68
+ 12. Numbered option carries a commit-message body, "message preview", or "Vorschlag falls Du committen willst"? Disguised commit ask — `commit-policy` violation, drop it.
69
+ 13. Commit authorized + asking "one commit or multiple?", "how should I split?", "which chunk first?"? Forbidden — `commit-policy § Always split into logical chunks`. Pick the split, state it inline, execute.
70
+ 14. Artifact just landed (roadmap / ADR / plan / pitch / ticket / design doc) + offering "ready to start Phase 1?", "begin execution?", or a `/roadmap:process-*` menu? Forbidden — `scope-control § Authoring vs. implementation` + `scope-mechanics § Post-artifact hard stop`. Authoring verbs never inherit execution authorization. Emit the hand-back line, stop the turn.
71
71
 
72
72
  Pick the dominant path, state the assumption inline, hand back. Genuine ambiguity → [`ask-when-uncertain`](ask-when-uncertain.md). In doubt → ask: this rule narrows asking, never widens silence. When asking IS allowed: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
@@ -29,24 +29,26 @@ EVERY EMOJI USED. NO LEGEND → NO EMOJI.
29
29
  EXCEPTION: USER EXPLICITLY ASKED FOR IT THIS TURN.
30
30
  ```
31
31
 
32
- Decorative = visual flair, ranking, mood, "look how fancy". Functional emojis below stay allowed.
32
+ Decorative = added for visual flair, ranking, mood, or "look how
33
+ fancy". Functional emojis below are not decorative and stay allowed.
33
34
 
34
35
  ## Surfaces — what this gates
35
36
 
36
- Always blocked (titles + free-standing comments):
37
+ Always blocked (title surfaces + free-standing comment threads):
37
38
 
38
39
  - PR titles (`gh pr create --title`, `octokit.pulls.create`, PATCH).
39
40
  - Issue titles (`gh issue create`, `octokit.issues.create`, PATCH).
40
- - Commit subject (first line of `git commit -m` / message file).
41
+ - Commit subject line (first line of `git commit -m` / message file).
41
42
  - Branch names.
42
43
  - Standalone PR / issue comments (`gh pr comment`, `gh issue comment`,
43
44
  `octokit.issues.createComment`) — covers everything `no-pr-progress-comments`
44
45
  lets through (review-replies, user-invoked comment flows).
45
46
 
46
- Body-only, legend-gated:
47
+ Conditional, body-only — emojis allowed when a legend in the same
48
+ artifact defines every emoji used (see below):
47
49
 
48
- - PR / issue descriptions (body of create / PATCH payload).
49
- - Commit body (lines below the blank-line subject separator).
50
+ - PR / issue descriptions (body of the create / PATCH payload).
51
+ - Commit body (lines after the blank-line separator below the subject).
50
52
 
51
53
  ## Universal blacklist — forbidden even with a legend
52
54
 
@@ -54,28 +56,37 @@ Body-only, legend-gated:
54
56
  🤖 🚀 🎉 ✨ 🔥 💡 👍 ❤️ 🤗 😊 (and skin-tone / variant forms)
55
57
  ```
56
58
 
57
- "Look how fancy" / empathy classes from `direct-answers`. Self-attribution (🤖) is the punkpeye PR (#6865 title-emoji spam) pattern. No legend rescues them.
59
+ These are the "look how fancy" / empathy classes from `direct-answers`.
60
+ Self-attribution (🤖) is the canonical violation pattern from the
61
+ punkpeye PR (#6865 title-emoji spam). No legend rescues them.
58
62
 
59
- ## Legend carve-out — when body emojis ARE allowed
63
+ ## Legend carve-out — when decorative emojis ARE allowed in a body
60
64
 
61
- All three must hold for the same artifact:
65
+ Allowed only when ALL of the following hold for the same artifact:
62
66
 
63
- 1. Body contains a `Legend:` (or `Legende:`) block on its own line defining every decorative emoji used elsewhere in the body.
64
- 2. Emojis carry **information** (language tag, OS marker, hosting class) — not pure decoration. Example punkpeye-#6865 body:
67
+ 1. The body contains a `Legend:` (or `Legende:`) block on its own line
68
+ that defines every decorative emoji used elsewhere in the body.
69
+ 2. The emojis carry **information** (language tag, OS marker, hosting
70
+ class) — they are not pure decoration. Compare punkpeye-#6865 body:
65
71
  `📇 TypeScript · ☁️ Cloud · 🏠 Local · 🍎 macOS · 🪟 Windows · 🐧 Linux`.
66
72
  3. No universal-blacklist emoji appears (above list always wins).
67
73
 
68
74
  Body emojis without a legend → strip before posting / committing.
69
75
 
70
- ## Whitelist — always allowed, no legend
76
+ ## Whitelist — always allowed, no legend needed
71
77
 
72
- - CLI / agent-status markers: `❌` `✅` `⚠️` (literal status).
78
+ - CLI / agent-status markers: `❌` `✅` `⚠️` (carry literal status).
73
79
  - Mode markers from `role-mode-adherence`.
74
- - Roadmap checkbox glyphs (`[x]` `[~]` `[-]`) in fenced code or quoted roadmap excerpts — not emojis, no carve-out needed.
80
+ - Roadmap checkbox glyphs (`[x]` `[~]` `[-]`) inside fenced code or
81
+ quoted roadmap excerpts — these are not emojis, no carve-out needed.
75
82
 
76
83
  ## Server-side re-injection
77
84
 
78
- Host AI client or tool wrapper re-injects 🤖 / 🎉 into a title or comment after creation (analog to the `Pull Request opened by …` injection in `no-attribution-footers`) → same mitigation: re-fetch after create, regex-strip, PATCH if changed, re-fetch to verify.
85
+ If the host AI client or tool wrapper re-injects 🤖 / 🎉 into a title
86
+ or comment after creation (analog to the `Pull Request opened by …`
87
+ injection covered in `no-attribution-footers`), the same mitigation
88
+ applies: re-fetch after create, regex-strip the offending characters,
89
+ PATCH if changed, re-fetch to verify.
79
90
 
80
91
  ## Failure modes — what counts as a violation
81
92
 
@@ -83,7 +94,7 @@ Host AI client or tool wrapper re-injects 🤖 / 🎉 into a title or comment af
83
94
  - PR title `🤖 Update dependencies` — title-emoji spam (punkpeye #6865).
84
95
  - Comment body `🎉 All checks green now!` — decorative comment.
85
96
  - PR body with `Status: 🟢 Ready` — no legend, no carve-out.
86
- - Branch `feat/🔥-new-thing` — emoji in ref name.
97
+ - Branch named `feat/🔥-new-thing` — emoji in ref name.
87
98
  - Body legend present but body also uses 🤖 — universal blacklist wins.
88
99
 
89
100
  ## See also
@@ -95,5 +106,5 @@ Host AI client or tool wrapper re-injects 🤖 / 🎉 into a title or comment af
95
106
  that does get posted.
96
107
  - [`commit-conventions`](commit-conventions.md) — Conventional Commits
97
108
  format; this rule narrows the allowed character set in the subject.
98
- - [`direct-answers`](direct-answers.md) § Emoji Scope — chat-reply analog;
99
- same emoji classes, different surface.
109
+ - [`direct-answers`](direct-answers.md) § Emoji Scope — the chat-reply
110
+ analog; same emoji classes, different surface.
@@ -23,22 +23,22 @@ NO AUTONOMY SETTING, NO ROADMAP STEP, NO STANDING INSTRUCTION,
23
23
  NO "JUST KEEP GOING" CAN BYPASS IT.
24
24
  ```
25
25
 
26
- Triggers below require explicit user confirmation **on this turn** — not from a previous turn, not from a roadmap, not from a standing autonomy directive (anchor list: [`autonomous-execution`](autonomous-execution.md)):
26
+ Triggers below require explicit user confirmation **on this turn** — not a previous turn, not a roadmap, not a standing autonomy directive (anchor: [`autonomous-execution`](autonomous-execution.md)):
27
27
 
28
28
  | Trigger | Examples |
29
29
  |---|---|
30
30
  | **Production-branch merge** | `main`, `master`, `prod`, `production`, `release/*`, or any project-marked deployment trunk |
31
- | **Commit on a production branch** | any `git commit` while `HEAD` is on a prod trunk. **Verify branch before every commit** — `main` is opt-in only, never inferred from a prior turn or a merged PR that left HEAD on `main` |
31
+ | **Commit on a production branch** | any `git commit` while `HEAD` is on a prod trunk. **Verify branch before every commit** — `main` is opt-in only, never inferred from a prior turn or a merged PR that left HEAD there |
32
32
  | **Deploy / release** | prod `terraform apply` / `kubectl apply`, deploy scripts, release commands, CI-deploying tag pushes |
33
33
  | **Push to remote** | any `git push` (also covered by [`scope-control`](scope-control.md), restated so the floor never weakens) |
34
34
  | **Production data / infra** | prod DB writes / migrations, prod config, secrets rotation, IAM / role / policy, DNS, anything in a `prod`-scoped path or pipeline |
35
35
  | **Whimsical / unscoped bulk deletion** | `rm -rf <dir>`, `git rm -r`, glob deletes, `DROP TABLE`, `TRUNCATE`, `git reset --hard` past unpushed work — when **not required** by the task (task-aligned WIP deletions allowed, below) |
36
36
  | **Commit containing bulk deletions or infra changes** | diff removes a directory, deletes ≥5 unrelated files, or touches Terraform/Pulumi/k8s/Ansible/cloud-config — surface the diff + confirm even when [`commit-policy`](commit-policy.md) authorizes |
37
- | **Irreversible external action** | **send** / **publish** / **post** / **purchase** / **submit** — an outbound, externally-visible, or money-moving action the user cannot un-see: send an email/message, publish or post content, submit a form, place an order or payment. Also gated by [`scope-control`](scope-control.md) external-comms; named here so the Hard Floor lists the actual buttons |
37
+ | **Irreversible external action** | **send** / **publish** / **post** / **purchase** / **submit** — outbound, externally-visible, or money-moving actions the user cannot un-see: email/message, publish or post content, submit a form, place an order or payment. Also gated by [`scope-control`](scope-control.md) external-comms; named here so the Hard Floor lists the actual buttons |
38
38
 
39
39
  Standing "just keep going" + next step crosses the floor → STOP, surface it (one numbered-options block per [`user-interaction`](user-interaction.md)), wait.
40
40
 
41
- **Never act while asking.** The ask and the action are strictly sequential: surface the confirmation, then WAIT for the answer. Never fire the action in the same turn you ask for it — no do-then-ask race, no "I went ahead and…". **The approval names the exact object** so the user confirms the real thing, not a category: a download names filename + size + source; a purchase names amount + card-last4 + total; a send names recipient + subject. Shape per [`user-interaction`](user-interaction.md) numbered-options.
41
+ **Never act while asking.** Ask and action are strictly sequential: surface the confirmation, then WAIT. Never fire the action in the turn you ask — no do-then-ask race, no "I went ahead and…". **The approval names the exact object**, not a category: a download names filename + size + source; a purchase names amount + card-last4 + total; a send names recipient + subject. Shape per [`user-interaction`](user-interaction.md) numbered-options.
42
42
 
43
43
  ## Not in scope — deterministic regeneration
44
44
 
@@ -46,7 +46,7 @@ Output regenerated from a tracked source (condensation, code-gen, formatters, lo
46
46
 
47
47
  ## Bulk deletions during WIP — allowed if task-connected
48
48
 
49
- Deletions inside an **active, user-stated task** are allowed in the working tree — the Hard Floor moves to the **commit** (row 6). Whimsical / drive-by / unnamed-scope deletions still trip the floor on the edit. Allowed/forbidden lists: [`destructive-mechanics`](../contexts/authority/destructive-mechanics.md).
49
+ Deletions inside an **active, user-stated task** are allowed in the working tree — the Hard Floor moves to the **commit** (row 6). Whimsical / drive-by / unnamed-scope deletions still trip the floor on the edit. Lists: [`destructive-mechanics`](../contexts/authority/destructive-mechanics.md).
50
50
 
51
51
  ## Failure modes
52
52
 
@@ -59,21 +59,3 @@ Applies on every surface — web, Skills API, any cloud agent. No "cloud overrid
59
59
  ## See also
60
60
 
61
61
  [`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`user-interaction`](user-interaction.md).
62
-
63
- ## Enforcement — stated honestly (`enforced_by: none`)
64
-
65
- This floor has **no mechanical backstop**, and pretending otherwise would be the
66
- failure it exists to prevent. No script can enforce "ask before you deploy" — the
67
- obligation is to pause and surface, and the only thing that observes it is the
68
- human in the loop. Adjacent hooks (`block-no-verify`) guard hook-bypass, not
69
- destructive intent; claiming them here would inflate coverage, so they are not
70
- claimed.
71
-
72
- So this rule is load-bearing **and** unenforced. It is carried by the model
73
- honouring it — which is why it is a kernel rule, why it is short, and why it is
74
- counted as uncovered in the enforcement-coverage report rather than excluded
75
- from it.
76
-
77
- ## See also
78
-
79
- [`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`user-interaction`](user-interaction.md).
@@ -14,10 +14,20 @@ enforced_by:
14
14
 
15
15
  # Onboarding Gate
16
16
 
17
- **Iron Law.** First turn of project: if `onboarding.onboarded` is false in `.agent-settings.yml`, instruct dev to run `agent-config setup` in terminal before any other request. Wizard writes `onboarding.onboarded: true` on `Finish` → rule silenced after.
17
+ **Iron Law.** First turn of a project: if `onboarding.onboarded` is
18
+ false in `.agent-settings.yml`, instruct the developer to run
19
+ `agent-config setup` in their terminal before executing any other
20
+ request. The wizard writes `onboarding.onboarded: true` on `Finish`,
21
+ which silences this rule for subsequent turns.
18
22
 
19
- `agent-config setup` boots local TypeScript server (Fastify on `127.0.0.1`), opens browser wizard at `/#/wizard`. No chat-side skill — legacy `/onboard` and its `onboard:finish` bridge have been retired; browser wizard is sole onboarding surface.
23
+ `agent-config setup` boots the local TypeScript server (Fastify on
24
+ `127.0.0.1`) and opens the browser wizard at `/#/wizard`. The chat
25
+ side has no equivalent skill — the legacy `/onboard` skill and its
26
+ `onboard:finish` bridge have been retired; the browser wizard is the
27
+ sole onboarding surface.
20
28
 
21
- Cloud surfaces without settings file stay inert: rule does not fire when `.agent-settings.yml` absent → headless / read-only contexts (Cloudflare MCP, doc preview, CI) never see prompt.
29
+ Cloud surfaces without a settings file stay inert: the rule does not
30
+ fire when `.agent-settings.yml` is absent, so headless / read-only
31
+ contexts (Cloudflare MCP, doc preview, CI) never see the prompt.
22
32
 
23
- Trigger-set above activates routing on demand, independent of the discipline profile (ADR-110).
33
+ Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
@@ -3,7 +3,7 @@ type: "auto"
3
3
  tier: "2a"
4
4
  description: "Creating/editing/proposing personas — enforce per-domain cap (≤ 2 specialists), ≥ 1 skill citation, deprecation path"
5
5
  triggers:
6
- - path_prefix: ".agent-src.uncondensed/personas/"
6
+ - path_prefix: "src/agent-src/personas/"
7
7
  - path_prefix: "dist/agent-src/personas/"
8
8
  - keyword: "persona"
9
9
  - keyword: "personas"
@@ -46,6 +46,6 @@ Trigger-set above activates this routing on demand, independent of the disciplin
46
46
  ## See also
47
47
 
48
48
  - [`docs/contracts/persona-schema.md`](../docs/contracts/persona-schema.md) — schema lock, tiers, sections, size budgets, linter enforcement surface, and the migrated governance checks (§ 8).
49
- - [`docs/personas.md`](../docs/personas.md) — active persona catalog, citation map, ownership column.
49
+ - [`docs/personas.md`](../../docs/personas.md) — active persona catalog, citation map, ownership column.
50
50
  - [`ai-council`](../skills/ai-council/SKILL.md) — neutral second-opinion mechanism used for merge / deprecation decisions.
51
51
  - [`skill-quality`](skill-quality.md) — sibling discipline rule for skill files.