@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
|
@@ -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."
|
|
@@ -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. **
|
|
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: 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
|
|
@@ -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.
|
|
@@ -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.
|