@event4u/agent-config 1.33.0 → 1.35.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/commands/roadmap/process-full.md +17 -15
- package/.agent-src/contexts/execution/roadmap-process-loop.md +11 -10
- 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/discovery-lead.md +99 -0
- package/.agent-src/personas/eloquent-tamer.md +96 -0
- package/.agent-src/personas/frontend-engineer.md +100 -0
- package/.agent-src/personas/product-owner.md +71 -52
- package/.agent-src/personas/qa.md +27 -2
- package/.agent-src/personas/revops-maintainer.md +100 -0
- package/.agent-src/personas/security-engineer.md +100 -0
- package/.agent-src/personas/tech-writer.md +99 -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/competitive-positioning/SKILL.md +152 -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/customer-research/SKILL.md +116 -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 +218 -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/discovery-interview/SKILL.md +152 -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/launch-readiness/SKILL.md +156 -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/release-comms/SKILL.md +123 -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 +2 -1
- 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 +237 -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/voc-extract/SKILL.md +164 -0
- package/.agent-src/skills/websocket/SKILL.md +1 -0
- package/.agent-src/templates/roadmaps.md +9 -0
- package/.claude-plugin/marketplace.json +21 -1
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +75 -0
- package/README.md +2 -2
- package/docs/architecture.md +2 -2
- package/docs/catalog.md +21 -4
- package/docs/contracts/context-spine.md +133 -0
- package/docs/contracts/file-ownership-matrix.json +616 -0
- package/docs/contracts/mental-models.md +336 -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/guidelines/cross-role-handoff.md +127 -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_context_spine_usage.py +133 -0
- package/scripts/lint_roadmap_complexity.py +37 -0
- package/scripts/lint_skill_tools.py +168 -0
- package/scripts/schemas/skill.schema.json +15 -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,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: risk-officer
|
|
3
|
+
description: "Use when surfacing and prioritising risk before commit — blast-radius framing, mitigations, residual-risk verdict — even if the user just says 'what could go wrong here?'."
|
|
4
|
+
personas:
|
|
5
|
+
- critical-challenger
|
|
6
|
+
- senior-engineer
|
|
7
|
+
source: package
|
|
8
|
+
domain: quality
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# risk-officer
|
|
12
|
+
|
|
13
|
+
> Surface risks the implementer or PO is likely to underweight, score
|
|
14
|
+
> them by **likelihood × impact**, and propose mitigations the team
|
|
15
|
+
> can actually execute. Sibling of
|
|
16
|
+
> [`threat-modeling`](../threat-modeling/SKILL.md) (security-only)
|
|
17
|
+
> and [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md)
|
|
18
|
+
> (call-site only) — this skill takes the wider product, ops, and
|
|
19
|
+
> coordination view.
|
|
20
|
+
|
|
21
|
+
## When to use
|
|
22
|
+
|
|
23
|
+
- Pre-implementation: a roadmap, ADR, or refined ticket needs a risk
|
|
24
|
+
pass before the team commits.
|
|
25
|
+
- Pre-merge: a non-trivial diff is about to land and the team wants
|
|
26
|
+
one more risk lens beyond the four standard judges.
|
|
27
|
+
- Post-incident: surface the risks the team should track to prevent
|
|
28
|
+
recurrence (without writing the post-mortem itself).
|
|
29
|
+
- German triggers: "was kann schiefgehen?", "Risiko-Check", "wo
|
|
30
|
+
brennt es?".
|
|
31
|
+
|
|
32
|
+
Do NOT use when:
|
|
33
|
+
|
|
34
|
+
- The concern is exclusively security or authZ — route to
|
|
35
|
+
[`threat-modeling`](../threat-modeling/SKILL.md) or
|
|
36
|
+
[`judge-security-auditor`](../judge-security-auditor/SKILL.md).
|
|
37
|
+
- The concern is exclusively call-site impact of a refactor — route
|
|
38
|
+
to [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md).
|
|
39
|
+
- The user wants a fix, not a risk view — risk-officer never patches.
|
|
40
|
+
|
|
41
|
+
## Procedure
|
|
42
|
+
|
|
43
|
+
### 1. Inspect the change
|
|
44
|
+
|
|
45
|
+
Read the input (roadmap step, ticket, diff, post-mortem) and identify
|
|
46
|
+
the scope in one sentence: *"This change does X for users Y, touching
|
|
47
|
+
systems Z."* If you cannot, the artefact is not reviewable — stop and
|
|
48
|
+
ask.
|
|
49
|
+
|
|
50
|
+
### 2. Enumerate risks across five lenses
|
|
51
|
+
|
|
52
|
+
| Lens | Sample questions |
|
|
53
|
+
|---|---|
|
|
54
|
+
| Product | Wrong outcome shipped, churn, support load, brand impact |
|
|
55
|
+
| Operations | Rollback path, observability, on-call burden, alert noise |
|
|
56
|
+
| Coordination | Cross-team dependencies, communication gaps, sequencing |
|
|
57
|
+
| Data | Loss, corruption, leakage, retention, compliance, residency |
|
|
58
|
+
| Time | Schedule slip, opportunity cost, sunk-cost lock-in |
|
|
59
|
+
|
|
60
|
+
Per lens, list each risk as a single bullet. Reject vague risks —
|
|
61
|
+
"could break things" is not a risk; "queue worker silently drops
|
|
62
|
+
messages on retry exhaustion" is.
|
|
63
|
+
|
|
64
|
+
### 3. Score each risk
|
|
65
|
+
|
|
66
|
+
For every risk, assign **L** (likelihood: low / med / high) and **I**
|
|
67
|
+
(impact: low / med / high). Top-5 sort by `LxI` rank; cite the
|
|
68
|
+
trigger condition for each L and I. Do NOT pad to a fixed count —
|
|
69
|
+
three sharp risks beat ten generic ones.
|
|
70
|
+
|
|
71
|
+
### 4. Propose mitigations
|
|
72
|
+
|
|
73
|
+
For the top-5 risks, propose **one** mitigation that the team can
|
|
74
|
+
own. Each mitigation has an owner role (eng, ops, PO, support), a
|
|
75
|
+
rough size (S / M / L), and a residual-risk note (what stays after
|
|
76
|
+
mitigation). Mitigations the team cannot execute are not mitigations
|
|
77
|
+
— flag them as `accept` or escalate.
|
|
78
|
+
|
|
79
|
+
### 5. Issue a verdict
|
|
80
|
+
|
|
81
|
+
| Verdict | When to issue |
|
|
82
|
+
|---|---|
|
|
83
|
+
| `proceed` | Top-5 risks have owned mitigations; residual is acceptable |
|
|
84
|
+
| `proceed-with-mitigations` | Mitigations must land BEFORE or WITH the change |
|
|
85
|
+
| `pause` | One or more `high × high` risks have no executable mitigation |
|
|
86
|
+
|
|
87
|
+
`pause` is not a veto — it forces the user to decide explicitly.
|
|
88
|
+
|
|
89
|
+
### 6. Validate the verdict
|
|
90
|
+
|
|
91
|
+
Before emitting, verify each top-5 risk has: a concrete trigger, a
|
|
92
|
+
scored L×I, an owned mitigation (or explicit `accept`), and a
|
|
93
|
+
residual note. Ensure the verdict matches the worst residual — a
|
|
94
|
+
`high × high` residual without executable mitigation must produce
|
|
95
|
+
`pause`, not `proceed`.
|
|
96
|
+
|
|
97
|
+
## Output format
|
|
98
|
+
|
|
99
|
+
The report is a single block with these ordered fields:
|
|
100
|
+
|
|
101
|
+
1. `Target:` — one-sentence scope from step 1
|
|
102
|
+
2. `Top-5 risks:` — numbered list, each with `L=`, `I=`, trigger,
|
|
103
|
+
mitigation, owner, size, residual
|
|
104
|
+
3. `Other risks tracked:` — count of risks below the top-5 cut
|
|
105
|
+
4. `Verdict:` — exactly one of `proceed` / `proceed-with-mitigations`
|
|
106
|
+
/ `pause`
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Risk-Officer
|
|
110
|
+
Target: <one-sentence scope>
|
|
111
|
+
|
|
112
|
+
Top-5 risks:
|
|
113
|
+
1. 🔴 <risk> (L=high, I=high) Trigger: <condition>
|
|
114
|
+
Mitigation: <action> Owner: <role> Size: <S/M/L>
|
|
115
|
+
Residual: <what remains>
|
|
116
|
+
2. 🟡 <risk> (L=med, I=high) ...
|
|
117
|
+
|
|
118
|
+
Other risks tracked: <count>, summarised below or omitted if low/low.
|
|
119
|
+
|
|
120
|
+
Verdict: proceed | proceed-with-mitigations | pause
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Gotcha
|
|
124
|
+
|
|
125
|
+
- A risk without a trigger is a vibe, not a risk. Reject vibes.
|
|
126
|
+
- Likelihood is conditional on the change — not the universal base
|
|
127
|
+
rate of the system. "Postgres goes down" is not a risk of *this
|
|
128
|
+
change* unless the change increases that likelihood.
|
|
129
|
+
- Mitigations the team will not execute are theatre. Be honest in
|
|
130
|
+
the residual-risk note.
|
|
131
|
+
|
|
132
|
+
## Do NOT
|
|
133
|
+
|
|
134
|
+
- Do NOT enumerate every conceivable risk — top-5 with rationale is
|
|
135
|
+
the contract.
|
|
136
|
+
- Do NOT score `high × high` reflexively to be cautious; mis-scoring
|
|
137
|
+
destroys the rank.
|
|
138
|
+
- Do NOT propose mitigations the agent itself will own — the owner
|
|
139
|
+
is always a human role.
|
|
140
|
+
- Do NOT issue `pause` as a soft veto on something the user already
|
|
141
|
+
decided; issue `proceed-with-mitigations` and surface the residual.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: roadmap-writing
|
|
3
3
|
description: "Use when authoring or rewriting a roadmap in agents/roadmaps/ — phase prose, goal sentence, acceptance criteria, council notes — even when the user just says 'write a plan for X' or 'draft a roadmap'."
|
|
4
4
|
source: package
|
|
5
|
+
domain: process
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
<!-- cloud_safe: degrade -->
|
|
@@ -161,6 +162,6 @@ to every roadmap you author.
|
|
|
161
162
|
|
|
162
163
|
## Examples
|
|
163
164
|
|
|
164
|
-
Browse `agents/roadmaps/` (active
|
|
165
|
+
Browse `agents/roadmaps/` (active set) and `agents/roadmaps/archive/`
|
|
165
166
|
(closed work) for canonical structural / tactical / structural-with-council
|
|
166
167
|
examples.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: rtk-output-filtering
|
|
3
3
|
description: "Use when running verbose CLI commands — wraps them with rtk (Rust Token Killer) for 60-90% token savings. Covers installation, configuration, and usage patterns."
|
|
4
4
|
source: package
|
|
5
|
+
domain: process
|
|
5
6
|
execution:
|
|
6
7
|
type: assisted
|
|
7
8
|
handler: shell
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: rule-writing
|
|
3
3
|
description: "Use when creating or editing a rule in .agent-src.uncompressed/rules/ — trigger wording, always vs auto classification, size budget — even when the user just says 'add a rule 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: script-writing
|
|
3
3
|
description: "Use when adding or editing any script under `scripts/` — `--quiet` flag, `_lib/script_output` helpers, silent Taskfile wiring, Iron-Law carve-outs — even when you just say 'add a check script 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: secrets-management
|
|
3
3
|
description: "Use when picking a secrets store, designing rotation, or wiring scanning gates — multi-cloud (Vault, AWS, Azure, GCP), CI, and Kubernetes — decision framework, provider deep-dives externalized."
|
|
4
4
|
source: package
|
|
5
|
+
domain: devops
|
|
5
6
|
status: active
|
|
6
7
|
refresh_trigger: "A cited provider deprecates an auth method, OR External Secrets Operator ships a major version with breaking CRD changes, OR ≥30% of cited scanner tools change their gate semantics."
|
|
7
8
|
sunset_criterion: "When provider docs (Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) all converge on a single rotation + scanning standard AND consumer projects no longer cite this skill in PR reviews for two consecutive review cycles."
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: skill-improvement-pipeline
|
|
3
3
|
description: "ONLY when user explicitly requests: run the skill improvement pipeline after a learning was detected. Orchestrates capture, classify, create, validate, and apply."
|
|
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: skill-management
|
|
3
3
|
description: "Use when compressing, decompressing, refactoring, or improving existing skills. Covers the full skill lifecycle from verbose → sharp → maintained."
|
|
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: skill-writing
|
|
3
3
|
description: "Use when deciding 'should this be a skill or a rule?', creating/improving/reviewing agent skills, SKILL.md frontmatter, or procedure sections — even without saying 'skill-writing'."
|
|
4
4
|
source: project
|
|
5
|
+
domain: process
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# skill-writing
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: sql-writing
|
|
3
3
|
description: "Use when writing raw SQL — MariaDB/MySQL syntax, parameterization, raw migrations, seeders with `DB::statement` — even when the user just pastes a query and asks 'why is this slow' without naming SQL."
|
|
4
4
|
source: package
|
|
5
|
+
domain: engineering
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# sql
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stakeholder-tradeoff
|
|
3
|
+
description: "Use when stakeholders pull a decision in different directions — frames each lens, builds a trade-off matrix, surfaces the cost of every choice — even if the user just says 'PO and ops disagree'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: product
|
|
8
|
+
context_spine: [team, product]
|
|
9
|
+
personas:
|
|
10
|
+
- product-owner
|
|
11
|
+
- stakeholder
|
|
12
|
+
- critical-challenger
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# stakeholder-tradeoff
|
|
16
|
+
|
|
17
|
+
> Make explicit who pays and who benefits when a decision pulls
|
|
18
|
+
> stakeholders in different directions. Builds a **stakeholder ×
|
|
19
|
+
> criterion matrix** so the trade-off is visible, not hidden in
|
|
20
|
+
> politics. Sibling of [`decision-record`](../decision-record/SKILL.md)
|
|
21
|
+
> — that one locks the choice; this one surfaces the *human cost*
|
|
22
|
+
> of each option before the lock.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- PO, ops, support, and engineering disagree on an approach and the
|
|
27
|
+
user wants the disagreement made legible.
|
|
28
|
+
- A decision benefits one segment at the cost of another (free vs
|
|
29
|
+
paid users, internal vs external, region A vs region B).
|
|
30
|
+
- A roadmap step has *un*declared trade-offs and the user wants
|
|
31
|
+
them surfaced before commit.
|
|
32
|
+
- German triggers: "Wer zahlt was?", "Stakeholder-Konflikt",
|
|
33
|
+
"Trade-off zwischen X und Y".
|
|
34
|
+
|
|
35
|
+
Do NOT use when:
|
|
36
|
+
|
|
37
|
+
- One stakeholder owns the decision unambiguously — surface their
|
|
38
|
+
decision and stop.
|
|
39
|
+
- The trade-off is technical-only (perf vs storage) — route to
|
|
40
|
+
[`decision-record`](../decision-record/SKILL.md).
|
|
41
|
+
- The trade-off is risk-only — route to
|
|
42
|
+
[`risk-officer`](../risk-officer/SKILL.md).
|
|
43
|
+
|
|
44
|
+
## Cognition cluster
|
|
45
|
+
|
|
46
|
+
- **Mental model 5 — Opportunity cost.** Every `+` on the matrix is
|
|
47
|
+
also an opportunity cost on the stakeholders not getting that
|
|
48
|
+
benefit; the matrix only earns its keep when it surfaces who pays
|
|
49
|
+
for the chosen `+`. See
|
|
50
|
+
[`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 5.
|
|
51
|
+
- **Mental model 27 — Outcome over output.** Picking the option with
|
|
52
|
+
the most checkmarks is output theatre; pick the option whose `–`
|
|
53
|
+
cells land on stakeholders who can execute mitigations. See
|
|
54
|
+
`mental-models.md` § 27.
|
|
55
|
+
- **Mental model 29 — Pre-mortems.** For the recommended option,
|
|
56
|
+
state the failure mode each `–`-bearing stakeholder will name in
|
|
57
|
+
six months. If you cannot, the lens is incomplete — re-interview.
|
|
58
|
+
See `mental-models.md` § 29.
|
|
59
|
+
- **Team + product context-spine slots.** Read **team** for the
|
|
60
|
+
silent-stakeholders inventory (on-call, support, finance) and
|
|
61
|
+
**product** for end-user / segment lenses (free vs paid, region,
|
|
62
|
+
cohort). See [`context-spine`](../../../docs/contracts/context-spine.md).
|
|
63
|
+
|
|
64
|
+
## Procedure
|
|
65
|
+
|
|
66
|
+
### 1. Identify the stakeholders
|
|
67
|
+
|
|
68
|
+
Each by **role**, not name. Roles are stable across people —
|
|
69
|
+
"on-call engineer" not "Anna". Include silent stakeholders the
|
|
70
|
+
room forgot (support, finance, legal, end-users, future-team).
|
|
71
|
+
|
|
72
|
+
### 2. Capture each stakeholder's lens
|
|
73
|
+
|
|
74
|
+
For each stakeholder:
|
|
75
|
+
|
|
76
|
+
- **What they want** — outcome, in their voice.
|
|
77
|
+
- **What they fear** — the failure mode they cannot accept.
|
|
78
|
+
- **What they will trade** — what they will give up to get the
|
|
79
|
+
outcome.
|
|
80
|
+
|
|
81
|
+
If a lens is missing, mark `unknown` and surface it — do NOT invent
|
|
82
|
+
a position the stakeholder did not state.
|
|
83
|
+
|
|
84
|
+
### 3. Build the matrix
|
|
85
|
+
|
|
86
|
+
| Criterion | PO | Ops | Support | Eng | End-user | ... |
|
|
87
|
+
|---|---|---|---|---|---|---|
|
|
88
|
+
| Time-to-ship | + | – | 0 | – | + | |
|
|
89
|
+
| Operational load | 0 | – | – | – | + | |
|
|
90
|
+
| ...
|
|
91
|
+
|
|
92
|
+
`+` benefits, `–` costs, `0` neutral. The columns are stakeholders;
|
|
93
|
+
the rows are criteria. Criteria that score `0` everywhere are
|
|
94
|
+
noise — drop.
|
|
95
|
+
|
|
96
|
+
### 4. Surface the trade-off
|
|
97
|
+
|
|
98
|
+
Pick the top 2-3 criteria where the matrix splits stakeholders
|
|
99
|
+
hardest. State the trade-off in plain language:
|
|
100
|
+
|
|
101
|
+
> *"Picking option X means PO ships faster, but on-call carries
|
|
102
|
+
> more pages. Picking option Y means on-call sleeps, but PO slips
|
|
103
|
+
> two weeks."*
|
|
104
|
+
|
|
105
|
+
If no option splits the matrix unfavourably, the trade-off is
|
|
106
|
+
imaginary — surface that and stop.
|
|
107
|
+
|
|
108
|
+
### 5. Recommend a path
|
|
109
|
+
|
|
110
|
+
Pick the option whose `–` cells are owned by stakeholders who can
|
|
111
|
+
execute mitigations. Avoid options where the cost lands on a
|
|
112
|
+
stakeholder who has no voice in the room. State the recommendation
|
|
113
|
+
explicitly with a one-sentence rationale.
|
|
114
|
+
|
|
115
|
+
### 6. Validate the matrix
|
|
116
|
+
|
|
117
|
+
Verify before emitting: every stakeholder has wants / fears / trades
|
|
118
|
+
filled or marked `unknown`, the matrix has no row that scores `0`
|
|
119
|
+
everywhere, the trade-off paragraph names a concrete cost (not just
|
|
120
|
+
"there is a trade-off"), and the recommendation cites which `–`
|
|
121
|
+
cells the named owner can execute. Ensure no silent stakeholder
|
|
122
|
+
column is missing.
|
|
123
|
+
|
|
124
|
+
## Related Skills
|
|
125
|
+
|
|
126
|
+
**WHEN to use this**
|
|
127
|
+
|
|
128
|
+
- A request crosses two stakeholder lenses (eng ↔ PO, PO ↔ ops, ops
|
|
129
|
+
↔ infra) and the trade-off is **not yet code**.
|
|
130
|
+
- The room agrees on the goal but disagrees on who absorbs the cost.
|
|
131
|
+
- A roadmap step has *un*declared trade-offs that need surfacing
|
|
132
|
+
before commit.
|
|
133
|
+
|
|
134
|
+
**WHEN NOT to use this**
|
|
135
|
+
|
|
136
|
+
- The conflict surfaces **inside an open PR** (test-coverage fails
|
|
137
|
+
but PO wants to ship) — start with `code-review-multi-lens`
|
|
138
|
+
(sibling C8); a C8 verdict that surfaces stakeholder conflict
|
|
139
|
+
becomes input to this skill for escalation. Boundary prose lives
|
|
140
|
+
in [`docs/guidelines/cross-role-handoff.md`](../../../docs/guidelines/cross-role-handoff.md).
|
|
141
|
+
- The trade-off is purely technical (perf vs storage, sync vs async)
|
|
142
|
+
— route to [`decision-record`](../decision-record/SKILL.md).
|
|
143
|
+
- The dominant axis is risk, not stakeholder cost — route to
|
|
144
|
+
[`risk-officer`](../risk-officer/SKILL.md).
|
|
145
|
+
- The output is the locked decision artifact — hand off to
|
|
146
|
+
[`decision-record`](../decision-record/SKILL.md) once the matrix
|
|
147
|
+
is built.
|
|
148
|
+
|
|
149
|
+
## When the agent should load this
|
|
150
|
+
|
|
151
|
+
- "Wer zahlt was bei dieser Entscheidung?"
|
|
152
|
+
- "PO und Ops sind sich uneinig — wir brauchen Klarheit."
|
|
153
|
+
- "Was ist der Trade-off zwischen X und Y für die einzelnen Lenses?"
|
|
154
|
+
- "Stakeholder-Konflikt vor dem Commit auflösen."
|
|
155
|
+
- "Diese Roadmap-Phase hat undeclared trade-offs."
|
|
156
|
+
|
|
157
|
+
## Output
|
|
158
|
+
|
|
159
|
+
The trade-off report is a single block with these ordered fields:
|
|
160
|
+
|
|
161
|
+
1. `Decision:` — one sentence framing the choice
|
|
162
|
+
2. `Stakeholders:` — bullet list, each with wants / fears / trades
|
|
163
|
+
3. `Matrix:` — markdown table with criteria rows and stakeholder columns
|
|
164
|
+
4. `Trade-off in plain language:` — one paragraph naming the cost
|
|
165
|
+
5. `Recommendation:`, `Rationale:`, `Next:` — explicit choice +
|
|
166
|
+
rationale + handoff target
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
Stakeholder trade-off
|
|
170
|
+
Decision: <one sentence>
|
|
171
|
+
|
|
172
|
+
Stakeholders:
|
|
173
|
+
- <role> wants: <outcome> fears: <failure> trades: <what>
|
|
174
|
+
- ...
|
|
175
|
+
|
|
176
|
+
Matrix:
|
|
177
|
+
| Criterion | <SH 1> | <SH 2> | ... |
|
|
178
|
+
| ...
|
|
179
|
+
|
|
180
|
+
Trade-off in plain language:
|
|
181
|
+
<one paragraph>
|
|
182
|
+
|
|
183
|
+
Recommendation: <option>
|
|
184
|
+
Rationale: <one sentence>
|
|
185
|
+
Next: /decision-record to lock the choice
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Gotcha
|
|
189
|
+
|
|
190
|
+
- The room is rarely all the stakeholders. Add the silent ones
|
|
191
|
+
explicitly (support, future-team, end-users).
|
|
192
|
+
- A `+` everywhere column is suspect; either a stakeholder
|
|
193
|
+
understated the cost or you understated the cost.
|
|
194
|
+
- The "happy path" recommendation is the option with the cost on
|
|
195
|
+
someone who is *not in the room*. Resist it.
|
|
196
|
+
|
|
197
|
+
## Do NOT
|
|
198
|
+
|
|
199
|
+
- Do NOT label stakeholders by name — roles only.
|
|
200
|
+
- Do NOT score before listing the stakeholders' own words; agent
|
|
201
|
+
ventriloquism is the failure mode.
|
|
202
|
+
- Do NOT pick the option that scores best on *all* stakeholders —
|
|
203
|
+
if it exists, the trade-off was imaginary; surface that.
|
|
204
|
+
- Do NOT lock the choice in this skill; hand off to
|
|
205
|
+
`decision-record`.
|
|
206
|
+
|
|
207
|
+
## Runnable example
|
|
208
|
+
|
|
209
|
+
A pricing-page rewrite that ships faster vs gives ops more lead time:
|
|
210
|
+
|
|
211
|
+
- Decision: *"Should the pricing-page rewrite ship in 2 weeks
|
|
212
|
+
(option A) or 4 weeks with a managed rollout (option B)?"*
|
|
213
|
+
- Stakeholders:
|
|
214
|
+
- **PO** wants: revenue lift on Q-end · fears: churn signal in
|
|
215
|
+
the noise · trades: copy polish for time-to-ship.
|
|
216
|
+
- **On-call eng** wants: change window outside Friday · fears:
|
|
217
|
+
Saturday paging on a marketing rollout · trades: shippable A/B
|
|
218
|
+
framework for a deploy gate.
|
|
219
|
+
- **Support lead** wants: scripted answers for the new tier ·
|
|
220
|
+
fears: ticket-volume spike unprepared · trades: depth of
|
|
221
|
+
answers for breadth.
|
|
222
|
+
- **End-user (free tier)** wants: clear "what stays free" line ·
|
|
223
|
+
fears: silent paywall on a feature they rely on · trades:
|
|
224
|
+
nothing — silent stakeholder.
|
|
225
|
+
- Matrix splits hardest on **operational load** (option A: `–` for
|
|
226
|
+
on-call + support, `+` for PO) and **clarity for end-users**
|
|
227
|
+
(option B: `+` for support + end-user, `–` for PO timing).
|
|
228
|
+
- Trade-off in plain language: *"Option A means PO hits Q-end, but
|
|
229
|
+
on-call carries a marketing-rollout pager and support eats ticket
|
|
230
|
+
spikes blind. Option B means support and end-users land softly,
|
|
231
|
+
but PO slips two weeks past Q-end."*
|
|
232
|
+
- Recommendation: option B. Rationale: the `–` cells in option A
|
|
233
|
+
land on stakeholders who **cannot** mitigate from inside the
|
|
234
|
+
rollout (free-tier user has no voice in the room).
|
|
235
|
+
- Next: `/decision-record` to lock option B; the supersession chain
|
|
236
|
+
cites the original "ship by Q-end" mandate as the constraint that
|
|
237
|
+
changed.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: subagent-orchestration
|
|
3
3
|
description: "Use when orchestrating implementer/judge subagents — seven modes (do-and-judge ±two-stage, do-in-steps/parallel/worktrees, do-competitively, judge-with-debate) — models from .agent-settings.yml."
|
|
4
4
|
source: package
|
|
5
|
+
domain: process
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# subagent-orchestration
|
|
@@ -159,6 +160,18 @@ step is under ~30 minutes. The branch-creation, context-switch, and
|
|
|
159
160
|
worktree-cleanup cost dominates. Stick with mode 1 (do-and-judge)
|
|
160
161
|
or mode 3 (do-in-steps) for those.
|
|
161
162
|
|
|
163
|
+
**Competitive variant — per-candidate isolation.** Mode 5
|
|
164
|
+
(`do-competitively`) + worktrees: each candidate runs in its own
|
|
165
|
+
worktree (no cross-candidate state leak). Selection rules:
|
|
166
|
+
|
|
167
|
+
- **No auto-merge.** Orchestrator never merges candidate branches.
|
|
168
|
+
Hard Floor per [`non-destructive-by-default`](../../rules/non-destructive-by-default.md) —
|
|
169
|
+
applies even under standing autonomy. ADR-005 records reasoning.
|
|
170
|
+
- **Ranked presentation.** Judge ranks 1..N with one-line
|
|
171
|
+
justifications; user picks winner.
|
|
172
|
+
- **Loser worktrees stay.** Orchestrator does not auto-delete losing
|
|
173
|
+
worktrees — user keeps option to harvest a partial idea before cleanup.
|
|
174
|
+
|
|
162
175
|
## Status taxonomy — every subagent return uses one envelope
|
|
163
176
|
|
|
164
177
|
Every implementer or judge return must conform to
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: systematic-debugging
|
|
3
3
|
description: "Use when hitting a bug, test failure, crash, or unexpected behavior — enforces reproduce → isolate → hypothesize → verify before any fix — even when the user just says 'this is broken' or 'quick fix'."
|
|
4
4
|
source: package
|
|
5
|
+
domain: discovery
|
|
5
6
|
council_depth: deep
|
|
6
7
|
---
|
|
7
8
|
|