@event4u/agent-config 1.32.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 (210) hide show
  1. package/.agent-src/commands/research/deep.md +149 -0
  2. package/.agent-src/commands/research/report.md +134 -0
  3. package/.agent-src/commands/research.md +43 -13
  4. package/.agent-src/commands/review-changes.md +13 -8
  5. package/.agent-src/personas/README.md +12 -21
  6. package/.agent-src/personas/_template-specialist/persona.md +89 -0
  7. package/.agent-src/personas/backend-architect.md +96 -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/qa.md +27 -2
  11. package/.agent-src/personas/security-engineer.md +100 -0
  12. package/.agent-src/skills/accessibility-auditor/SKILL.md +132 -0
  13. package/.agent-src/skills/adr-create/SKILL.md +1 -0
  14. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  15. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -0
  16. package/.agent-src/skills/agents-md-thin-root/SKILL.md +1 -0
  17. package/.agent-src/skills/ai-council/SKILL.md +1 -0
  18. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -0
  19. package/.agent-src/skills/analysis-skill-router/SKILL.md +1 -0
  20. package/.agent-src/skills/api-design/SKILL.md +3 -0
  21. package/.agent-src/skills/api-endpoint/SKILL.md +1 -0
  22. package/.agent-src/skills/api-testing/SKILL.md +1 -0
  23. package/.agent-src/skills/architecture-review-lens/SKILL.md +137 -0
  24. package/.agent-src/skills/artisan-commands/SKILL.md +1 -0
  25. package/.agent-src/skills/async-python-patterns/SKILL.md +1 -0
  26. package/.agent-src/skills/authz-review/SKILL.md +4 -0
  27. package/.agent-src/skills/aws-infrastructure/SKILL.md +1 -0
  28. package/.agent-src/skills/blade-ui/SKILL.md +1 -0
  29. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +3 -0
  30. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
  31. package/.agent-src/skills/check-refs/SKILL.md +1 -0
  32. package/.agent-src/skills/code-refactoring/SKILL.md +1 -0
  33. package/.agent-src/skills/code-review/SKILL.md +1 -0
  34. package/.agent-src/skills/command-routing/SKILL.md +1 -0
  35. package/.agent-src/skills/command-writing/SKILL.md +1 -0
  36. package/.agent-src/skills/composer-packages/SKILL.md +1 -0
  37. package/.agent-src/skills/context-authoring/SKILL.md +1 -0
  38. package/.agent-src/skills/context-document/SKILL.md +1 -0
  39. package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -0
  40. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +1 -0
  41. package/.agent-src/skills/copilot-config/SKILL.md +1 -0
  42. package/.agent-src/skills/dashboard-design/SKILL.md +1 -0
  43. package/.agent-src/skills/data-flow-mapper/SKILL.md +1 -0
  44. package/.agent-src/skills/database/SKILL.md +3 -0
  45. package/.agent-src/skills/dcf-modeling/SKILL.md +1 -0
  46. package/.agent-src/skills/decision-record/SKILL.md +143 -0
  47. package/.agent-src/skills/deep-reading-analyst/SKILL.md +1 -0
  48. package/.agent-src/skills/defense-in-depth/SKILL.md +1 -0
  49. package/.agent-src/skills/dependency-upgrade/SKILL.md +1 -0
  50. package/.agent-src/skills/description-assist/SKILL.md +1 -0
  51. package/.agent-src/skills/design-review/SKILL.md +1 -0
  52. package/.agent-src/skills/devcontainer/SKILL.md +1 -0
  53. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -0
  54. package/.agent-src/skills/docker/SKILL.md +1 -0
  55. package/.agent-src/skills/dto-creator/SKILL.md +1 -0
  56. package/.agent-src/skills/eloquent/SKILL.md +3 -0
  57. package/.agent-src/skills/error-handling-patterns/SKILL.md +1 -0
  58. package/.agent-src/skills/estimate-ticket/SKILL.md +1 -0
  59. package/.agent-src/skills/existing-ui-audit/SKILL.md +3 -0
  60. package/.agent-src/skills/fe-design/SKILL.md +4 -1
  61. package/.agent-src/skills/feature-planning/SKILL.md +1 -0
  62. package/.agent-src/skills/file-editor/SKILL.md +1 -0
  63. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +1 -0
  64. package/.agent-src/skills/flux/SKILL.md +1 -0
  65. package/.agent-src/skills/form-handler/SKILL.md +145 -0
  66. package/.agent-src/skills/funnel-analysis/SKILL.md +1 -0
  67. package/.agent-src/skills/git-workflow/SKILL.md +1 -0
  68. package/.agent-src/skills/github-ci/SKILL.md +1 -0
  69. package/.agent-src/skills/grafana/SKILL.md +1 -0
  70. package/.agent-src/skills/guideline-writing/SKILL.md +1 -0
  71. package/.agent-src/skills/incident-commander/SKILL.md +140 -0
  72. package/.agent-src/skills/jira-integration/SKILL.md +1 -0
  73. package/.agent-src/skills/jobs-events/SKILL.md +1 -0
  74. package/.agent-src/skills/judge-bug-hunter/SKILL.md +1 -0
  75. package/.agent-src/skills/judge-code-quality/SKILL.md +1 -0
  76. package/.agent-src/skills/judge-security-auditor/SKILL.md +3 -0
  77. package/.agent-src/skills/judge-test-coverage/SKILL.md +1 -0
  78. package/.agent-src/skills/laravel/SKILL.md +1 -0
  79. package/.agent-src/skills/laravel-horizon/SKILL.md +1 -0
  80. package/.agent-src/skills/laravel-mail/SKILL.md +1 -0
  81. package/.agent-src/skills/laravel-middleware/SKILL.md +1 -0
  82. package/.agent-src/skills/laravel-notifications/SKILL.md +1 -0
  83. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -0
  84. package/.agent-src/skills/laravel-pulse/SKILL.md +1 -0
  85. package/.agent-src/skills/laravel-reverb/SKILL.md +1 -0
  86. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -0
  87. package/.agent-src/skills/laravel-validation/SKILL.md +1 -0
  88. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -0
  89. package/.agent-src/skills/lint-skills/SKILL.md +1 -0
  90. package/.agent-src/skills/livewire/SKILL.md +1 -0
  91. package/.agent-src/skills/livewire-architect/SKILL.md +158 -0
  92. package/.agent-src/skills/logging-monitoring/SKILL.md +1 -0
  93. package/.agent-src/skills/markitdown/SKILL.md +1 -0
  94. package/.agent-src/skills/mcp/SKILL.md +1 -0
  95. package/.agent-src/skills/mcp-builder/SKILL.md +1 -0
  96. package/.agent-src/skills/md-language-check/SKILL.md +1 -0
  97. package/.agent-src/skills/merge-conflicts/SKILL.md +1 -0
  98. package/.agent-src/skills/migration-architect/SKILL.md +119 -0
  99. package/.agent-src/skills/migration-creator/SKILL.md +1 -0
  100. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +2 -1
  101. package/.agent-src/skills/module-management/SKILL.md +1 -0
  102. package/.agent-src/skills/multi-tenancy/SKILL.md +1 -0
  103. package/.agent-src/skills/okr-tree-modeling/SKILL.md +1 -0
  104. package/.agent-src/skills/openapi/SKILL.md +1 -0
  105. package/.agent-src/skills/override-management/SKILL.md +1 -0
  106. package/.agent-src/skills/performance/SKILL.md +1 -0
  107. package/.agent-src/skills/performance-analysis/SKILL.md +1 -0
  108. package/.agent-src/skills/persona-writing/SKILL.md +1 -0
  109. package/.agent-src/skills/pest-testing/SKILL.md +1 -0
  110. package/.agent-src/skills/php-coder/SKILL.md +1 -0
  111. package/.agent-src/skills/php-debugging/SKILL.md +1 -0
  112. package/.agent-src/skills/php-service/SKILL.md +1 -0
  113. package/.agent-src/skills/playwright-architect/SKILL.md +141 -0
  114. package/.agent-src/skills/playwright-testing/SKILL.md +1 -0
  115. package/.agent-src/skills/po-discovery/SKILL.md +127 -0
  116. package/.agent-src/skills/project-analysis-core/SKILL.md +1 -0
  117. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -0
  118. package/.agent-src/skills/project-analysis-laravel/SKILL.md +1 -0
  119. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +1 -0
  120. package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -0
  121. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -0
  122. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -0
  123. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +1 -0
  124. package/.agent-src/skills/project-analyzer/SKILL.md +1 -0
  125. package/.agent-src/skills/project-docs/SKILL.md +1 -0
  126. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -0
  127. package/.agent-src/skills/prompt-optimizer/SKILL.md +1 -0
  128. package/.agent-src/skills/quality-tools/SKILL.md +1 -0
  129. package/.agent-src/skills/react-native-setup/SKILL.md +1 -0
  130. package/.agent-src/skills/react-shadcn-ui/SKILL.md +1 -0
  131. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -0
  132. package/.agent-src/skills/readme-writing/SKILL.md +1 -0
  133. package/.agent-src/skills/readme-writing-package/SKILL.md +1 -0
  134. package/.agent-src/skills/receiving-code-review/SKILL.md +1 -0
  135. package/.agent-src/skills/refine-prompt/SKILL.md +1 -0
  136. package/.agent-src/skills/refine-ticket/SKILL.md +1 -0
  137. package/.agent-src/skills/repomix-packer/SKILL.md +1 -0
  138. package/.agent-src/skills/requesting-code-review/SKILL.md +1 -0
  139. package/.agent-src/skills/review-routing/SKILL.md +1 -0
  140. package/.agent-src/skills/rice-prioritization/SKILL.md +1 -0
  141. package/.agent-src/skills/risk-officer/SKILL.md +141 -0
  142. package/.agent-src/skills/roadmap-management/SKILL.md +1 -0
  143. package/.agent-src/skills/roadmap-writing/SKILL.md +1 -0
  144. package/.agent-src/skills/rtk-output-filtering/SKILL.md +1 -0
  145. package/.agent-src/skills/rule-writing/SKILL.md +1 -0
  146. package/.agent-src/skills/script-writing/SKILL.md +1 -0
  147. package/.agent-src/skills/secrets-management/SKILL.md +1 -0
  148. package/.agent-src/skills/security/SKILL.md +1 -0
  149. package/.agent-src/skills/security-audit/SKILL.md +1 -0
  150. package/.agent-src/skills/sentry-integration/SKILL.md +1 -0
  151. package/.agent-src/skills/sequential-thinking/SKILL.md +1 -0
  152. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -0
  153. package/.agent-src/skills/skill-management/SKILL.md +1 -0
  154. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -0
  155. package/.agent-src/skills/skill-writing/SKILL.md +1 -0
  156. package/.agent-src/skills/sql-writing/SKILL.md +1 -0
  157. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +149 -0
  158. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -0
  159. package/.agent-src/skills/systematic-debugging/SKILL.md +1 -0
  160. package/.agent-src/skills/tailwind-engineer/SKILL.md +130 -0
  161. package/.agent-src/skills/tech-debt-tracker/SKILL.md +152 -0
  162. package/.agent-src/skills/technical-specification/SKILL.md +1 -0
  163. package/.agent-src/skills/terraform/SKILL.md +1 -0
  164. package/.agent-src/skills/terragrunt/SKILL.md +1 -0
  165. package/.agent-src/skills/test-driven-development/SKILL.md +1 -0
  166. package/.agent-src/skills/test-performance/SKILL.md +1 -0
  167. package/.agent-src/skills/testing-anti-patterns/SKILL.md +1 -0
  168. package/.agent-src/skills/threat-modeling/SKILL.md +3 -0
  169. package/.agent-src/skills/token-optimizer/SKILL.md +1 -0
  170. package/.agent-src/skills/traefik/SKILL.md +1 -0
  171. package/.agent-src/skills/ui-component-architect/SKILL.md +153 -0
  172. package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -0
  173. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -0
  174. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -0
  175. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
  176. package/.agent-src/skills/validate-feature-fit/SKILL.md +1 -0
  177. package/.agent-src/skills/verify-completion-evidence/SKILL.md +1 -0
  178. package/.agent-src/skills/websocket/SKILL.md +1 -0
  179. package/.claude-plugin/marketplace.json +17 -1
  180. package/AGENTS.md +1 -0
  181. package/CHANGELOG.md +68 -0
  182. package/README.md +3 -3
  183. package/docs/architecture.md +3 -3
  184. package/docs/catalog.md +26 -5
  185. package/docs/contracts/command-clusters.md +1 -1
  186. package/docs/contracts/file-ownership-matrix.json +560 -0
  187. package/docs/contracts/persona-schema.md +136 -0
  188. package/docs/contracts/skill-domains.md +143 -0
  189. package/docs/decisions/ADR-005-subagent-worktrees.md +120 -0
  190. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +114 -0
  191. package/docs/decisions/INDEX.md +3 -0
  192. package/docs/getting-started.md +1 -1
  193. package/docs/guidelines/agent-infra/5w2h-analysis.md +260 -0
  194. package/docs/guidelines/agent-infra/critical-thinking.md +156 -0
  195. package/docs/guidelines/agent-infra/first-principles.md +192 -0
  196. package/docs/guidelines/agent-infra/six-hats.md +353 -0
  197. package/docs/guidelines/agent-infra/systems-thinking.md +220 -0
  198. package/docs/personas.md +115 -0
  199. package/package.json +1 -1
  200. package/scripts/_backfill_skill_domains.py +140 -0
  201. package/scripts/_emit_domain_table.py +35 -0
  202. package/scripts/install-hooks.sh +21 -4
  203. package/scripts/lint_skill_tools.py +168 -0
  204. package/scripts/schemas/skill.schema.json +6 -1
  205. package/scripts/skill_linter.py +19 -4
  206. package/scripts/skill_tools/__init__.py +22 -0
  207. package/scripts/skill_tools/audit_persona_coverage.py +147 -0
  208. package/scripts/skill_tools/run_block_d_eval.py +129 -0
  209. package/scripts/skill_tools/score_skill_relevance.py +169 -0
  210. package/scripts/skill_tools/suggest_skill_for_task.py +113 -0
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: livewire-architect
3
+ description: "Use when shaping a Livewire component before code — full-page vs partial, parent/child split, event flow, state-vs-props boundary, hydration cost — even on 'add this Livewire component'."
4
+ personas:
5
+ - frontend-engineer
6
+ source: package
7
+ domain: engineering
8
+ ---
9
+
10
+ # livewire-architect
11
+
12
+ > Architectural lens **above** the existing tactical [`livewire`](../livewire/SKILL.md)
13
+ > skill. Decides component shape, lifecycle ownership, and the
14
+ > full-page-vs-partial split *before* the first `mount()` is written.
15
+ > The `livewire` skill handles Flux-component patterns and hydration
16
+ > debugging once the shape is locked.
17
+
18
+ ## When to use
19
+
20
+ - A Livewire feature is about to be built and the boundary between
21
+ components is unclear (one big component vs nested children?).
22
+ - An existing component is "doing too much" — multiple unrelated
23
+ concerns, large `$listeners`, props bag growing turn over turn.
24
+ - A page mixes Livewire + Blade partials and the data flow is
25
+ ambiguous (who owns `$user`, who emits, who listens?).
26
+ - German triggers: "wie schneide ich das?", "Vollseite oder
27
+ Teilkomponente?", "wer feuert das Event?".
28
+
29
+ Do NOT use when:
30
+
31
+ - The shape is already locked and the question is mechanical
32
+ (Flux variant, `wire:model` modifier, `@entangle`) — route to
33
+ [`livewire`](../livewire/SKILL.md).
34
+ - The page has no Livewire — pure Blade or Inertia/React — route
35
+ to [`blade-ui`](../blade-ui/SKILL.md) or [`react-shadcn-ui`](../react-shadcn-ui/SKILL.md).
36
+ - The bug is a runtime hydration error — debug with `livewire`,
37
+ not redesign with this skill.
38
+
39
+ ## Procedure
40
+
41
+ ### 1. Analyze the existing screen — before designing anything
42
+
43
+ Inspect the route and read the existing Blade / Livewire files to
44
+ understand what's already there. List every dynamic surface on the
45
+ page (form, table row, modal, nav badge). Mark each: **shared
46
+ state** (other surfaces re-render on change), **local state** (only
47
+ this surface cares), **server state** (must hit DB / queue). This
48
+ analysis feeds every later step — do NOT skip ahead before the
49
+ inventory is on paper.
50
+
51
+ ### 2. Choose the component shape
52
+
53
+ Pick one **before** writing code:
54
+
55
+ | Shape | When | Cost |
56
+ |---|---|---|
57
+ | Full-page component | Route owns the whole screen, single backing model, ≤ 3 related actions | Cheapest; one mount, one render |
58
+ | Parent + nested children | Two or more independent state islands on one route | Two mounts; coordinate via events, not props churn |
59
+ | Partial component on Blade | Mostly static page, one reactive island | Cheap; component sees the world via props only |
60
+ | Stack of full-page components | Wizard / multi-step flow with own URL per step | Expensive; pick only when URL semantics matter |
61
+
62
+ Rule: if a child needs ≥ 4 props from the parent and emits ≥ 3
63
+ events back, the boundary is wrong — collapse or re-cut.
64
+
65
+ ### 3. Lock the state-vs-props boundary
66
+
67
+ For each piece of data the component reads, mark **public property**
68
+ (reactive, persisted in payload, expensive to dehydrate) or
69
+ **computed / method-local** (cheap, recomputed on render). Public
70
+ properties are the budget — keep ≤ 8 per component; more means
71
+ the component is doing two jobs.
72
+
73
+ ### 4. Map the event flow
74
+
75
+ Draw the events: `dispatch('foo')` → who listens? Cross-component
76
+ events use `dispatch()`; parent ↔ child stays on `$parent.method()`
77
+ when the child is owned. Avoid global events for parent-owned
78
+ children — they break the ownership story.
79
+
80
+ ### 5. Lifecycle ownership
81
+
82
+ For each side-effect (DB write, queue dispatch, redirect, flash),
83
+ name the lifecycle hook: `mount` (one-time setup), `boot` (every
84
+ request, idempotent), action method (user-initiated), `updated*`
85
+ (reactive on property change). One hook per side-effect; if two
86
+ hooks fire the same write, the design is wrong.
87
+
88
+ ### 6. Validate the design — before any code is written
89
+
90
+ Walk the design back through these checks; every "no" means
91
+ re-cut, not push forward:
92
+
93
+ - Each component owns ≤ 8 public properties.
94
+ - No child needs ≥ 4 props *and* emits ≥ 3 events back.
95
+ - Every event has exactly one named listener.
96
+ - Each side-effect maps to exactly one lifecycle hook.
97
+ - The component shape table is filled in (no `<TBD>` cells).
98
+
99
+ If any check fails, return to the relevant step and re-cut. The
100
+ design must be approved by the user before handing off to
101
+ `/livewire` for implementation.
102
+
103
+ ## Output format
104
+
105
+ Return:
106
+
107
+ 1. Component shape decision — full-page / parent+children / partial /
108
+ stack — with the one-sentence trade-off rationale.
109
+ 2. Component inventory — for each: public props (≤ 8), state islands
110
+ owned, events listened/dispatched, side-effects on mount and action.
111
+ 3. Boundary-risk list and tactical follow-up — prop bags > 8, event
112
+ chains > 3 hops, shared mutable state, and the next handoff.
113
+
114
+ Concrete shape:
115
+
116
+ ```
117
+ Screen: <route or feature>
118
+ Component shape: <full-page | parent+children | partial | stack>
119
+ Why: <one sentence — the trade-off chosen>
120
+
121
+ Components:
122
+ - <Name> (full-page | partial)
123
+ Public props: [a, b, c] (≤ 8)
124
+ Owns: <state islands>
125
+ Listens to: [event1, event2]
126
+ Dispatches: [event3]
127
+ Side-effects: mount=<...>, action=<...>
128
+
129
+ Boundary risks:
130
+ - <prop bag > 8 / event chain > 3 hops / shared mutable state>
131
+
132
+ Tactical follow-up:
133
+ Hand off to /livewire for Flux variant + hydration check.
134
+ ```
135
+
136
+ ## Gotcha
137
+
138
+ - Livewire 3 reactive props are not free — every public property
139
+ ships in the payload. Big arrays / DTOs as public state are a
140
+ performance bug waiting to fire under load.
141
+ - Parent-owned children and global events do not mix; pick one
142
+ ownership story per component tree.
143
+ - "Just one more public property" is the smell that turns a partial
144
+ into a god-component over three tickets.
145
+ - Full-page component + Flux modal stack: the modal owns its own
146
+ mount cycle; do not push modal state into the page component.
147
+
148
+ ## Do NOT
149
+
150
+ - Do NOT write `mount()` / Blade partials before the shape table is
151
+ filled in — picking the shape after coding is the most common
152
+ source of refactor debt.
153
+ - Do NOT cite this skill alongside [`livewire`](../livewire/SKILL.md)
154
+ in the same step — they sit at different tiers; pick one per phase.
155
+ - Do NOT design Inertia / React components with this skill — the
156
+ state-vs-props axis differs; route to the matching stack skill.
157
+ - Do NOT push the architecture into the tracker as code AC — output
158
+ is a design note for refinement, not implementation steps.
@@ -2,6 +2,7 @@
2
2
  name: logging-monitoring
3
3
  description: "Use when working with logging or monitoring — Sentry error tracking, Grafana/Loki log aggregation, structured logging channels, or monitoring helpers."
4
4
  source: package
5
+ domain: devops
5
6
  ---
6
7
 
7
8
  # logging-monitoring
@@ -4,6 +4,7 @@ description: "Use when converting PDF, DOCX, XLSX, PPTX, EPUB, images, or audio
4
4
  status: active
5
5
  tier: senior
6
6
  source: package
7
+ domain: process
7
8
  ---
8
9
 
9
10
  > **Pinned upstream:** `markitdown-mcp@0.0.1a4` (PyPI, released 2025-05-23, MIT, Beta). Re-verify per minor bump.
@@ -2,6 +2,7 @@
2
2
  name: mcp
3
3
  description: "Use when working with MCP (Model Context Protocol) servers — their tools, capabilities, and best practices for effective agent workflows."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # MCP Skill
@@ -2,6 +2,7 @@
2
2
  name: mcp-builder
3
3
  description: "Use when building an MCP server in Python (FastMCP) or Node/TypeScript (MCP SDK) — agent-centric tool design, input schemas, error handling, and the 10-question evaluation harness."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # mcp-builder
@@ -2,6 +2,7 @@
2
2
  name: md-language-check
3
3
  description: "Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone."
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: merge-conflicts
3
3
  description: "Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # merge-conflicts
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: migration-architect
3
+ description: "Use when shaping a non-trivial migration — rollout phases, dual-write windows, cutover sequencing, deprecation cycles — hands off to `migration-creator` for DDL once locked."
4
+ personas:
5
+ - backend-architect
6
+ - senior-engineer
7
+ source: package
8
+ domain: process
9
+ ---
10
+
11
+ # migration-architect
12
+
13
+ > Shape the **rollout strategy** for a migration before any DDL or
14
+ > code is written. Plans phases, dual-write windows, cutover
15
+ > sequencing, deprecation cycles, and cross-service coordination.
16
+ > Hands off to [`migration-creator`](../migration-creator/SKILL.md)
17
+ > for tactical DDL once the plan is locked.
18
+
19
+ ## When to use
20
+
21
+ - A schema change spans more than one deploy.
22
+ - A change requires a dual-write or backfill window.
23
+ - The migration touches multiple services, queues, or consumers
24
+ whose order of update matters.
25
+ - A column / table / API is being deprecated and the cycle needs
26
+ shape (announce → soft-fail → hard-fail → remove).
27
+
28
+ Do NOT use when:
29
+
30
+ - The change is a single additive migration safe in one deploy →
31
+ route to [`migration-creator`](../migration-creator/SKILL.md).
32
+ - The decision is *whether* to migrate at all → route to
33
+ [`decision-record`](../decision-record/SKILL.md) first.
34
+ - The concern is data correctness during the migration → route to
35
+ [`data-flow-mapper`](../data-flow-mapper/SKILL.md) and feed
36
+ findings back here.
37
+
38
+ ## Procedure
39
+
40
+ ### 1. Anchor on the goal
41
+
42
+ Write one sentence: *"State X must become state Y across systems Z
43
+ without breaking consumers W."* If you cannot, the migration is not
44
+ ripe — stop.
45
+
46
+ ### 2. Identify the participating systems
47
+
48
+ List every service, queue, batch job, third-party consumer, and
49
+ client that reads or writes the affected schema. A system you
50
+ forget is a cutover surprise.
51
+
52
+ ### 3. Pick a rollout shape
53
+
54
+ | Shape | When to pick |
55
+ |---|---|
56
+ | Expand → migrate → contract | Schema additive first, code switches reads, then drop old shape |
57
+ | Dual-write + backfill | Both shapes written for a window; backfill closes the gap |
58
+ | Strangler fig | New path runs alongside old; traffic ramps over time |
59
+ | Big-bang cutover | Rare; only when downtime is acceptable AND coordination cost is trivial |
60
+
61
+ State *why* the shape fits — not just which one was picked.
62
+
63
+ ### 4. Sequence the phases
64
+
65
+ For each phase, list:
66
+
67
+ - **Trigger** — what condition starts it.
68
+ - **Actions** — DDL, code deploy, feature flag, traffic shift.
69
+ - **Reversibility** — can we abort here, and how?
70
+ - **Exit gate** — what proves we can move to the next phase
71
+ (metric, sign-off, soak time).
72
+
73
+ A phase without an exit gate is a wish; reject.
74
+
75
+ ### 5. Plan the deprecation cycle
76
+
77
+ For anything being removed:
78
+
79
+ - Announce window — comms cadence, who is told.
80
+ - Soft-fail window — log + warn, do not break.
81
+ - Hard-fail window — return errors.
82
+ - Removal — DDL drop, code delete.
83
+
84
+ Each window has a duration and a metric that justifies moving on.
85
+
86
+ ## Output format
87
+
88
+ ```
89
+ Migration Architect
90
+ Goal: <one sentence>
91
+ Systems: <list>
92
+ Shape: expand-migrate-contract | dual-write | strangler | big-bang
93
+ Reason: <why this shape>
94
+
95
+ Phases:
96
+ 1. <name> Trigger: <cond> Exit: <gate> Reversible: yes | costly | no
97
+ Actions: ...
98
+ 2. ...
99
+
100
+ Deprecation cycle (if any):
101
+ Announce <duration> → soft-fail <duration> → hard-fail <duration> → remove
102
+
103
+ Next: /migration-creator for the DDL of phase 1
104
+ ```
105
+
106
+ ## Gotcha
107
+
108
+ - The riskiest phase is the one with no rollback. Surface it
109
+ explicitly even if the user did not ask.
110
+ - Soak times in hours when interest is in days are a smell. Match
111
+ the soak to the actual blast radius.
112
+
113
+ ## Do NOT
114
+
115
+ - Do NOT write DDL — that is `migration-creator`'s job.
116
+ - Do NOT collapse phases to "ship it" because the user is impatient;
117
+ surface the risk and let the user decide.
118
+ - Do NOT skip the deprecation cycle because nobody is using the old
119
+ shape "for sure" — verify before skipping.
@@ -2,6 +2,7 @@
2
2
  name: migration-creator
3
3
  description: "Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # migration-creator
@@ -2,6 +2,7 @@
2
2
  name: mobile-e2e-strategy
3
3
  description: "Use when picking a mobile E2E framework — Detox / Appium / Maestro / XCUITest / Espresso — or planning iOS Simulator / Android Emulator coverage in CI for RN, Expo, or native apps."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # mobile-e2e-strategy
@@ -27,7 +28,7 @@ source: package
27
28
 
28
29
  ## Procedure
29
30
 
30
- 1. **Classify the app.** Is it native iOS, native Android, React Native, Expo, Flutter, or a web view inside a shell?
31
+ 1. **Inspect and classify the app.** Identify the stack: native iOS, native Android, React Native, Expo, Flutter, or a web view inside a shell?
31
32
  2. **Classify the goal.** Smoke (boots + login + key flow), regression (every release), visual diff, accessibility audit, or performance baseline.
32
33
  3. **Pick the framework** using the decision matrix below.
33
34
  4. **Confirm host availability.** macOS for iOS Simulator (mandatory); any OS for Android Emulator.
@@ -2,6 +2,7 @@
2
2
  name: module-management
3
3
  description: "Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  # module
@@ -2,6 +2,7 @@
2
2
  name: multi-tenancy
3
3
  description: "Use when working with the multi-tenant architecture — customer DB switching, FQDN routing, tenant isolation, or cross-tenant operations."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # multi-tenancy
@@ -4,6 +4,7 @@ description: "Use when decomposing a company objective into team OKRs, auditing
4
4
  status: active
5
5
  tier: senior
6
6
  source: package
7
+ domain: product
7
8
  ---
8
9
 
9
10
  # okr-tree-modeling
@@ -2,6 +2,7 @@
2
2
  name: openapi
3
3
  description: "Use when documenting APIs — OpenAPI/Swagger, PHP attributes, Redocly validation, versioned specs — even when the user just says 'document this endpoint' without naming OpenAPI."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # openapi
@@ -2,6 +2,7 @@
2
2
  name: override-management
3
3
  description: "Creates and manages project-level overrides for shared skills, rules, and commands — extending or replacing originals from .augment/ with project-specific behavior in agents/overrides/."
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: performance
3
3
  description: "Use when optimizing application performance — caching strategies, eager loading, query optimization, Redis patterns, or background job design."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # performance
@@ -2,6 +2,7 @@
2
2
  name: performance-analysis
3
3
  description: "ONLY when user explicitly requests: performance audit, bottleneck analysis, or N+1 query detection. NOT for regular feature work."
4
4
  source: package
5
+ domain: discovery
5
6
  ---
6
7
 
7
8
  # performance-analysis
@@ -2,6 +2,7 @@
2
2
  name: persona-writing
3
3
  description: "Use when creating or editing a persona in .agent-src.uncompressed/personas/ — voice / focus / unique questions / output expectations — even when the user just says 'add a reviewer voice for X'."
4
4
  source: package
5
+ domain: process
5
6
  ---
6
7
 
7
8
  <!-- cloud_safe: degrade -->
@@ -2,6 +2,7 @@
2
2
  name: pest-testing
3
3
  description: "Use when writing, generating, or improving Pest tests for Laravel — clear intent, good coverage, maintainable structure, and alignment with project testing conventions."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # pest-testing
@@ -2,6 +2,7 @@
2
2
  name: php-coder
3
3
  description: "Writes or edits PHP code — controllers, classes, type hints, SOLID refactors, modern idioms — even without naming PHP. NOT for writing tests (use pest-testing) or explaining PHP concepts."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # coder
@@ -2,6 +2,7 @@
2
2
  name: php-debugging
3
3
  description: "Use when debugging PHP with Xdebug — breakpoints, step-through, dual-container setup, IDE configuration, header-based routing — even when the user just says 'why does this blow up on request X'."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # php-debugging
@@ -2,6 +2,7 @@
2
2
  name: php-service
3
3
  description: "Use when the user says 'create service', 'new service class', or needs a PHP service following SOLID principles with proper DI and repository usage."
4
4
  source: package
5
+ domain: engineering
5
6
  ---
6
7
 
7
8
  # php-service
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: playwright-architect
3
+ description: "Use when shaping a Playwright suite — locator strategy, Page Object boundaries, fixture composition, flake-prevention architecture, CI-vs-local split — even on 'design our E2E tests'."
4
+ personas:
5
+ - frontend-engineer
6
+ source: package
7
+ domain: quality
8
+ ---
9
+
10
+ # playwright-architect
11
+
12
+ > Architectural lens **above** the existing tactical
13
+ > [`playwright-testing`](../playwright-testing/SKILL.md). Decides
14
+ > locator philosophy, Page Object boundaries, fixture composition,
15
+ > and the CI-vs-local split *before* the first test is written.
16
+ > The `playwright-testing` skill handles concrete assertions,
17
+ > selectors, and visual-regression mechanics once the design is
18
+ > locked.
19
+
20
+ ## When to use
21
+
22
+ - A new Playwright suite is starting and the directory shape, fixture
23
+ hierarchy, and locator strategy are unsettled.
24
+ - An existing suite has flake > 2 % runs, slow CI (> 10 min), or a
25
+ god-test file mixing unrelated journeys.
26
+ - A second app / surface (admin, mobile-web, embedded widget) needs
27
+ to share fixtures with the main suite.
28
+ - German triggers: "Playwright Setup planen", "Page Objects schneiden",
29
+ "warum flaket der Test?".
30
+
31
+ Do NOT use when:
32
+
33
+ - A single test fails and the question is the assertion or selector
34
+ — route to [`playwright-testing`](../playwright-testing/SKILL.md).
35
+ - The platform is mobile-native (Detox, Appium, Maestro) — route to
36
+ [`mobile-e2e-strategy`](../mobile-e2e-strategy/SKILL.md).
37
+ - Unit / component tests are the question — Playwright is the wrong
38
+ tool; route to the stack-specific testing skill.
39
+
40
+ ## Procedure
41
+
42
+ ### 1. Inspect the suite, pick the locator philosophy
43
+
44
+ Review existing tests for current locator patterns; the established
45
+ strategy wins unless it is the "last resort" tier. One philosophy
46
+ per suite, written into `CONTRIBUTING-tests.md`:
47
+
48
+ | Strategy | When |
49
+ |---|---|
50
+ | `getByRole` + accessible name | Default — couples tests to the user contract, not markup |
51
+ | `data-testid` | Legacy markup, third-party widgets, hash-suffixed CSS modules |
52
+ | Text content (`getByText`) | Static marketing pages, copy-stable surfaces |
53
+ | CSS / XPath | Last resort — every use is a debt entry |
54
+
55
+ Mixing strategies inside one test file is the smell — pick one and
56
+ fall back only with comment.
57
+
58
+ ### 2. Cut Page Object boundaries
59
+
60
+ A Page Object owns: (a) one URL or one logical surface (modal,
61
+ drawer), (b) the locators on that surface, (c) the **actions** a
62
+ user can perform there. It does NOT own assertions about other
63
+ surfaces or test setup. Boundary rule: if two POs need to call
64
+ each other, introduce a **flow object** (`SignupFlow`) above them.
65
+
66
+ ### 3. Compose fixtures, don't inherit
67
+
68
+ Playwright fixtures stack via `test.extend()`. Three layers max:
69
+
70
+ | Layer | Owns |
71
+ |---|---|
72
+ | Base | Browser, context, storageState, network mocks |
73
+ | Auth | Logged-in user states (admin, member, guest) |
74
+ | Domain | Pre-seeded entities for a journey |
75
+
76
+ Deeper stacks become un-debuggable; flatten by extracting helpers.
77
+
78
+ ### 4. Plan flake prevention before the first failure
79
+
80
+ Bake in: auto-retry on network idle, soft assertions for parallel
81
+ checks, deterministic seed data, time freezing (`page.clock`),
82
+ explicit `expect.poll()` for eventual consistency, no
83
+ `waitForTimeout` ever. If a test needs `sleep`, the fixture is
84
+ wrong.
85
+
86
+ ### 5. Split CI vs local execution
87
+
88
+ Local: headed browser, single worker, slowMo enabled, video off,
89
+ trace-on-retry. CI: headless, sharded workers (2–8), trace-on-first-retry,
90
+ video-on-failure, Github reporter + HTML. Document both in
91
+ `playwright.config.ts`; do not let local config leak into CI.
92
+
93
+ ## Output format
94
+
95
+ Return:
96
+
97
+ 1. Locator + Page Object plan — chosen strategy, PO list with surface
98
+ and action count, flow objects when ≥ 2 POs collaborate.
99
+ 2. Fixture composition — base / auth / domain layer with what each
100
+ layer sets up.
101
+ 3. Parallelism + flake budget — worker count, shard strategy,
102
+ isolation, target flake ceiling, CI-vs-local config delta.
103
+
104
+ Concrete shape:
105
+
106
+ ```
107
+ Suite: <name>
108
+ Locator strategy: <getByRole | data-testid | text | mixed (justified)>
109
+ Page Objects: <list with surface owned + action count>
110
+ Flow objects: <list — only when ≥ 2 POs collaborate>
111
+ Fixture layers: base / auth / domain — each with what it sets up
112
+ Parallelism: <workers, shards, isolation strategy>
113
+ Flake budget: ≤ 1 % failure on green main; alert threshold
114
+ CI-vs-local: <key config delta, one bullet each>
115
+ ```
116
+
117
+ ## Gotcha
118
+
119
+ - `page.waitForSelector` is almost always wrong — `expect(locator).toBeVisible()`
120
+ has built-in retry. The former teaches devs to think "wait, then
121
+ assert" instead of "auto-retry assertion".
122
+ - Storage-state reuse across workers requires cookie domain
123
+ isolation; the same `auth.json` across two browsers in parallel
124
+ shares a session and corrupts state.
125
+ - Visual regression in CI requires identical fonts and renderer —
126
+ pin the Docker image, never run visual tests against host
127
+ Chromium.
128
+ - One Page Object per URL **looks** clean but creates god-objects
129
+ for SPA routes; cut by *user surface*, not by `pathname`.
130
+
131
+ ## Do NOT
132
+
133
+ - Do NOT cite this skill alongside [`playwright-testing`](../playwright-testing/SKILL.md)
134
+ in the same step — they sit at different tiers; pick one per phase.
135
+ - Do NOT design suites for component tests with this skill —
136
+ Playwright Component Testing has different fixture rules; route
137
+ there instead.
138
+ - Do NOT promise zero flake; budget for ≤ 1 % and instrument the
139
+ metric. Zero is a goal that disguises silent retries.
140
+ - Do NOT push the architecture into the tracker as code AC — output
141
+ is a design note for refinement, not implementation steps.
@@ -2,6 +2,7 @@
2
2
  name: playwright-testing
3
3
  description: "Use when writing Playwright E2E tests — browser automation, visual regression testing, Page Objects, fixtures, and reliable test patterns."
4
4
  source: package
5
+ domain: quality
5
6
  ---
6
7
 
7
8
  # playwright-testing