@event4u/agent-config 1.33.0 → 1.34.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 (200) hide show
  1. package/.agent-src/commands/review-changes.md +13 -8
  2. package/.agent-src/personas/README.md +12 -21
  3. package/.agent-src/personas/_template-specialist/persona.md +89 -0
  4. package/.agent-src/personas/backend-architect.md +96 -0
  5. package/.agent-src/personas/eloquent-tamer.md +96 -0
  6. package/.agent-src/personas/frontend-engineer.md +100 -0
  7. package/.agent-src/personas/qa.md +27 -2
  8. package/.agent-src/personas/security-engineer.md +100 -0
  9. package/.agent-src/skills/accessibility-auditor/SKILL.md +132 -0
  10. package/.agent-src/skills/adr-create/SKILL.md +1 -0
  11. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  12. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -0
  13. package/.agent-src/skills/agents-md-thin-root/SKILL.md +1 -0
  14. package/.agent-src/skills/ai-council/SKILL.md +1 -0
  15. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -0
  16. package/.agent-src/skills/analysis-skill-router/SKILL.md +1 -0
  17. package/.agent-src/skills/api-design/SKILL.md +3 -0
  18. package/.agent-src/skills/api-endpoint/SKILL.md +1 -0
  19. package/.agent-src/skills/api-testing/SKILL.md +1 -0
  20. package/.agent-src/skills/architecture-review-lens/SKILL.md +137 -0
  21. package/.agent-src/skills/artisan-commands/SKILL.md +1 -0
  22. package/.agent-src/skills/async-python-patterns/SKILL.md +1 -0
  23. package/.agent-src/skills/authz-review/SKILL.md +4 -0
  24. package/.agent-src/skills/aws-infrastructure/SKILL.md +1 -0
  25. package/.agent-src/skills/blade-ui/SKILL.md +1 -0
  26. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +3 -0
  27. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
  28. package/.agent-src/skills/check-refs/SKILL.md +1 -0
  29. package/.agent-src/skills/code-refactoring/SKILL.md +1 -0
  30. package/.agent-src/skills/code-review/SKILL.md +1 -0
  31. package/.agent-src/skills/command-routing/SKILL.md +1 -0
  32. package/.agent-src/skills/command-writing/SKILL.md +1 -0
  33. package/.agent-src/skills/composer-packages/SKILL.md +1 -0
  34. package/.agent-src/skills/context-authoring/SKILL.md +1 -0
  35. package/.agent-src/skills/context-document/SKILL.md +1 -0
  36. package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -0
  37. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +1 -0
  38. package/.agent-src/skills/copilot-config/SKILL.md +1 -0
  39. package/.agent-src/skills/dashboard-design/SKILL.md +1 -0
  40. package/.agent-src/skills/data-flow-mapper/SKILL.md +1 -0
  41. package/.agent-src/skills/database/SKILL.md +3 -0
  42. package/.agent-src/skills/dcf-modeling/SKILL.md +1 -0
  43. package/.agent-src/skills/decision-record/SKILL.md +143 -0
  44. package/.agent-src/skills/deep-reading-analyst/SKILL.md +1 -0
  45. package/.agent-src/skills/defense-in-depth/SKILL.md +1 -0
  46. package/.agent-src/skills/dependency-upgrade/SKILL.md +1 -0
  47. package/.agent-src/skills/description-assist/SKILL.md +1 -0
  48. package/.agent-src/skills/design-review/SKILL.md +1 -0
  49. package/.agent-src/skills/devcontainer/SKILL.md +1 -0
  50. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -0
  51. package/.agent-src/skills/docker/SKILL.md +1 -0
  52. package/.agent-src/skills/dto-creator/SKILL.md +1 -0
  53. package/.agent-src/skills/eloquent/SKILL.md +3 -0
  54. package/.agent-src/skills/error-handling-patterns/SKILL.md +1 -0
  55. package/.agent-src/skills/estimate-ticket/SKILL.md +1 -0
  56. package/.agent-src/skills/existing-ui-audit/SKILL.md +3 -0
  57. package/.agent-src/skills/fe-design/SKILL.md +4 -1
  58. package/.agent-src/skills/feature-planning/SKILL.md +1 -0
  59. package/.agent-src/skills/file-editor/SKILL.md +1 -0
  60. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +1 -0
  61. package/.agent-src/skills/flux/SKILL.md +1 -0
  62. package/.agent-src/skills/form-handler/SKILL.md +145 -0
  63. package/.agent-src/skills/funnel-analysis/SKILL.md +1 -0
  64. package/.agent-src/skills/git-workflow/SKILL.md +1 -0
  65. package/.agent-src/skills/github-ci/SKILL.md +1 -0
  66. package/.agent-src/skills/grafana/SKILL.md +1 -0
  67. package/.agent-src/skills/guideline-writing/SKILL.md +1 -0
  68. package/.agent-src/skills/incident-commander/SKILL.md +140 -0
  69. package/.agent-src/skills/jira-integration/SKILL.md +1 -0
  70. package/.agent-src/skills/jobs-events/SKILL.md +1 -0
  71. package/.agent-src/skills/judge-bug-hunter/SKILL.md +1 -0
  72. package/.agent-src/skills/judge-code-quality/SKILL.md +1 -0
  73. package/.agent-src/skills/judge-security-auditor/SKILL.md +3 -0
  74. package/.agent-src/skills/judge-test-coverage/SKILL.md +1 -0
  75. package/.agent-src/skills/laravel/SKILL.md +1 -0
  76. package/.agent-src/skills/laravel-horizon/SKILL.md +1 -0
  77. package/.agent-src/skills/laravel-mail/SKILL.md +1 -0
  78. package/.agent-src/skills/laravel-middleware/SKILL.md +1 -0
  79. package/.agent-src/skills/laravel-notifications/SKILL.md +1 -0
  80. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -0
  81. package/.agent-src/skills/laravel-pulse/SKILL.md +1 -0
  82. package/.agent-src/skills/laravel-reverb/SKILL.md +1 -0
  83. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -0
  84. package/.agent-src/skills/laravel-validation/SKILL.md +1 -0
  85. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -0
  86. package/.agent-src/skills/lint-skills/SKILL.md +1 -0
  87. package/.agent-src/skills/livewire/SKILL.md +1 -0
  88. package/.agent-src/skills/livewire-architect/SKILL.md +158 -0
  89. package/.agent-src/skills/logging-monitoring/SKILL.md +1 -0
  90. package/.agent-src/skills/markitdown/SKILL.md +1 -0
  91. package/.agent-src/skills/mcp/SKILL.md +1 -0
  92. package/.agent-src/skills/mcp-builder/SKILL.md +1 -0
  93. package/.agent-src/skills/md-language-check/SKILL.md +1 -0
  94. package/.agent-src/skills/merge-conflicts/SKILL.md +1 -0
  95. package/.agent-src/skills/migration-architect/SKILL.md +119 -0
  96. package/.agent-src/skills/migration-creator/SKILL.md +1 -0
  97. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +2 -1
  98. package/.agent-src/skills/module-management/SKILL.md +1 -0
  99. package/.agent-src/skills/multi-tenancy/SKILL.md +1 -0
  100. package/.agent-src/skills/okr-tree-modeling/SKILL.md +1 -0
  101. package/.agent-src/skills/openapi/SKILL.md +1 -0
  102. package/.agent-src/skills/override-management/SKILL.md +1 -0
  103. package/.agent-src/skills/performance/SKILL.md +1 -0
  104. package/.agent-src/skills/performance-analysis/SKILL.md +1 -0
  105. package/.agent-src/skills/persona-writing/SKILL.md +1 -0
  106. package/.agent-src/skills/pest-testing/SKILL.md +1 -0
  107. package/.agent-src/skills/php-coder/SKILL.md +1 -0
  108. package/.agent-src/skills/php-debugging/SKILL.md +1 -0
  109. package/.agent-src/skills/php-service/SKILL.md +1 -0
  110. package/.agent-src/skills/playwright-architect/SKILL.md +141 -0
  111. package/.agent-src/skills/playwright-testing/SKILL.md +1 -0
  112. package/.agent-src/skills/po-discovery/SKILL.md +127 -0
  113. package/.agent-src/skills/project-analysis-core/SKILL.md +1 -0
  114. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -0
  115. package/.agent-src/skills/project-analysis-laravel/SKILL.md +1 -0
  116. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +1 -0
  117. package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -0
  118. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -0
  119. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -0
  120. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +1 -0
  121. package/.agent-src/skills/project-analyzer/SKILL.md +1 -0
  122. package/.agent-src/skills/project-docs/SKILL.md +1 -0
  123. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -0
  124. package/.agent-src/skills/prompt-optimizer/SKILL.md +1 -0
  125. package/.agent-src/skills/quality-tools/SKILL.md +1 -0
  126. package/.agent-src/skills/react-native-setup/SKILL.md +1 -0
  127. package/.agent-src/skills/react-shadcn-ui/SKILL.md +1 -0
  128. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -0
  129. package/.agent-src/skills/readme-writing/SKILL.md +1 -0
  130. package/.agent-src/skills/readme-writing-package/SKILL.md +1 -0
  131. package/.agent-src/skills/receiving-code-review/SKILL.md +1 -0
  132. package/.agent-src/skills/refine-prompt/SKILL.md +1 -0
  133. package/.agent-src/skills/refine-ticket/SKILL.md +1 -0
  134. package/.agent-src/skills/repomix-packer/SKILL.md +1 -0
  135. package/.agent-src/skills/requesting-code-review/SKILL.md +1 -0
  136. package/.agent-src/skills/review-routing/SKILL.md +1 -0
  137. package/.agent-src/skills/rice-prioritization/SKILL.md +1 -0
  138. package/.agent-src/skills/risk-officer/SKILL.md +141 -0
  139. package/.agent-src/skills/roadmap-management/SKILL.md +1 -0
  140. package/.agent-src/skills/roadmap-writing/SKILL.md +1 -0
  141. package/.agent-src/skills/rtk-output-filtering/SKILL.md +1 -0
  142. package/.agent-src/skills/rule-writing/SKILL.md +1 -0
  143. package/.agent-src/skills/script-writing/SKILL.md +1 -0
  144. package/.agent-src/skills/secrets-management/SKILL.md +1 -0
  145. package/.agent-src/skills/security/SKILL.md +1 -0
  146. package/.agent-src/skills/security-audit/SKILL.md +1 -0
  147. package/.agent-src/skills/sentry-integration/SKILL.md +1 -0
  148. package/.agent-src/skills/sequential-thinking/SKILL.md +1 -0
  149. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -0
  150. package/.agent-src/skills/skill-management/SKILL.md +1 -0
  151. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -0
  152. package/.agent-src/skills/skill-writing/SKILL.md +1 -0
  153. package/.agent-src/skills/sql-writing/SKILL.md +1 -0
  154. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +149 -0
  155. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -0
  156. package/.agent-src/skills/systematic-debugging/SKILL.md +1 -0
  157. package/.agent-src/skills/tailwind-engineer/SKILL.md +130 -0
  158. package/.agent-src/skills/tech-debt-tracker/SKILL.md +152 -0
  159. package/.agent-src/skills/technical-specification/SKILL.md +1 -0
  160. package/.agent-src/skills/terraform/SKILL.md +1 -0
  161. package/.agent-src/skills/terragrunt/SKILL.md +1 -0
  162. package/.agent-src/skills/test-driven-development/SKILL.md +1 -0
  163. package/.agent-src/skills/test-performance/SKILL.md +1 -0
  164. package/.agent-src/skills/testing-anti-patterns/SKILL.md +1 -0
  165. package/.agent-src/skills/threat-modeling/SKILL.md +3 -0
  166. package/.agent-src/skills/token-optimizer/SKILL.md +1 -0
  167. package/.agent-src/skills/traefik/SKILL.md +1 -0
  168. package/.agent-src/skills/ui-component-architect/SKILL.md +153 -0
  169. package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -0
  170. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -0
  171. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -0
  172. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
  173. package/.agent-src/skills/validate-feature-fit/SKILL.md +1 -0
  174. package/.agent-src/skills/verify-completion-evidence/SKILL.md +1 -0
  175. package/.agent-src/skills/websocket/SKILL.md +1 -0
  176. package/.claude-plugin/marketplace.json +15 -1
  177. package/AGENTS.md +1 -0
  178. package/CHANGELOG.md +41 -0
  179. package/README.md +2 -2
  180. package/docs/architecture.md +1 -1
  181. package/docs/catalog.md +17 -3
  182. package/docs/contracts/file-ownership-matrix.json +506 -0
  183. package/docs/contracts/persona-schema.md +136 -0
  184. package/docs/contracts/skill-domains.md +143 -0
  185. package/docs/decisions/ADR-005-subagent-worktrees.md +120 -0
  186. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +114 -0
  187. package/docs/decisions/INDEX.md +3 -0
  188. package/docs/personas.md +115 -0
  189. package/package.json +1 -1
  190. package/scripts/_backfill_skill_domains.py +140 -0
  191. package/scripts/_emit_domain_table.py +35 -0
  192. package/scripts/install-hooks.sh +21 -4
  193. package/scripts/lint_skill_tools.py +168 -0
  194. package/scripts/schemas/skill.schema.json +6 -1
  195. package/scripts/skill_linter.py +19 -4
  196. package/scripts/skill_tools/__init__.py +22 -0
  197. package/scripts/skill_tools/audit_persona_coverage.py +147 -0
  198. package/scripts/skill_tools/run_block_d_eval.py +129 -0
  199. package/scripts/skill_tools/score_skill_relevance.py +169 -0
  200. package/scripts/skill_tools/suggest_skill_for_task.py +113 -0
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: decision-record
3
+ description: "Use when locking a trade-off, structuring an ADR draft, or wiring supersession chains — frames options · trade-offs · consequences before the file is written by `adr-create`."
4
+ personas:
5
+ - senior-engineer
6
+ - critical-challenger
7
+ - product-owner
8
+ source: package
9
+ domain: process
10
+ ---
11
+
12
+ # decision-record
13
+
14
+ > Shape the **thinking** behind an architectural decision: list the
15
+ > options, expose trade-offs, lock the chosen variant, and wire the
16
+ > supersession chain. Hands off to [`adr-create`](../adr-create/SKILL.md)
17
+ > for file mechanics (numbering, index, frontmatter). This skill does
18
+ > not write the ADR file itself.
19
+
20
+ ## When to use
21
+
22
+ - A team is about to commit to a non-trivial architectural choice and
23
+ wants the trade-offs on paper first.
24
+ - Two engineers disagree on an approach — surface the options and
25
+ consequences before one wins by attrition.
26
+ - A previous decision needs revisiting; the result must `supersede:`
27
+ the older ADR with explicit rationale.
28
+ - German triggers: "lass uns das festzurren", "Trade-off-Matrix",
29
+ "welche Option ziehen wir?".
30
+
31
+ Do NOT use when:
32
+
33
+ - The file mechanics are the entire ask (numbering, regenerating the
34
+ index) — route directly to [`adr-create`](../adr-create/SKILL.md).
35
+ - The decision is reversible and small (e.g. variable rename) — ADRs
36
+ are for choices that constrain future work.
37
+ - The user wants a feature plan, not a decision — route to the
38
+ planning command instead.
39
+
40
+ ## Procedure
41
+
42
+ ### 1. State the decision in one sentence
43
+
44
+ *"We need to decide `X` because `Y`."* If you cannot, the decision
45
+ is not ripe — surface that and stop.
46
+
47
+ ### 2. Identify and enumerate options (≥ 2, usually ≤ 4)
48
+
49
+ Each option gets:
50
+
51
+ - **Name** — short, descriptive, never "option A / B / C".
52
+ - **Sketch** — what it actually does in one paragraph.
53
+ - **Cost / benefit** — three to five bullets per side, concrete.
54
+ - **Reversibility** — easy / costly / one-way (Bezos two-way / one-way
55
+ door framing).
56
+
57
+ Add an **explicit "do nothing"** option whenever it is plausible —
58
+ forces the user to compare the change against the status quo.
59
+
60
+ ### 3. Build the trade-off matrix
61
+
62
+ | Criterion | Option 1 | Option 2 | ... |
63
+ |---|---|---|---|
64
+ | Implementation cost | | | |
65
+ | Operational cost | | | |
66
+ | Reversibility | | | |
67
+ | Blast radius | | | |
68
+ | Time-to-value | | | |
69
+
70
+ Pick criteria that *separate* the options. Criteria where every
71
+ option scores the same are noise — drop them.
72
+
73
+ ### 4. Lock the choice + consequences
74
+
75
+ Write:
76
+
77
+ - **Decision:** *"We pick `<Option name>`."*
78
+ - **Consequences:** what becomes true, what becomes harder, what
79
+ becomes impossible. At least one of each, or admit that nothing
80
+ becomes harder (rare; verify).
81
+
82
+ ### 5. Wire the supersession chain (if any)
83
+
84
+ If this decision overrides a prior ADR:
85
+
86
+ - Cite the prior ADR id and one-line summary.
87
+ - State **what changed in the world** that justifies overriding —
88
+ not "we now think differently".
89
+ - Hand off the `supersedes:` linkage to `adr-create`.
90
+
91
+ ### 6. Hand off to file mechanics
92
+
93
+ Output the structured payload (below). The user — or
94
+ `adr-create` — turns it into the file.
95
+
96
+ ## Output format
97
+
98
+ ```
99
+ Decision: <one sentence>
100
+
101
+ Options:
102
+ 1. <name> — <sketch>
103
+ Pros: ...
104
+ Cons: ...
105
+ Reversibility: easy | costly | one-way
106
+ 2. ...
107
+ N. Do nothing — <sketch>
108
+
109
+ Trade-off matrix:
110
+ | Criterion | <opt 1> | <opt 2> | ... |
111
+ | ...
112
+
113
+ Locked: <chosen option name>
114
+
115
+ Consequences:
116
+ + <becomes true>
117
+ - <becomes harder>
118
+ ✗ <becomes impossible>
119
+
120
+ Supersedes: <ADR-XYZ "title"> (if any)
121
+ Trigger: <what changed> (if superseding)
122
+
123
+ Next: /adr-create with the payload above
124
+ ```
125
+
126
+ ## Gotcha
127
+
128
+ - "We compared the options" is not a comparison. The matrix must
129
+ separate them on at least two criteria.
130
+ - Pros without cons is advocacy, not analysis. If you cannot find
131
+ cons for the chosen option, you have not understood it yet.
132
+ - A supersession with no "what changed in the world" is a vibe
133
+ pivot. Reject and ask.
134
+
135
+ ## Do NOT
136
+
137
+ - Do NOT pick the option before listing them — the matrix is the
138
+ point, not the conclusion.
139
+ - Do NOT write the ADR file from this skill — `adr-create` owns
140
+ filenames, numbering, and index regeneration.
141
+ - Do NOT pad option counts to look thorough; two real options beat
142
+ four straw men.
143
+ - Do NOT silently update an old ADR; supersession is explicit.
@@ -3,6 +3,7 @@ name: deep-reading-analyst
3
3
  description: "Deep analysis of articles/long-form via thinking frameworks (SCQA, mental models, inversion) — 'analyze article', 'deep dive', 'extract insights', URL/text wanting depth not summary."
4
4
  status: active
5
5
  source: package
6
+ domain: discovery
6
7
  external_source: "https://github.com/ginobefun/deep-reading-analyst-skill/tree/26cd7dc9920e025d39751e396e707399022e49ef/src/deep-reading-analyst"
7
8
  refresh_trigger: "Upstream `ginobefun/deep-reading-analyst-skill` major rewrite (new framework added, dispatch table reshaped, or SHA pin invalidated by reference rename)."
8
9
  sunset_criterion: "Replace with a 50-line pointer skill if (a) all referenced modules are adopted as project-local guidelines (`docs/guidelines/agent-infra/{framework}.md`) AND (b) the dispatch logic moves into a project-native router."
@@ -2,6 +2,7 @@
2
2
  name: defense-in-depth
3
3
  description: "Use when validation needs entry, business-logic, environment, and instrumentation guards so a bad value cannot reach the failure point — turns a local bug fix into a structural one."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # defense-in-depth
@@ -2,6 +2,7 @@
2
2
  name: dependency-upgrade
3
3
  description: "Use when upgrading dependencies — "update Laravel", "bump PHP version", or "upgrade packages". Covers changelog review, breaking change detection, and verification."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # dependency-upgrade
@@ -2,6 +2,7 @@
2
2
  name: description-assist
3
3
  description: "Use when polishing a skill/rule/command/guideline frontmatter description — pushier phrasing, trigger coverage, undertrigger audit — even if the user just says 'make this pushier'."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  <!-- cloud_safe: degrade -->
@@ -2,6 +2,7 @@
2
2
  name: design-review
3
3
  description: "Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # design-review
@@ -2,6 +2,7 @@
2
2
  name: devcontainer
3
3
  description: "Use when configuring DevContainers or GitHub Codespaces — devcontainer.json, custom images, secrets, VS Code features — even when the user just says 'why does my Codespace not start'."
4
4
  source: package
5
+ domain: devops
5
6
  ---
6
7
 
7
8
  # devcontainer
@@ -2,6 +2,7 @@
2
2
  name: developer-like-execution
3
3
  description: "Use when implementing, debugging, refactoring, or reviewing code — enforces the think → analyze → verify → execute workflow — even when the user just says 'implement X' without naming it."
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: docker
3
3
  description: "Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'."
4
4
  source: package
5
+ domain: devops
5
6
  ---
6
7
 
7
8
  # docker
@@ -2,6 +2,7 @@
2
2
  name: dto-creator
3
3
  description: "Use when the user says "create a DTO", "new data transfer object", or needs to convert request/response data into a typed PHP class. Creates DTOs with SimpleDto base class and attribute mapping."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # dto-creator
@@ -1,7 +1,10 @@
1
1
  ---
2
2
  name: eloquent
3
3
  description: "Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions."
4
+ personas:
5
+ - eloquent-tamer
4
6
  source: package
7
+ domain: engineering
5
8
  ---
6
9
 
7
10
  # eloquent
@@ -2,6 +2,7 @@
2
2
  name: error-handling-patterns
3
3
  description: "Use when picking a failure-reporting strategy — exceptions vs Result types, recoverable vs not, retry / circuit-breaker / graceful degradation — decision framework only, catalogues externalized."
4
4
  source: package
5
+ domain: engineering
5
6
  status: active
6
7
  refresh_trigger: "≥30% of cited upstream pattern catalogues become deprecated, OR a new top-2 ecosystem (Python/JS/PHP/Go/Rust) ships a paradigm-shifting standard error model"
7
8
  sunset_criterion: "When the upstream framework docs (Laravel, FastAPI, Express, Axum, Effect-TS) all carry an equivalent in-tree decision framework AND consumer projects no longer cite this skill in PR reviews for two consecutive review cycles."
@@ -9,6 +9,7 @@ personas:
9
9
  - critical-challenger
10
10
  - ai-agent
11
11
  source: package
12
+ domain: product
12
13
  execution:
13
14
  type: assisted
14
15
  handler: internal
@@ -1,7 +1,10 @@
1
1
  ---
2
2
  name: existing-ui-audit
3
3
  description: "Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set."
4
+ personas:
5
+ - frontend-engineer
4
6
  source: package
7
+ domain: discovery
5
8
  ---
6
9
 
7
10
  # existing-ui-audit
@@ -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