@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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: copilot-agents-optimization
|
|
3
3
|
description: "Use when optimizing AGENTS.md or copilot-instructions.md — deduplicates against .augment/ content, enforces line budgets, and focuses each file on its audience."
|
|
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: copilot-config
|
|
3
3
|
description: "Use when configuring GitHub Copilot — copilot-instructions.md, PR review patterns, output optimization — even when the user just says 'tune Copilot' or 'why is Copilot commenting on X'."
|
|
4
4
|
source: package
|
|
5
|
+
domain: process
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Copilot Skill
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: customer-research
|
|
3
|
+
description: "Use when shaping a discovery slice — JTBD-framed interview guide, switch-event focus, verbatim quotes not summaries. Triggers on 'talk to users', 'why did they cancel', 'before we build X'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: product
|
|
8
|
+
context_spine: [product]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# customer-research
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- A backlog item is fuzzy because no one has talked to a current user about the underlying job in the last quarter.
|
|
16
|
+
- A churn or refund spike needs a switch-event explanation, not a feature gap list.
|
|
17
|
+
- A product owner is about to write AC for a feature that has not been validated against a real user job.
|
|
18
|
+
|
|
19
|
+
Do NOT use for quantitative funnel diagnosis (see `funnel-analysis`),
|
|
20
|
+
RICE-style ranking (see `rice-prioritization`), or surveying at scale —
|
|
21
|
+
this skill is about depth-5-to-10 interviews, not statistics.
|
|
22
|
+
|
|
23
|
+
## Cognition cluster
|
|
24
|
+
|
|
25
|
+
- **Mental model 2 — Jobs-to-be-Done.** Frames every question against
|
|
26
|
+
the **switch event**: what caused the user to fire the previous
|
|
27
|
+
solution? See [`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 2.
|
|
28
|
+
- **Mental model 3 — Pareto principle.** A research week that
|
|
29
|
+
produces 12 distinct insights is usually re-discovering the same
|
|
30
|
+
three. See `mental-models.md` § 3.
|
|
31
|
+
|
|
32
|
+
## Procedure
|
|
33
|
+
|
|
34
|
+
### Step 0: Frame the job
|
|
35
|
+
|
|
36
|
+
1. Write one sentence: *"Users hire \<thing\> to make progress in \<situation\>, when motivated by \<pressure\>, expecting \<outcome\>."* If you cannot finish the sentence, the discovery slice is not yet shaped — stop and route to `po-discovery`.
|
|
37
|
+
2. Read the **product** slot of the [context-spine](../../../docs/contracts/context-spine.md) (if the consumer project has filled it) for bounded scope, and the **team** slot for the senior PO / researcher handoff target. Skip if absent — note in the brief.
|
|
38
|
+
3. Identify **one** competing solution the user might fire. Multiple competitors per session blurs the switch event.
|
|
39
|
+
|
|
40
|
+
### Step 1: Recruit the right 5–8
|
|
41
|
+
|
|
42
|
+
1. Recruit **switchers** (joined in last 60 days) and **leavers**
|
|
43
|
+
(cancelled in last 60 days). Long-tenure power-users go in a
|
|
44
|
+
separate bucket — they explain habits, not jobs.
|
|
45
|
+
2. 5 minimum, 8 maximum. Saturation hits around 6 in a tightly
|
|
46
|
+
scoped job — the Pareto cut. Beyond 8 is research theatre.
|
|
47
|
+
3. Avoid friends, employees, beta-program over-talkers — selection bias is the failure mode that survives the AC.
|
|
48
|
+
|
|
49
|
+
### Step 2: Run the interview
|
|
50
|
+
|
|
51
|
+
1. Open with the **switch event**: *"Walk me through the day you decided to start using \<product\>."* Time, place, trigger, alternative considered.
|
|
52
|
+
2. Past behaviour, not hypothetical. Replace *"would you use"* with *"the last time you needed X, what did you do?"*.
|
|
53
|
+
3. Capture **quotes**, not summaries. Verbatim quotes survive the AC; paraphrases get re-interpreted into pre-existing beliefs.
|
|
54
|
+
4. Listen for the **anxiety / habit** pair — what they feared in switching, what habit died.
|
|
55
|
+
|
|
56
|
+
### Step 3: Code the evidence
|
|
57
|
+
|
|
58
|
+
1. One quote per insight. Tag each with: switch-event, anxiety, habit, expected-outcome, unexpected-outcome.
|
|
59
|
+
2. An insight without a quote is a hypothesis, not a finding — mark it.
|
|
60
|
+
3. Frequency-rank by how many distinct interviewees touched the insight (≥ 3 is signal; 1 is anecdote).
|
|
61
|
+
|
|
62
|
+
### Step 4: Hand back
|
|
63
|
+
|
|
64
|
+
1. Produce the three artifacts (see `## Output`).
|
|
65
|
+
2. Hand the brief to the senior PO. Do **not** translate findings into AC inside this skill — that is `refine-ticket`'s job.
|
|
66
|
+
|
|
67
|
+
## Related Skills
|
|
68
|
+
|
|
69
|
+
**WHEN to use this**
|
|
70
|
+
|
|
71
|
+
- The unit of analysis is **a real user's switch event**.
|
|
72
|
+
- Discovery is fuzzy and the team is about to ship without validation.
|
|
73
|
+
- A retention or churn spike needs a narrative, not a metric.
|
|
74
|
+
|
|
75
|
+
**WHEN NOT to use this**
|
|
76
|
+
|
|
77
|
+
- Quantitative drop-off across stages — route to [`funnel-analysis`](../funnel-analysis/SKILL.md).
|
|
78
|
+
- Ranking competing initiatives — route to [`rice-prioritization`](../rice-prioritization/SKILL.md).
|
|
79
|
+
- Reframing a fuzzy product ask before any user contact — route to [`po-discovery`](../po-discovery/SKILL.md).
|
|
80
|
+
- AC sharpening on an already-validated ticket — route to [`refine-ticket`](../refine-ticket/SKILL.md).
|
|
81
|
+
|
|
82
|
+
## When the agent should load this
|
|
83
|
+
|
|
84
|
+
- "We need to talk to users before we build X."
|
|
85
|
+
- "Why are people churning at month 2?"
|
|
86
|
+
- "Run customer research on the new pricing tier."
|
|
87
|
+
- "I keep guessing what the user wants — let's actually ask."
|
|
88
|
+
- "Before refining this ticket, do we know the real job?"
|
|
89
|
+
|
|
90
|
+
## Output
|
|
91
|
+
|
|
92
|
+
1. **`research-brief.md`** — frame sentence, recruit criteria, target sample, JTBD focal job, list of competing solutions in scope. Pre-interview artifact.
|
|
93
|
+
2. **`evidence-log.md`** — one row per insight: quote · interviewee ID · tag (switch / anxiety / habit / outcome) · frequency. Sorted by frequency descending. Verbatim only.
|
|
94
|
+
3. **`switch-event-summary.md`** — narrative of the dominant switch event(s) the research surfaced, with ≥ 3 supporting quotes per claim. Hand-off artifact for [`refine-ticket`](../refine-ticket/SKILL.md) and the senior product owner persona (currently [`product-owner`](../../personas/product-owner.md); senior persona shipping in next plate).
|
|
95
|
+
|
|
96
|
+
## Gotcha
|
|
97
|
+
|
|
98
|
+
- Asking *"would you use"* contaminates the answer with politeness; ground every question in past behaviour.
|
|
99
|
+
- One articulate interviewee can swamp evidence-log. Frequency-rank by distinct people, not distinct quotes.
|
|
100
|
+
- Tagging too aggressively pre-interview hides surprise findings — leave room for `unexpected-outcome`.
|
|
101
|
+
- A research week without ≥ 3 disqualified hypotheses is suspect — research that confirms everything is research that asked nothing.
|
|
102
|
+
|
|
103
|
+
## Do NOT
|
|
104
|
+
|
|
105
|
+
- Do NOT translate findings into acceptance criteria inside this skill — hand off to `refine-ticket`.
|
|
106
|
+
- Do NOT recruit only happy users; switchers and leavers carry the switch-event signal, satisfied users do not.
|
|
107
|
+
- Do NOT skip the frame sentence. An unframed interview produces 50 quotes about 8 different jobs.
|
|
108
|
+
|
|
109
|
+
## Runnable example
|
|
110
|
+
|
|
111
|
+
Pricing-tier churn at month 2:
|
|
112
|
+
|
|
113
|
+
- Frame: *"Customers hire \<product\> to make progress in \<weekly reporting\>, motivated by \<board cadence\>, expecting \<one-click roll-up\>."*
|
|
114
|
+
- Recruit: 6 leavers (cancelled within 30 days of month 2), 2 switchers from competitor C.
|
|
115
|
+
- Interview: open with *"Walk me through the day you decided to cancel."* Capture verbatim.
|
|
116
|
+
- Output: `evidence-log.md` shows 5 of 8 cite the *manual export step* as the cancellation trigger — switch-event signal, ≥ 3 frequency. `switch-event-summary.md` recommends the senior PO scope a discovery slice on the export step, not the report itself.
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database
|
|
3
3
|
description: "Use when working with database architecture, MariaDB/MySQL tuning, indexing strategies, slow queries, or multi-connection patterns — even when the user just says 'this query is slow'."
|
|
4
|
+
personas:
|
|
5
|
+
- eloquent-tamer
|
|
4
6
|
source: package
|
|
7
|
+
domain: engineering
|
|
5
8
|
---
|
|
6
9
|
|
|
7
10
|
# database
|
|
@@ -0,0 +1,218 @@
|
|
|
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
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: process
|
|
8
|
+
context_spine: [team]
|
|
9
|
+
personas:
|
|
10
|
+
- senior-engineer
|
|
11
|
+
- critical-challenger
|
|
12
|
+
- product-owner
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# decision-record
|
|
16
|
+
|
|
17
|
+
> Shape the **thinking** behind an architectural decision: list the
|
|
18
|
+
> options, expose trade-offs, lock the chosen variant, and wire the
|
|
19
|
+
> supersession chain. Hands off to [`adr-create`](../adr-create/SKILL.md)
|
|
20
|
+
> for file mechanics (numbering, index, frontmatter). This skill does
|
|
21
|
+
> not write the ADR file itself.
|
|
22
|
+
|
|
23
|
+
## When to use
|
|
24
|
+
|
|
25
|
+
- A team is about to commit to a non-trivial architectural choice and
|
|
26
|
+
wants the trade-offs on paper first.
|
|
27
|
+
- Two engineers disagree on an approach — surface the options and
|
|
28
|
+
consequences before one wins by attrition.
|
|
29
|
+
- A previous decision needs revisiting; the result must `supersede:`
|
|
30
|
+
the older ADR with explicit rationale.
|
|
31
|
+
- German triggers: "lass uns das festzurren", "Trade-off-Matrix",
|
|
32
|
+
"welche Option ziehen wir?".
|
|
33
|
+
|
|
34
|
+
Do NOT use when:
|
|
35
|
+
|
|
36
|
+
- The file mechanics are the entire ask (numbering, regenerating the
|
|
37
|
+
index) — route directly to [`adr-create`](../adr-create/SKILL.md).
|
|
38
|
+
- The decision is reversible and small (e.g. variable rename) — ADRs
|
|
39
|
+
are for choices that constrain future work.
|
|
40
|
+
- The user wants a feature plan, not a decision — route to the
|
|
41
|
+
planning command instead.
|
|
42
|
+
|
|
43
|
+
## Cognition cluster
|
|
44
|
+
|
|
45
|
+
- **Mental model 4 — Second-order thinking.** Every decision unlocks
|
|
46
|
+
some futures and locks out others; the consequences block names
|
|
47
|
+
what becomes harder, not just what becomes easier. See
|
|
48
|
+
[`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 4.
|
|
49
|
+
- **Mental model 6 — Theory of constraints.** A decision that does
|
|
50
|
+
not move the binding constraint is theatre; if the trade-off matrix
|
|
51
|
+
scores every option the same on the constraint that matters, the
|
|
52
|
+
options are fungible — surface and stop. See `mental-models.md` § 6.
|
|
53
|
+
- **Mental model 10 — Reversible vs irreversible.** Two-way doors
|
|
54
|
+
get a one-page record; one-way doors get the full options +
|
|
55
|
+
consequences + supersession chain. The reversibility row of the
|
|
56
|
+
matrix decides which template fires. See `mental-models.md` § 10.
|
|
57
|
+
- **Team context-spine slot.** Read the **team** slot of the
|
|
58
|
+
[context-spine](../../../docs/contracts/context-spine.md) to
|
|
59
|
+
capture who is bound by the decision (review groups, on-call
|
|
60
|
+
rotation). Skip if the consumer project has not filled it; note in
|
|
61
|
+
the record.
|
|
62
|
+
|
|
63
|
+
## Procedure
|
|
64
|
+
|
|
65
|
+
### 1. State the decision in one sentence
|
|
66
|
+
|
|
67
|
+
*"We need to decide `X` because `Y`."* If you cannot, the decision
|
|
68
|
+
is not ripe — surface that and stop.
|
|
69
|
+
|
|
70
|
+
### 2. Identify and enumerate options (≥ 2, usually ≤ 4)
|
|
71
|
+
|
|
72
|
+
Each option gets:
|
|
73
|
+
|
|
74
|
+
- **Name** — short, descriptive, never "option A / B / C".
|
|
75
|
+
- **Sketch** — what it actually does in one paragraph.
|
|
76
|
+
- **Cost / benefit** — three to five bullets per side, concrete.
|
|
77
|
+
- **Reversibility** — easy / costly / one-way (Bezos two-way / one-way
|
|
78
|
+
door framing).
|
|
79
|
+
|
|
80
|
+
Add an **explicit "do nothing"** option whenever it is plausible —
|
|
81
|
+
forces the user to compare the change against the status quo.
|
|
82
|
+
|
|
83
|
+
### 3. Build the trade-off matrix
|
|
84
|
+
|
|
85
|
+
| Criterion | Option 1 | Option 2 | ... |
|
|
86
|
+
|---|---|---|---|
|
|
87
|
+
| Implementation cost | | | |
|
|
88
|
+
| Operational cost | | | |
|
|
89
|
+
| Reversibility | | | |
|
|
90
|
+
| Blast radius | | | |
|
|
91
|
+
| Time-to-value | | | |
|
|
92
|
+
|
|
93
|
+
Pick criteria that *separate* the options. Criteria where every
|
|
94
|
+
option scores the same are noise — drop them.
|
|
95
|
+
|
|
96
|
+
### 4. Lock the choice + consequences
|
|
97
|
+
|
|
98
|
+
Write:
|
|
99
|
+
|
|
100
|
+
- **Decision:** *"We pick `<Option name>`."*
|
|
101
|
+
- **Consequences:** what becomes true, what becomes harder, what
|
|
102
|
+
becomes impossible. At least one of each, or admit that nothing
|
|
103
|
+
becomes harder (rare; verify).
|
|
104
|
+
|
|
105
|
+
### 5. Wire the supersession chain (if any)
|
|
106
|
+
|
|
107
|
+
If this decision overrides a prior ADR:
|
|
108
|
+
|
|
109
|
+
- Cite the prior ADR id and one-line summary.
|
|
110
|
+
- State **what changed in the world** that justifies overriding —
|
|
111
|
+
not "we now think differently".
|
|
112
|
+
- Hand off the `supersedes:` linkage to `adr-create`.
|
|
113
|
+
|
|
114
|
+
### 6. Hand off to file mechanics
|
|
115
|
+
|
|
116
|
+
Output the structured payload (below). The user — or
|
|
117
|
+
`adr-create` — turns it into the file.
|
|
118
|
+
|
|
119
|
+
## Related Skills
|
|
120
|
+
|
|
121
|
+
**WHEN to use this**
|
|
122
|
+
|
|
123
|
+
- The team is about to lock a non-trivial choice and the trade-offs
|
|
124
|
+
need to survive the conversation that produced them.
|
|
125
|
+
- A prior ADR is being overridden and the supersession chain needs
|
|
126
|
+
explicit "what changed in the world" rationale.
|
|
127
|
+
- A planning thread has surfaced ≥ 2 viable options and silence is
|
|
128
|
+
about to pick one by attrition.
|
|
129
|
+
|
|
130
|
+
**WHEN NOT to use this**
|
|
131
|
+
|
|
132
|
+
- The choice splits stakeholders along role lines (PO vs ops, eng vs
|
|
133
|
+
support) — start with [`stakeholder-tradeoff`](../stakeholder-tradeoff/SKILL.md);
|
|
134
|
+
this skill locks the choice **after** the human cost is mapped.
|
|
135
|
+
- The output is the ADR file itself (numbering, index regen) — route
|
|
136
|
+
to [`adr-create`](../adr-create/SKILL.md); this skill produces the
|
|
137
|
+
payload, not the file.
|
|
138
|
+
- The risk shape is the dominant question — route to
|
|
139
|
+
[`risk-officer`](../risk-officer/SKILL.md) first, then return.
|
|
140
|
+
- The decision is reversible and cheap — write a one-line note and
|
|
141
|
+
move on; ADRs are for irreversible or expensive constraints.
|
|
142
|
+
|
|
143
|
+
## When the agent should load this
|
|
144
|
+
|
|
145
|
+
- "Lass uns das festzurren."
|
|
146
|
+
- "Welche Option ziehen wir und warum?"
|
|
147
|
+
- "Wir müssen ein ADR draus machen."
|
|
148
|
+
- "Trade-off-Matrix für X vs Y."
|
|
149
|
+
- "Diese Entscheidung überschreibt das alte ADR-NN."
|
|
150
|
+
|
|
151
|
+
## Output
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Decision: <one sentence>
|
|
155
|
+
|
|
156
|
+
Options:
|
|
157
|
+
1. <name> — <sketch>
|
|
158
|
+
Pros: ...
|
|
159
|
+
Cons: ...
|
|
160
|
+
Reversibility: easy | costly | one-way
|
|
161
|
+
2. ...
|
|
162
|
+
N. Do nothing — <sketch>
|
|
163
|
+
|
|
164
|
+
Trade-off matrix:
|
|
165
|
+
| Criterion | <opt 1> | <opt 2> | ... |
|
|
166
|
+
| ...
|
|
167
|
+
|
|
168
|
+
Locked: <chosen option name>
|
|
169
|
+
|
|
170
|
+
Consequences:
|
|
171
|
+
+ <becomes true>
|
|
172
|
+
- <becomes harder>
|
|
173
|
+
✗ <becomes impossible>
|
|
174
|
+
|
|
175
|
+
Supersedes: <ADR-XYZ "title"> (if any)
|
|
176
|
+
Trigger: <what changed> (if superseding)
|
|
177
|
+
|
|
178
|
+
Next: /adr-create with the payload above
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Gotcha
|
|
182
|
+
|
|
183
|
+
- "We compared the options" is not a comparison. The matrix must
|
|
184
|
+
separate them on at least two criteria.
|
|
185
|
+
- Pros without cons is advocacy, not analysis. If you cannot find
|
|
186
|
+
cons for the chosen option, you have not understood it yet.
|
|
187
|
+
- A supersession with no "what changed in the world" is a vibe
|
|
188
|
+
pivot. Reject and ask.
|
|
189
|
+
|
|
190
|
+
## Do NOT
|
|
191
|
+
|
|
192
|
+
- Do NOT pick the option before listing them — the matrix is the
|
|
193
|
+
point, not the conclusion.
|
|
194
|
+
- Do NOT write the ADR file from this skill — `adr-create` owns
|
|
195
|
+
filenames, numbering, and index regeneration.
|
|
196
|
+
- Do NOT pad option counts to look thorough; two real options beat
|
|
197
|
+
four straw men.
|
|
198
|
+
- Do NOT silently update an old ADR; supersession is explicit.
|
|
199
|
+
|
|
200
|
+
## Runnable example
|
|
201
|
+
|
|
202
|
+
Replacing the in-house cron runner with a managed scheduler:
|
|
203
|
+
|
|
204
|
+
- Decision: *"We need to decide between keeping the in-house cron
|
|
205
|
+
runner and migrating to the managed scheduler because the on-call
|
|
206
|
+
rotation has paged on missed-run incidents three times in 60 days."*
|
|
207
|
+
- Options: (1) keep in-house + add monitoring; (2) migrate to
|
|
208
|
+
managed scheduler; (3) do nothing.
|
|
209
|
+
- Matrix rows that **separate** options: implementation cost,
|
|
210
|
+
operational load, blast radius on outage, reversibility.
|
|
211
|
+
- Locked: *"We pick the managed scheduler."*
|
|
212
|
+
- Consequences: `+` on-call gets paged on scheduler infra, not
|
|
213
|
+
application code. `–` job definitions move to a vendor format,
|
|
214
|
+
raising migration cost if we leave. `✗` we cannot run jobs in the
|
|
215
|
+
app process anymore — assumes vendor uptime.
|
|
216
|
+
- Supersedes: ADR-014 *"in-house cron runner"*; trigger = three
|
|
217
|
+
missed-run pages in 60 days now exceed the SLO budget.
|
|
218
|
+
- Next: `/adr-create` with the payload, append `supersedes: ADR-014`.
|
|
@@ -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
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discovery-interview
|
|
3
|
+
description: "Use when running discovery interviews — question-bank build, bias audit, insight extraction. Triggers on 'audit my guide', 'extract insights from transcript', 'is my hypothesis falsifiable'."
|
|
4
|
+
status: active
|
|
5
|
+
tier: senior
|
|
6
|
+
source: package
|
|
7
|
+
domain: product
|
|
8
|
+
context_spine: [product]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# discovery-interview
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
- A discovery slice has been framed (`customer-research` ran), but the interview guide is still rough or untested.
|
|
16
|
+
- A transcript exists and the team needs structured insight extraction, not narrative summary.
|
|
17
|
+
- An interview round produced surprising findings; a bias audit is needed before the team acts on them.
|
|
18
|
+
|
|
19
|
+
Do NOT use for the upstream framing of the discovery slice (frame
|
|
20
|
+
sentence, recruit criteria, JTBD focal job) — that is
|
|
21
|
+
[`customer-research`](../customer-research/SKILL.md). Do NOT use for
|
|
22
|
+
quantitative survey design or scale-bound research.
|
|
23
|
+
|
|
24
|
+
## Cognition cluster
|
|
25
|
+
|
|
26
|
+
- **Mental model 22 — Data-informed, not data-driven.** Interview
|
|
27
|
+
data is signal at low N; treat it as evidence to reason with, not
|
|
28
|
+
a vote count. See
|
|
29
|
+
[`docs/contracts/mental-models.md`](../../../docs/contracts/mental-models.md) § 22.
|
|
30
|
+
- **Mental model 15 — Signal vs noise.** A vivid quote from one
|
|
31
|
+
articulate user can swamp three muted but consistent signals;
|
|
32
|
+
frequency-rank by distinct people, never by quote count. See
|
|
33
|
+
`mental-models.md` § 15.
|
|
34
|
+
- **Mental model 28 — Eisenhower matrix.** Sort post-interview
|
|
35
|
+
insights into urgent / important quadrants so the team acts on
|
|
36
|
+
high-importance signals, not the loudest ones. See
|
|
37
|
+
`mental-models.md` § 28.
|
|
38
|
+
- **Product context-spine slot.** Read **product** for the focal job
|
|
39
|
+
+ competitor names; do **not** re-derive these inside this skill.
|
|
40
|
+
See [`context-spine`](../../../docs/contracts/context-spine.md).
|
|
41
|
+
|
|
42
|
+
## Procedure
|
|
43
|
+
|
|
44
|
+
### 1. Build the question bank
|
|
45
|
+
|
|
46
|
+
1. Anchor on the **switch event** from `customer-research`. The
|
|
47
|
+
first question is always *"Walk me through the day you decided
|
|
48
|
+
to ..."* — never *"would you ..."*.
|
|
49
|
+
2. Three layers:
|
|
50
|
+
- **Past behaviour** (what did you do? when? alternative considered?)
|
|
51
|
+
- **Anxiety / habit** (what feared in switching? what habit died?)
|
|
52
|
+
- **Outcome** (what changed for you? expected? unexpected?)
|
|
53
|
+
3. Cap at 8 open questions per 45-min slot. Beyond that, the
|
|
54
|
+
interview becomes a survey delivered in person.
|
|
55
|
+
|
|
56
|
+
### 2. Audit the bank for bias
|
|
57
|
+
|
|
58
|
+
Before running, inspect each question and review the bank against the
|
|
59
|
+
four common biases:
|
|
60
|
+
|
|
61
|
+
- **Leading** — *"Don't you think X is annoying?"* → rewrite as past
|
|
62
|
+
behaviour.
|
|
63
|
+
- **Hypothetical** — *"Would you use Y?"* → replace with *"Last
|
|
64
|
+
time you needed Y, what did you do?"*.
|
|
65
|
+
- **Confirmation** — every question presupposes the team's hypothesis
|
|
66
|
+
is correct. At least two questions must be able to **disconfirm** it.
|
|
67
|
+
- **Recall ceiling** — questions that ask for events ≥ 90 days back
|
|
68
|
+
produce confabulation; bound the timeframe.
|
|
69
|
+
|
|
70
|
+
A bank that survives the audit unchanged is suspect — re-read.
|
|
71
|
+
|
|
72
|
+
### 3. Run-time discipline
|
|
73
|
+
|
|
74
|
+
1. Open with the switch event. Stay silent for 8 seconds after the
|
|
75
|
+
user finishes; the second answer is usually the truer one.
|
|
76
|
+
2. Capture verbatim, not paraphrase. *"It made me anxious"* is data;
|
|
77
|
+
*"the user expressed concern"* is interpretation.
|
|
78
|
+
3. Probe with *"tell me more about X"* on any anxiety / habit
|
|
79
|
+
mention; do not switch topics until the thread is exhausted.
|
|
80
|
+
|
|
81
|
+
### 4. Extract insights
|
|
82
|
+
|
|
83
|
+
For each transcript:
|
|
84
|
+
|
|
85
|
+
1. One quote per insight. Tag: switch / anxiety / habit /
|
|
86
|
+
expected-outcome / unexpected-outcome / disconfirmation.
|
|
87
|
+
2. Frequency-rank by distinct interviewees (≥ 3 = signal; 1 = anecdote).
|
|
88
|
+
3. Mark **disconfirmations** explicitly — these are the most
|
|
89
|
+
valuable rows, because they are the cheapest to ignore.
|
|
90
|
+
|
|
91
|
+
### 5. Hand back
|
|
92
|
+
|
|
93
|
+
Produce the three artifacts (see `## Output`); hand the disconfirmation
|
|
94
|
+
log to whoever owns the original hypothesis.
|
|
95
|
+
|
|
96
|
+
## Related Skills
|
|
97
|
+
|
|
98
|
+
**WHEN to use this**
|
|
99
|
+
|
|
100
|
+
- The discovery slice is framed and the interview guide / transcript
|
|
101
|
+
is the unit of work.
|
|
102
|
+
- A round of interviews ran and the insights need structured extraction
|
|
103
|
+
(frequency-ranked, bias-audited, disconfirmations highlighted).
|
|
104
|
+
|
|
105
|
+
**WHEN NOT to use this**
|
|
106
|
+
|
|
107
|
+
- The slice itself is unframed — start with
|
|
108
|
+
[`customer-research`](../customer-research/SKILL.md); this skill
|
|
109
|
+
inherits its frame, never re-derives it.
|
|
110
|
+
- The signal needs to come from existing artefacts (issues, PRs, errors)
|
|
111
|
+
rather than a live interview — route to [`voc-extract`](../voc-extract/SKILL.md).
|
|
112
|
+
- Insights translate into AC for a ticket — hand off to
|
|
113
|
+
[`refine-ticket`](../refine-ticket/SKILL.md).
|
|
114
|
+
- The output is a quantitative funnel — route to
|
|
115
|
+
[`funnel-analysis`](../funnel-analysis/SKILL.md).
|
|
116
|
+
|
|
117
|
+
## When the agent should load this
|
|
118
|
+
|
|
119
|
+
- "Hilf mir den Interview-Leitfaden auditieren."
|
|
120
|
+
- "Welche Fragen sind biased?"
|
|
121
|
+
- "Extract die Insights aus diesem Transkript."
|
|
122
|
+
- "Wir haben 6 Interviews geführt — was ist Signal, was ist Anekdote?"
|
|
123
|
+
- "Ist meine Hypothese widerlegbar mit dem aktuellen Frageset?"
|
|
124
|
+
|
|
125
|
+
## Output
|
|
126
|
+
|
|
127
|
+
1. **`question-bank.md`** — 8 open questions, each tagged
|
|
128
|
+
past-behaviour / anxiety-habit / outcome; bias-audit notes per
|
|
129
|
+
rewritten question.
|
|
130
|
+
2. **`insight-log.md`** — one row per insight: quote · interviewee
|
|
131
|
+
ID · tag · distinct-people frequency. Sorted descending. Verbatim.
|
|
132
|
+
3. **`disconfirmation-log.md`** — each row names the original
|
|
133
|
+
hypothesis, the interview-derived disconfirmation, and the named
|
|
134
|
+
owner who must respond before the team acts on the round.
|
|
135
|
+
|
|
136
|
+
## Gotcha
|
|
137
|
+
|
|
138
|
+
- A bank that survived the audit unchanged is rare; usually means
|
|
139
|
+
the audit was rushed, not that the bank was perfect.
|
|
140
|
+
- One articulate interviewee biases insight-extraction toward their
|
|
141
|
+
vocabulary — frequency-rank by people, not quotes.
|
|
142
|
+
- Disconfirmations are the cheapest insight to ignore and the most
|
|
143
|
+
valuable to act on; the log exists so they survive the round.
|
|
144
|
+
|
|
145
|
+
## Do NOT
|
|
146
|
+
|
|
147
|
+
- Do NOT re-derive the frame inside this skill — read the **product**
|
|
148
|
+
spine slot or hand back to `customer-research`.
|
|
149
|
+
- Do NOT translate insights into AC inside this skill — that is
|
|
150
|
+
`refine-ticket`.
|
|
151
|
+
- Do NOT collapse disconfirmations into "we also heard X" prose;
|
|
152
|
+
they earn their own log.
|
|
@@ -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
|