@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
@@ -17,17 +17,35 @@
17
17
  *
18
18
  * 1. `composer.json` lists `livewire/livewire` AND `livewire/flux` →
19
19
  * `blade-livewire-flux`
20
- * 2. `package.json` lists `react` AND any of `@radix-ui/*`,
20
+ * 2. `composer.json` lists `filament/filament` → `filament` (before bare
21
+ * Livewire: Filament pulls Livewire in transitively)
22
+ * 3. `composer.json` lists `livewire/livewire` → `blade-livewire`
23
+ * 4. `package.json` lists `react` AND any of `@radix-ui/*`,
21
24
  * `shadcn-ui` or has a `components.json` (the shadcn marker file)
22
25
  * → `react-shadcn`
23
- * 3. `package.json` lists `vue` (any major) → `vue`
24
- * 4. Otherwise → `plain`
26
+ * 5. `package.json` lists `react` → `react`
27
+ * 6. `package.json` lists `vue` (any major) → `vue`
28
+ * 7. Either manifest names a recognised-but-unmodelled framework
29
+ * (Svelte, Angular, Nuxt, Astro, Solid, Qwik, Inertia) → `unknown`
30
+ * 8. Otherwise → `plain`
31
+ *
32
+ * Rules 3, 5 and 7 exist because the earlier table sent three common
33
+ * shapes into `plain`: Laravel+Livewire without Flux failed rule 1's `&&`,
34
+ * React without Radix failed rule 4, and every unmodelled framework was
35
+ * indistinguishable from a genuinely plain project. `plain` now means "no
36
+ * frontend markers"; `unknown` means "a framework we do not model", and
37
+ * dispatch refuses on it rather than handing over generic tooling silently.
25
38
  *
26
39
  * Detection is filesystem-cheap: at most three small JSON reads per
27
40
  * project root. Errors (missing file, malformed JSON, missing `require`
28
41
  * section) downgrade to `plain` rather than raising — a wrong stack
29
42
  * label is recoverable (audit catches it, user can override), but a
30
43
  * crash mid-dispatch is not.
44
+ *
45
+ * Root manifests only, by design: a monorepo caller passes the workspace
46
+ * root that carries the manifest it cares about. Note the consequence —
47
+ * a caller that always passes the repository root gets `plain` for a
48
+ * monorepo, so the caller owns scope selection, not the detector.
31
49
  */
32
50
  import * as fs from 'node:fs';
33
51
  import * as path from 'node:path';
@@ -43,18 +61,59 @@ import * as path from 'node:path';
43
61
  */
44
62
  export const KNOWN_STACKS: ReadonlySet<string> = new Set([
45
63
  'blade-livewire-flux',
64
+ 'blade-livewire',
65
+ 'filament',
46
66
  'react-shadcn',
67
+ 'react',
47
68
  'vue',
48
69
  'plain',
70
+ 'unknown',
49
71
  ]);
50
72
 
51
- /** Fallback when no manifest signal matches. */
73
+ /**
74
+ * Label for a project with no frontend markers at all.
75
+ *
76
+ * `plain` used to carry two meanings — "genuinely a plain HTML/Tailwind
77
+ * project" and "detection failed, here is generic tooling anyway" — which made
78
+ * a loud failure impossible without punishing real plain projects. The second
79
+ * meaning is now {@link UNSUPPORTED_STACK}.
80
+ */
52
81
  export const DEFAULT_STACK = 'plain';
53
82
 
83
+ /**
84
+ * Label for a project whose frontend IS recognisable but is not modelled.
85
+ *
86
+ * Dispatch refuses on this label instead of degrading to generic tooling: a
87
+ * Filament or Svelte project silently routed to a Tailwind-only bundle is
88
+ * user-hostile precisely because the output looks like it worked.
89
+ */
90
+ export const UNSUPPORTED_STACK = 'unknown';
91
+
54
92
  const _SHADCN_RADIX_PREFIX = '@radix-ui/';
55
93
  const _SHADCN_PACKAGE_NAMES: ReadonlySet<string> = new Set(['shadcn-ui', 'shadcn']);
56
94
  const _FLUX_PACKAGE = 'livewire/flux';
57
95
  const _LIVEWIRE_PACKAGE = 'livewire/livewire';
96
+ const _FILAMENT_PACKAGE = 'filament/filament';
97
+
98
+ /**
99
+ * Frontend markers this package recognises but does not model.
100
+ *
101
+ * One of these present means detection **succeeded** at recognising a
102
+ * framework and the package simply has no lane for it — the `unknown` case,
103
+ * not the `plain` case. Keep the list short and factual; a marker leaves it
104
+ * only when a real lane exists.
105
+ */
106
+ const _UNMODELLED_MARKERS: ReadonlyArray<string> = [
107
+ 'svelte',
108
+ '@angular/core',
109
+ 'nuxt',
110
+ 'astro',
111
+ 'solid-js',
112
+ '@builder.io/qwik',
113
+ '@inertiajs/vue3',
114
+ '@inertiajs/react',
115
+ 'inertiajs/inertia-laravel',
116
+ ];
58
117
 
59
118
  /**
60
119
  * A heterogeneous JSON object, mirroring a Python `dict[str, object]`.
@@ -109,14 +168,51 @@ export function detect_stack(project_root: string): StackResult {
109
168
  return new StackResult({ frontend: 'blade-livewire-flux', mtime });
110
169
  }
111
170
 
171
+ // Filament before bare Livewire: it pulls Livewire in transitively, so a
172
+ // Filament project would otherwise be labelled by its dependency rather
173
+ // than by the framework the developer actually works in.
174
+ if (_has_package(composer, ['require', 'require-dev'], _FILAMENT_PACKAGE)) {
175
+ return new StackResult({ frontend: 'filament', mtime });
176
+ }
177
+
178
+ // Livewire WITHOUT Flux is the common Laravel frontend, not an unknown
179
+ // one. It used to fail the `&&` above and land in `plain`.
180
+ if (_has_package(composer, ['require', 'require-dev'], _LIVEWIRE_PACKAGE)) {
181
+ return new StackResult({ frontend: 'blade-livewire', mtime });
182
+ }
183
+
112
184
  if (_is_react_shadcn(pkg, components_json)) {
113
185
  return new StackResult({ frontend: 'react-shadcn', mtime });
114
186
  }
115
187
 
188
+ // React without Radix/shadcn is a served stack, not an unknown one.
189
+ if (_has_package(pkg, _PKG_DEP_KEYS, 'react')) {
190
+ return new StackResult({ frontend: 'react', mtime });
191
+ }
192
+
116
193
  if (_has_vue(pkg)) {
117
194
  return new StackResult({ frontend: 'vue', mtime });
118
195
  }
119
196
 
197
+ // A recognised-but-unmodelled framework is NOT `plain`. Refusing here is
198
+ // the point: `plain` means "no frontend markers", and conflating the two
199
+ // is what let a Svelte or Inertia project receive Tailwind-only tooling
200
+ // and no warning.
201
+ if (_has_unmodelled_marker(composer, pkg)) {
202
+ return new StackResult({ frontend: UNSUPPORTED_STACK, mtime });
203
+ }
204
+
205
+ // Monorepo: no manifest at the root, but one sits in a workspace directory.
206
+ // That is a wrong-scope call, not a plain project — the caller owns scope
207
+ // selection, so say so instead of labelling the whole repo `plain` and
208
+ // dispatching generic tooling at it.
209
+ //
210
+ // A repo with no manifest ANYWHERE stays `plain`: that is greenfield, and
211
+ // the scaffold path depends on it.
212
+ if (mtime === 0.0 && _has_nested_manifest(project_root)) {
213
+ return new StackResult({ frontend: UNSUPPORTED_STACK, mtime });
214
+ }
215
+
120
216
  return new StackResult({ frontend: DEFAULT_STACK, mtime });
121
217
  }
122
218
 
@@ -185,6 +281,61 @@ function _all_dependencies(manifest: Manifest, ...keys: string[]): Manifest {
185
281
  return merged;
186
282
  }
187
283
 
284
+ /** Dependency sections a `package.json` can carry. */
285
+ const _PKG_DEP_KEYS: ReadonlyArray<string> = [
286
+ 'dependencies',
287
+ 'devDependencies',
288
+ 'peerDependencies',
289
+ 'optionalDependencies',
290
+ ];
291
+
292
+ /** True when `name` appears in any of `manifest`'s named dependency sections. */
293
+ function _has_package(
294
+ manifest: Manifest,
295
+ sections: ReadonlyArray<string>,
296
+ name: string,
297
+ ): boolean {
298
+ return name in _all_dependencies(manifest, ...sections);
299
+ }
300
+
301
+ /** Workspace directories a monorepo conventionally puts its packages in. */
302
+ const _WORKSPACE_DIRS: ReadonlyArray<string> = ['packages', 'apps', 'services', 'libs'];
303
+
304
+ /**
305
+ * True when no root manifest exists but a workspace directory holds one.
306
+ *
307
+ * Deliberately shallow — one `readdir` per conventional workspace directory,
308
+ * one `stat` per child. It answers "was this called at the wrong scope?", not
309
+ * "where is the real project", which stays the caller's job.
310
+ */
311
+ function _has_nested_manifest(project_root: string): boolean {
312
+ for (const dir of _WORKSPACE_DIRS) {
313
+ const base = path.join(project_root, dir);
314
+ let entries: string[];
315
+ try {
316
+ entries = fs.readdirSync(base);
317
+ } catch {
318
+ continue;
319
+ }
320
+ for (const entry of entries) {
321
+ if (
322
+ _is_file(path.join(base, entry, 'composer.json')) ||
323
+ _is_file(path.join(base, entry, 'package.json'))
324
+ ) {
325
+ return true;
326
+ }
327
+ }
328
+ }
329
+ return false;
330
+ }
331
+
332
+ /** True when either manifest names a framework we recognise but do not model. */
333
+ function _has_unmodelled_marker(composer: Manifest, pkg: Manifest): boolean {
334
+ const composer_deps = _all_dependencies(composer, 'require', 'require-dev');
335
+ const pkg_deps = _all_dependencies(pkg, ..._PKG_DEP_KEYS);
336
+ return _UNMODELLED_MARKERS.some((marker) => marker in composer_deps || marker in pkg_deps);
337
+ }
338
+
188
339
  function _is_blade_livewire_flux(composer: Manifest): boolean {
189
340
  const deps = _all_dependencies(composer, 'require', 'require-dev');
190
341
  return _LIVEWIRE_PACKAGE in deps && _FLUX_PACKAGE in deps;
@@ -629,10 +629,12 @@ function _validate_app_spec(app_spec: JsonValue): void {
629
629
  * agent-directive that populates it. An empty dict is the in-progress
630
630
  * shape after the skill returns but before the brief lands; the gate
631
631
  * treats it the same as `null`. Once populated, `design_confirmed`
632
- * (when present) must be a bool. Other keys (`layout`, `components`,
633
- * `states`, `microcopy`, `a11y`, `reused_from_audit`) are
634
- * validated by the design handler against the skill contract — the
635
- * schema only enforces shape, not content.
632
+ * (when present) must be a bool, and `states` (when present and not
633
+ * `null`) must be an object — the design gate's per-state loop is
634
+ * object-guarded, so a string or list would bypass all five checks.
635
+ * The remaining keys (`layout`, `components`, `microcopy`, `a11y`,
636
+ * `reused_from_audit`) are validated by the design handler against the
637
+ * skill contract — the schema only enforces shape, not content.
636
638
  */
637
639
  function _validate_ui_design(ui_design: JsonValue): void {
638
640
  if (ui_design === null) {
@@ -652,6 +654,21 @@ function _validate_ui_design(ui_design: JsonValue): void {
652
654
  'state.ui_design.design_confirmed must be a boolean when present',
653
655
  );
654
656
  }
657
+ // `states` is shape-checked here, not left to the handler. The design
658
+ // gate's per-state loop was guarded on "is this an object", so a string or
659
+ // list silently skipped all five required-state checks — the gate passed
660
+ // while covering no state at all. Rejecting the wrong shape at the schema
661
+ // boundary means the loop can no longer be bypassed by type.
662
+ if (
663
+ 'states' in ui_design &&
664
+ ui_design['states'] !== null &&
665
+ !_isDict(ui_design['states'])
666
+ ) {
667
+ throw new SchemaError(
668
+ 'state.ui_design.states must be a JSON object (one key per ' +
669
+ `required state) or null; got ${pyTypeName(ui_design['states'])}`,
670
+ );
671
+ }
655
672
  }
656
673
 
657
674
  /**
@@ -21,7 +21,7 @@ The two axes compose orthogonally:
21
21
  ```
22
22
 
23
23
  QA methodology applied through a truck-driver end-user lens. The
24
- split is locked in [`../../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md).
24
+ split is locked in [`../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md).
25
25
 
26
26
  ## What a user-type is — and is NOT
27
27
 
@@ -37,13 +37,13 @@ split is locked in [`../../docs/contracts/adr-user-types-axis.md`](../../docs/co
37
37
  encodes this floor.
38
38
  - **Is NOT**: an install-time filter. The vocabulary overlaps with
39
39
  the install-time `user-types/` axis at the package root (see
40
- [`../../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md)),
40
+ [`../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md)),
41
41
  but the two live in different directories and consume different
42
42
  config keys. Same word, different layer — by design.
43
43
 
44
44
  ## Schema
45
45
 
46
- Locked in [`../../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md).
46
+ Locked in [`../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md).
47
47
 
48
48
  - **Spine** — 7 sections (Focus · Daily Workflow · Vocabulary ·
49
49
  Operational Constraints · Unique Questions · Ticket Red Flags ·
@@ -88,7 +88,7 @@ ticket-requirement signals.
88
88
 
89
89
  CLI-only in v1 — skills do NOT declare a default `user-types:`
90
90
  frontmatter key. The migration path to v2 (skill-level default key)
91
- is documented in [`../../docs/contracts/adr-user-types-axis.md § Consequences`](../../docs/contracts/adr-user-types-axis.md).
91
+ is documented in [`../docs/contracts/adr-user-types-axis.md § Consequences`](../docs/contracts/adr-user-types-axis.md).
92
92
 
93
93
  ```
94
94
  /refine-ticket --user-type=truck-driver PROJ-123
@@ -113,12 +113,12 @@ review proceeds without simulation.
113
113
  No existing persona moves into this directory. The three seeds
114
114
  shipped here (`galabau-field-crew`, `metalworking-shop`,
115
115
  `truck-driver`) were born as user-types. Existing personas stay as
116
- personas. See [`../../docs/contracts/adr-user-types-axis.md § Migration`](../../docs/contracts/adr-user-types-axis.md).
116
+ personas. See [`../docs/contracts/adr-user-types-axis.md § Migration`](../docs/contracts/adr-user-types-axis.md).
117
117
 
118
118
  ## Related
119
119
 
120
- - [`../../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md) — locked schema
121
- - [`../../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md) — the axis split decision
122
- - [`../../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md) — install-time `user_type` axis (distinct layer)
120
+ - [`../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md) — locked schema
121
+ - [`../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md) — the axis split decision
122
+ - [`../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md) — install-time `user_type` axis (distinct layer)
123
123
  - [`../personas/README.md`](../personas/README.md) — sister axis (methodology vs end-user)
124
124
  - [`../rules/artifact-drafting-protocol.md`](../rules/artifact-drafting-protocol.md) — mandatory per new user-type
@@ -10,67 +10,68 @@ source: project
10
10
 
11
11
  ## Focus
12
12
 
13
- Two- to four-person crew on a landscape / garden-build site —
14
- paver-laying, retaining walls, planting, irrigation. Phone or
15
- rugged tablet in a pouch, gloves on, lifting something heavy every
16
- fifteen minutes. Workday shaped by weather, delivery slots, and
17
- customer arriving unannounced for "just one more thing". No
18
- reliable signal on half the sites. Every customer-requested change
19
- is either billable later or silently swallowed; documentation at
20
- the moment of change is the only way that decision survives.
21
-
22
- Review lens only, never operational instruction source. No
23
- paver-laying procedure, no soil-prep chemistry, no structural
24
- advice on retaining walls.
13
+ This lens simulates the two- to four-person crew on a landscape /
14
+ garden-build site — paver-laying, retaining walls, planting,
15
+ irrigation. Phone or rugged tablet in a pouch, gloves on, lifting
16
+ something heavy every fifteen minutes. The workday is shaped by
17
+ weather, delivery slots, and the customer arriving unannounced to
18
+ ask for "just one more thing". No reliable signal on half the sites.
19
+ Every change a customer asks for is either billable later or
20
+ silently swallowed; documentation at the moment of the change is the
21
+ only way that decision survives.
22
+
23
+ This lens is a **review lens only**, never an operational
24
+ instruction source. No paver-laying procedure, no soil-prep
25
+ chemistry, no structural advice on retaining walls.
25
26
 
26
27
  ## Daily Workflow
27
28
 
28
29
  - 06:30 — depot pickup, materials loaded, route confirmed; lead
29
- reads day plan once, on phone, gloves off.
30
- - 07:30–11:30 — execution on site; phone back in pouch. UI reads
31
- happen at coffee breaks or when customer interrupts.
30
+ reads the day plan once, on phone, with gloves off.
31
+ - 07:30–11:30 — execution on site; phone goes back in pouch. UI
32
+ reads happen at coffee breaks or when the customer interrupts.
32
33
  - 11:30 — billable-change moment: customer asks for an extra step,
33
- crew lead captures it as timestamped photo + short note +
34
- ideally signature, **before** next task starts.
34
+ crew lead must capture it as a timestamped photo + short note +
35
+ ideally a signature, **before** the next task starts.
35
36
  - 15:30 — end-of-day proof: photo of finished section, geotagged,
36
37
  uploaded if signal exists, queued offline if not.
37
- - 17:00 — depot return; office reconciles day from photos +
38
+ - 17:00 — depot return; office reconciles the day from photos +
38
39
  notes, not from memory.
39
40
 
40
41
  ## Vocabulary
41
42
 
42
- - **Aufmass** — measured-on-site quantity that becomes invoice
43
+ - **Aufmass** — measured-on-site quantity that becomes the invoice
43
44
  basis; never substitute with "estimate" or "measurement".
44
45
  - **Nachtrag** — billable change-request added to a running job;
45
46
  losing one = losing money, not just data.
46
47
  - **Sauberkeitsschicht** — gravel layer under pavers; plain-German,
47
48
  not "base course".
48
- - **Plain-German over engineer-German.** Crew is bilingual (often
49
- DE / PL / TR); noun must be the one on the delivery slip, not
50
- the one in the BOQ.
49
+ - **Plain-German over engineer-German.** Crew is bilingual
50
+ (often DE / PL / TR); the noun has to be the one on the delivery
51
+ slip, not the one in the BOQ.
51
52
 
52
53
  ## Operational Constraints
53
54
 
54
55
  - **No signal on half the sites.** Every write must queue and sync;
55
- every read must work from cache. Conflict resolution on sync is
56
- a ticket requirement, not a nice-to-have.
56
+ every read must work from cache. Conflict resolution on sync is a
57
+ ticket requirement, not a nice-to-have.
57
58
  - **Capacitive touch fails with wet or dirty gloves.** Primary
58
59
  flows survive with stylus, knuckle, or large-target taps. No
59
60
  pinch-zoom on the critical path.
60
- - **Photo is the proof, not the form.** A billable-change flow
61
- needing three text fields before camera opens loses changes
62
- silently — crew defers, then forgets.
63
- - **Screen washout in direct sun.** High-contrast mode on by
61
+ - **Photo is the proof, not the form.** A billable-change flow that
62
+ needs three text fields before the camera opens loses changes
63
+ silently — the crew defers, then forgets.
64
+ - **Screen washout in direct sun.** High-contrast mode is on by
64
65
  default for outdoor flows, never opt-in via settings.
65
66
  - **Rugged hardware, slow CPU.** Animations and skeleton loaders
66
- burn battery; crew runs 10+ hours per charge on the device.
67
+ burn battery; the crew runs 10+ hours per charge on the device.
67
68
 
68
69
  ## Unique Questions
69
70
 
70
71
  - Does this flow survive a 4-hour offline window plus a sync with
71
72
  conflicting edits from the office?
72
- - Can a gloved hand complete the primary action in one tap from
73
- the home screen without typing?
73
+ - Can a gloved hand complete the primary action in one tap from the
74
+ home screen without typing?
74
75
  - Is there a photo-first path for capturing a billable change, or
75
76
  does the form block the camera?
76
77
  - Is the noun on screen the one written on the delivery slip, in
@@ -96,5 +97,5 @@ advice on retaining walls.
96
97
  signal (gloves, signal-loss, Nachtrag, Aufmass).
97
98
  - **No engineer-vocabulary substitution.** Renaming Nachtrag to
98
99
  "change request" in the UI breaks the billing chain.
99
- - **No photo-after-form flows.** Photo must be reachable in one
100
- tap from the moment customer asks for the change.
100
+ - **No photo-after-form flows.** Photo must be reachable in one tap
101
+ from the moment the customer asks for the change.
@@ -10,47 +10,48 @@ source: project
10
10
 
11
11
  ## Focus
12
12
 
13
- Small-to-mid metalworking shop — laser-cut, press-brake, weld,
14
- finish. Two surfaces: shop-floor tablets bolted near machines
15
- (loud, dirty, gloves) and an office desktop where quoting,
16
- scheduling, and material-cert tracking happen. Shop runs on **job
17
- travelers** (route cards) — one per job following the work through
18
- every station, getting stamped, ending in the shipping bay.
19
- Material certificates (heat numbers, mill certs) must trace from
20
- incoming bar stock through to the customer; losing the chain
21
- breaks the audit and can void the order.
22
-
23
- Review lens only, never operational instruction source. No
24
- welding-procedure spec, no electrical guidance, no
25
- structural-engineering advice. Trade execution stays with the
26
- certified welder, the EHS officer, and the engineer.
13
+ This lens simulates a small-to-mid metalworking shop — laser-cut,
14
+ press-brake, weld, finish. Two surfaces: shop-floor tablets bolted
15
+ near the machines (loud, dirty, gloves) and an office desktop where
16
+ quoting, scheduling, and material-cert tracking happen. The shop
17
+ runs on **job travelers** (route cards) — one per job that follows
18
+ the work through every station, gets stamped, and ends in the
19
+ shipping bay. Material certificates (heat numbers, mill certs) must
20
+ trace from incoming bar stock through to the customer; losing the
21
+ chain breaks the audit and can void the order.
22
+
23
+ This lens is a **review lens only**, never an operational
24
+ instruction source. No welding-procedure spec, no electrical
25
+ guidance, no structural-engineering advice. Trade execution stays
26
+ with the certified welder, the EHS officer, and the engineer.
27
27
 
28
28
  ## Daily Workflow
29
29
 
30
- - 06:00 — shift starts, lead reviews day's travelers at office
31
- desktop; priority shifts printed and pinned at the station.
30
+ - 06:00 — shift starts, lead reviews the day's travelers at the
31
+ office desktop; priority shifts get printed and pinned at the
32
+ station.
32
33
  - 07:00–15:30 — execution per station; each station scans the
33
- traveler QR or punches job number on tablet to start / pause /
34
- complete time on that step.
35
- - Material check-in — incoming bar stock photographed with mill
36
- cert; heat number bound to lot at moment of receipt, not later
37
- from memory.
38
- - Safety sign-off — process steps requiring PPE or second-person
34
+ traveler QR or punches the job number on the tablet to start /
35
+ pause / complete time on that step.
36
+ - Material check-in — incoming bar stock is photographed with the
37
+ mill cert; heat number bound to the lot at the moment of
38
+ receipt, not later from memory.
39
+ - Safety sign-off — process steps requiring PPE or a second-person
39
40
  check (overhead crane, confined-space weld) cannot start until
40
- sign-off is recorded on the tablet.
41
+ the sign-off is recorded on the tablet.
41
42
  - 15:30 — end-of-shift, lead reconciles open travelers, flags any
42
43
  step where the material-cert chain is broken.
43
44
 
44
45
  ## Vocabulary
45
46
 
46
- - **Job traveler / route card** — single canonical record that
47
+ - **Job traveler / route card** — the single canonical record that
47
48
  moves with the part; never substitute with "ticket" or "task".
48
49
  - **Heat number / mill cert** — material identity; lose the link
49
50
  and the part is unsellable to a regulated customer.
50
51
  - **Sign-off** — recorded, named, timestamped; "approved" without
51
52
  a name fails audit.
52
- - **Setup vs run time** — booked separately on the machine;
53
- merging them destroys costing accuracy.
53
+ - **Setup vs run time** — booked separately on the machine; merging
54
+ them destroys costing accuracy.
54
55
 
55
56
  ## Operational Constraints
56
57
 
@@ -59,15 +60,15 @@ certified welder, the EHS officer, and the engineer.
59
60
  high contrast on by default.
60
61
  - **PPE prevents fine touch.** Welding gloves + safety glasses;
61
62
  drop-down pickers with > 6 options are a fail mode.
62
- - **Machine-time is money.** A flow adding 30 seconds per
63
- job-step start, run 200 times/day, costs the shop one
64
- machine-hour per shift.
65
- - **Material-cert chain is regulatory.** Every step touching
66
- material must capture or carry the heat-number link; breaking
67
- it silently is the worst failure mode.
63
+ - **Machine-time is money.** A flow that adds 30 seconds per
64
+ job-step start, run 200 times/day, costs the shop one machine-
65
+ hour per shift.
66
+ - **Material-cert chain is regulatory.** Every step that touches
67
+ material must capture or carry the heat-number link; breaking it
68
+ silently is the worst failure mode.
68
69
  - **Two-surface split.** Office desktop has Excel-grade density;
69
- shop tablet has one-action-per-screen. Same flow cannot share
70
- a layout.
70
+ shop tablet has one-action-per-screen. The same flow cannot
71
+ share a layout.
71
72
 
72
73
  ## Unique Questions
73
74
 
@@ -10,20 +10,22 @@ source: project
10
10
 
11
11
  ## Focus
12
12
 
13
- Commercial truck driver doing regional or long-haul delivery —
14
- typically single driver, phone or in-cab tablet on a mount, gloves
15
- optional but hands often busy with the wheel, paperwork, or a
16
- pallet jack. Day is gated by **hours-of-service (HOS)** — legally
17
- bounded driving and rest windows that cannot be ignored without
18
- losing the licence. Cargo moves through warehouses, loading docks,
19
- customer yards; signal drops in tunnels, basements, rural
20
- stretches. Proof-of-delivery (photo + signature + GPS + timestamp)
21
- is the moment the invoice becomes collectable.
22
-
23
- Review lens only, never operational instruction source. No driving
24
- advice, no HOS legal interpretation, no vehicle-maintenance
25
- guidance, no hazmat procedure. Trade execution stays with the
26
- dispatcher, the safety officer, and the certified driver-trainer.
13
+ This lens simulates a commercial truck driver doing regional or
14
+ long-haul delivery — typically a single driver, a phone or
15
+ in-cab tablet on a mount, gloves optional but hands often busy
16
+ with the wheel, paperwork, or a pallet jack. The day is gated by
17
+ **hours-of-service (HOS)** — legally bounded driving and rest
18
+ windows that cannot be ignored without losing the licence. Cargo
19
+ moves through warehouses, loading docks, customer yards; signal
20
+ drops in tunnels, basements, and rural stretches. Proof-of-delivery
21
+ (photo + signature + GPS + timestamp) is the moment the invoice
22
+ becomes collectable.
23
+
24
+ This lens is a **review lens only**, never an operational
25
+ instruction source. No driving advice, no HOS legal
26
+ interpretation, no vehicle-maintenance guidance, no hazmat
27
+ procedure. Trade execution stays with the dispatcher, the safety
28
+ officer, and the certified driver-trainer.
27
29
 
28
30
  ## Daily Workflow
29
31
 
@@ -40,8 +42,8 @@ dispatcher, the safety officer, and the certified driver-trainer.
40
42
  - Per delivery — photo of the pallet, customer signature
41
43
  on-screen, GPS pin, timestamp; the four-tuple is the invoice
42
44
  trigger.
43
- - End of duty — HOS clock closes; if next break-window starts
44
- mid-route, system warns **before** the driver commits.
45
+ - End of duty — HOS clock closes; if the next break-window starts
46
+ mid-route, the system warns **before** the driver commits.
45
47
 
46
48
  ## Vocabulary
47
49
 
@@ -66,7 +68,7 @@ dispatcher, the safety officer, and the certified driver-trainer.
66
68
  - **Dead zones are routine.** Tunnels, basements, rural roads;
67
69
  every write queues, every read works from cache, and POD
68
70
  uploads sync with photo intact when signal returns.
69
- - **One-handed operation.** Other hand on the wheel, paperwork,
71
+ - **One-handed operation.** Other hand is on the wheel, paperwork,
70
72
  or pallet jack; bottom-thumb-reachable primary actions, no
71
73
  precision drag.
72
74
  - **Cold / wet / glare.** Outdoor docks in winter; gloves on,
@@ -95,8 +97,8 @@ dispatcher, the safety officer, and the certified driver-trainer.
95
97
  than a constraint on what stops can be accepted.
96
98
  - Sync described as online-only; no queue + retry sketched for
97
99
  dead-zone delivery.
98
- - Dock-dwell capture left to manual tap with no arrival-trigger
99
- fallback.
100
+ - Dock-dwell capture left to manual tap with no
101
+ arrival-trigger fallback.
100
102
 
101
103
  ## Anti-Patterns
102
104
 
@@ -106,7 +108,7 @@ dispatcher, the safety officer, and the certified driver-trainer.
106
108
  - **No generic prose.** "Consider mobile usability" fails the
107
109
  Anti-Generic Quality Bar — every observation cites HOS, POD,
108
110
  dock-dwell, dead-zone, or hands-busy.
109
- - **No in-motion typing on the critical path.** A flow needing
111
+ - **No in-motion typing on the critical path.** A flow that needs
110
112
  the driver to type while driving is rejected outright.
111
113
  - **No partial POD acceptance.** Missing any element of the
112
114
  four-tuple = unbilled; the flow must hold the action open