@event4u/agent-config 14.23.0 → 15.0.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 (503) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +198 -0
  5. package/README.md +1 -1
  6. package/dist/agent-src/commands/agent-handoff.md +8 -7
  7. package/dist/agent-src/commands/agents/init.md +1 -1
  8. package/dist/agent-src/commands/agents/user/accept.md +4 -4
  9. package/dist/agent-src/commands/agents/user/delete.md +2 -2
  10. package/dist/agent-src/commands/agents/user/init.md +3 -3
  11. package/dist/agent-src/commands/agents/user/review.md +3 -3
  12. package/dist/agent-src/commands/agents/user/show.md +3 -3
  13. package/dist/agent-src/commands/agents/user/update.md +2 -2
  14. package/dist/agent-src/commands/agents/user.md +6 -6
  15. package/dist/agent-src/commands/analytics/prune.md +1 -1
  16. package/dist/agent-src/commands/analytics/show.md +2 -2
  17. package/dist/agent-src/commands/analyze/decision.md +2 -2
  18. package/dist/agent-src/commands/analyze/inbox.md +5 -5
  19. package/dist/agent-src/commands/analyze/incident.md +3 -3
  20. package/dist/agent-src/commands/analyze/near-miss.md +3 -3
  21. package/dist/agent-src/commands/analyze/postmortem.md +4 -4
  22. package/dist/agent-src/commands/analyze/premortem.md +2 -2
  23. package/dist/agent-src/commands/analyze.md +2 -2
  24. package/dist/agent-src/commands/bug/fix.md +1 -1
  25. package/dist/agent-src/commands/bug/investigate.md +2 -2
  26. package/dist/agent-src/commands/cost/profile.md +3 -3
  27. package/dist/agent-src/commands/design.md +1 -1
  28. package/dist/agent-src/commands/feature/explore.md +1 -1
  29. package/dist/agent-src/commands/feature/plan.md +2 -2
  30. package/dist/agent-src/commands/feature/roadmap.md +2 -2
  31. package/dist/agent-src/commands/ghostwriter/fetch.md +4 -4
  32. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  33. package/dist/agent-src/commands/ghostwriter/show.md +1 -1
  34. package/dist/agent-src/commands/ghostwriter/write.md +9 -9
  35. package/dist/agent-src/commands/humanize.md +6 -6
  36. package/dist/agent-src/commands/jira-ticket.md +1 -1
  37. package/dist/agent-src/commands/judge/solo.md +1 -1
  38. package/dist/agent-src/commands/judge.md +1 -1
  39. package/dist/agent-src/commands/knowledge/cross-repo.md +1 -1
  40. package/dist/agent-src/commands/knowledge/forget.md +1 -1
  41. package/dist/agent-src/commands/knowledge/ingest.md +2 -2
  42. package/dist/agent-src/commands/knowledge/list.md +1 -1
  43. package/dist/agent-src/commands/memory/add.md +3 -3
  44. package/dist/agent-src/commands/memory/load.md +4 -4
  45. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  46. package/dist/agent-src/commands/memory/promote.md +4 -4
  47. package/dist/agent-src/commands/memory/propose.md +2 -2
  48. package/dist/agent-src/commands/mode.md +5 -5
  49. package/dist/agent-src/commands/post-as/ghostwriter.md +3 -3
  50. package/dist/agent-src/commands/post-as/me.md +7 -7
  51. package/dist/agent-src/commands/pr/create.md +1 -1
  52. package/dist/agent-src/commands/pr/merge.md +1 -1
  53. package/dist/agent-src/commands/profile/activate.md +1 -1
  54. package/dist/agent-src/commands/profile/show.md +1 -1
  55. package/dist/agent-src/commands/research/deep.md +2 -2
  56. package/dist/agent-src/commands/research/report.md +2 -2
  57. package/dist/agent-src/commands/review/changes.md +1 -1
  58. package/dist/agent-src/commands/review/routing.md +1 -1
  59. package/dist/agent-src/commands/roadmap/create.md +1 -1
  60. package/dist/agent-src/commands/roadmap/materialize.md +2 -2
  61. package/dist/agent-src/commands/roadmap/next.md +1 -1
  62. package/dist/agent-src/commands/roadmap/process-full.md +2 -2
  63. package/dist/agent-src/commands/security-audit-config.md +3 -3
  64. package/dist/agent-src/commands/skill/preview.md +1 -1
  65. package/dist/agent-src/commands/skills/discover.md +1 -1
  66. package/dist/agent-src/commands/sync/agent-settings.md +2 -2
  67. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  68. package/dist/agent-src/commands/tests/create.md +1 -1
  69. package/dist/agent-src/commands/tests/e2e-heal.md +1 -1
  70. package/dist/agent-src/commands/tests/e2e-plan.md +1 -1
  71. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +6 -6
  72. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -2
  73. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
  74. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +88 -1
  75. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +1 -1
  76. package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -1
  77. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
  78. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  79. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +1 -1
  80. package/dist/agent-src/contexts/execution/cheap-question-mechanics.md +1 -1
  81. package/dist/agent-src/contexts/execution/contract-decision-sheet.md +3 -3
  82. package/dist/agent-src/contexts/execution/mandated-lines.md +1 -1
  83. package/dist/agent-src/contexts/execution/non-interactive-contract.md +1 -1
  84. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -1
  85. package/dist/agent-src/contexts/execution/plan-confidence-gate.md +5 -5
  86. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -1
  87. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +1 -1
  88. package/dist/agent-src/contexts/execution/subagent-routing.md +2 -2
  89. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +1 -1
  90. package/dist/agent-src/contexts/execution/user-memory-channels.md +3 -3
  91. package/dist/agent-src/contexts/execution/verification-mechanics.md +1 -1
  92. package/dist/agent-src/contexts/judges/persona-voice-rubric.md +2 -2
  93. package/dist/agent-src/guidelines/abstraction-thresholds.md +88 -0
  94. package/dist/agent-src/guidelines/agent-infra/5w2h-analysis.md +260 -0
  95. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +99 -0
  96. package/dist/agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +325 -0
  97. package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +177 -0
  98. package/dist/agent-src/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +222 -0
  99. package/dist/agent-src/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
  100. package/dist/agent-src/guidelines/agent-infra/asking-and-brevity-examples.md +198 -0
  101. package/dist/agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
  102. package/dist/agent-src/guidelines/agent-infra/carve-out-predicates.md +17 -0
  103. package/dist/agent-src/guidelines/agent-infra/comparison-matrix.md +179 -0
  104. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +165 -0
  105. package/dist/agent-src/guidelines/agent-infra/corpus-grounding-authoring.md +91 -0
  106. package/dist/agent-src/guidelines/agent-infra/critical-thinking.md +156 -0
  107. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
  108. package/dist/agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
  109. package/dist/agent-src/guidelines/agent-infra/direct-answers-demos.md +142 -0
  110. package/dist/agent-src/guidelines/agent-infra/domain-adoption-gates.md +112 -0
  111. package/dist/agent-src/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
  112. package/dist/agent-src/guidelines/agent-infra/domain-pack-architecture.md +56 -0
  113. package/dist/agent-src/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
  114. package/dist/agent-src/guidelines/agent-infra/emphasis-budget.md +45 -0
  115. package/dist/agent-src/guidelines/agent-infra/engineering-memory-data-format.md +210 -0
  116. package/dist/agent-src/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
  117. package/dist/agent-src/guidelines/agent-infra/existence-question-verdicts.md +80 -0
  118. package/dist/agent-src/guidelines/agent-infra/failure-signatures.md +70 -0
  119. package/dist/agent-src/guidelines/agent-infra/false-green.md +233 -0
  120. package/dist/agent-src/guidelines/agent-infra/first-principles.md +192 -0
  121. package/dist/agent-src/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
  122. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +169 -0
  123. package/dist/agent-src/guidelines/agent-infra/gate-authoring.md +177 -0
  124. package/dist/agent-src/guidelines/agent-infra/guarded-baseline.md +39 -0
  125. package/dist/agent-src/guidelines/agent-infra/installed-tools-manifest.md +142 -0
  126. package/dist/agent-src/guidelines/agent-infra/inversion-thinking.md +388 -0
  127. package/dist/agent-src/guidelines/agent-infra/ios-simulator-guide.md +378 -0
  128. package/dist/agent-src/guidelines/agent-infra/language-and-tone-examples.md +141 -0
  129. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +317 -0
  130. package/dist/agent-src/guidelines/agent-infra/linked-projects-onboarding-gate.md +80 -0
  131. package/dist/agent-src/guidelines/agent-infra/mcp-request-signing.md +197 -0
  132. package/dist/agent-src/guidelines/agent-infra/memory-access.md +149 -0
  133. package/dist/agent-src/guidelines/agent-infra/mental-models.md +314 -0
  134. package/dist/agent-src/guidelines/agent-infra/minimal-safe-diff-mechanics.md +241 -0
  135. package/dist/agent-src/guidelines/agent-infra/missing-tool-handling.md +66 -0
  136. package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +101 -0
  137. package/dist/agent-src/guidelines/agent-infra/naming.md +69 -0
  138. package/dist/agent-src/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
  139. package/dist/agent-src/guidelines/agent-infra/output-patterns.md +117 -0
  140. package/dist/agent-src/guidelines/agent-infra/recurring-criticism-mechanics.md +96 -0
  141. package/dist/agent-src/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
  142. package/dist/agent-src/guidelines/agent-infra/review-routing-data-format.md +143 -0
  143. package/dist/agent-src/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
  144. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +274 -0
  145. package/dist/agent-src/guidelines/agent-infra/role-contracts.md +209 -0
  146. package/dist/agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
  147. package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
  148. package/dist/agent-src/guidelines/agent-infra/rule-type-governance.md +73 -0
  149. package/dist/agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
  150. package/dist/agent-src/guidelines/agent-infra/scqa-framework.md +526 -0
  151. package/dist/agent-src/guidelines/agent-infra/security-lint-containment.md +121 -0
  152. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +134 -0
  153. package/dist/agent-src/guidelines/agent-infra/simplicity-and-goal-demos.md +211 -0
  154. package/dist/agent-src/guidelines/agent-infra/six-hats.md +353 -0
  155. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +229 -0
  156. package/dist/agent-src/guidelines/agent-infra/skill-quality-checklist.md +157 -0
  157. package/dist/agent-src/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
  158. package/dist/agent-src/guidelines/agent-infra/symptom-driven-harvest-loop.md +104 -0
  159. package/dist/agent-src/guidelines/agent-infra/systems-thinking.md +220 -0
  160. package/dist/agent-src/guidelines/agent-infra/tool-description-as-policy.md +35 -0
  161. package/dist/agent-src/guidelines/agent-infra/tool-integration.md +73 -0
  162. package/dist/agent-src/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
  163. package/dist/agent-src/guidelines/agent-infra/untrusted-input-spotlighting.md +166 -0
  164. package/dist/agent-src/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
  165. package/dist/agent-src/guidelines/augment-portability-patterns.md +70 -0
  166. package/dist/agent-src/guidelines/code-clarity.md +350 -0
  167. package/dist/agent-src/guidelines/component-oriented-and-oop-development.md +189 -0
  168. package/dist/agent-src/guidelines/cross-role-handoff.md +127 -0
  169. package/dist/agent-src/guidelines/design-antipatterns-triggers.json +18 -0
  170. package/dist/agent-src/guidelines/design-antipatterns.md +327 -0
  171. package/dist/agent-src/guidelines/design-asset-discipline.md +38 -0
  172. package/dist/agent-src/guidelines/design-canon.md +63 -0
  173. package/dist/agent-src/guidelines/design-fidelity-mechanics.md +293 -0
  174. package/dist/agent-src/guidelines/design-fidelity-routing.md +78 -0
  175. package/dist/agent-src/guidelines/design-handover-extraction.md +117 -0
  176. package/dist/agent-src/guidelines/design-modes.md +143 -0
  177. package/dist/agent-src/guidelines/design-reconciliation.md +172 -0
  178. package/dist/agent-src/guidelines/docs/readme-size-and-splitting.md +209 -0
  179. package/dist/agent-src/guidelines/e2e/playwright.md +363 -0
  180. package/dist/agent-src/guidelines/gtm-handoff.md +114 -0
  181. package/dist/agent-src/guidelines/monorepo-antipatterns.md +141 -0
  182. package/dist/agent-src/guidelines/php/api-design.md +115 -0
  183. package/dist/agent-src/guidelines/php/artisan-commands.md +81 -0
  184. package/dist/agent-src/guidelines/php/blade-ui.md +78 -0
  185. package/dist/agent-src/guidelines/php/controllers.md +90 -0
  186. package/dist/agent-src/guidelines/php/database.md +194 -0
  187. package/dist/agent-src/guidelines/php/eloquent.md +208 -0
  188. package/dist/agent-src/guidelines/php/flux.md +80 -0
  189. package/dist/agent-src/guidelines/php/general.md +207 -0
  190. package/dist/agent-src/guidelines/php/git.md +164 -0
  191. package/dist/agent-src/guidelines/php/jobs.md +111 -0
  192. package/dist/agent-src/guidelines/php/livewire.md +71 -0
  193. package/dist/agent-src/guidelines/php/logging.md +79 -0
  194. package/dist/agent-src/guidelines/php/naming.md +89 -0
  195. package/dist/agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
  196. package/dist/agent-src/guidelines/php/patterns/dtos.md +199 -0
  197. package/dist/agent-src/guidelines/php/patterns/events.md +67 -0
  198. package/dist/agent-src/guidelines/php/patterns/factory.md +53 -0
  199. package/dist/agent-src/guidelines/php/patterns/pipelines.md +66 -0
  200. package/dist/agent-src/guidelines/php/patterns/policies.md +66 -0
  201. package/dist/agent-src/guidelines/php/patterns/repositories.md +122 -0
  202. package/dist/agent-src/guidelines/php/patterns/service-layer.md +64 -0
  203. package/dist/agent-src/guidelines/php/patterns/strategy.md +247 -0
  204. package/dist/agent-src/guidelines/php/patterns.md +28 -0
  205. package/dist/agent-src/guidelines/php/performance.md +92 -0
  206. package/dist/agent-src/guidelines/php/php-coding-patterns.md +80 -0
  207. package/dist/agent-src/guidelines/php/resources.md +100 -0
  208. package/dist/agent-src/guidelines/php/security.md +110 -0
  209. package/dist/agent-src/guidelines/php/sql.md +97 -0
  210. package/dist/agent-src/guidelines/php/validations.md +119 -0
  211. package/dist/agent-src/guidelines/php/websocket.md +100 -0
  212. package/dist/agent-src/guidelines/prompt-templates.md +189 -0
  213. package/dist/agent-src/guidelines/redundancy-taxonomy.md +208 -0
  214. package/dist/agent-src/guidelines/wing4-handoff.md +127 -0
  215. package/dist/agent-src/personas/README.md +1 -1
  216. package/dist/agent-src/personas/_template-specialist/persona.md +1 -1
  217. package/dist/agent-src/personas/product-owner.md +1 -1
  218. package/dist/agent-src/rules/active-remediation.md +1 -1
  219. package/dist/agent-src/rules/architecture.md +2 -2
  220. package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
  221. package/dist/agent-src/rules/ask-when-uncertain.md +2 -2
  222. package/dist/agent-src/rules/brand-source-of-truth.md +9 -7
  223. package/dist/agent-src/rules/code-comment-discipline.md +2 -2
  224. package/dist/agent-src/rules/code-provenance.md +1 -1
  225. package/dist/agent-src/rules/content-quoting-floor.md +1 -1
  226. package/dist/agent-src/rules/context-hygiene.md +5 -5
  227. package/dist/agent-src/rules/cross-source-consistency.md +1 -1
  228. package/dist/agent-src/rules/design-fidelity.md +36 -46
  229. package/dist/agent-src/rules/direct-answers.md +2 -2
  230. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  231. package/dist/agent-src/rules/evaluator-independence.md +1 -1
  232. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  233. package/dist/agent-src/rules/icon-consistency.md +5 -1
  234. package/dist/agent-src/rules/improve-before-implement.md +1 -1
  235. package/dist/agent-src/rules/language-and-tone.md +3 -3
  236. package/dist/agent-src/rules/minimal-safe-diff.md +1 -1
  237. package/dist/agent-src/rules/notes-first-reasoning.md +2 -2
  238. package/dist/agent-src/rules/recurring-criticism.md +1 -1
  239. package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
  240. package/dist/agent-src/rules/role-mode-adherence.md +2 -2
  241. package/dist/agent-src/rules/security-sensitive-stop.md +1 -1
  242. package/dist/agent-src/rules/size-enforcement.md +1 -1
  243. package/dist/agent-src/rules/source-confidentiality.md +2 -2
  244. package/dist/agent-src/rules/think-before-action.md +1 -1
  245. package/dist/agent-src/rules/token-efficiency.md +7 -5
  246. package/dist/agent-src/rules/ui-audit-gate.md +3 -2
  247. package/dist/agent-src/rules/untrusted-input-defense.md +3 -3
  248. package/dist/agent-src/skills/activation-design/SKILL.md +2 -2
  249. package/dist/agent-src/skills/adr-create/SKILL.md +5 -5
  250. package/dist/agent-src/skills/ai-council/SKILL.md +1 -1
  251. package/dist/agent-src/skills/ai-council/references/advanced-modes.md +1 -1
  252. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  253. package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  254. package/dist/agent-src/skills/brand-to-tokens/SKILL.md +24 -3
  255. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  256. package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
  257. package/dist/agent-src/skills/churn-prevention/SKILL.md +2 -2
  258. package/dist/agent-src/skills/code-refactoring/SKILL.md +3 -3
  259. package/dist/agent-src/skills/code-review/SKILL.md +3 -3
  260. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  261. package/dist/agent-src/skills/comp-banding/SKILL.md +1 -1
  262. package/dist/agent-src/skills/competitive-moat-analysis/SKILL.md +1 -1
  263. package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
  264. package/dist/agent-src/skills/complexity-first-planning/SKILL.md +1 -1
  265. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  266. package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -2
  267. package/dist/agent-src/skills/contracts-cognition/SKILL.md +1 -1
  268. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
  269. package/dist/agent-src/skills/corpus-grounding/SKILL.md +2 -2
  270. package/dist/agent-src/skills/customer-research/SKILL.md +2 -2
  271. package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
  272. package/dist/agent-src/skills/data-handling-judgment/SKILL.md +1 -1
  273. package/dist/agent-src/skills/deal-qualification-meddic/SKILL.md +2 -2
  274. package/dist/agent-src/skills/decision-record/SKILL.md +3 -3
  275. package/dist/agent-src/skills/decision-review/SKILL.md +8 -8
  276. package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +22 -22
  277. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  278. package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +2 -2
  279. package/dist/agent-src/skills/design-review/SKILL.md +4 -4
  280. package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -1
  281. package/dist/agent-src/skills/design-tokens/SKILL.md +17 -2
  282. package/dist/agent-src/skills/design-variations/SKILL.md +2 -2
  283. package/dist/agent-src/skills/developer-like-execution/SKILL.md +2 -2
  284. package/dist/agent-src/skills/discovery-interview/SKILL.md +2 -2
  285. package/dist/agent-src/skills/doc-coauthoring/SKILL.md +3 -3
  286. package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -2
  287. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +44 -1
  288. package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +2 -2
  289. package/dist/agent-src/skills/expansion-playbook/SKILL.md +2 -2
  290. package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
  291. package/dist/agent-src/skills/experiment-loop/references/protocol.md +1 -1
  292. package/dist/agent-src/skills/fe-design/SKILL.md +3 -3
  293. package/dist/agent-src/skills/fe-design/references/design-patterns.md +1 -1
  294. package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +3 -3
  295. package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
  296. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  297. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  298. package/dist/agent-src/skills/forecast-accuracy/SKILL.md +2 -2
  299. package/dist/agent-src/skills/forecasting/SKILL.md +2 -2
  300. package/dist/agent-src/skills/fundraising-narrative/SKILL.md +2 -2
  301. package/dist/agent-src/skills/funnel-analysis/SKILL.md +2 -2
  302. package/dist/agent-src/skills/gtm-launch/SKILL.md +2 -2
  303. package/dist/agent-src/skills/hiring-loop-design/SKILL.md +1 -1
  304. package/dist/agent-src/skills/html-deck/SKILL.md +5 -5
  305. package/dist/agent-src/skills/humanizer/SKILL.md +1 -1
  306. package/dist/agent-src/skills/humanizer/data/patterns.md +1 -1
  307. package/dist/agent-src/skills/iconography/SKILL.md +3 -3
  308. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  309. package/dist/agent-src/skills/laravel-api-endpoint/SKILL.md +2 -2
  310. package/dist/agent-src/skills/launch-readiness/SKILL.md +3 -3
  311. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +6 -6
  312. package/dist/agent-src/skills/livewire/SKILL.md +1 -1
  313. package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
  314. package/dist/agent-src/skills/mcp-builder/SKILL.md +1 -1
  315. package/dist/agent-src/skills/memory-consolidation/SKILL.md +3 -3
  316. package/dist/agent-src/skills/messaging-architecture/SKILL.md +2 -2
  317. package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
  318. package/dist/agent-src/skills/onboarding-design/SKILL.md +2 -2
  319. package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
  320. package/dist/agent-src/skills/one-on-one-cadence/SKILL.md +1 -1
  321. package/dist/agent-src/skills/org-design/SKILL.md +1 -1
  322. package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +3 -3
  323. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  324. package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
  325. package/dist/agent-src/skills/persona-writing/SKILL.md +1 -1
  326. package/dist/agent-src/skills/php-coder/SKILL.md +1 -1
  327. package/dist/agent-src/skills/pipeline-strategy/SKILL.md +2 -2
  328. package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -3
  329. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  330. package/dist/agent-src/skills/positioning-strategy/SKILL.md +2 -2
  331. package/dist/agent-src/skills/privacy-review/SKILL.md +1 -1
  332. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +3 -3
  333. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
  334. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -2
  335. package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
  336. package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
  337. package/dist/agent-src/skills/release-comms/SKILL.md +2 -2
  338. package/dist/agent-src/skills/retention-loops/SKILL.md +2 -2
  339. package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
  340. package/dist/agent-src/skills/roadmap-management/SKILL.md +1 -1
  341. package/dist/agent-src/skills/roadmap-management/references/archival.md +1 -1
  342. package/dist/agent-src/skills/roadmap-writing/SKILL.md +5 -5
  343. package/dist/agent-src/skills/rule-writing/SKILL.md +6 -6
  344. package/dist/agent-src/skills/runway-cognition/SKILL.md +2 -2
  345. package/dist/agent-src/skills/scenario-modeling/SKILL.md +2 -2
  346. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  347. package/dist/agent-src/skills/skill-writing/references/procedure.md +1 -1
  348. package/dist/agent-src/skills/skill-writing/references/section-patterns.md +3 -3
  349. package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +1 -1
  350. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -3
  351. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  352. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +1 -1
  353. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  354. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +11 -5
  355. package/dist/agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +1 -1
  356. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  357. package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
  358. package/dist/agent-src/skills/ui-component-architect/SKILL.md +28 -8
  359. package/dist/agent-src/skills/unit-economics-modeling/SKILL.md +2 -2
  360. package/dist/agent-src/skills/upstream-contribute/SKILL.md +1 -1
  361. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  362. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  363. package/dist/agent-src/skills/vision-articulation/SKILL.md +1 -1
  364. package/dist/agent-src/skills/voc-extract/SKILL.md +2 -2
  365. package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +2 -2
  366. package/dist/agent-src/skills/wireframe/SKILL.md +1 -1
  367. package/dist/agent-src/skills/workspace-link/SKILL.md +1 -1
  368. package/dist/agent-src/templates/agent-settings.md +6 -6
  369. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  370. package/dist/agent-src/templates/contexts/knowledge-pages.md +2 -3
  371. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  372. package/dist/agent-src/templates/roadmaps.md +1 -1
  373. package/dist/agent-src/templates/scripts/README.md +2 -2
  374. package/dist/agent-src/user-types/_template/user-type.md +1 -1
  375. package/dist/cli-delegate/check_update_banner.js +12 -1
  376. package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
  377. package/dist/cli-delegate/{chunk-IAI3XL43.js → chunk-3FKR64R5.js} +22 -6
  378. package/dist/cli-delegate/{chunk-J3RFNKG4.js → chunk-55ACLDUE.js} +2 -2
  379. package/dist/cli-delegate/{chunk-PKOBQADP.js → chunk-57PN4GYJ.js} +1 -1
  380. package/dist/cli-delegate/{chunk-KCNTUSPI.js → chunk-AK6HODNQ.js} +4 -4
  381. package/dist/cli-delegate/{chunk-2FTMENJL.js → chunk-GYC3VRYN.js} +1 -1
  382. package/dist/cli-delegate/{chunk-LWTYTX6F.js → chunk-HZ52BRGG.js} +24 -18
  383. package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
  384. package/dist/cli-delegate/{chunk-I6RHFQEG.js → chunk-YUM5KURG.js} +17 -1
  385. package/dist/cli-delegate/cmd_analyze_session.js +1 -1
  386. package/dist/cli-delegate/cmd_brand_status.js +1 -1
  387. package/dist/cli-delegate/cmd_conformance.js +3 -3
  388. package/dist/cli-delegate/cmd_doctor.js +3 -3
  389. package/dist/cli-delegate/cmd_explain.js +2 -2
  390. package/dist/cli-delegate/cmd_export.js +4 -4
  391. package/dist/cli-delegate/cmd_handoff.js +4 -4
  392. package/dist/cli-delegate/cmd_mcp_available.js +1 -1
  393. package/dist/cli-delegate/cmd_memory_get.js +1 -1
  394. package/dist/cli-delegate/cmd_migrate.js +2 -2
  395. package/dist/cli-delegate/cmd_packs_active.js +2 -2
  396. package/dist/cli-delegate/cmd_prune.js +4 -4
  397. package/dist/cli-delegate/cmd_route_audit.js +3 -3
  398. package/dist/cli-delegate/cmd_route_explain.js +1 -1
  399. package/dist/cli-delegate/cmd_session_recycle.js +1 -1
  400. package/dist/cli-delegate/cmd_settings_get.js +15 -9
  401. package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
  402. package/dist/cli-delegate/cmd_settings_set.js +41 -11
  403. package/dist/cli-delegate/cmd_sync.js +4 -4
  404. package/dist/cli-delegate/cmd_uninstall.js +4 -4
  405. package/dist/cli-delegate/cmd_update.js +1 -1
  406. package/dist/cli-delegate/cmd_upgrade.js +1 -1
  407. package/dist/cli-delegate/cmd_validate.js +4 -4
  408. package/dist/cli-delegate/cmd_versions.js +1 -1
  409. package/dist/discovery/deprecation-report.md +1 -1
  410. package/dist/discovery/discovery-manifest.json +22 -75
  411. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  412. package/dist/discovery/discovery-manifest.summary.md +3 -3
  413. package/dist/discovery/dormancy-report.md +1 -1
  414. package/dist/discovery/orphan-report.md +1 -1
  415. package/dist/discovery/packs.json +5 -7
  416. package/dist/discovery/trust-report.md +2 -2
  417. package/dist/discovery/workspaces.json +4 -6
  418. package/dist/hooks/dispatch.js +8607 -8930
  419. package/dist/install/install.mjs +35 -8
  420. package/dist/mcp/registry-manifest.json +3 -3
  421. package/dist/mcp/server.json +2 -2
  422. package/dist/mcp/server.mjs +1433 -1342
  423. package/dist/router.json +1 -1
  424. package/dist/scripts/_lib/agent_settings.js +73 -0
  425. package/dist/scripts/_lib/agent_src.js +20 -0
  426. package/dist/scripts/_lib/guidelines_lane.js +158 -0
  427. package/dist/scripts/condense.js +2 -5
  428. package/dist/server/io/yamlIO.js +125 -17
  429. package/dist/server/schemas/settings.js +18 -4
  430. package/dist/shared/settingsSurface.js +6 -1
  431. package/docs/contracts/settings-classes.md +18 -9
  432. package/docs/guidelines/abstraction-thresholds.md +35 -0
  433. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +3 -3
  434. package/docs/guidelines/agent-infra/false-green.md +2 -2
  435. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  436. package/docs/guidelines/agent-infra/skill-quality-checklist.md +1 -1
  437. package/docs/guidelines/design-fidelity-mechanics.md +4 -0
  438. package/docs/guidelines/design-fidelity-routing.md +78 -0
  439. package/docs/guidelines/design-reconciliation.md +172 -0
  440. package/docs/guidelines/gtm-handoff.md +2 -2
  441. package/docs/guidelines/wing4-handoff.md +2 -2
  442. package/package.json +7 -3
  443. package/src/config/agent-settings.template.yml +55 -8
  444. package/src/config/ci-local-parity.yml +34 -0
  445. package/src/config/continuity-surface.json +4 -32
  446. package/src/config/gate-coverage.yml +31 -8
  447. package/src/config/gate-reachability-exemptions.json +1 -0
  448. package/src/config/gate-violation-baselines.json +3 -3
  449. package/src/config/hook-token-budget.json +1 -1
  450. package/src/config/host-injection-effect.json +2 -2
  451. package/src/config/pack-size-budget.json +55 -4
  452. package/src/config/platform-anchor.json +47 -0
  453. package/src/config/preamble-payload-budget.json +2 -3
  454. package/src/config/publish-surface.json +4 -2
  455. package/src/config/ratification-policy.json +7 -0
  456. package/src/config/rule-stub-ceilings.json +16 -9
  457. package/src/scripts/_cli/cmd_settings_get.ts +22 -7
  458. package/src/scripts/_lib/agent_settings.ts +85 -0
  459. package/src/scripts/_lib/agent_src.ts +21 -0
  460. package/src/scripts/_lib/artifact_maturity.ts +242 -0
  461. package/src/scripts/_lib/conformance_report.ts +403 -0
  462. package/src/scripts/_lib/continuity_writer.ts +72 -13
  463. package/src/scripts/_lib/design_system_import.ts +20 -0
  464. package/src/scripts/_lib/design_tolerance.ts +281 -0
  465. package/src/scripts/_lib/guidelines_lane.ts +164 -0
  466. package/src/scripts/_lib/obligation_frequency.ts +2 -3
  467. package/src/scripts/_lib/platform_anchor.ts +1053 -0
  468. package/src/scripts/_lib/ratification_artifact.ts +278 -0
  469. package/src/scripts/_lib/security_lint.ts +23 -2
  470. package/src/scripts/_lib/self_repair.ts +21 -0
  471. package/src/scripts/_lib/session_index_trust.ts +42 -1
  472. package/src/scripts/_lib/standing_bound_ratchet.ts +103 -37
  473. package/src/scripts/_lib/tolerance_shadow.ts +177 -0
  474. package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
  475. package/src/scripts/autonomy_friction_traffic.ts +379 -0
  476. package/src/scripts/check_kernel_edit_ratified.ts +462 -0
  477. package/src/scripts/check_loss_class_declared.ts +793 -46
  478. package/src/scripts/check_platform_anchor.ts +390 -0
  479. package/src/scripts/check_preamble_payload_budget.ts +292 -4
  480. package/src/scripts/check_projected_rule_routes.ts +395 -0
  481. package/src/scripts/code_graph/cli.ts +6 -0
  482. package/src/scripts/condense.ts +2 -6
  483. package/src/scripts/generate_host_cost_table.ts +354 -0
  484. package/src/scripts/hook_manifest.json +1 -1
  485. package/src/scripts/hook_manifest.yaml +35 -27
  486. package/src/scripts/hooks/category_a.ts +1 -1
  487. package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
  488. package/src/scripts/hooks/session_eol_hook.ts +68 -154
  489. package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
  490. package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
  491. package/src/scripts/hot_context_hook.ts +41 -401
  492. package/src/scripts/lint_evidence_artifacts.ts +1 -0
  493. package/src/scripts/lint_knowledge_scale.ts +0 -26
  494. package/src/scripts/memory_lookup.ts +9 -9
  495. package/src/scripts/report_standing_payload_by_host.ts +7 -7
  496. package/src/scripts/session_memory_index.ts +5 -0
  497. package/src/scripts/sync_agent_settings.ts +270 -10
  498. package/src/server/io/yamlIO.ts +127 -17
  499. package/src/server/schemas/settings.ts +25 -5
  500. package/src/shared/settingsSurface.ts +13 -2
  501. package/src/templates/compact-instructions.md +8 -3
  502. package/dist/agent-src/commands/chat-history/import.md +0 -170
  503. package/dist/agent-src/commands/chat-history.md +0 -63
@@ -0,0 +1,111 @@
1
+ # Job Guidelines
2
+
3
+ > Queue job conventions. Horizon tags, uniqueness, retries, rate limiting.
4
+
5
+ **Related Skills:** `jobs-events`, `performance`
6
+ **Related Guidelines:** [patterns/service-layer.md](patterns/service-layer.md)
7
+
8
+ ## Constructor
9
+
10
+ - Pass model **IDs** (not model instances) to reduce serialized job size
11
+ - Always set queue via `$this->onQueue()` — queue names from backed enums
12
+
13
+ ```php
14
+ public function __construct(public int $productId)
15
+ {
16
+ $this->onQueue(Queue::SEARCH->value);
17
+ }
18
+ ```
19
+
20
+ ## Tags (Horizon)
21
+
22
+ Always add `tags()` for filtering in Horizon:
23
+
24
+ ```php
25
+ public function tags(): array
26
+ {
27
+ return [
28
+ self::class,
29
+ Product::class . ':' . $this->productId,
30
+ ];
31
+ }
32
+ ```
33
+
34
+ ## Uniqueness
35
+
36
+ - Add `uniqueId()` if the job should not run twice concurrently
37
+ - **Must** also set `$uniqueFor` to prevent stuck locks:
38
+
39
+ ```php
40
+ public int $uniqueFor = 3600;
41
+
42
+ public function uniqueId(): string
43
+ {
44
+ return (string) $this->productId;
45
+ }
46
+ ```
47
+
48
+ ## Error Handling & Retries
49
+
50
+ - Set `$maxExceptions` to limit unhandled exceptions before failing
51
+ - Define `backoff()` for retry intervals:
52
+
53
+ ```php
54
+ public int $maxExceptions = 3;
55
+
56
+ /** @return int[] */
57
+ public function backoff(): array
58
+ {
59
+ return [5, 10, 30];
60
+ }
61
+ ```
62
+
63
+ ## Rate Limiting (External APIs)
64
+
65
+ Use `WithoutOverlapping` middleware for per-customer sequential execution:
66
+
67
+ ```php
68
+ public function middleware(): array
69
+ {
70
+ return [new WithoutOverlapping($this->customerId)];
71
+ }
72
+ ```
73
+
74
+ ## Serialization
75
+
76
+ - Pass IDs or compact DTOs — not full Eloquent models with loaded relations.
77
+ - Model may change between dispatch and execution — design for this.
78
+ - Never serialize closures, service instances, or large nested structures.
79
+
80
+ ## Idempotency
81
+
82
+ - Assume queued jobs may run more than once.
83
+ - Design handlers so retries don't create duplicate side effects.
84
+ - Especially careful with: emails, external APIs, payments, imports, record creation.
85
+ - Add explicit guards when duplicate execution would be harmful.
86
+
87
+ ## Events
88
+
89
+ - Use events for meaningful occurrences, not every internal method call.
90
+ - Past-tense naming: `OrderPlaced`, `InvoicePaid`, `UserRegistered`.
91
+ - Keep event payloads focused.
92
+ - **Laravel 11+:** automatic event/listener discovery — no manual registration.
93
+
94
+ ## Listeners
95
+
96
+ - One responsibility per listener.
97
+ - Delegate large business logic to services.
98
+ - Avoid deep hidden chains of listeners.
99
+
100
+ ## Dispatching
101
+
102
+ - Be explicit: immediately, after response, or on queue.
103
+ - Don't change sync/async behavior casually in existing flows.
104
+
105
+ ## General
106
+
107
+ - Avoid batches unless truly needed (relies on MySQL)
108
+ - Use Service classes for complex business logic inside `handle()`
109
+ - `ShouldQueue` is required for queued execution — without it, runs synchronously
110
+ - Set `$tries` and `$backoff` — unlimited retries can overwhelm the queue
111
+
@@ -0,0 +1,71 @@
1
+ # Livewire Guidelines
2
+
3
+ > Livewire component conventions — state, actions, forms, performance, Alpine.js, templates.
4
+
5
+ **Related Skills:** `livewire`, `flux`, `blade-ui`
6
+
7
+ ## Component Structure (Livewire 3.x)
8
+
9
+ ```php
10
+ #[Layout('layouts.app')]
11
+ #[Title('User List')]
12
+ final class UserList extends Component
13
+ {
14
+ public string $search = '';
15
+
16
+ public function render(): \Illuminate\View\View
17
+ {
18
+ return view('livewire.user-list', [
19
+ 'users' => User::query()->where('name', 'like', '%' . $this->search . '%')->paginate(20),
20
+ ]);
21
+ }
22
+ }
23
+ ```
24
+
25
+ ## State Management
26
+
27
+ - Use typed public properties for component state.
28
+ - Keep state minimal — only what the UI needs.
29
+ - `#[Locked]` for properties that must not be tampered with from frontend.
30
+ - `#[Url]` for properties that should sync with URL query string.
31
+
32
+ ## Actions
33
+
34
+ - Public methods are callable from frontend.
35
+ - Validate input before processing: `$this->validate()`.
36
+ - `$this->dispatch()` for cross-component communication (Livewire 3).
37
+
38
+ ## Forms
39
+
40
+ - Use Livewire Form Objects (`Livewire\Form`) for complex forms (Livewire 3).
41
+ - `wire:model` for two-way binding.
42
+ - `wire:model.live` for real-time updates, `wire:model.debounce` for delayed.
43
+ - Validate with Laravel validation rules.
44
+
45
+ ## Performance
46
+
47
+ - `wire:key` on list items for DOM tracking.
48
+ - `#[Computed]` for derived data cached per request (Livewire 3).
49
+ - Avoid large datasets — paginate or filter.
50
+ - `wire:loading` for loading indicators.
51
+
52
+ ## Alpine.js Integration
53
+
54
+ - `@entangle` to share state between Livewire and Alpine.
55
+ - `$wire` in Alpine to call Livewire methods.
56
+ - Alpine for client-side-only interactions (dropdowns, animations).
57
+
58
+ ## Template Rules
59
+
60
+ - Every Livewire view must have **one root element** (usually `<div>`).
61
+ - Use `wire:key` on dynamic lists.
62
+ - Use `wire:loading` for user feedback.
63
+
64
+ ## Do NOT
65
+
66
+ - Put heavy business logic in components — delegate to services.
67
+ - Use Livewire for purely static pages — use Blade.
68
+ - Expose sensitive data as public properties.
69
+ - Nest Livewire components deeply — keep tree shallow.
70
+ - Put heavy computation in `render()` — runs on every update.
71
+ - Skip `wire:key` on list items — causes DOM diffing issues.
@@ -0,0 +1,79 @@
1
+ # Logging Guidelines
2
+
3
+ > Logging conventions — levels, structured context, what to log, Sentry patterns.
4
+
5
+ **Related Skills:** `logging-monitoring`, `grafana`
6
+
7
+ ## Use Laravel's Log Facade
8
+
9
+ ```php
10
+ use Illuminate\Support\Facades\Log;
11
+
12
+ // Standard logging
13
+ Log::info('Import completed', ['customer_id' => $customerId, 'count' => $count]);
14
+
15
+ // Channel-specific
16
+ Log::channel('loki')->info('Import snapshot', ['data' => $snapshotData]);
17
+ ```
18
+
19
+ ## Structured Context — Always
20
+
21
+ ```php
22
+ // ✅ Correct — structured context
23
+ Log::warning('Import failed', ['customer_id' => $id, 'error' => $message]);
24
+
25
+ // ❌ Wrong — interpolated message
26
+ Log::warning("Import failed for customer {$id}: {$message}");
27
+ ```
28
+
29
+ Context keys must be `snake_case` — consistency matters for Loki queries.
30
+
31
+ ## Log Levels
32
+
33
+ | Level | When | Example |
34
+ |---|---|---|
35
+ | `emergency` | System unusable | Database unreachable |
36
+ | `critical` | Immediate action required | Payment gateway down |
37
+ | `error` | Needs investigation | Import failed for customer |
38
+ | `warning` | Unusual, may need attention | Rate limit approaching |
39
+ | `info` | Significant business events | Import completed, user created |
40
+ | `debug` | Diagnostic (dev/staging only) | Query params, intermediate values |
41
+
42
+ ## What to Log
43
+
44
+ - Business events: imports, state transitions, user actions
45
+ - Error context: what was happening, with which data, for which customer
46
+ - External interactions: API calls, webhook receipts
47
+ - Performance markers: long operations, batch sizes, durations
48
+
49
+ ## What NOT to Log
50
+
51
+ - Passwords, tokens, API keys, PII (GDPR)
52
+ - Entire request/response bodies — log summary or hash
53
+ - Expected conditions at high levels (validation failures ≠ `error`)
54
+ - Every loop iteration — log the summary
55
+
56
+ ## Correlation IDs
57
+
58
+ For multi-step operations:
59
+
60
+ ```php
61
+ $correlationId = Str::uuid()->toString();
62
+ Log::info('Import started', ['correlation_id' => $correlationId, ...]);
63
+ Log::info('Import completed', ['correlation_id' => $correlationId, ...]);
64
+ ```
65
+
66
+ ## Sentry
67
+
68
+ - Use `MonitoringHelper::captureException()` — never Sentry SDK directly.
69
+ - Breadcrumbs: use `BreadcrumbType` and `BreadcrumbLevel` enums.
70
+ - Context names: use `ContextName` enum.
71
+ - Sentry has 200KB event size limit — large context gets truncated.
72
+
73
+ ## Do NOT
74
+
75
+ - Use `var_dump()`, `print_r()`, `dd()` — disallowed by PHPStan.
76
+ - Use Sentry SDK directly — use `MonitoringHelper`.
77
+ - Hardcode log channel names in business logic — use config.
78
+ - Log at `error` for expected/handled conditions — use `warning` or `info`.
79
+ - Interpolate variables into log messages — use context array.
@@ -0,0 +1,89 @@
1
+ # Naming Guidelines
2
+
3
+ > Naming conventions — PHP classes, database, routes, variables, modules, agent infrastructure.
4
+
5
+ **Related Skills:** none (naming is a convention — use this guideline directly)
6
+ **Related Guidelines:** [controllers.md](controllers.md), [resources.md](resources.md)
7
+
8
+ ## PHP Classes
9
+
10
+ | Type | Pattern | Example |
11
+ |---|---|---|
12
+ | Controller | `{Action}{Entity}Controller` | `CreateProjectController` |
13
+ | FormRequest | `{Action}{Entity}Request` | `UpdateProjectRequest` |
14
+ | Resource | `{Entity}Resource` | `ProjectResource` |
15
+ | Minimal Resource | `{Entity}MinimalResource` | `ProjectMinimalResource` |
16
+ | Simple Resource | `Simple{Entity}Resource` | `SimpleUserResource` |
17
+ | Service | `{Domain}Service` | `ImportService` |
18
+ | DTO | `{Entity}{Purpose}Dto` | `ProjectCreateDto` |
19
+ | Job | `{Action}{Entity}Job` | `SyncCustomerJob` |
20
+ | Event | `{Entity}{PastTense}` | `ProjectCreated` |
21
+ | Enum | `{Entity}{Concept}` | `ImportStatus` |
22
+ | Policy | `{Entity}Policy` | `ProjectPolicy` |
23
+ | Interface | `{Capability}` (no suffix) | `SmsProvider` |
24
+
25
+ **Controller special cases:** List uses **plural** (`ListProjectsController`), all others singular.
26
+
27
+ ## Database
28
+
29
+ | Element | Convention | Example |
30
+ |---|---|---|
31
+ | Tables | snake_case, plural | `projects`, `import_rows` |
32
+ | Columns | snake_case | `created_at`, `user_id` |
33
+ | Foreign keys | `{entity}_id` | `project_id` |
34
+ | Booleans | `is_` or `has_` prefix | `is_active`, `has_permission` |
35
+ | Timestamps | `_at` suffix | `synced_at`, `imported_at` |
36
+ | Pivot tables | Alphabetical, singular | `project_user` |
37
+
38
+ ## Routes
39
+
40
+ | Element | Convention | Example |
41
+ |---|---|---|
42
+ | URL segments | kebab-case, plural | `/api/v1/import-uploads` |
43
+ | Route names | dot notation | `v1.import-uploads.index` |
44
+ | Route params | camelCase | `{importUpload}` |
45
+ | API versioning | Prefix | `/api/v1/`, `/api/v2/` |
46
+
47
+ ## Variables
48
+
49
+ | Element | Convention | Example |
50
+ |---|---|---|
51
+ | Variables | camelCase | `$projectId` |
52
+ | Constants | UPPER_SNAKE_CASE | `MAX_RETRIES` |
53
+ | Array keys | snake_case | `['user_id' => 1]` |
54
+ | Config keys | snake_case, dot notation | `config('import.max_rows')` |
55
+ | Env vars | UPPER_SNAKE_CASE | `APP_ENV` |
56
+
57
+ ## Modules
58
+
59
+ | Element | Convention | Example |
60
+ |---|---|---|
61
+ | Directory | PascalCase | `app/Modules/Import/` |
62
+ | Namespace | `App\Modules\{Name}\App\` | `App\Modules\Import\App\Services\` |
63
+ | Route prefix | kebab-case | `import`, `client-software` |
64
+
65
+ ## Agent Infrastructure
66
+
67
+ | Element | Convention | Example |
68
+ |---|---|---|
69
+ | Skills | kebab-case | `bug-analyzer` |
70
+ | Rules | kebab-case | `php-coding` |
71
+ | Commands | kebab-case | `feature-plan` |
72
+ | Guidelines | kebab-case | `controllers.md` |
73
+
74
+ ## Enums
75
+
76
+ - PascalCase class name
77
+ - UPPERCASE cases: `case PENDING;`, `case IN_PROGRESS;`
78
+ - Backed enums for DB values: `case PENDING = 'pending';`
79
+
80
+ ## Interfaces
81
+
82
+ - Namespace: `App\Contracts\{Subdomain}\`
83
+ - No `Interface` suffix: `SmsProvider`, not `SmsProviderInterface`
84
+
85
+ ## Do NOT
86
+
87
+ - Use abbreviations that aren't universally understood.
88
+ - Mix naming conventions within the same context.
89
+ - Use generic names (Manager, Helper, Utils) without specificity.
@@ -0,0 +1,57 @@
1
+ # Dependency Injection & Interfaces
2
+
3
+ > Decouple classes from concrete implementations.
4
+
5
+ ## Idea
6
+
7
+ Classes depend on **interfaces** (contracts), not on concrete classes.
8
+ Laravel's Service Container resolves the binding at runtime.
9
+
10
+ ## When to Use
11
+
12
+ ✅ Multiple implementations possible (e.g., payment gateways, notification channels)
13
+ ✅ External services that need mocking in tests
14
+ ✅ Repository pattern (contract + database implementation)
15
+
16
+ ## When NOT to Use
17
+
18
+ ❌ Only one implementation exists and is unlikely to change — just inject the concrete class
19
+ ❌ Simple utility classes with no side effects
20
+
21
+ ## Example
22
+
23
+ ```php
24
+ // Contract
25
+ interface PaymentGateway
26
+ {
27
+ public function charge(int $amountInCents): PaymentResult;
28
+ }
29
+
30
+ // Implementation
31
+ final class StripePaymentGateway implements PaymentGateway
32
+ {
33
+ public function charge(int $amountInCents): PaymentResult
34
+ {
35
+ // Stripe API call...
36
+ }
37
+ }
38
+ ```
39
+
40
+ ## Binding in ServiceProvider
41
+
42
+ ```php
43
+ $this->app->bind(PaymentGateway::class, StripePaymentGateway::class);
44
+ ```
45
+
46
+ ## Naming
47
+
48
+ - Interfaces (contracts): descriptive name without suffix — `PaymentGateway`, `SmsProvider`
49
+ - Implementations: prefixed with technology — `StripePaymentGateway`, `TwilioSmsProvider`
50
+ - Namespace: `App\Contracts\` for interfaces
51
+
52
+ ## Rules
53
+
54
+ - One interface = one responsibility (Interface Segregation)
55
+ - Bind in the module's ServiceProvider, not in AppServiceProvider
56
+ - Do **NOT** mark implementation classes `final` if they need mocking in tests
57
+
@@ -0,0 +1,199 @@
1
+ # DTOs & Value Objects
2
+
3
+ > Typed data instead of untyped arrays.
4
+
5
+ ## DTO (Data Transfer Object)
6
+
7
+ Structured, immutable data container for passing data between layers.
8
+
9
+ ### When to Use
10
+
11
+ ✅ Passing validated request data to a service/action
12
+ ✅ Returning structured data from a service
13
+ ✅ Replacing `array<string, mixed>` in method signatures
14
+
15
+ ### Prefer a DTO base class (if available)
16
+
17
+ If the project uses a DTO package with attribute-based mapping (e.g., `SimpleDto`, `spatie/data-transfer-object`),
18
+ new DTOs **should extend the project's base class**. Check `composer.json` for DTO-related packages.
19
+
20
+ #### Attribute-based DTO Example
21
+
22
+ ```php
23
+ use App\Models\Equipment;
24
+ use Vendor\DataHelpers\SimpleDto;
25
+ use Vendor\DataHelpers\SimpleDto\Attributes\ConvertEmptyToNull;
26
+ use Vendor\DataHelpers\SimpleDto\Attributes\DateTimeFormat;
27
+ use Vendor\DataHelpers\SimpleDto\Attributes\Decimal;
28
+ use Vendor\DataHelpers\SimpleDto\Attributes\HasModel;
29
+ use Vendor\DataHelpers\SimpleDto\Attributes\Length;
30
+ use Vendor\DataHelpers\SimpleDto\Attributes\Map;
31
+ use Vendor\DataHelpers\SimpleDto\Attributes\Unsigned;
32
+ use Carbon\Carbon;
33
+
34
+ #[ConvertEmptyToNull]
35
+ #[HasModel(Equipment::class)]
36
+ class EquipmentDto extends SimpleDto
37
+ {
38
+ public function __construct(
39
+ // Primary Key
40
+ #[Map('id_equipment')]
41
+ public ?int $id = null,
42
+
43
+ // Equipment identification
44
+ #[Map('equipment_nr'),
45
+ Length(50)]
46
+ public string $equipmentNumber = '',
47
+
48
+ #[Map('bezeichnung'),
49
+ Length(250)]
50
+ public string $title = '',
51
+
52
+ // External IDs (from client software)
53
+ #[Map('ext_uid'),
54
+ Length(250)]
55
+ public ?string $externalUid = null,
56
+
57
+ // Status
58
+ #[Map('is_active'),
59
+ Unsigned,
60
+ Length(1)]
61
+ public bool $isActive = true,
62
+
63
+ // Financial
64
+ #[Map('hourly_rate'),
65
+ Unsigned,
66
+ Decimal(10, 2)]
67
+ public float $hourlyRate = 0.0,
68
+
69
+ // Timestamps
70
+ #[Map('created_at'),
71
+ DateTimeFormat('Y-m-d H:i:s')]
72
+ public ?Carbon $createdAt = null,
73
+
74
+ #[Map('updated_at'),
75
+ DateTimeFormat('Y-m-d H:i:s')]
76
+ public ?Carbon $updatedAt = null,
77
+ ) {}
78
+ }
79
+ ```
80
+
81
+ #### Key attribute-based DTO features
82
+
83
+ - **`#[Map('db_column')]`** — Maps a readable property name to a database column or API field name
84
+ - **`#[Length(n)]`** — Validates max string length
85
+ - **`#[Decimal(precision, scale)]`** — Validates decimal format
86
+ - **`#[Unsigned]`** — Validates non-negative values
87
+ - **`#[DateTimeFormat('Y-m-d H:i:s')]`** — Casts to/from Carbon with the given format
88
+ - **`#[Email]`** — Validates email format
89
+ - **`#[ConvertEmptyToNull]`** — Class-level: converts empty strings to `null`
90
+ - **`#[HasModel(Model::class)]`** — Links the DTO to an Eloquent model for `fromModel()` / `toModel()`
91
+
92
+ #### Creating and using DTOs
93
+
94
+ ```php
95
+ // From array (e.g. API response, request data)
96
+ $dto = EquipmentDto::fromArray($data);
97
+
98
+ // From Eloquent model (requires #[HasModel] + DtoMappingTrait on the model)
99
+ $dto = EquipmentDto::fromModel($equipment);
100
+
101
+ // To array (uses #[Map] names as keys)
102
+ $array = $dto->toArray();
103
+
104
+ // To Eloquent model
105
+ $model = $dto->toModel(Equipment::class);
106
+
107
+ // Collections
108
+ $dtos = EquipmentDto::collection($arrayOfData);
109
+ ```
110
+
111
+ #### Attribute-based DTO rules
112
+
113
+ - Extend the project's DTO base class
114
+ - Use constructor property promotion with public properties
115
+ - Use `#[Map('column_name')]` to map properties to database/API field names
116
+ - Use validation attributes (`#[Length]`, `#[Decimal]`, `#[Email]`, etc.) for constraints
117
+ - Use `#[ConvertEmptyToNull]` at class level when empty strings should become `null`
118
+ - Use `#[HasModel(Model::class)]` when the DTO maps to an Eloquent model
119
+ - No business logic — just data and mapping
120
+ - Check if the base class requires mutable or immutable properties
121
+
122
+ ### Plain DTO (Fallback)
123
+
124
+ When no DTO package is available or attribute-based mapping is not suitable (e.g. for very simple
125
+ value transfer between methods), a plain readonly DTO is acceptable:
126
+
127
+ ```php
128
+ final readonly class CreateOrderDTO
129
+ {
130
+ public function __construct(
131
+ public int $customerId,
132
+ public string $description,
133
+ public int $totalInCents,
134
+ ) {}
135
+
136
+ public static function fromRequest(CreateOrderRequest $request): self
137
+ {
138
+ /** @var array{customer_id: int, description: string, total: int} $data */
139
+ $data = $request->validated();
140
+
141
+ return new self(
142
+ customerId: $data['customer_id'],
143
+ description: $data['description'],
144
+ totalInCents: $data['total'],
145
+ );
146
+ }
147
+ }
148
+ ```
149
+
150
+ #### Plain DTO Rules
151
+
152
+ - Always `final readonly class`
153
+ - Constructor property promotion
154
+ - Static factory method `fromRequest()`, `fromArray()`, etc.
155
+ - No business logic — just data
156
+
157
+ ## Value Object
158
+
159
+ Represents a domain concept with validation and equality semantics.
160
+
161
+ ### When to Use
162
+
163
+ ✅ Domain concepts: `Money`, `Email`, `DateRange`, `Coordinates`
164
+ ✅ Value needs validation on creation
165
+ ✅ Two instances with same values should be considered equal
166
+
167
+ ### Example
168
+
169
+ ```php
170
+ final readonly class Money
171
+ {
172
+ public function __construct(
173
+ public int $amountInCents,
174
+ public string $currency = 'EUR',
175
+ ) {
176
+ if ($this->amountInCents < 0) {
177
+ throw new InvalidArgumentException('Amount must not be negative');
178
+ }
179
+ }
180
+
181
+ public function add(self $other): self
182
+ {
183
+ if ($this->currency !== $other->currency) {
184
+ throw new InvalidArgumentException('Cannot add different currencies');
185
+ }
186
+
187
+ return new self(
188
+ amountInCents: Math::add($this->amountInCents, $other->amountInCents),
189
+ currency: $this->currency,
190
+ );
191
+ }
192
+ }
193
+ ```
194
+
195
+ ## When NOT to Use
196
+
197
+ ❌ Data only used in one place and structure is obvious — a simple array is fine
198
+ ❌ Wrapping a single primitive with no validation or behavior
199
+
@@ -0,0 +1,67 @@
1
+ # Event / Listener Pattern
2
+
3
+ > Decouple side effects from core logic.
4
+
5
+ ## Idea
6
+
7
+ A core process dispatches an **Event**, other parts of the system react via **Listeners**.
8
+ The core process doesn't know (or care) who listens.
9
+
10
+ ## Typical Use Cases
11
+
12
+ ✅ Notifications (email, push) after an action
13
+ ✅ Logging, audit trails
14
+ ✅ Syncing data to external systems
15
+ ✅ Cache invalidation
16
+ ✅ Triggering follow-up jobs
17
+
18
+ ## Example
19
+
20
+ ```php
21
+ // Event — immutable data container
22
+ final readonly class OrderPlaced
23
+ {
24
+ public function __construct(
25
+ public int $orderId,
26
+ public int $customerId,
27
+ ) {}
28
+ }
29
+
30
+ // Listener
31
+ final class SendOrderConfirmation
32
+ {
33
+ public function handle(OrderPlaced $event): void
34
+ {
35
+ // send email...
36
+ }
37
+ }
38
+ ```
39
+
40
+ ## Dispatching
41
+
42
+ ```php
43
+ // In a service or action
44
+ OrderPlaced::dispatch($order->getId(), $order->getCustomerId());
45
+
46
+ // Or via event helper
47
+ event(new OrderPlaced($order->getId(), $order->getCustomerId()));
48
+ ```
49
+
50
+ ## Laravel Discovery
51
+
52
+ Since Laravel 11, events and listeners are auto-discovered — no manual registration
53
+ needed. Configured in `bootstrap/app.php`.
54
+
55
+ ## Rules
56
+
57
+ - Events are `final readonly` — immutable data containers
58
+ - Pass **IDs**, not model instances (smaller payload, avoids serialization issues)
59
+ - One listener per side effect — don't cram multiple things into one listener
60
+ - Use queued listeners (`ShouldQueue`) for slow operations (emails, API calls)
61
+
62
+ ## When NOT to Use
63
+
64
+ ❌ Direct, synchronous flow where caller needs the result — just call the service directly
65
+ ❌ Only one "listener" that always runs — a direct method call is simpler and easier to follow
66
+ ❌ Everything — too many events make the application flow hard to trace
67
+