@dzhechkov/skills-feature-adr 1.2.0 → 1.3.1
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/bin/cli.js +0 -0
- package/package.json +1 -1
- package/src/commands/init.js +15 -7
- package/src/utils.js +16 -1
- package/templates/.claude/commands/harvest.md +49 -0
- package/templates/.claude/rules/reward-learning.md +124 -0
- package/templates/.claude/skills/explore/SKILL.md +218 -0
- package/templates/.claude/skills/explore/references/questioning-techniques.md +151 -0
- package/templates/.claude/skills/explore/references/task-brief-templates.md +355 -0
- package/templates/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/templates/.claude/skills/frontend-design/SKILL.md +45 -0
- package/templates/.claude/skills/knowledge-extractor/SKILL.md +254 -0
- package/templates/.claude/skills/knowledge-extractor/modules/01-extract.md +188 -0
- package/templates/.claude/skills/knowledge-extractor/modules/02-classify.md +99 -0
- package/templates/.claude/skills/knowledge-extractor/modules/03-gate.md +150 -0
- package/templates/.claude/skills/knowledge-extractor/modules/04-integrate.md +159 -0
- package/templates/.claude/skills/knowledge-extractor/references/artifact-categories.md +100 -0
- package/templates/.claude/skills/knowledge-extractor/references/maturity-model.md +94 -0
- package/templates/.claude/skills/knowledge-extractor/references/quality-gates.md +98 -0
- package/templates/.claude/skills/knowledge-extractor/templates/artifact-card.md +63 -0
- package/templates/.claude/skills/knowledge-extractor/templates/harvest-report.md +102 -0
- package/templates/.claude/skills/problem-solver-enhanced/SKILL.md +565 -0
- package/templates/lib/memory-protocol.md +348 -0
- package/templates/lib/reward-tracker.md +259 -0
package/bin/cli.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/skills-feature-adr",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Adaptive Feature Development skill pack for Claude Code — 11-step pipeline with Complexity Router (S/M/L/XL), ADR-driven architecture, 15 agentic-qe skills, multi-agent fleet QE. Supports --full-qe, --full-qe-extended, --with-learning, and --knowledge-extractor modes.",
|
|
5
5
|
"main": "src/cli.js",
|
|
6
6
|
"bin": {
|
package/src/commands/init.js
CHANGED
|
@@ -167,14 +167,21 @@ async function run(options) {
|
|
|
167
167
|
installedFiles.push(...files);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
// ── e2) Install optional components
|
|
170
|
+
// ── e2) Install optional components — track which actually installed ──
|
|
171
|
+
// Components whose template source is missing return [] from installComponent;
|
|
172
|
+
// we must NOT record them in the manifest, otherwise `update` reports
|
|
173
|
+
// "Unknown component" on subsequent runs.
|
|
174
|
+
const installedOptionalKeys = [];
|
|
171
175
|
for (const key of optionalKeys) {
|
|
172
176
|
stepNum++;
|
|
173
177
|
const comp = OPTIONAL_COMPONENTS[key];
|
|
174
178
|
step(stepNum, totalComponents, `Installing ${comp.label}...`);
|
|
175
179
|
|
|
176
180
|
const files = installComponent(key, comp, templatesDir, targetDir);
|
|
177
|
-
|
|
181
|
+
if (files.length > 0) {
|
|
182
|
+
installedFiles.push(...files);
|
|
183
|
+
installedOptionalKeys.push(key);
|
|
184
|
+
}
|
|
178
185
|
}
|
|
179
186
|
|
|
180
187
|
// ── f) Write manifest ──────────────────────────────────────────────────
|
|
@@ -182,13 +189,14 @@ async function run(options) {
|
|
|
182
189
|
const pkg = readJSON(pkgPath);
|
|
183
190
|
const version = pkg ? pkg.version : '0.0.0';
|
|
184
191
|
|
|
185
|
-
|
|
192
|
+
// Only manifest components whose templates were actually present on disk
|
|
193
|
+
const allKeys = [...componentKeys, ...installedOptionalKeys];
|
|
186
194
|
const manifest = createManifest(version, allKeys, installedFiles.sort());
|
|
187
195
|
|
|
188
|
-
// Track optional features in manifest
|
|
196
|
+
// Track optional features in manifest based on actual installs
|
|
189
197
|
manifest.optional = {
|
|
190
|
-
withLearning:
|
|
191
|
-
knowledgeExtractor:
|
|
198
|
+
withLearning: installedOptionalKeys.some((k) => OPTIONAL_COMPONENTS[k]?.group === 'learning'),
|
|
199
|
+
knowledgeExtractor: installedOptionalKeys.some((k) => OPTIONAL_COMPONENTS[k]?.group === 'knowledge-extractor'),
|
|
192
200
|
};
|
|
193
201
|
|
|
194
202
|
writeManifest(targetDir, manifest);
|
|
@@ -204,7 +212,7 @@ async function run(options) {
|
|
|
204
212
|
const comp = COMPONENTS[key];
|
|
205
213
|
console.log(` ${green('\u2713')} ${comp.label}`);
|
|
206
214
|
}
|
|
207
|
-
for (const key of
|
|
215
|
+
for (const key of installedOptionalKeys) {
|
|
208
216
|
const comp = OPTIONAL_COMPONENTS[key];
|
|
209
217
|
console.log(` ${green('\u2713')} ${comp.label} ${yellow('[optional]')}`);
|
|
210
218
|
}
|
package/src/utils.js
CHANGED
|
@@ -247,9 +247,24 @@ function getTemplatesDir() {
|
|
|
247
247
|
const COMPONENTS = {
|
|
248
248
|
skill: {
|
|
249
249
|
src: '.claude/skills/feature-adr',
|
|
250
|
-
label: 'Feature ADR Skill (
|
|
250
|
+
label: 'Feature ADR Skill (11 modules + references + agentic-qe)',
|
|
251
251
|
group: 'core',
|
|
252
252
|
},
|
|
253
|
+
skill_explore: {
|
|
254
|
+
src: '.claude/skills/explore',
|
|
255
|
+
label: 'Explore Skill (task clarification)',
|
|
256
|
+
group: 'deps',
|
|
257
|
+
},
|
|
258
|
+
skill_solver: {
|
|
259
|
+
src: '.claude/skills/problem-solver-enhanced',
|
|
260
|
+
label: 'Problem Solver Enhanced (TRIZ + Game Theory)',
|
|
261
|
+
group: 'deps',
|
|
262
|
+
},
|
|
263
|
+
skill_frontend: {
|
|
264
|
+
src: '.claude/skills/frontend-design',
|
|
265
|
+
label: 'Frontend Design Skill (UI implementation)',
|
|
266
|
+
group: 'deps',
|
|
267
|
+
},
|
|
253
268
|
commands: {
|
|
254
269
|
src: '.claude/commands',
|
|
255
270
|
label: 'Feature ADR Command (1 command)',
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Harvest — Ритуал извлечения знаний из проекта
|
|
2
|
+
|
|
3
|
+
## Использование
|
|
4
|
+
```
|
|
5
|
+
/harvest [путь к директории или "all"] [only категория1,категория2]
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
## Аргумент
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Скилл
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Read: .claude/skills/knowledge-extractor/SKILL.md
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Загрузи knowledge-extractor skill и следуй его Pipeline Protocol.
|
|
18
|
+
|
|
19
|
+
## Парсинг аргументов
|
|
20
|
+
|
|
21
|
+
1. **Путь:** Первый аргумент — путь к директории исследования или `"all"` для всех директорий в `researches/`
|
|
22
|
+
2. **Scope filter:** Если после пути есть `only X,Y` — передай как `{SCOPE_FILTER}` в skill
|
|
23
|
+
- Допустимые значения: `skills`, `commands`, `hooks`, `rules`, `templates`, `patterns`, `snippets`
|
|
24
|
+
- Множественные через запятую: `only rules,templates`
|
|
25
|
+
3. Если аргументов нет — запроси путь у пользователя
|
|
26
|
+
|
|
27
|
+
## Примеры
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/harvest researches/bank-kc-automation/ ← полный harvest одной директории
|
|
31
|
+
/harvest researches/bank-kc-automation/ only patterns ← только паттерны
|
|
32
|
+
/harvest all ← все исследования
|
|
33
|
+
/harvest all only rules,templates ← все исследования, только правила и шаблоны
|
|
34
|
+
/harvest features/add-user-auth/ ← harvest фичи (не только исследования)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Параллелизация
|
|
38
|
+
|
|
39
|
+
Если путь = `"all"`:
|
|
40
|
+
1. Получи список всех директорий в `researches/`
|
|
41
|
+
2. Для каждой директории запусти отдельную harvest сессию
|
|
42
|
+
3. Каждая сессия создаёт свой findings JSON и проходит полный pipeline
|
|
43
|
+
4. По завершении всех сессий — объедини отчёты
|
|
44
|
+
|
|
45
|
+
## Суть
|
|
46
|
+
|
|
47
|
+
Систематический процесс извлечения и организации полезных знаний после завершения проекта. Использует 5 параллельных агентов-экстракторов, 7-категорийную классификацию, 8 блокирующих quality gates, и автоматическое размещение артефактов.
|
|
48
|
+
|
|
49
|
+
Pipeline: Extract (5 agents) → Classify (7 categories) → User Checkpoint → Gate (8 checks) → Integrate (auto-place)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Reward Learning Rules
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Govern how the Keysarium pipeline integrates with the Reward-Calibrated Learning System. These rules define when and how to call `memory_query()` and `memory_store()`, how reward scores are assigned, and how historical patterns influence phase execution.
|
|
6
|
+
|
|
7
|
+
## Core Protocol
|
|
8
|
+
|
|
9
|
+
Read `lib/memory-protocol.md` for the full protocol specification.
|
|
10
|
+
Read `lib/reward-tracker.md` for analytics and pattern detection.
|
|
11
|
+
|
|
12
|
+
## When to Call memory_query()
|
|
13
|
+
|
|
14
|
+
**Trigger:** At the START of every pipeline phase (Phase 0 through Phase 5).
|
|
15
|
+
|
|
16
|
+
**Protocol:**
|
|
17
|
+
1. Before loading the phase's governance shard, check if `.keysarium/memory/` exists.
|
|
18
|
+
2. If it exists, call `memory_query()` with the current context:
|
|
19
|
+
- `phase`: Current phase identifier (e.g., "phase-2")
|
|
20
|
+
- `domain`: Detected domain from Phase 0 (or "unknown" if Phase 0 has not run yet)
|
|
21
|
+
- `slug`: Current case slug
|
|
22
|
+
- `skill`: Skill about to be loaded for this phase
|
|
23
|
+
3. Log the number of patterns loaded.
|
|
24
|
+
4. If relevant patterns are found, incorporate the top 3 into the phase brief:
|
|
25
|
+
- Include high-reward approaches from similar past cases
|
|
26
|
+
- Apply actionable advice from domain patterns
|
|
27
|
+
- Note any bottleneck warnings for the current phase/domain combination
|
|
28
|
+
5. If no patterns are found (first run or no relevant data), proceed normally.
|
|
29
|
+
|
|
30
|
+
**Exception:** Phase 0 (Discovery) may not have a domain yet. Query with `domain: "unknown"` to load cross-domain patterns.
|
|
31
|
+
|
|
32
|
+
## When to Call memory_store()
|
|
33
|
+
|
|
34
|
+
**Trigger:** At every CHECKPOINT, after the user responds.
|
|
35
|
+
|
|
36
|
+
**Protocol:**
|
|
37
|
+
1. After displaying the checkpoint banner and receiving user response.
|
|
38
|
+
2. Classify the user response into a reward level (see Reward Assignment below).
|
|
39
|
+
3. Call `memory_store()` with:
|
|
40
|
+
- The phase result (artifacts created, promise tag emitted)
|
|
41
|
+
- The reward score and label
|
|
42
|
+
- Context metadata (upstream promises, patterns loaded, agent count)
|
|
43
|
+
- Outcome metadata (user response, iteration count)
|
|
44
|
+
4. Log the stored reward.
|
|
45
|
+
5. Continue with the checkpoint protocol as normal (proceed / adjust / redo).
|
|
46
|
+
|
|
47
|
+
**Exception:** If the session ends without a user response at the checkpoint, do NOT store a record. Only explicit user responses generate reward data.
|
|
48
|
+
|
|
49
|
+
## Reward Assignment
|
|
50
|
+
|
|
51
|
+
Map the user's checkpoint response to a reward score:
|
|
52
|
+
|
|
53
|
+
| User Response Pattern | Reward | Label | Examples |
|
|
54
|
+
|----------------------|--------|-------|----------|
|
|
55
|
+
| Immediate approval | 1.0 | excellent | "ok", "ок", "next", "продолжай", "good", single-word approval |
|
|
56
|
+
| Minor adjustments | 0.7 | good | "углуби X", "expand section Y", "add one more competitor", feedback on 1 area |
|
|
57
|
+
| Significant rework | 0.3 | needs_work | "rework the approach", "this misses the point of X and Y", feedback on 3+ areas |
|
|
58
|
+
| Complete restart | 0.0 | failed | "start over", "this is wrong", "redo this phase completely" |
|
|
59
|
+
|
|
60
|
+
### Classification Rules
|
|
61
|
+
|
|
62
|
+
1. **Count the areas of feedback:** 0 areas = 1.0, 1 area = 0.7, 2+ areas = 0.3, full restart = 0.0
|
|
63
|
+
2. **Positive feedback with minor note** counts as 1.0 (e.g., "great work, just fix the typo")
|
|
64
|
+
3. **Multiple rounds:** If user gives feedback more than twice on the same phase, cap reward at 0.3
|
|
65
|
+
4. **Ambiguous responses:** Default to 0.7 (assume minor adjustment)
|
|
66
|
+
|
|
67
|
+
## Integration with Promise Tags
|
|
68
|
+
|
|
69
|
+
Every `memory_store()` call includes the promise tag emitted at the checkpoint:
|
|
70
|
+
|
|
71
|
+
| Phase | Promise Tag in Record |
|
|
72
|
+
|-------|----------------------|
|
|
73
|
+
| Phase 0 | `DISCOVERY_COMPLETE` |
|
|
74
|
+
| Phase 1 | `CASE_EXPLORED` |
|
|
75
|
+
| Phase 2 | `RESEARCH_PARANOID_PASSED` |
|
|
76
|
+
| Phase 2.5 | `CJM_VALIDATED` |
|
|
77
|
+
| Phase 3 | `SOLUTION_DESIGNED` |
|
|
78
|
+
| Phase 4 | `ARCHITECTURE_DEFINED` |
|
|
79
|
+
| Phase 5 | `PRESENTATION_READY` |
|
|
80
|
+
|
|
81
|
+
If a promise is `_INCOMPLETE`, the reward should be 0.3 or lower.
|
|
82
|
+
|
|
83
|
+
## Integration with Feedback Loops
|
|
84
|
+
|
|
85
|
+
This system adds a new feedback loop to the Variable Registry (see `.claude/rules/feedback-loops.md`):
|
|
86
|
+
|
|
87
|
+
### Loop 7: Memory -> All Phases
|
|
88
|
+
|
|
89
|
+
| Property | Value |
|
|
90
|
+
|----------|-------|
|
|
91
|
+
| Direction | `.keysarium/memory/` -> Phase 0-5 start |
|
|
92
|
+
| Variable | `{MEMORY_PATTERNS}` |
|
|
93
|
+
| Payload | Top reward records + domain patterns from memory_query() |
|
|
94
|
+
| Consumers | All phases (loaded at phase start) |
|
|
95
|
+
| Persistence | `.keysarium/memory/{domain}/{slug}/` |
|
|
96
|
+
|
|
97
|
+
**Contract:** `memory_query()` is called before each phase starts. Empty result is acceptable (first run).
|
|
98
|
+
|
|
99
|
+
## Retention Policy
|
|
100
|
+
|
|
101
|
+
- **Default:** 90 days from record creation
|
|
102
|
+
- **Configuration:** Set in `.keysarium/memory/config.json` via `retention_days`
|
|
103
|
+
- **Enforcement:** Expired records are purged during `memory_query()` calls
|
|
104
|
+
- **Override:** Set `retention_days: 0` to disable expiration (keep forever)
|
|
105
|
+
- **Manual purge:** Delete `.keysarium/memory/` directory to reset all memory
|
|
106
|
+
|
|
107
|
+
## Error Handling
|
|
108
|
+
|
|
109
|
+
| Situation | Behavior |
|
|
110
|
+
|-----------|----------|
|
|
111
|
+
| `.keysarium/memory/` does not exist | `memory_query()` returns empty; `memory_store()` creates it |
|
|
112
|
+
| `config.json` missing | Use defaults (90 days, 10 max results, enabled) |
|
|
113
|
+
| Corrupted JSON file during query | Skip file, log warning, continue with other records |
|
|
114
|
+
| Write failure during store | Log error, continue pipeline (memory is non-blocking) |
|
|
115
|
+
| Unknown domain | Store under `unknown/` directory |
|
|
116
|
+
|
|
117
|
+
## Rules Summary
|
|
118
|
+
|
|
119
|
+
1. **ALWAYS** call `memory_query()` at the start of every phase
|
|
120
|
+
2. **ALWAYS** call `memory_store()` at every checkpoint after user responds
|
|
121
|
+
3. **NEVER** block the pipeline if memory operations fail
|
|
122
|
+
4. **NEVER** store a record without an explicit user response
|
|
123
|
+
5. **ALWAYS** log memory operations (patterns loaded, reward stored)
|
|
124
|
+
6. Memory operations are **advisory** -- they enhance quality but are not mandatory gates
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explore
|
|
3
|
+
description: >
|
|
4
|
+
Adaptive task exploration and clarification skill for transforming vague
|
|
5
|
+
requests into actionable specifications. Use when a user presents any task,
|
|
6
|
+
problem, or goal that requires clarification before execution. Triggers on
|
|
7
|
+
ambiguous requests, complex multi-part tasks, "I want to...", "help me with...",
|
|
8
|
+
strategic decisions, product ideas, creative briefs, and any situation where
|
|
9
|
+
understanding the real need is essential before proposing solutions. Does NOT
|
|
10
|
+
provide solutions until task is fully explored.
|
|
11
|
+
trust_tier: 1
|
|
12
|
+
trust_tier_label: "Structured"
|
|
13
|
+
trust_tier_path: "Run /bto-test to promote to Tier 2"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Explore: Adaptive Task Clarification
|
|
17
|
+
|
|
18
|
+
Transform vague requests into crystal-clear, actionable task specifications through systematic Socratic questioning.
|
|
19
|
+
|
|
20
|
+
## Core Philosophy
|
|
21
|
+
|
|
22
|
+
**Never solve before you understand.** Most failed solutions solve the wrong problem. This skill ensures the real problem is understood before any solution is proposed.
|
|
23
|
+
|
|
24
|
+
Key principles:
|
|
25
|
+
- Questions unlock understanding; answers often hide assumptions
|
|
26
|
+
- The stated goal is rarely the real goal
|
|
27
|
+
- Constraints reveal opportunities
|
|
28
|
+
- Success criteria prevent scope creep
|
|
29
|
+
|
|
30
|
+
## Task Classification
|
|
31
|
+
|
|
32
|
+
Before asking questions, classify the task type to select appropriate exploration dimensions:
|
|
33
|
+
|
|
34
|
+
| Task Type | Indicators | Primary Dimensions |
|
|
35
|
+
|-----------|------------|-------------------|
|
|
36
|
+
| **Product/Feature** | "build", "create app", "develop" | Outcome, Users, Constraints, Success |
|
|
37
|
+
| **Problem Solving** | "fix", "solve", "issue with" | Root Cause, Constraints, Attempted Solutions |
|
|
38
|
+
| **Decision Making** | "should I", "choose between", "evaluate" | Criteria, Tradeoffs, Timeline, Reversibility |
|
|
39
|
+
| **Creative** | "write", "design", "make content" | Audience, Tone, Format, Examples |
|
|
40
|
+
| **Research** | "find out", "analyze", "understand" | Scope, Depth, Sources, Deliverable |
|
|
41
|
+
| **Process/Workflow** | "how to", "improve process" | Current State, Desired State, Blockers |
|
|
42
|
+
|
|
43
|
+
## Exploration Dimensions
|
|
44
|
+
|
|
45
|
+
Select 3-5 dimensions based on task type. Each dimension has multiple question variants—choose the most natural for context.
|
|
46
|
+
|
|
47
|
+
### 1. The Real Objective
|
|
48
|
+
Uncover what success truly looks like, beyond the stated request.
|
|
49
|
+
|
|
50
|
+
**Questions:**
|
|
51
|
+
- "If this worked perfectly, what would be different in your [work/life/business]?"
|
|
52
|
+
- "What outcome would make you say 'this was absolutely worth it'?"
|
|
53
|
+
- "Is this goal a means to something else, or the end itself?"
|
|
54
|
+
- "If you could wave a magic wand and have any result, what would you choose?"
|
|
55
|
+
|
|
56
|
+
**Red flags to probe:** Generic goals ("make it better"), proxy metrics, solutions presented as requirements.
|
|
57
|
+
|
|
58
|
+
### 2. Constraints & Boundaries
|
|
59
|
+
Identify hard limits that shape the solution space.
|
|
60
|
+
|
|
61
|
+
**Questions:**
|
|
62
|
+
- "What's absolutely off the table—budget, time, technology, or approach-wise?"
|
|
63
|
+
- "What existing systems, processes, or decisions must this work with?"
|
|
64
|
+
- "Who needs to approve this, and what are their non-negotiables?"
|
|
65
|
+
- "What would disqualify a solution, even if it technically works?"
|
|
66
|
+
|
|
67
|
+
**Red flags to probe:** No constraints mentioned (usually means hidden ones), unrealistic expectations.
|
|
68
|
+
|
|
69
|
+
### 3. Available Resources
|
|
70
|
+
Understand leverage points and existing assets.
|
|
71
|
+
|
|
72
|
+
**Questions:**
|
|
73
|
+
- "What do you already have that we could build on—data, tools, people, prior work?"
|
|
74
|
+
- "Who else is involved, and what can they contribute?"
|
|
75
|
+
- "What similar problems have you solved before, and what worked?"
|
|
76
|
+
- "What's your actual capacity to implement this?"
|
|
77
|
+
|
|
78
|
+
**Red flags to probe:** Overestimated capabilities, unacknowledged dependencies.
|
|
79
|
+
|
|
80
|
+
### 4. Timeline & Urgency
|
|
81
|
+
Distinguish real deadlines from arbitrary ones.
|
|
82
|
+
|
|
83
|
+
**Questions:**
|
|
84
|
+
- "What happens if this takes 2x longer than expected?"
|
|
85
|
+
- "Is there a hard deadline, and what's driving it?"
|
|
86
|
+
- "Would you prefer a quick 80% solution or a slower 100% solution?"
|
|
87
|
+
- "What's the cost of delay vs. the cost of getting it wrong?"
|
|
88
|
+
|
|
89
|
+
**Red flags to probe:** Artificial urgency, no clear driver for deadline.
|
|
90
|
+
|
|
91
|
+
### 5. Success Criteria
|
|
92
|
+
Define what "done" actually means.
|
|
93
|
+
|
|
94
|
+
**Questions:**
|
|
95
|
+
- "How will you know this is successful? What will you measure?"
|
|
96
|
+
- "Who decides if this is good enough, and what will they look for?"
|
|
97
|
+
- "What's the minimum viable outcome that would still be valuable?"
|
|
98
|
+
- "In 6 months, what would make you regret the approach we took?"
|
|
99
|
+
|
|
100
|
+
**Red flags to probe:** Vague criteria ("stakeholders will be happy"), moving targets.
|
|
101
|
+
|
|
102
|
+
### 6. Attempted Solutions (for problems)
|
|
103
|
+
Learn from what hasn't worked.
|
|
104
|
+
|
|
105
|
+
**Questions:**
|
|
106
|
+
- "What have you already tried, and why didn't it work?"
|
|
107
|
+
- "What solutions have you considered but rejected?"
|
|
108
|
+
- "What would the obvious solution be, and why isn't that good enough?"
|
|
109
|
+
|
|
110
|
+
### 7. Audience & Stakeholders (for products/content)
|
|
111
|
+
Understand who this serves.
|
|
112
|
+
|
|
113
|
+
**Questions:**
|
|
114
|
+
- "Who specifically will use this, and what's their context when they do?"
|
|
115
|
+
- "What does your audience already know or believe about this?"
|
|
116
|
+
- "Who might be negatively affected, and does that matter?"
|
|
117
|
+
|
|
118
|
+
## Execution Protocol
|
|
119
|
+
|
|
120
|
+
### Phase 1: Initial Assessment (1 turn)
|
|
121
|
+
|
|
122
|
+
1. Parse the user's request
|
|
123
|
+
2. Identify what's already clear from context
|
|
124
|
+
3. Classify task type
|
|
125
|
+
4. Select 3-5 most critical dimensions
|
|
126
|
+
5. Note any immediate red flags or assumptions
|
|
127
|
+
|
|
128
|
+
### Phase 2: Adaptive Questioning (3-7 turns)
|
|
129
|
+
|
|
130
|
+
**Rules:**
|
|
131
|
+
- Ask ONE question at a time
|
|
132
|
+
- Make questions specific and decision-shaping, not generic
|
|
133
|
+
- Challenge vague answers: "Can you be more specific about...?"
|
|
134
|
+
- Acknowledge answers before next question
|
|
135
|
+
- Skip dimensions already clarified
|
|
136
|
+
- Stop when you have enough to create a clear brief
|
|
137
|
+
|
|
138
|
+
**Question Sequencing:**
|
|
139
|
+
1. Start with Real Objective (reveals the most)
|
|
140
|
+
2. Follow with Constraints (narrows solution space)
|
|
141
|
+
3. Then Success Criteria (defines done)
|
|
142
|
+
4. Fill gaps with other dimensions as needed
|
|
143
|
+
|
|
144
|
+
**Adaptive behavior:**
|
|
145
|
+
- If user gives detailed answer → compress follow-ups
|
|
146
|
+
- If user seems frustrated → summarize and ask if they want to continue
|
|
147
|
+
- If contradiction detected → gently probe: "Earlier you mentioned X, but now Y—help me understand?"
|
|
148
|
+
|
|
149
|
+
### Phase 3: Task Brief Synthesis (1 turn)
|
|
150
|
+
|
|
151
|
+
After sufficient exploration, synthesize into a **Task Brief**:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
## Task Brief
|
|
155
|
+
|
|
156
|
+
**Objective:** [Clear statement of what we're actually solving]
|
|
157
|
+
|
|
158
|
+
**Context:** [Relevant background and constraints]
|
|
159
|
+
|
|
160
|
+
**Success Criteria:**
|
|
161
|
+
- [Measurable criterion 1]
|
|
162
|
+
- [Measurable criterion 2]
|
|
163
|
+
|
|
164
|
+
**Constraints:**
|
|
165
|
+
- [Hard constraint 1]
|
|
166
|
+
- [Hard constraint 2]
|
|
167
|
+
|
|
168
|
+
**Resources Available:** [What we can leverage]
|
|
169
|
+
|
|
170
|
+
**Timeline:** [Deadline and urgency level]
|
|
171
|
+
|
|
172
|
+
**Key Assumptions:** [Things we're assuming that could change the approach]
|
|
173
|
+
|
|
174
|
+
**Out of Scope:** [Explicitly excluded items]
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Ask user: "Does this capture what you need? Anything to add or correct?"
|
|
178
|
+
|
|
179
|
+
### Phase 4: Handoff
|
|
180
|
+
|
|
181
|
+
Once validated, either:
|
|
182
|
+
- Proceed to solution (if user wants immediate help)
|
|
183
|
+
- Export brief for later use
|
|
184
|
+
- Suggest appropriate next steps/skills
|
|
185
|
+
|
|
186
|
+
## Anti-Patterns to Avoid
|
|
187
|
+
|
|
188
|
+
❌ **Interrogation mode:** Don't fire questions robotically
|
|
189
|
+
❌ **Assuming context:** Don't skip clarification because you "think" you understand
|
|
190
|
+
❌ **Premature solutions:** Don't hint at solutions before exploration is complete
|
|
191
|
+
❌ **Over-questioning:** Stop when you have enough clarity
|
|
192
|
+
❌ **Generic questions:** Each question should be tailored to this specific task
|
|
193
|
+
❌ **Ignoring signals:** If user provides info proactively, don't re-ask
|
|
194
|
+
|
|
195
|
+
## Example Flow
|
|
196
|
+
|
|
197
|
+
**User:** "I want to create a dashboard for my team"
|
|
198
|
+
|
|
199
|
+
**Claude (Phase 1 assessment):**
|
|
200
|
+
- Task type: Product/Feature
|
|
201
|
+
- Unclear: Who uses it, what data, what decisions it enables, timeline
|
|
202
|
+
- Dimensions needed: Real Objective, Audience, Constraints, Success Criteria
|
|
203
|
+
|
|
204
|
+
**Claude:** "Before we dive in—what decisions will your team make differently once they have this dashboard? What's the main insight they're missing today?"
|
|
205
|
+
|
|
206
|
+
*[User answers about tracking project delays]*
|
|
207
|
+
|
|
208
|
+
**Claude:** "Got it—so the core need is visibility into project health to catch delays early. How do you know a project is delayed today? What's the current process for catching these issues?"
|
|
209
|
+
|
|
210
|
+
*[Continues adaptively based on answers...]*
|
|
211
|
+
|
|
212
|
+
## Integration Notes
|
|
213
|
+
|
|
214
|
+
After exploration, this skill can hand off to:
|
|
215
|
+
- problem-solver-enhanced (for complex problems)
|
|
216
|
+
- goap-research (for research tasks)
|
|
217
|
+
- frontend-design (for UI/product tasks)
|
|
218
|
+
- Any implementation skill with the structured Task Brief
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Advanced Questioning Techniques
|
|
2
|
+
|
|
3
|
+
Reference for sophisticated question patterns when standard approaches don't yield clarity.
|
|
4
|
+
|
|
5
|
+
## Socratic Techniques
|
|
6
|
+
|
|
7
|
+
### Clarifying Questions
|
|
8
|
+
When answers are vague or use undefined terms:
|
|
9
|
+
- "What do you mean by [term]?"
|
|
10
|
+
- "Can you give me a specific example of [concept]?"
|
|
11
|
+
- "How would you explain this to someone unfamiliar with your context?"
|
|
12
|
+
|
|
13
|
+
### Assumption Probing
|
|
14
|
+
When hidden assumptions might be distorting the problem:
|
|
15
|
+
- "What would have to be true for this approach to work?"
|
|
16
|
+
- "What are you taking for granted here that might not be true?"
|
|
17
|
+
- "If you were wrong about [assumption], how would that change things?"
|
|
18
|
+
|
|
19
|
+
### Consequence Exploration
|
|
20
|
+
When second-order effects matter:
|
|
21
|
+
- "If this succeeds, what problems might it create?"
|
|
22
|
+
- "Who might be affected that we haven't considered?"
|
|
23
|
+
- "What's the worst realistic outcome if this goes wrong?"
|
|
24
|
+
|
|
25
|
+
### Perspective Shifting
|
|
26
|
+
When stuck in one frame:
|
|
27
|
+
- "How would [competitor/user/skeptic] view this?"
|
|
28
|
+
- "If you had to argue against this approach, what would you say?"
|
|
29
|
+
- "What would you advise someone else in this situation?"
|
|
30
|
+
|
|
31
|
+
## Techniques for Specific Blockers
|
|
32
|
+
|
|
33
|
+
### When user presents solution as requirement
|
|
34
|
+
"I need a mobile app for X"
|
|
35
|
+
|
|
36
|
+
**Approach:** Trace back to underlying need
|
|
37
|
+
- "What problem would the mobile app solve?"
|
|
38
|
+
- "How do users handle this today without the app?"
|
|
39
|
+
- "If a mobile app wasn't an option, how else might you solve this?"
|
|
40
|
+
|
|
41
|
+
### When user can't articulate success
|
|
42
|
+
"I'll know it when I see it"
|
|
43
|
+
|
|
44
|
+
**Approach:** Use concrete scenarios
|
|
45
|
+
- "Imagine it's 6 months from now and this was a huge success—describe what's happening"
|
|
46
|
+
- "If you had to bet money on one metric improving, what would it be?"
|
|
47
|
+
- "What would your boss/customer/user say that would prove this worked?"
|
|
48
|
+
|
|
49
|
+
### When constraints seem impossible
|
|
50
|
+
"We need enterprise features but have startup budget"
|
|
51
|
+
|
|
52
|
+
**Approach:** Separate hard from soft constraints
|
|
53
|
+
- "If you had to prioritize: which constraint is truly immovable?"
|
|
54
|
+
- "What's the minimum viable version that would still be valuable?"
|
|
55
|
+
- "What could you trade off to make this feasible?"
|
|
56
|
+
|
|
57
|
+
### When user is emotionally invested
|
|
58
|
+
User seems attached to a specific solution
|
|
59
|
+
|
|
60
|
+
**Approach:** Validate, then explore
|
|
61
|
+
- "It sounds like you've thought about this a lot. What led you to this approach?"
|
|
62
|
+
- "What would make you reconsider this direction?"
|
|
63
|
+
- "What's the strongest argument against this that you've heard?"
|
|
64
|
+
|
|
65
|
+
### When multiple stakeholders with conflicting needs
|
|
66
|
+
"My boss wants X but users want Y"
|
|
67
|
+
|
|
68
|
+
**Approach:** Map the conflict explicitly
|
|
69
|
+
- "Let's map out who wants what. What does your boss's ideal outcome look like?"
|
|
70
|
+
- "Where exactly do these needs conflict?"
|
|
71
|
+
- "Is there a version that gives each party their most important thing?"
|
|
72
|
+
|
|
73
|
+
## Question Formulation Patterns
|
|
74
|
+
|
|
75
|
+
### The Magic Wand
|
|
76
|
+
Removes artificial constraints to reveal true desires:
|
|
77
|
+
"If you could wave a magic wand and have any outcome, what would you choose?"
|
|
78
|
+
|
|
79
|
+
### The Premortem
|
|
80
|
+
Surfaces hidden risks:
|
|
81
|
+
"Imagine this failed spectacularly—what went wrong?"
|
|
82
|
+
|
|
83
|
+
### The Constraint Inversion
|
|
84
|
+
Challenges assumptions about limitations:
|
|
85
|
+
"What if [constraint] wasn't a factor—would you approach this differently?"
|
|
86
|
+
|
|
87
|
+
### The Minimum Viable Success
|
|
88
|
+
Defines the essential core:
|
|
89
|
+
"What's the smallest version of this that would still be valuable?"
|
|
90
|
+
|
|
91
|
+
### The Regret Test
|
|
92
|
+
Clarifies priorities over time:
|
|
93
|
+
"In a year, what would you regret not having done?"
|
|
94
|
+
|
|
95
|
+
### The Opportunity Cost
|
|
96
|
+
Reveals trade-offs:
|
|
97
|
+
"What else could you do with the time/money/effort this would require?"
|
|
98
|
+
|
|
99
|
+
### The Outsider View
|
|
100
|
+
Escapes insider bias:
|
|
101
|
+
"How would you explain this problem to someone completely outside your industry?"
|
|
102
|
+
|
|
103
|
+
## Red Flags and Responses
|
|
104
|
+
|
|
105
|
+
| Red Flag | What It Might Mean | How to Probe |
|
|
106
|
+
|----------|-------------------|--------------|
|
|
107
|
+
| "Everyone knows..." | Unexamined assumption | "Help me understand—what's the evidence for this?" |
|
|
108
|
+
| "We've always done it this way" | Inertia, not strategy | "What originally drove this approach? Is that still true?" |
|
|
109
|
+
| "It's obvious that..." | Blind spot | "Walk me through why this is obvious—I want to make sure I understand" |
|
|
110
|
+
| "We just need to..." | Oversimplification | "What could go wrong with this approach?" |
|
|
111
|
+
| "ASAP" | Artificial urgency | "What specifically happens if this takes longer?" |
|
|
112
|
+
| No constraints mentioned | Hidden constraints | "What would disqualify a solution even if it technically works?" |
|
|
113
|
+
| Very specific solution stated | Solution fixation | "What problem does this solve? Are there other ways to solve it?" |
|
|
114
|
+
|
|
115
|
+
## Calibrating Question Depth
|
|
116
|
+
|
|
117
|
+
### Light Touch (1-2 questions per dimension)
|
|
118
|
+
Use when:
|
|
119
|
+
- User is experienced and already has clarity
|
|
120
|
+
- Task is straightforward
|
|
121
|
+
- Time is genuinely constrained
|
|
122
|
+
- User shows frustration
|
|
123
|
+
|
|
124
|
+
### Deep Exploration (3-5 questions per dimension)
|
|
125
|
+
Use when:
|
|
126
|
+
- High stakes decision
|
|
127
|
+
- Multiple stakeholders
|
|
128
|
+
- Technical complexity
|
|
129
|
+
- User seems uncertain
|
|
130
|
+
- Contradictions in answers
|
|
131
|
+
|
|
132
|
+
### Signs to Stop Questioning
|
|
133
|
+
- User is repeating themselves
|
|
134
|
+
- Answers are becoming terse
|
|
135
|
+
- You have enough for a clear brief
|
|
136
|
+
- User explicitly says "that's enough"
|
|
137
|
+
- Remaining questions are nice-to-know, not need-to-know
|
|
138
|
+
|
|
139
|
+
## Cultural Considerations
|
|
140
|
+
|
|
141
|
+
Some users may:
|
|
142
|
+
- View detailed questions as distrust
|
|
143
|
+
- Expect to define solutions themselves
|
|
144
|
+
- Be uncomfortable with "why" questions
|
|
145
|
+
- Prefer to give context incrementally
|
|
146
|
+
|
|
147
|
+
**Adaptive responses:**
|
|
148
|
+
- Frame questions as "helping me help you better"
|
|
149
|
+
- Acknowledge their expertise: "You know this space—help me understand..."
|
|
150
|
+
- Use "what" instead of "why" when appropriate
|
|
151
|
+
- Offer to explain why you're asking
|