@event4u/agent-config 1.33.0 → 1.35.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 (218) hide show
  1. package/.agent-src/commands/review-changes.md +13 -8
  2. package/.agent-src/commands/roadmap/process-full.md +17 -15
  3. package/.agent-src/contexts/execution/roadmap-process-loop.md +11 -10
  4. package/.agent-src/personas/README.md +12 -21
  5. package/.agent-src/personas/_template-specialist/persona.md +89 -0
  6. package/.agent-src/personas/backend-architect.md +96 -0
  7. package/.agent-src/personas/discovery-lead.md +99 -0
  8. package/.agent-src/personas/eloquent-tamer.md +96 -0
  9. package/.agent-src/personas/frontend-engineer.md +100 -0
  10. package/.agent-src/personas/product-owner.md +71 -52
  11. package/.agent-src/personas/qa.md +27 -2
  12. package/.agent-src/personas/revops-maintainer.md +100 -0
  13. package/.agent-src/personas/security-engineer.md +100 -0
  14. package/.agent-src/personas/tech-writer.md +99 -0
  15. package/.agent-src/skills/accessibility-auditor/SKILL.md +132 -0
  16. package/.agent-src/skills/adr-create/SKILL.md +1 -0
  17. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  18. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -0
  19. package/.agent-src/skills/agents-md-thin-root/SKILL.md +1 -0
  20. package/.agent-src/skills/ai-council/SKILL.md +1 -0
  21. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -0
  22. package/.agent-src/skills/analysis-skill-router/SKILL.md +1 -0
  23. package/.agent-src/skills/api-design/SKILL.md +3 -0
  24. package/.agent-src/skills/api-endpoint/SKILL.md +1 -0
  25. package/.agent-src/skills/api-testing/SKILL.md +1 -0
  26. package/.agent-src/skills/architecture-review-lens/SKILL.md +137 -0
  27. package/.agent-src/skills/artisan-commands/SKILL.md +1 -0
  28. package/.agent-src/skills/async-python-patterns/SKILL.md +1 -0
  29. package/.agent-src/skills/authz-review/SKILL.md +4 -0
  30. package/.agent-src/skills/aws-infrastructure/SKILL.md +1 -0
  31. package/.agent-src/skills/blade-ui/SKILL.md +1 -0
  32. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +3 -0
  33. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
  34. package/.agent-src/skills/check-refs/SKILL.md +1 -0
  35. package/.agent-src/skills/code-refactoring/SKILL.md +1 -0
  36. package/.agent-src/skills/code-review/SKILL.md +1 -0
  37. package/.agent-src/skills/command-routing/SKILL.md +1 -0
  38. package/.agent-src/skills/command-writing/SKILL.md +1 -0
  39. package/.agent-src/skills/competitive-positioning/SKILL.md +152 -0
  40. package/.agent-src/skills/composer-packages/SKILL.md +1 -0
  41. package/.agent-src/skills/context-authoring/SKILL.md +1 -0
  42. package/.agent-src/skills/context-document/SKILL.md +1 -0
  43. package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -0
  44. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +1 -0
  45. package/.agent-src/skills/copilot-config/SKILL.md +1 -0
  46. package/.agent-src/skills/customer-research/SKILL.md +116 -0
  47. package/.agent-src/skills/dashboard-design/SKILL.md +1 -0
  48. package/.agent-src/skills/data-flow-mapper/SKILL.md +1 -0
  49. package/.agent-src/skills/database/SKILL.md +3 -0
  50. package/.agent-src/skills/dcf-modeling/SKILL.md +1 -0
  51. package/.agent-src/skills/decision-record/SKILL.md +218 -0
  52. package/.agent-src/skills/deep-reading-analyst/SKILL.md +1 -0
  53. package/.agent-src/skills/defense-in-depth/SKILL.md +1 -0
  54. package/.agent-src/skills/dependency-upgrade/SKILL.md +1 -0
  55. package/.agent-src/skills/description-assist/SKILL.md +1 -0
  56. package/.agent-src/skills/design-review/SKILL.md +1 -0
  57. package/.agent-src/skills/devcontainer/SKILL.md +1 -0
  58. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -0
  59. package/.agent-src/skills/discovery-interview/SKILL.md +152 -0
  60. package/.agent-src/skills/docker/SKILL.md +1 -0
  61. package/.agent-src/skills/dto-creator/SKILL.md +1 -0
  62. package/.agent-src/skills/eloquent/SKILL.md +3 -0
  63. package/.agent-src/skills/error-handling-patterns/SKILL.md +1 -0
  64. package/.agent-src/skills/estimate-ticket/SKILL.md +1 -0
  65. package/.agent-src/skills/existing-ui-audit/SKILL.md +3 -0
  66. package/.agent-src/skills/fe-design/SKILL.md +4 -1
  67. package/.agent-src/skills/feature-planning/SKILL.md +1 -0
  68. package/.agent-src/skills/file-editor/SKILL.md +1 -0
  69. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +1 -0
  70. package/.agent-src/skills/flux/SKILL.md +1 -0
  71. package/.agent-src/skills/form-handler/SKILL.md +145 -0
  72. package/.agent-src/skills/funnel-analysis/SKILL.md +1 -0
  73. package/.agent-src/skills/git-workflow/SKILL.md +1 -0
  74. package/.agent-src/skills/github-ci/SKILL.md +1 -0
  75. package/.agent-src/skills/grafana/SKILL.md +1 -0
  76. package/.agent-src/skills/guideline-writing/SKILL.md +1 -0
  77. package/.agent-src/skills/incident-commander/SKILL.md +140 -0
  78. package/.agent-src/skills/jira-integration/SKILL.md +1 -0
  79. package/.agent-src/skills/jobs-events/SKILL.md +1 -0
  80. package/.agent-src/skills/judge-bug-hunter/SKILL.md +1 -0
  81. package/.agent-src/skills/judge-code-quality/SKILL.md +1 -0
  82. package/.agent-src/skills/judge-security-auditor/SKILL.md +3 -0
  83. package/.agent-src/skills/judge-test-coverage/SKILL.md +1 -0
  84. package/.agent-src/skills/laravel/SKILL.md +1 -0
  85. package/.agent-src/skills/laravel-horizon/SKILL.md +1 -0
  86. package/.agent-src/skills/laravel-mail/SKILL.md +1 -0
  87. package/.agent-src/skills/laravel-middleware/SKILL.md +1 -0
  88. package/.agent-src/skills/laravel-notifications/SKILL.md +1 -0
  89. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -0
  90. package/.agent-src/skills/laravel-pulse/SKILL.md +1 -0
  91. package/.agent-src/skills/laravel-reverb/SKILL.md +1 -0
  92. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -0
  93. package/.agent-src/skills/laravel-validation/SKILL.md +1 -0
  94. package/.agent-src/skills/launch-readiness/SKILL.md +156 -0
  95. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -0
  96. package/.agent-src/skills/lint-skills/SKILL.md +1 -0
  97. package/.agent-src/skills/livewire/SKILL.md +1 -0
  98. package/.agent-src/skills/livewire-architect/SKILL.md +158 -0
  99. package/.agent-src/skills/logging-monitoring/SKILL.md +1 -0
  100. package/.agent-src/skills/markitdown/SKILL.md +1 -0
  101. package/.agent-src/skills/mcp/SKILL.md +1 -0
  102. package/.agent-src/skills/mcp-builder/SKILL.md +1 -0
  103. package/.agent-src/skills/md-language-check/SKILL.md +1 -0
  104. package/.agent-src/skills/merge-conflicts/SKILL.md +1 -0
  105. package/.agent-src/skills/migration-architect/SKILL.md +119 -0
  106. package/.agent-src/skills/migration-creator/SKILL.md +1 -0
  107. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +2 -1
  108. package/.agent-src/skills/module-management/SKILL.md +1 -0
  109. package/.agent-src/skills/multi-tenancy/SKILL.md +1 -0
  110. package/.agent-src/skills/okr-tree-modeling/SKILL.md +1 -0
  111. package/.agent-src/skills/openapi/SKILL.md +1 -0
  112. package/.agent-src/skills/override-management/SKILL.md +1 -0
  113. package/.agent-src/skills/performance/SKILL.md +1 -0
  114. package/.agent-src/skills/performance-analysis/SKILL.md +1 -0
  115. package/.agent-src/skills/persona-writing/SKILL.md +1 -0
  116. package/.agent-src/skills/pest-testing/SKILL.md +1 -0
  117. package/.agent-src/skills/php-coder/SKILL.md +1 -0
  118. package/.agent-src/skills/php-debugging/SKILL.md +1 -0
  119. package/.agent-src/skills/php-service/SKILL.md +1 -0
  120. package/.agent-src/skills/playwright-architect/SKILL.md +141 -0
  121. package/.agent-src/skills/playwright-testing/SKILL.md +1 -0
  122. package/.agent-src/skills/po-discovery/SKILL.md +127 -0
  123. package/.agent-src/skills/project-analysis-core/SKILL.md +1 -0
  124. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -0
  125. package/.agent-src/skills/project-analysis-laravel/SKILL.md +1 -0
  126. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +1 -0
  127. package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -0
  128. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -0
  129. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -0
  130. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +1 -0
  131. package/.agent-src/skills/project-analyzer/SKILL.md +1 -0
  132. package/.agent-src/skills/project-docs/SKILL.md +1 -0
  133. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -0
  134. package/.agent-src/skills/prompt-optimizer/SKILL.md +1 -0
  135. package/.agent-src/skills/quality-tools/SKILL.md +1 -0
  136. package/.agent-src/skills/react-native-setup/SKILL.md +1 -0
  137. package/.agent-src/skills/react-shadcn-ui/SKILL.md +1 -0
  138. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -0
  139. package/.agent-src/skills/readme-writing/SKILL.md +1 -0
  140. package/.agent-src/skills/readme-writing-package/SKILL.md +1 -0
  141. package/.agent-src/skills/receiving-code-review/SKILL.md +1 -0
  142. package/.agent-src/skills/refine-prompt/SKILL.md +1 -0
  143. package/.agent-src/skills/refine-ticket/SKILL.md +1 -0
  144. package/.agent-src/skills/release-comms/SKILL.md +123 -0
  145. package/.agent-src/skills/repomix-packer/SKILL.md +1 -0
  146. package/.agent-src/skills/requesting-code-review/SKILL.md +1 -0
  147. package/.agent-src/skills/review-routing/SKILL.md +1 -0
  148. package/.agent-src/skills/rice-prioritization/SKILL.md +1 -0
  149. package/.agent-src/skills/risk-officer/SKILL.md +141 -0
  150. package/.agent-src/skills/roadmap-management/SKILL.md +1 -0
  151. package/.agent-src/skills/roadmap-writing/SKILL.md +2 -1
  152. package/.agent-src/skills/rtk-output-filtering/SKILL.md +1 -0
  153. package/.agent-src/skills/rule-writing/SKILL.md +1 -0
  154. package/.agent-src/skills/script-writing/SKILL.md +1 -0
  155. package/.agent-src/skills/secrets-management/SKILL.md +1 -0
  156. package/.agent-src/skills/security/SKILL.md +1 -0
  157. package/.agent-src/skills/security-audit/SKILL.md +1 -0
  158. package/.agent-src/skills/sentry-integration/SKILL.md +1 -0
  159. package/.agent-src/skills/sequential-thinking/SKILL.md +1 -0
  160. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -0
  161. package/.agent-src/skills/skill-management/SKILL.md +1 -0
  162. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -0
  163. package/.agent-src/skills/skill-writing/SKILL.md +1 -0
  164. package/.agent-src/skills/sql-writing/SKILL.md +1 -0
  165. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +237 -0
  166. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -0
  167. package/.agent-src/skills/systematic-debugging/SKILL.md +1 -0
  168. package/.agent-src/skills/tailwind-engineer/SKILL.md +130 -0
  169. package/.agent-src/skills/tech-debt-tracker/SKILL.md +152 -0
  170. package/.agent-src/skills/technical-specification/SKILL.md +1 -0
  171. package/.agent-src/skills/terraform/SKILL.md +1 -0
  172. package/.agent-src/skills/terragrunt/SKILL.md +1 -0
  173. package/.agent-src/skills/test-driven-development/SKILL.md +1 -0
  174. package/.agent-src/skills/test-performance/SKILL.md +1 -0
  175. package/.agent-src/skills/testing-anti-patterns/SKILL.md +1 -0
  176. package/.agent-src/skills/threat-modeling/SKILL.md +3 -0
  177. package/.agent-src/skills/token-optimizer/SKILL.md +1 -0
  178. package/.agent-src/skills/traefik/SKILL.md +1 -0
  179. package/.agent-src/skills/ui-component-architect/SKILL.md +153 -0
  180. package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -0
  181. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -0
  182. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -0
  183. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
  184. package/.agent-src/skills/validate-feature-fit/SKILL.md +1 -0
  185. package/.agent-src/skills/verify-completion-evidence/SKILL.md +1 -0
  186. package/.agent-src/skills/voc-extract/SKILL.md +164 -0
  187. package/.agent-src/skills/websocket/SKILL.md +1 -0
  188. package/.agent-src/templates/roadmaps.md +9 -0
  189. package/.claude-plugin/marketplace.json +21 -1
  190. package/AGENTS.md +1 -0
  191. package/CHANGELOG.md +75 -0
  192. package/README.md +2 -2
  193. package/docs/architecture.md +2 -2
  194. package/docs/catalog.md +21 -4
  195. package/docs/contracts/context-spine.md +133 -0
  196. package/docs/contracts/file-ownership-matrix.json +616 -0
  197. package/docs/contracts/mental-models.md +336 -0
  198. package/docs/contracts/persona-schema.md +136 -0
  199. package/docs/contracts/skill-domains.md +143 -0
  200. package/docs/decisions/ADR-005-subagent-worktrees.md +120 -0
  201. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +114 -0
  202. package/docs/decisions/INDEX.md +3 -0
  203. package/docs/guidelines/cross-role-handoff.md +127 -0
  204. package/docs/personas.md +115 -0
  205. package/package.json +1 -1
  206. package/scripts/_backfill_skill_domains.py +140 -0
  207. package/scripts/_emit_domain_table.py +35 -0
  208. package/scripts/install-hooks.sh +21 -4
  209. package/scripts/lint_context_spine_usage.py +133 -0
  210. package/scripts/lint_roadmap_complexity.py +37 -0
  211. package/scripts/lint_skill_tools.py +168 -0
  212. package/scripts/schemas/skill.schema.json +15 -1
  213. package/scripts/skill_linter.py +19 -4
  214. package/scripts/skill_tools/__init__.py +22 -0
  215. package/scripts/skill_tools/audit_persona_coverage.py +147 -0
  216. package/scripts/skill_tools/run_block_d_eval.py +129 -0
  217. package/scripts/skill_tools/score_skill_relevance.py +169 -0
  218. package/scripts/skill_tools/suggest_skill_for_task.py +113 -0
@@ -1,7 +1,10 @@
1
1
  ---
2
2
  name: fe-design
3
3
  description: "Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.py."
4
+ personas:
5
+ - frontend-engineer
4
6
  source: package
7
+ domain: engineering
5
8
  ---
6
9
 
7
10
  # Frontend Design Skill (Reference)
@@ -200,7 +203,7 @@ Step indicator (1 — 2 — 3)
200
203
 
201
204
  When `directives/ui/design.py` (or any caller) cites this skill:
202
205
 
203
- 1. **Confirm the audit ran first** — `state.ui_audit` from [`existing-ui-audit`](../existing-ui-audit/SKILL.md) is mandatory. Stop and request the audit if missing.
206
+ 1. **Inspect `state.ui_audit` first** — review the audit produced by [`existing-ui-audit`](../existing-ui-audit/SKILL.md); it is mandatory. Stop and request the audit if missing.
204
207
  2. **Pick the smallest matching section** — Component Architecture, Form Design, Table Design, Responsive Strategy, Accessibility, or UX Principles. Cite by H2/H3 heading, never paste the whole skill.
205
208
  3. **Defer to audit findings** — when the audit pins a project pattern (token, primitive, layout convention), use it. The heuristics here are fallbacks for gaps, not overrides.
206
209
  4. **Defer to the stack apply skill** — Blade vs. Livewire vs. Flux vs. React-shadcn choices come from the dispatched impl skill, never from this reference.
@@ -2,6 +2,7 @@
2
2
  name: feature-planning
3
3
  description: "Use when the user says "plan a feature", "brainstorm", "explore this idea", or wants to go from idea to structured plan and roadmap."
4
4
  source: package
5
+ domain: product
5
6
  ---
6
7
 
7
8
  # feature-planning
@@ -2,6 +2,7 @@
2
2
  name: file-editor
3
3
  description: "Use when opening edited files in the user's IDE. Reads settings from .agent-settings.yml to determine IDE and whether auto-open is enabled."
4
4
  source: package
5
+ domain: process
5
6
  execution:
6
7
  type: assisted
7
8
  handler: shell
@@ -2,6 +2,7 @@
2
2
  name: finishing-a-development-branch
3
3
  description: "Use when the feature is implementation-complete and the next step is 'ship it' — verifies, cleans up, and routes to merge/PR/park/discard — even when the user just says 'I'm done, what now?'."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # finishing-a-development-branch
@@ -2,6 +2,7 @@
2
2
  name: flux
3
3
  description: "Use when the project uses `livewire/flux` — dispatched by `directives/ui/{apply,review,polish}.py`. Covers Flux components, slots, variants, and form primitives."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # flux
@@ -0,0 +1,145 @@
1
+ ---
2
+ name: form-handler
3
+ description: "Use when designing or reviewing a form — validation timing, error display, submission lifecycle, optimistic UI, dirty/pristine state, idempotency — even on 'why does submit double-fire?'."
4
+ personas:
5
+ - frontend-engineer
6
+ source: package
7
+ domain: engineering
8
+ ---
9
+
10
+ # form-handler
11
+
12
+ > Pick the validation timing, lay out error placement, sequence the
13
+ > submission lifecycle, and decide where (and whether) to use
14
+ > optimistic UI. Stack-agnostic — Livewire, Inertia, React Hook Form,
15
+ > server-rendered Blade — the lens is the same. Pair with
16
+ > [`laravel-validation`](../laravel-validation/SKILL.md) for
17
+ > server-side rules and [`accessibility-auditor`](../accessibility-auditor/SKILL.md)
18
+ > for label / error a11y.
19
+
20
+ ## When to use
21
+
22
+ - A new form is being designed (login, signup, settings, multi-step
23
+ wizard) and the validation strategy is unsettled.
24
+ - A form bug shows up: double-submission, lost data on validation
25
+ fail, error not announced, optimistic update flicker.
26
+ - A wizard or multi-step flow needs state across steps and the
27
+ ownership of dirty / pristine state is unclear.
28
+ - German triggers: "Formular bauen", "wann validieren?",
29
+ "Submit feuert doppelt".
30
+
31
+ Do NOT use when:
32
+
33
+ - The screen is read-only / display-only — no form, skip.
34
+ - The question is purely server-side validation rules — route to
35
+ [`laravel-validation`](../laravel-validation/SKILL.md) (or the
36
+ stack equivalent).
37
+ - The question is form *layout* / spacing — route to
38
+ [`fe-design`](../fe-design/SKILL.md) or
39
+ [`tailwind-engineer`](../tailwind-engineer/SKILL.md).
40
+
41
+ ## Procedure
42
+
43
+ ### 1. Identify field types, pick validation timing
44
+
45
+ Inspect every field on the form (text, password, async-checked,
46
+ file, multi-step) before choosing timing. Three knobs, picked per
47
+ field:
48
+
49
+ | Timing | When |
50
+ |---|---|
51
+ | On submit only | Forms with privacy concerns (passwords); short forms |
52
+ | On blur | Default — feedback when the user finishes the field |
53
+ | On change (debounced) | Typing-feedback fields (username availability, password strength) |
54
+
55
+ Avoid validate-on-change for the whole form — premature errors
56
+ shame the user. Username-availability is the canonical exception.
57
+
58
+ ### 2. Lock the error display contract
59
+
60
+ Per field: error message location (below field), text-based
61
+ (never colour-only), `aria-describedby` wired, focus moves to
62
+ **first** error on submit-fail. Per form: a summary box at top
63
+ that lists every error with anchor links — required for forms
64
+ > 5 fields and any wizard step.
65
+
66
+ ### 3. Sequence the submission lifecycle
67
+
68
+ Order matters; bake into one helper:
69
+
70
+ 1. Disable the submit button (idempotency).
71
+ 2. Run client-side validation; bail on failure with focus to
72
+ first error.
73
+ 3. Mark optimistic state if applicable (step 5).
74
+ 4. POST to server.
75
+ 5. On 2xx: clear dirty state, show success, route or reset.
76
+ 6. On 4xx: surface field errors per the display contract; restore
77
+ submit button; **do not** lose user input.
78
+ 7. On 5xx: keep input, show retry CTA, log to error tracker.
79
+
80
+ A submit handler that skips step 1 is a duplicate-record bug
81
+ waiting to fire on slow networks.
82
+
83
+ ### 4. Decide on optimistic UI per action
84
+
85
+ Optimistic UI is only safe when **rollback is cheap and visible**:
86
+ toggling a like, marking read, in-list reorder. It is unsafe for:
87
+ multi-field forms, money movements, anything with downstream
88
+ notifications. Default to non-optimistic; opt in per action with
89
+ a documented rollback path.
90
+
91
+ ### 5. Track dirty state and unsaved-changes guard
92
+
93
+ Pristine = identical to the server's last-known value. Dirty =
94
+ any difference. On route-leave with dirty form, prompt
95
+ confirmation (browser `beforeunload` for full nav, in-app modal
96
+ for client-side route changes). For wizards, dirty state is
97
+ per-step; submit at step N validates only that step's fields,
98
+ final submit re-validates the whole payload server-side.
99
+
100
+ ## Output format
101
+
102
+ Return:
103
+
104
+ 1. Validation contract — per-field timing + error-display rules.
105
+ 2. Submit lifecycle — the 7-step sequence with any deviations called out.
106
+ 3. Risk surface — optimistic-UI rollback path, dirty guard, idempotency,
107
+ server contract (endpoint, status codes, error shape).
108
+
109
+ Concrete shape:
110
+
111
+ ```
112
+ Form: <name / route>
113
+ Validation timing: per field — <field: timing>
114
+ Error display: below field + summary box (≥ 5 fields)
115
+ Submit lifecycle: <list of steps 1–7 with any deviations>
116
+ Optimistic UI: <none | per action — list with rollback path>
117
+ Dirty guard: <yes/no — and the route-leave hook>
118
+ Idempotency: <strategy — disable + token? request id?>
119
+ Server contract: <endpoint, status codes, error shape>
120
+ ```
121
+
122
+ ## Gotcha
123
+
124
+ - Disabling the submit button without showing a spinner reads as
125
+ "broken UI"; pair the disable with a visible busy state.
126
+ - Validation-on-change for a password creates a bad UX: errors
127
+ appear before the user has finished typing. Validate-on-blur
128
+ with a single re-validate-on-change *after* the first failure.
129
+ - Optimistic UI + slow network = the user sees success then a
130
+ rollback; that is worse than waiting. Pick optimistic only when
131
+ the request is < 300 ms p95.
132
+ - Wizard "save & continue" buttons that POST per step double the
133
+ failure surface; only do this if the back-end can resume.
134
+ Otherwise hold state client-side and POST once at the end.
135
+
136
+ ## Do NOT
137
+
138
+ - Do NOT trust client-side validation alone; server-side is the
139
+ contract. Client-side is UX, not safety.
140
+ - Do NOT clear the form on validation failure; the user's input
141
+ is sacred until the server says it is safely saved.
142
+ - Do NOT use colour as the only error signal; that is both an a11y
143
+ failure and a print / colour-blind regression.
144
+ - Do NOT enable optimistic UI by default; the rollback story has
145
+ to fit on one line, or it does not ship optimistic.
@@ -4,6 +4,7 @@ description: "Use when diagnosing where a SaaS or product funnel leaks — visit
4
4
  status: active
5
5
  tier: senior
6
6
  source: package
7
+ domain: product
7
8
  ---
8
9
 
9
10
  # funnel-analysis
@@ -2,6 +2,7 @@
2
2
  name: git-workflow
3
3
  description: "Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git."
4
4
  source: package
5
+ domain: process
5
6
  execution:
6
7
  type: assisted
7
8
  handler: internal
@@ -2,6 +2,7 @@
2
2
  name: github-ci
3
3
  description: "Use when working with GitHub Actions — workflow YAML, quality gates, test matrices, deployment triggers, reusable workflows — even when the user just says 'my CI is failing' or 'add a check'."
4
4
  source: package
5
+ domain: devops
5
6
  ---
6
7
 
7
8
  # github-ci
@@ -2,6 +2,7 @@
2
2
  name: grafana
3
3
  description: "Use when working with Grafana — dashboards, Loki LogQL queries, alerting rules, monitoring panels — even when the user just says 'build me a dashboard' or 'query the logs' without naming Grafana."
4
4
  source: package
5
+ domain: devops
5
6
  ---
6
7
 
7
8
  # Grafana Skill
@@ -2,6 +2,7 @@
2
2
  name: guideline-writing
3
3
  description: "Use when creating or editing a guideline in docs/guidelines/ — reference material cited by skills, no auto-triggers — even when the user just says 'write up our naming conventions'."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  <!-- cloud_safe: degrade -->
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: incident-commander
3
+ description: "Use during or right after an incident — frames severity, sets comms cadence, drafts the post-mortem skeleton — even when the user just says 'production is down' or 'wir haben einen Vorfall'."
4
+ personas:
5
+ - senior-engineer
6
+ - critical-challenger
7
+ source: package
8
+ domain: process
9
+ ---
10
+
11
+ # incident-commander
12
+
13
+ > Run the **coordination layer** during an incident: classify
14
+ > severity, set comms cadence, hold a clean timeline, and draft the
15
+ > post-mortem skeleton when the dust settles. This skill does **not**
16
+ > debug the system — that is the engineer's job. The commander keeps
17
+ > the room oriented so the engineer can think.
18
+
19
+ ## When to use
20
+
21
+ - Production is degraded or down and someone needs to coordinate.
22
+ - A critical job, queue, or third-party is failing and the team is
23
+ scrambling.
24
+ - A near-miss happened and a post-mortem is being drafted.
25
+ - German triggers: "Vorfall", "Prod ist down", "wer übernimmt
26
+ Comms?".
27
+
28
+ Do NOT use when:
29
+
30
+ - The system is healthy and the concern is a future outage —
31
+ route to [`risk-officer`](../risk-officer/SKILL.md) instead.
32
+ - The user wants the bug fixed — route to `/bug-investigate` and
33
+ `/bug-fix`. The commander coordinates; engineers debug.
34
+ - The incident is a security breach — route to
35
+ [`threat-modeling`](../threat-modeling/SKILL.md) first; the
36
+ commander still runs comms but the response shape changes.
37
+
38
+ ## Procedure
39
+
40
+ ### 1. Inspect the signal and classify severity
41
+
42
+ | SEV | Trigger |
43
+ |---|---|
44
+ | SEV-1 | User-facing outage, data loss risk, revenue impact |
45
+ | SEV-2 | Major degradation, workaround exists |
46
+ | SEV-3 | Single-feature broken, low blast radius |
47
+ | SEV-4 | Internal-only, not user-visible |
48
+
49
+ Pick the highest SEV any signal supports. Downgrades happen later
50
+ with evidence; never start low to avoid noise.
51
+
52
+ ### 2. Set the comms cadence
53
+
54
+ - **Internal channel** — single thread; no side-channels.
55
+ - **Update interval** — SEV-1 every 15 min, SEV-2 every 30 min,
56
+ SEV-3/4 on state change.
57
+ - **Status page** — update on SEV-1 / SEV-2; on by default unless
58
+ the user opts out with a stated reason.
59
+ - **Stakeholder list** — who hears each update (eng-lead, PO,
60
+ support, leadership). Pre-decide so updates are not rewritten
61
+ per-recipient.
62
+
63
+ ### 3. Hold the timeline
64
+
65
+ Append-only log: timestamp + actor + observation. No edits, no
66
+ "actually it was earlier" — corrections are new entries. Drives
67
+ the post-mortem and prevents memory rewrite.
68
+
69
+ ### 4. Drive to mitigation, not root cause
70
+
71
+ During the incident, the question is *"what makes the bleeding
72
+ stop?"* Root cause is for after. Document the gap explicitly —
73
+ "mitigated, root cause unknown" is a valid intermediate state.
74
+
75
+ ### 5. Draft the post-mortem skeleton
76
+
77
+ Once stable:
78
+
79
+ - **Summary** — one paragraph, blame-free.
80
+ - **Timeline** — copy from step 3.
81
+ - **Impact** — users, duration, data, revenue.
82
+ - **What went well** — at least one item; finding none is a smell.
83
+ - **What went wrong** — process, tooling, signals, gaps.
84
+ - **Action items** — owned, sized, with a trigger for completion.
85
+
86
+ Hand off the skeleton; the engineer fills root cause and the team
87
+ adds action items.
88
+
89
+ ### 6. Validate the handoff
90
+
91
+ Before declaring the incident handed off, verify: SEV is set, comms
92
+ cadence is announced, the timeline has at least one entry per
93
+ update, mitigation state is explicit (`active` / `mitigated` /
94
+ `resolved`), and a post-mortem owner is assigned. Ensure no field
95
+ is left as the placeholder default.
96
+
97
+ ## Output format
98
+
99
+ The incident record is a single block with these ordered fields:
100
+
101
+ 1. `SEV:` — one of `1` / `2` / `3` / `4`
102
+ 2. `State:` — one of `active` / `mitigated` / `resolved` / `post-mortem`
103
+ 3. `Started:` and `Channel:` — timestamp and single thread/room
104
+ 4. `Cadence:` and `Timeline:` — update interval and append-only log
105
+ 5. `Mitigation:`, `Root cause:`, `Post-mortem owner:` — explicit values
106
+ or `unknown`; never blank
107
+
108
+ ```
109
+ Incident
110
+ SEV: 1 | 2 | 3 | 4
111
+ State: active | mitigated | resolved | post-mortem
112
+ Started: <timestamp>
113
+ Channel: <thread / room>
114
+ Cadence: <interval>
115
+
116
+ Timeline (append-only):
117
+ - <ts> <actor> <observation>
118
+ - ...
119
+
120
+ Mitigation: <action> | unknown
121
+ Root cause: <hypothesis> | unknown — investigation deferred to post-mortem
122
+ Post-mortem owner: <role>
123
+ ```
124
+
125
+ ## Gotcha
126
+
127
+ - The commander does not also debug. Splitting roles keeps the room
128
+ oriented; one person doing both starves comms.
129
+ - "We do not need a post-mortem" is almost always wrong. Even
130
+ near-misses earn a one-page write-up.
131
+ - The first SEV classification is rarely the final one — surface
132
+ upgrades / downgrades explicitly with a reason.
133
+
134
+ ## Do NOT
135
+
136
+ - Do NOT debug from this skill; route to engineering skills.
137
+ - Do NOT skip status-page updates on SEV-1 because "it'll be quick".
138
+ - Do NOT close an incident without a post-mortem owner assigned.
139
+ - Do NOT edit the timeline after the fact; corrections are new
140
+ entries.
@@ -2,6 +2,7 @@
2
2
  name: jira-integration
3
3
  description: "Use when the user says "check Jira", "create ticket", "update issue", or needs JQL queries, ticket transitions, or branch-to-ticket linking."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # Jira Skill
@@ -2,6 +2,7 @@
2
2
  name: jobs-events
3
3
  description: "Use when creating Laravel jobs, queued workflows, events, or listeners. Covers clear responsibilities, safe serialization, and retry/failure handling."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # jobs-events
@@ -2,6 +2,7 @@
2
2
  name: judge-bug-hunter
3
3
  description: "Use when a diff needs correctness review — null-safety, edge cases, off-by-one, races, error handling — dispatched by /review-changes, /do-and-judge, /judge, even without 'judge'."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # judge-bug-hunter
@@ -2,6 +2,7 @@
2
2
  name: judge-code-quality
3
3
  description: "Use when a diff needs a readability review — naming, single-responsibility, DRY, dead code, mismatch with codebase conventions — dispatched by /review-changes, /do-and-judge, /judge."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # judge-code-quality
@@ -1,7 +1,10 @@
1
1
  ---
2
2
  name: judge-security-auditor
3
3
  description: "Use when a diff may introduce security risk — authZ, injection, secrets, unsafe deserialization, SSRF, XSS, mass assignment — dispatched by /review-changes, /do-and-judge, /judge."
4
+ personas:
5
+ - security-engineer
4
6
  source: package
7
+ domain: quality
5
8
  ---
6
9
 
7
10
  # judge-security-auditor
@@ -4,6 +4,7 @@ description: "Use when a diff may lack tests — missing assertions, uncovered b
4
4
  personas:
5
5
  - qa
6
6
  source: package
7
+ domain: quality
7
8
  ---
8
9
 
9
10
  # judge-test-coverage
@@ -2,6 +2,7 @@
2
2
  name: laravel
3
3
  description: "Writes Laravel code following framework conventions, project architecture, and modern best practices for controllers, requests, services, jobs, events, policies, and application structure."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel
@@ -2,6 +2,7 @@
2
2
  name: laravel-horizon
3
3
  description: "Use when working with Laravel queues in production — Horizon dashboard, worker supervision, job metrics, balancing strategies — even when the user just says 'my jobs are piling up'."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-horizon
@@ -2,6 +2,7 @@
2
2
  name: laravel-mail
3
3
  description: "Use when building Laravel emails — Mailables, Markdown templates, queued sending, attachments, previews — even when the user says 'send this as an email' without naming Mailables."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-mail
@@ -2,6 +2,7 @@
2
2
  name: laravel-middleware
3
3
  description: "Use when creating or modifying Laravel middleware — request/response filtering, groups, priority, terminable middleware, or route-level assignment."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-middleware
@@ -2,6 +2,7 @@
2
2
  name: laravel-notifications
3
3
  description: "Use when sending notifications via mail, Slack, database, or custom channels — with queuing, on-demand recipients, and notification preferences."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-notifications
@@ -2,6 +2,7 @@
2
2
  name: laravel-pennant
3
3
  description: "Use when working with feature flags — Laravel Pennant, gradual rollouts, A/B testing, scope-based flags — even when the user just says 'hide this behind a flag' without naming Pennant."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-pennant
@@ -2,6 +2,7 @@
2
2
  name: laravel-pulse
3
3
  description: "Use when setting up Laravel Pulse — real-time dashboard, built-in cards, custom recorders, performance insights — even when the user just says 'I need app monitoring' without naming Pulse."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-pulse
@@ -2,6 +2,7 @@
2
2
  name: laravel-reverb
3
3
  description: "Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-reverb
@@ -2,6 +2,7 @@
2
2
  name: laravel-scheduling
3
3
  description: "Use when configuring Laravel task scheduling — cron expressions, frequency helpers, overlap prevention, maintenance mode, or output handling."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-scheduling
@@ -2,6 +2,7 @@
2
2
  name: laravel-validation
3
3
  description: "Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # laravel-validation