@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.
- package/.agent-src/commands/research/deep.md +149 -0
- package/.agent-src/commands/research/report.md +134 -0
- package/.agent-src/commands/research.md +43 -13
- 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 +17 -1
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +68 -0
- package/README.md +3 -3
- package/docs/architecture.md +3 -3
- package/docs/catalog.md +26 -5
- package/docs/contracts/command-clusters.md +1 -1
- package/docs/contracts/file-ownership-matrix.json +560 -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/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/docs/guidelines/agent-infra/critical-thinking.md +156 -0
- package/docs/guidelines/agent-infra/first-principles.md +192 -0
- package/docs/guidelines/agent-infra/six-hats.md +353 -0
- package/docs/guidelines/agent-infra/systems-thinking.md +220 -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: 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.
|
|
@@ -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
|