@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.
- package/.agent-src/commands/review-changes.md +13 -8
- package/.agent-src/personas/README.md +12 -21
- package/.agent-src/personas/_template-specialist/persona.md +89 -0
- package/.agent-src/personas/backend-architect.md +96 -0
- package/.agent-src/personas/eloquent-tamer.md +96 -0
- package/.agent-src/personas/frontend-engineer.md +100 -0
- package/.agent-src/personas/qa.md +27 -2
- package/.agent-src/personas/security-engineer.md +100 -0
- package/.agent-src/skills/accessibility-auditor/SKILL.md +132 -0
- package/.agent-src/skills/adr-create/SKILL.md +1 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -0
- package/.agent-src/skills/agents-md-thin-root/SKILL.md +1 -0
- package/.agent-src/skills/ai-council/SKILL.md +1 -0
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +1 -0
- package/.agent-src/skills/api-design/SKILL.md +3 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +1 -0
- package/.agent-src/skills/api-testing/SKILL.md +1 -0
- package/.agent-src/skills/architecture-review-lens/SKILL.md +137 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +1 -0
- package/.agent-src/skills/async-python-patterns/SKILL.md +1 -0
- package/.agent-src/skills/authz-review/SKILL.md +4 -0
- package/.agent-src/skills/aws-infrastructure/SKILL.md +1 -0
- package/.agent-src/skills/blade-ui/SKILL.md +1 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +3 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
- package/.agent-src/skills/check-refs/SKILL.md +1 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +1 -0
- package/.agent-src/skills/code-review/SKILL.md +1 -0
- package/.agent-src/skills/command-routing/SKILL.md +1 -0
- package/.agent-src/skills/command-writing/SKILL.md +1 -0
- package/.agent-src/skills/composer-packages/SKILL.md +1 -0
- package/.agent-src/skills/context-authoring/SKILL.md +1 -0
- package/.agent-src/skills/context-document/SKILL.md +1 -0
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +1 -0
- package/.agent-src/skills/copilot-config/SKILL.md +1 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +1 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +1 -0
- package/.agent-src/skills/database/SKILL.md +3 -0
- package/.agent-src/skills/dcf-modeling/SKILL.md +1 -0
- package/.agent-src/skills/decision-record/SKILL.md +143 -0
- package/.agent-src/skills/deep-reading-analyst/SKILL.md +1 -0
- package/.agent-src/skills/defense-in-depth/SKILL.md +1 -0
- package/.agent-src/skills/dependency-upgrade/SKILL.md +1 -0
- package/.agent-src/skills/description-assist/SKILL.md +1 -0
- package/.agent-src/skills/design-review/SKILL.md +1 -0
- package/.agent-src/skills/devcontainer/SKILL.md +1 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +1 -0
- package/.agent-src/skills/docker/SKILL.md +1 -0
- package/.agent-src/skills/dto-creator/SKILL.md +1 -0
- package/.agent-src/skills/eloquent/SKILL.md +3 -0
- package/.agent-src/skills/error-handling-patterns/SKILL.md +1 -0
- package/.agent-src/skills/estimate-ticket/SKILL.md +1 -0
- package/.agent-src/skills/existing-ui-audit/SKILL.md +3 -0
- package/.agent-src/skills/fe-design/SKILL.md +4 -1
- package/.agent-src/skills/feature-planning/SKILL.md +1 -0
- package/.agent-src/skills/file-editor/SKILL.md +1 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +1 -0
- package/.agent-src/skills/flux/SKILL.md +1 -0
- package/.agent-src/skills/form-handler/SKILL.md +145 -0
- package/.agent-src/skills/funnel-analysis/SKILL.md +1 -0
- package/.agent-src/skills/git-workflow/SKILL.md +1 -0
- package/.agent-src/skills/github-ci/SKILL.md +1 -0
- package/.agent-src/skills/grafana/SKILL.md +1 -0
- package/.agent-src/skills/guideline-writing/SKILL.md +1 -0
- package/.agent-src/skills/incident-commander/SKILL.md +140 -0
- package/.agent-src/skills/jira-integration/SKILL.md +1 -0
- package/.agent-src/skills/jobs-events/SKILL.md +1 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +1 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +3 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +1 -0
- package/.agent-src/skills/laravel/SKILL.md +1 -0
- package/.agent-src/skills/laravel-horizon/SKILL.md +1 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +1 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +1 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +1 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +1 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +1 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +1 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +1 -0
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -0
- package/.agent-src/skills/lint-skills/SKILL.md +1 -0
- package/.agent-src/skills/livewire/SKILL.md +1 -0
- package/.agent-src/skills/livewire-architect/SKILL.md +158 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +1 -0
- package/.agent-src/skills/markitdown/SKILL.md +1 -0
- package/.agent-src/skills/mcp/SKILL.md +1 -0
- package/.agent-src/skills/mcp-builder/SKILL.md +1 -0
- package/.agent-src/skills/md-language-check/SKILL.md +1 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +1 -0
- package/.agent-src/skills/migration-architect/SKILL.md +119 -0
- package/.agent-src/skills/migration-creator/SKILL.md +1 -0
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +2 -1
- package/.agent-src/skills/module-management/SKILL.md +1 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +1 -0
- package/.agent-src/skills/okr-tree-modeling/SKILL.md +1 -0
- package/.agent-src/skills/openapi/SKILL.md +1 -0
- package/.agent-src/skills/override-management/SKILL.md +1 -0
- package/.agent-src/skills/performance/SKILL.md +1 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +1 -0
- package/.agent-src/skills/persona-writing/SKILL.md +1 -0
- package/.agent-src/skills/pest-testing/SKILL.md +1 -0
- package/.agent-src/skills/php-coder/SKILL.md +1 -0
- package/.agent-src/skills/php-debugging/SKILL.md +1 -0
- package/.agent-src/skills/php-service/SKILL.md +1 -0
- package/.agent-src/skills/playwright-architect/SKILL.md +141 -0
- package/.agent-src/skills/playwright-testing/SKILL.md +1 -0
- package/.agent-src/skills/po-discovery/SKILL.md +127 -0
- package/.agent-src/skills/project-analysis-core/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +1 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +1 -0
- package/.agent-src/skills/project-docs/SKILL.md +1 -0
- package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -0
- package/.agent-src/skills/prompt-optimizer/SKILL.md +1 -0
- package/.agent-src/skills/quality-tools/SKILL.md +1 -0
- package/.agent-src/skills/react-native-setup/SKILL.md +1 -0
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +1 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -0
- package/.agent-src/skills/readme-writing/SKILL.md +1 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +1 -0
- package/.agent-src/skills/receiving-code-review/SKILL.md +1 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +1 -0
- package/.agent-src/skills/refine-ticket/SKILL.md +1 -0
- package/.agent-src/skills/repomix-packer/SKILL.md +1 -0
- package/.agent-src/skills/requesting-code-review/SKILL.md +1 -0
- package/.agent-src/skills/review-routing/SKILL.md +1 -0
- package/.agent-src/skills/rice-prioritization/SKILL.md +1 -0
- package/.agent-src/skills/risk-officer/SKILL.md +141 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +1 -0
- package/.agent-src/skills/roadmap-writing/SKILL.md +1 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +1 -0
- package/.agent-src/skills/rule-writing/SKILL.md +1 -0
- package/.agent-src/skills/script-writing/SKILL.md +1 -0
- package/.agent-src/skills/secrets-management/SKILL.md +1 -0
- package/.agent-src/skills/security/SKILL.md +1 -0
- package/.agent-src/skills/security-audit/SKILL.md +1 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +1 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +1 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -0
- package/.agent-src/skills/skill-management/SKILL.md +1 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -0
- package/.agent-src/skills/skill-writing/SKILL.md +1 -0
- package/.agent-src/skills/sql-writing/SKILL.md +1 -0
- package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +149 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +1 -0
- package/.agent-src/skills/tailwind-engineer/SKILL.md +130 -0
- package/.agent-src/skills/tech-debt-tracker/SKILL.md +152 -0
- package/.agent-src/skills/technical-specification/SKILL.md +1 -0
- package/.agent-src/skills/terraform/SKILL.md +1 -0
- package/.agent-src/skills/terragrunt/SKILL.md +1 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +1 -0
- package/.agent-src/skills/test-performance/SKILL.md +1 -0
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +1 -0
- package/.agent-src/skills/threat-modeling/SKILL.md +3 -0
- package/.agent-src/skills/token-optimizer/SKILL.md +1 -0
- package/.agent-src/skills/traefik/SKILL.md +1 -0
- package/.agent-src/skills/ui-component-architect/SKILL.md +153 -0
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -0
- package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +1 -0
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +1 -0
- package/.agent-src/skills/websocket/SKILL.md +1 -0
- package/.claude-plugin/marketplace.json +15 -1
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +41 -0
- package/README.md +2 -2
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +17 -3
- package/docs/contracts/file-ownership-matrix.json +506 -0
- package/docs/contracts/persona-schema.md +136 -0
- package/docs/contracts/skill-domains.md +143 -0
- package/docs/decisions/ADR-005-subagent-worktrees.md +120 -0
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +114 -0
- package/docs/decisions/INDEX.md +3 -0
- package/docs/personas.md +115 -0
- package/package.json +1 -1
- package/scripts/_backfill_skill_domains.py +140 -0
- package/scripts/_emit_domain_table.py +35 -0
- package/scripts/install-hooks.sh +21 -4
- package/scripts/lint_skill_tools.py +168 -0
- package/scripts/schemas/skill.schema.json +6 -1
- package/scripts/skill_linter.py +19 -4
- package/scripts/skill_tools/__init__.py +22 -0
- package/scripts/skill_tools/audit_persona_coverage.py +147 -0
- package/scripts/skill_tools/run_block_d_eval.py +129 -0
- package/scripts/skill_tools/score_skill_relevance.py +169 -0
- package/scripts/skill_tools/suggest_skill_for_task.py +113 -0
|
@@ -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
|
|
@@ -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-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-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
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: learning-to-rule-or-skill
|
|
3
3
|
description: "Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work."
|
|
4
4
|
source: project
|
|
5
|
+
domain: process
|
|
5
6
|
execution:
|
|
6
7
|
type: assisted
|
|
7
8
|
handler: internal
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: livewire
|
|
3
3
|
description: "Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.py`. Covers reactive state, events, lifecycle hooks, and component/view separation."
|
|
4
4
|
source: package
|
|
5
|
+
domain: engineering
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# livewire
|
|
@@ -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.
|
|
@@ -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-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
|
|
@@ -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. **
|
|
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: 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: 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: 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
|