@webpresso/claude-plugin 3.1.19 → 3.1.20
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/.claude-plugin/marketplace.json +5 -13
- package/.claude-plugin/plugin.json +3 -5
- package/package.json +1 -1
- package/plugin-skill-ownership.json +6 -3
- package/skills/best-practice-research/SKILL.md +7 -7
- package/skills/claude/SKILL.md +1 -1
- package/skills/deep-interview/LICENSE.txt +28 -0
- package/skills/deep-interview/SKILL.md +269 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Webpresso agent-kit Claude Code plugin: blueprints, skills, hooks, MCP server",
|
|
9
|
-
"version": "3.1.
|
|
9
|
+
"version": "3.1.20"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
@@ -14,19 +14,11 @@
|
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Webpresso agent-kit: blueprints, skills, lore commit protocol, tech-debt lifecycle",
|
|
16
16
|
"category": "development",
|
|
17
|
-
"keywords": [
|
|
18
|
-
"agent",
|
|
19
|
-
"blueprint",
|
|
20
|
-
"claude-code",
|
|
21
|
-
"skills",
|
|
22
|
-
"mcp"
|
|
23
|
-
],
|
|
17
|
+
"keywords": ["agent", "blueprint", "claude-code", "skills", "mcp"],
|
|
24
18
|
"mcpServers": {
|
|
25
19
|
"webpresso": {
|
|
26
20
|
"command": "${CLAUDE_PLUGIN_ROOT}/bin/wp",
|
|
27
|
-
"args": [
|
|
28
|
-
"mcp"
|
|
29
|
-
],
|
|
21
|
+
"args": ["mcp"],
|
|
30
22
|
"env": {
|
|
31
23
|
"WP_SKIP_UPDATE_CHECK": "1"
|
|
32
24
|
}
|
|
@@ -34,5 +26,5 @@
|
|
|
34
26
|
}
|
|
35
27
|
}
|
|
36
28
|
],
|
|
37
|
-
"version": "3.1.
|
|
38
|
-
}
|
|
29
|
+
"version": "3.1.20"
|
|
30
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-kit",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.20",
|
|
4
4
|
"description": "Webpresso agent-kit: blueprints, skills, lore commit protocol, tech-debt lifecycle",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Webpresso",
|
|
@@ -11,12 +11,10 @@
|
|
|
11
11
|
"mcpServers": {
|
|
12
12
|
"webpresso": {
|
|
13
13
|
"command": "${CLAUDE_PLUGIN_ROOT}/bin/wp",
|
|
14
|
-
"args": [
|
|
15
|
-
"mcp"
|
|
16
|
-
],
|
|
14
|
+
"args": ["mcp"],
|
|
17
15
|
"env": {
|
|
18
16
|
"WP_SKIP_UPDATE_CHECK": "1"
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
|
-
}
|
|
20
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webpresso/claude-plugin",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.20",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Claude Code plugin adapter for Webpresso agent-kit skills, commands, and MCP runtime.",
|
|
6
6
|
"homepage": "https://github.com/webpresso/agent-kit#readme",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"host": "claude",
|
|
4
4
|
"packageName": "@webpresso/claude-plugin",
|
|
5
|
-
"packageVersion": "3.1.
|
|
5
|
+
"packageVersion": "3.1.20",
|
|
6
6
|
"runtimeDirs": [".claude/skills"],
|
|
7
7
|
"skills": {
|
|
8
8
|
"ai-deslop": {
|
|
@@ -15,17 +15,20 @@
|
|
|
15
15
|
"digest": "sha256:b4d51cd53beb4a3271827172dfbd0b1d27bd58761ca07a35d49a5d6324b87fdf"
|
|
16
16
|
},
|
|
17
17
|
"best-practice-research": {
|
|
18
|
-
"digest": "sha256:
|
|
18
|
+
"digest": "sha256:6d26b524d206067c7305da8a9334270f2525e4323aa3faa56ef02679e4d61849"
|
|
19
19
|
},
|
|
20
20
|
"browse": {
|
|
21
21
|
"digest": "sha256:21fd24862e7f7c8a1feadea6bc376492b136b99fc381cf1b8927c9db80615431"
|
|
22
22
|
},
|
|
23
23
|
"claude": {
|
|
24
|
-
"digest": "sha256:
|
|
24
|
+
"digest": "sha256:dec5cc89c31485bab6defea919c22e9a9c50c530d8fc4ef4f5be5080b5d91b75"
|
|
25
25
|
},
|
|
26
26
|
"codex": {
|
|
27
27
|
"digest": "sha256:98187c2845b5cd88ba9eb9f682d16fec648932a084b3d1cebd066945b1fb6fdf"
|
|
28
28
|
},
|
|
29
|
+
"deep-interview": {
|
|
30
|
+
"digest": "sha256:e80d7e12e486397103108bb473e98e8e8656519770fa20701f8b3e9e66991939"
|
|
31
|
+
},
|
|
29
32
|
"deep-research": {
|
|
30
33
|
"digest": "sha256:01dafd194066a2936db0b437fd5c3beef6d7ff82478d0d995393093d89496f18"
|
|
31
34
|
},
|
|
@@ -6,7 +6,7 @@ argument-hint: "<technology|decision|practice question>"
|
|
|
6
6
|
|
|
7
7
|
# Best-Practice Research
|
|
8
8
|
|
|
9
|
-
Use this skill when a task depends on current external best practices, version-aware guidance, standards, official recommendations, or upstream behavior. This is a workflow wrapper: it routes evidence gathering and synthesis; it is not a new research authority and it does not replace `
|
|
9
|
+
Use this skill when a task depends on current external best practices, version-aware guidance, standards, official recommendations, or upstream behavior. This is a workflow wrapper: it routes evidence gathering and synthesis; it is not a new research authority and it does not replace the `deep-research` skill.
|
|
10
10
|
|
|
11
11
|
## Purpose
|
|
12
12
|
|
|
@@ -15,21 +15,21 @@ Produce a cited, reusable best-practice answer or handoff that separates current
|
|
|
15
15
|
## Activate When
|
|
16
16
|
|
|
17
17
|
- The user asks for best practices, recommended approach, current guidance, official recommendations, standards, or version-aware external behavior.
|
|
18
|
-
- `$ralplan`, `$
|
|
18
|
+
- `$ralplan`, `$team`, or another workflow needs current external evidence before planning or execution can be correct.
|
|
19
19
|
- The task involves an already chosen technology and needs authoritative usage guidance, migration notes, API behavior, lifecycle rules, or current safety guidance.
|
|
20
20
|
|
|
21
21
|
## Do Not Activate When
|
|
22
22
|
|
|
23
23
|
- The answer is fully repo-local; use `explore` for codebase facts.
|
|
24
|
-
- The main question is whether to adopt, replace, upgrade, or compare dependencies;
|
|
25
|
-
- The user only needs implementation against already-grounded requirements;
|
|
24
|
+
- The main question is whether to adopt, replace, upgrade, or compare dependencies — that decision is out of scope; inform it with evidence but return the choice to the caller.
|
|
25
|
+
- The user only needs implementation against already-grounded requirements; hand off to the caller's execution workflow (`$team` or `$ralplan`) as appropriate.
|
|
26
26
|
- The task can be answered from stable local project conventions without current external lookup.
|
|
27
27
|
|
|
28
28
|
## Specialist Routing
|
|
29
29
|
|
|
30
30
|
1. Use `explore` first for brownfield facts: current code usage, local constraints, versions, config, and integration points.
|
|
31
|
-
2.
|
|
32
|
-
3.
|
|
31
|
+
2. Gather official/upstream docs, release notes, standards, migration guides, and source-backed evidence yourself with web search and doc fetches; escalate to the `deep-research` skill for exhaustive multi-source research on an already chosen technology.
|
|
32
|
+
3. Adoption / upgrade / replacement / comparison decisions are out of scope: surface the evidence, but return the decision to the caller.
|
|
33
33
|
4. Return to the caller with explicit evidence, uncertainty, and any implementation handoff constraints.
|
|
34
34
|
|
|
35
35
|
## Source-Quality Rules
|
|
@@ -45,7 +45,7 @@ Produce a cited, reusable best-practice answer or handoff that separates current
|
|
|
45
45
|
|
|
46
46
|
1. Classify the question: conceptual best practice, implementation guidance, migration/version guidance, standards/compliance guidance, or mixed local + external guidance.
|
|
47
47
|
2. Gather repo-local facts with `explore` when local usage or constraints affect the answer.
|
|
48
|
-
3. Gather external evidence with `
|
|
48
|
+
3. Gather external evidence with web search and official-doc fetches (escalate to the `deep-research` skill for depth) when current or version-aware practice affects correctness.
|
|
49
49
|
4. Synthesize a concise answer with source quality, version/date context, caveats, and an implementation or planning handoff.
|
|
50
50
|
5. Stop when the answer is grounded enough for the caller; otherwise report the exact blocker or specialist handoff needed.
|
|
51
51
|
|
package/skills/claude/SKILL.md
CHANGED
|
@@ -57,7 +57,7 @@ Claude's managed native subagent lifecycle does not provide a reliable parent-li
|
|
|
57
57
|
|
|
58
58
|
Use single-file / single-question first for any non-trivial diff. Do not send a whole PR unless it already fits within the bounded payload below.
|
|
59
59
|
|
|
60
|
-
**Model policy:** default to the moving `opus` alias via `CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-opus}`.
|
|
60
|
+
**Model policy:** default to the moving `opus` alias via `CLAUDE_REVIEW_MODEL=${CLAUDE_REVIEW_MODEL:-opus}`. A caller may explicitly override `CLAUDE_REVIEW_MODEL` (for example to `fable` for a lighter advisory pass); honor the requested model. However, any review used as blueprint **promotion or completion** approval evidence (draft→planned, or planned/in-progress→completed) MUST run with Claude Opus and record `"model": "opus"`.
|
|
61
61
|
|
|
62
62
|
#### Bounded prompt payload
|
|
63
63
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yeachan Heo
|
|
4
|
+
|
|
5
|
+
Applies to the upstream deep-interview skill vendored from
|
|
6
|
+
https://github.com/Yeachan-Heo/oh-my-codex at commit
|
|
7
|
+
0e00a6ebdd12a6674f5a4735942940b9bdcdb8c0. The upstream repository declares
|
|
8
|
+
the MIT license in its package.json and Cargo.toml at that commit without
|
|
9
|
+
shipping a standalone LICENSE file; this file preserves the standard MIT
|
|
10
|
+
copyright and permission notice for the vendored material.
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
+
in the Software without restriction, including without limitation the rights
|
|
15
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
+
furnished to do so, subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: skill
|
|
3
|
+
slug: deep-interview
|
|
4
|
+
title: Deep Interview
|
|
5
|
+
status: active
|
|
6
|
+
scope: repo
|
|
7
|
+
applies_to: [agents]
|
|
8
|
+
related: [ralplan, autopilot, deep-research]
|
|
9
|
+
created: "2026-07-17"
|
|
10
|
+
last_reviewed: "2026-07-17"
|
|
11
|
+
name: deep-interview
|
|
12
|
+
description: "Socratic requirements interview with ambiguity gating before planning or execution handoff."
|
|
13
|
+
license: MIT
|
|
14
|
+
upstream:
|
|
15
|
+
source: https://github.com/Yeachan-Heo/oh-my-codex/tree/0e00a6ebdd12a6674f5a4735942940b9bdcdb8c0/skills/deep-interview
|
|
16
|
+
last_synced: "2026-07-17"
|
|
17
|
+
argument-hint: "[--quick|--standard|--deep] <idea or vague description>"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<Purpose>
|
|
21
|
+
Deep Interview is an intent-first Socratic clarification loop that runs before planning or implementation. It turns vague ideas into execution-ready requirements by asking targeted questions about why the user wants a change, how far it should go, what should stay out of scope, and what the agent may decide without confirmation. It is a requirements mode: it produces a spec and hands off — it does NOT implement.
|
|
22
|
+
</Purpose>
|
|
23
|
+
|
|
24
|
+
<Use_When>
|
|
25
|
+
|
|
26
|
+
- The request is broad, ambiguous, or missing concrete acceptance criteria
|
|
27
|
+
- The user says "deep interview", "interview me", "ask me everything", or "don't assume"
|
|
28
|
+
- You want to avoid misaligned implementation from underspecified requirements
|
|
29
|
+
- You need a requirements artifact before handing off to `ralplan`, `autopilot`, `ultragoal`, `team`, or a new blueprint
|
|
30
|
+
</Use_When>
|
|
31
|
+
|
|
32
|
+
<Do_Not_Use_When>
|
|
33
|
+
|
|
34
|
+
- The request already has concrete file/symbol targets and clear acceptance criteria
|
|
35
|
+
- The user explicitly asks to skip planning/interview and execute immediately
|
|
36
|
+
- The user wants a technology/tradeoff investigation (use `deep-research`)
|
|
37
|
+
- A complete blueprint/plan already exists and execution should start
|
|
38
|
+
</Do_Not_Use_When>
|
|
39
|
+
|
|
40
|
+
<Why_This_Exists>
|
|
41
|
+
Execution quality is usually bottlenecked by intent clarity, not just missing implementation detail. A single expansion pass often misses why the user wants a change, where scope should stop, which tradeoffs are unacceptable, and which decisions still require user approval. This workflow applies Socratic pressure plus quantitative ambiguity scoring so downstream planning begins with an explicit, testable, intent-aligned spec.
|
|
42
|
+
</Why_This_Exists>
|
|
43
|
+
|
|
44
|
+
<Depth_Profiles>
|
|
45
|
+
|
|
46
|
+
- **Quick (`--quick`)**: fast pre-plan pass; target ambiguity `<= 0.30`; max 5 rounds
|
|
47
|
+
- **Standard (`--standard`, default)**: full requirement interview; target `<= 0.20`; max 12 rounds
|
|
48
|
+
- **Deep (`--deep`)**: high-rigor exploration; target `<= 0.15`; max 20 rounds
|
|
49
|
+
|
|
50
|
+
Max rounds is a hard cap, not a target. Do not continue only to reach a round count. Extra rigor does not override the active threshold. If no flag is provided, use **Standard**.
|
|
51
|
+
</Depth_Profiles>
|
|
52
|
+
|
|
53
|
+
<Execution_Policy>
|
|
54
|
+
|
|
55
|
+
- Ask ONE question per round. Never batch multiple interview rounds into one prompt.
|
|
56
|
+
- Ask about intent and boundaries before implementation detail.
|
|
57
|
+
- Target the weakest clarity dimension each round, after applying the stage-priority rules below.
|
|
58
|
+
- Treat every answer as a claim to pressure-test: the next question should usually demand evidence or an example, expose a hidden assumption, force a tradeoff or boundary, or reframe root cause vs symptom.
|
|
59
|
+
- Do not rotate to a new dimension just for coverage when the current answer is still vague. Stay on the thread until it is one layer deeper, one assumption clearer, or one boundary tighter.
|
|
60
|
+
- Before crystallizing, complete at least one explicit pressure pass that revisits an earlier answer with a deeper, assumption- or tradeoff-focused follow-up.
|
|
61
|
+
- Gather codebase facts via local search tools, `wp_session_*` retrieval, and read-only repo inspection before asking the user about internals.
|
|
62
|
+
- Always run a preflight context intake before the first question.
|
|
63
|
+
- For brownfield work, preflight must ground in docs before user-facing questions: inspect applicable `AGENTS.md`/`CLAUDE.md`, README/getting-started docs, relevant `docs/` contracts/plans/ADRs, existing blueprints under `blueprints/`, and any project glossary such as `UBIQUITOUS_LANGUAGE.md` when present.
|
|
64
|
+
- Treat repo language as evidence, not authority: if the user uses a fuzzy, overloaded, or conflicting term, surface the specific doc/code wording and ask which meaning should govern.
|
|
65
|
+
- Cross-check user claims about current behavior against code or documented contracts. If docs and code disagree, ask a confirmation question that names both sources instead of silently choosing one.
|
|
66
|
+
- Use scenario-based edge-case grilling when relationships, boundaries, or handoff behavior are unclear: invent one concrete scenario that stresses the ambiguous boundary, then ask one focused question about the expected outcome.
|
|
67
|
+
- Reduce user effort: ask only the highest-leverage unresolved question, and never ask the user for codebase facts you can discover directly.
|
|
68
|
+
- For brownfield work, prefer evidence-backed confirmation questions such as "I found X in Y. Should this change follow that pattern?"
|
|
69
|
+
- Route facts before judgment: before each user-facing round, classify whether the needed information is a discoverable fact, a fact needing confirmation, or a human decision. The interview is with the human for judgment, not for facts the agent can inspect.
|
|
70
|
+
- When unresolved ambiguity depends on current external best practices, upstream guidance, standards, or version-aware behavior, use `best-practice-research` as the bounded evidence wrapper before crystallizing.
|
|
71
|
+
- Auto-confirm only descriptive facts. If a finding implies what the feature should do, which pattern to follow, which tradeoff to accept, or what stays in/out of scope, route that decision to the user.
|
|
72
|
+
- Re-score ambiguity after each answer and show progress transparently.
|
|
73
|
+
- Once ambiguity is at or below the active threshold, stop ordinary questioning. Run the closure audit: crystallize/hand off when the readiness gates pass; otherwise ask only the final closure question needed to satisfy a named gate.
|
|
74
|
+
- Do not crystallize or hand off while `Non-goals` or `Decision Boundaries` remain unresolved, even if the weighted threshold is met.
|
|
75
|
+
- Do not hand off to execution while ambiguity remains above threshold unless the user explicitly opts to proceed with a warning.
|
|
76
|
+
- Treat early exit as a safety valve, not the default success path.
|
|
77
|
+
</Execution_Policy>
|
|
78
|
+
|
|
79
|
+
<Steps>
|
|
80
|
+
|
|
81
|
+
## Phase 0: Preflight Context Intake
|
|
82
|
+
|
|
83
|
+
1. Parse `{{ARGUMENTS}}` and derive a short kebab-case task slug.
|
|
84
|
+
2. Attempt to load the latest relevant context for the slug from session memory via the `wp_session_search`/`wp_session_retrieve` MCP tools.
|
|
85
|
+
3. If the provided initial context (or loaded snapshot) is too large for safe prompt use, the first round must ask for a concise prompt-safe summary before scoring ambiguity or any downstream handoff. This gate is blocking: preserve goals, constraints, success criteria, non-goals, decision boundaries, and references to the full source documents.
|
|
86
|
+
4. If no snapshot exists, create a minimum snapshot with: task statement, desired outcome, stated solution, probable intent hypothesis, known facts/evidence, constraints, unknowns/open questions, decision-boundary unknowns, likely codebase touchpoints, repo docs/rules inspected, terminology/doc-code conflicts found.
|
|
87
|
+
5. For brownfield tasks, inspect the applicable documentation/rule surface before the first user-facing round. Prefer exact, nearby sources: governing `AGENTS.md`/`CLAUDE.md`, README/getting-started docs, relevant `docs/` contracts/plans/ADRs, existing blueprints, and project glossary/context files when present.
|
|
88
|
+
6. Capture the snapshot into session memory via `wp_session_capture` (tagged with the slug) and reference it in the interview state.
|
|
89
|
+
|
|
90
|
+
## Phase 1: Initialize
|
|
91
|
+
|
|
92
|
+
1. Parse `{{ARGUMENTS}}` and the depth profile (`--quick|--standard|--deep`).
|
|
93
|
+
2. Detect project context: use local search tools and read-only repo inspection to classify **brownfield** (existing codebase target) vs **greenfield**; for brownfield, collect relevant context before questioning.
|
|
94
|
+
3. Persist a lightweight resumable interview state to session memory via `wp_session_capture` (interview id, profile, type, initial idea, rounds, current ambiguity, threshold, max rounds, challenge modes used, current stage/focus, context snapshot reference), so a later session can resume via `wp_session_search`/`wp_session_restore`.
|
|
95
|
+
4. Announce kickoff with the profile, threshold, and current ambiguity.
|
|
96
|
+
|
|
97
|
+
## Phase 2: Socratic Interview Loop
|
|
98
|
+
|
|
99
|
+
Repeat until ambiguity `<= threshold`, the pressure pass is complete, and the readiness gates are explicit — or the user exits with warning or max rounds are reached. This is a stop condition: below threshold, do not open a new ordinary interview branch.
|
|
100
|
+
|
|
101
|
+
### 2a) Generate next question
|
|
102
|
+
|
|
103
|
+
If the initial context is oversized and no prompt-safe summary has been recorded, the next question must be only a summary request. Do not score ambiguity or hand off until that summary is captured.
|
|
104
|
+
|
|
105
|
+
Use the original idea, prior Q&A rounds, current dimension scores, brownfield context, doc/terminology grounding notes, and any activated challenge mode (Phase 3).
|
|
106
|
+
|
|
107
|
+
Target the lowest-scoring dimension, but respect stage priority:
|
|
108
|
+
|
|
109
|
+
- **Stage 1 — Intent-first:** Intent, Outcome, Scope, Non-goals, Decision Boundaries
|
|
110
|
+
- **Stage 2 — Feasibility:** Constraints, Success Criteria
|
|
111
|
+
- **Stage 3 — Brownfield grounding:** Context Clarity (brownfield only)
|
|
112
|
+
|
|
113
|
+
Follow-up pressure ladder after each answer:
|
|
114
|
+
|
|
115
|
+
1. Ask for a concrete example, counterexample, or evidence signal behind the latest claim.
|
|
116
|
+
2. Probe the hidden assumption, dependency, or belief that makes the claim true.
|
|
117
|
+
3. Force a boundary or tradeoff: what would you explicitly not do, defer, or reject?
|
|
118
|
+
4. Challenge fuzzy or conflicting terms against the repo's documented language and current behavior.
|
|
119
|
+
5. Stress-test the boundary with one concrete scenario when a relationship or handoff remains ambiguous.
|
|
120
|
+
6. If the answer still describes symptoms, reframe toward root cause before moving on.
|
|
121
|
+
|
|
122
|
+
Prefer staying on the highest-leverage thread across multiple rounds. Breadth without pressure is not progress.
|
|
123
|
+
|
|
124
|
+
Maintain a **Breadth Ledger** across independent tracks (scope, constraints, outputs, verification, brownfield integration, plus any user-mentioned deliverable). The ledger is a guard, not a rotation rule: stay deep on the current thread until it is pressure-tested, then zoom out only when another material track remains unresolved and would change execution.
|
|
125
|
+
|
|
126
|
+
Maintain a **Docs/Terminology Ledger** for brownfield interviews: repo docs/rules inspected (with paths), canonical terms already in use, user terms that conflict with docs or code, and doc/code mismatches that require a human decision before implementation.
|
|
127
|
+
|
|
128
|
+
Detailed dimensions:
|
|
129
|
+
|
|
130
|
+
- Intent Clarity — why the user wants this
|
|
131
|
+
- Outcome Clarity — what end state they want
|
|
132
|
+
- Scope Clarity — how far the change should go
|
|
133
|
+
- Constraint Clarity — technical or business limits that must hold
|
|
134
|
+
- Success Criteria Clarity — how completion will be judged
|
|
135
|
+
- Context Clarity — existing codebase understanding (brownfield only)
|
|
136
|
+
|
|
137
|
+
`Non-goals` and `Decision Boundaries` are mandatory readiness gates. Ask about them early and keep revisiting them until they are explicit.
|
|
138
|
+
|
|
139
|
+
### 2b) Ask the question
|
|
140
|
+
|
|
141
|
+
Ask exactly one question per round using the host's native structured-question tool (e.g. `AskUserQuestion`) when available; otherwise ask one concise plain-text question and wait for the answer. Present:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
Round {n} | Target: {weakest_dimension} | Ambiguity: {score}%
|
|
145
|
+
|
|
146
|
+
{question}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Question-shape guidance:
|
|
150
|
+
|
|
151
|
+
- Deep Interview is Socratic — one focused round at a time. Never combine multiple rounds into one prompt.
|
|
152
|
+
- Use a **single-answerable** round when exactly one answer should drive the next branch, the options are mutually exclusive, or selecting more than one would blur the decision (e.g. handoff lane selection, choosing the primary failure mode, confirming which competing interpretation is correct).
|
|
153
|
+
- Use a **multi-answerable** round when multiple options may all be true at once and you need a bounded set of coexisting constraints, non-goals, risks, or acceptance checks in one round (e.g. all out-of-scope items, all success metrics that must hold, all deployment constraints that apply).
|
|
154
|
+
- If one selected option would immediately require a follow-up to disambiguate the others, prefer a single-answerable round now and ask the follow-up next. Do not hide a branching tree inside one overloaded multi-select.
|
|
155
|
+
- Keep options bounded and concrete. Only leave an "other" escape hatch when the interview genuinely needs one user-supplied option that cannot be enumerated in advance.
|
|
156
|
+
|
|
157
|
+
### 2c) Score ambiguity
|
|
158
|
+
|
|
159
|
+
Score each weighted dimension in `[0.0, 1.0]` with justification and gap.
|
|
160
|
+
|
|
161
|
+
Greenfield: `ambiguity = 1 - (intent × 0.30 + outcome × 0.25 + scope × 0.20 + constraints × 0.15 + success × 0.10)`
|
|
162
|
+
|
|
163
|
+
Brownfield: `ambiguity = 1 - (intent × 0.25 + outcome × 0.20 + scope × 0.20 + constraints × 0.15 + success × 0.10 + context × 0.10)`
|
|
164
|
+
|
|
165
|
+
Readiness gate:
|
|
166
|
+
|
|
167
|
+
- `Non-goals` must be explicit.
|
|
168
|
+
- `Decision Boundaries` must be explicit.
|
|
169
|
+
- A pressure pass must be complete: at least one earlier answer revisited with an evidence, assumption, or tradeoff follow-up.
|
|
170
|
+
- A closure audit must pass: another question would change execution materially, not merely polish wording or chase a narrow edge case.
|
|
171
|
+
- If a gate is unresolved or the pressure pass is incomplete, continue below threshold only with a final closure question that names the unresolved gate.
|
|
172
|
+
- Treat a low score as permission to audit closure, not to keep drilling. If remaining uncertainty would not change implementation, crystallize instead of opening a new branch.
|
|
173
|
+
|
|
174
|
+
### 2d) Report progress
|
|
175
|
+
|
|
176
|
+
Show the weighted breakdown table, readiness-gate status (`Non-goals`, `Decision Boundaries`), and the next focus dimension.
|
|
177
|
+
|
|
178
|
+
### 2e) Persist state
|
|
179
|
+
|
|
180
|
+
Append the round result and updated scores to the slug-tagged interview state in session memory (`wp_session_capture`).
|
|
181
|
+
|
|
182
|
+
### 2f) Round controls
|
|
183
|
+
|
|
184
|
+
- Do not offer early exit before the first explicit assumption probe and one persistent follow-up have happened.
|
|
185
|
+
- Apply a **Dialectic Rhythm Guard**: after 3 consecutive fact/confirmation answers, the next material round must solicit direct human judgment — unless the closure audit says the interview is ready to crystallize.
|
|
186
|
+
- Round 4+: allow explicit early exit with a risk warning.
|
|
187
|
+
- Soft warning at the profile midpoint.
|
|
188
|
+
- Hard cap at the profile max rounds; never treat this cap as a desired interview length.
|
|
189
|
+
|
|
190
|
+
## Phase 3: Challenge Modes (assumption stress tests)
|
|
191
|
+
|
|
192
|
+
Use each mode once when applicable — normal escalation tools, not rare rescue moves:
|
|
193
|
+
|
|
194
|
+
- **Contrarian** (round 2+ or immediately when an answer rests on an untested assumption): challenge core assumptions.
|
|
195
|
+
- **Terminologist** (brownfield, when a key term is fuzzy, overloaded, or conflicts with repo docs/code): force a canonical meaning against existing project language before implementation.
|
|
196
|
+
- **Simplifier** (round 4+ or when scope expands faster than outcome clarity): probe minimal viable scope.
|
|
197
|
+
- **Ontologist** (round 5+ and ambiguity > 0.25, or when the user keeps describing symptoms): ask for essence-level reframing.
|
|
198
|
+
|
|
199
|
+
Track used modes in state to prevent repetition.
|
|
200
|
+
|
|
201
|
+
## Phase 4: Crystallize Artifacts
|
|
202
|
+
|
|
203
|
+
When the threshold is met (or the user exits with warning / hard cap):
|
|
204
|
+
|
|
205
|
+
1. Create (or update) the draft blueprint that owns this task: `wp blueprint new "<clarified goal>" --complexity <XS|S|M|L|XL>` when none exists, yielding `blueprints/draft/{slug}/`. In this repo, deep interviews exist to produce better blueprints before implementation — the blueprint folder is where the interview output lands.
|
|
206
|
+
2. Write the interview transcript summary to `blueprints/draft/{slug}/interview.md`.
|
|
207
|
+
3. Fold the execution-ready spec into `blueprints/draft/{slug}/_overview.md` (intent, scope, non-goals, decision boundaries, constraints, acceptance criteria), and capture a copy of the final spec + scores into session memory via `wp_session_capture`.
|
|
208
|
+
|
|
209
|
+
The spec should include: metadata (profile, rounds, final ambiguity, threshold, context type); context snapshot reference; prompt-safe initial-context summary when oversized context was provided, plus references to the full sources; the clarity breakdown table; Intent (why); Desired Outcome; In-Scope; Out-of-Scope / Non-goals; Decision Boundaries (what the agent may decide without confirmation); Constraints; testable acceptance criteria (prefer repo verification surfaces — `wp test`, `wp typecheck`, `wp audit` — over manual checks); assumptions exposed and their resolutions; pressure-pass findings (which answer was revisited and what changed); brownfield evidence-vs-inference notes; the Docs/Terminology Ledger; scenario/edge-case findings that shaped scope or acceptance; and the full or condensed transcript.
|
|
210
|
+
|
|
211
|
+
Durable docs, glossary, or ADR updates are opt-in and public-safe only: recommend them in the handoff summary, but do not auto-create or dump public docs from interview transcripts unless the user explicitly chooses that as in-scope.
|
|
212
|
+
|
|
213
|
+
## Phase 5: Execution Bridge
|
|
214
|
+
|
|
215
|
+
Present execution options after artifact generation using explicit handoff contracts. Treat the deep-interview spec as the current requirements source of truth and preserve intent, non-goals, decision boundaries, acceptance criteria, docs/terminology grounding, and any residual-risk warnings across the handoff.
|
|
216
|
+
|
|
217
|
+
- **`ralplan`** — when architecture/test-shape review is still needed. Consumer treats the spec as the requirements source of truth and refines architecture/feasibility around the clarified intent instead of re-interviewing.
|
|
218
|
+
- **`autopilot`** — when the spec is already strong enough for direct planning plus execution. Consumer uses the spec as the clarified execution brief with the non-goals and acceptance criteria as binding context.
|
|
219
|
+
- **`ultragoal`** — when the clarified work should become durable, sequentially tracked goal-mode work.
|
|
220
|
+
- **`team`** — when the task is large, multi-lane, or blocker-sensitive enough to justify coordinated parallel execution.
|
|
221
|
+
- **Blueprint lifecycle** — refine the seeded draft under `blueprints/draft/{slug}/`, then advance it through the normal lifecycle (`wp blueprint promote {slug} planned` once the promotion gate passes, `wp blueprint start {slug}` for the owner worktree) when the work should enter planned execution directly.
|
|
222
|
+
- **Refine further** — re-enter the loop to resolve the highest-leverage remaining uncertainty when residual ambiguity is still too high or an early-exit/above-threshold warning indicates too much risk to proceed cleanly.
|
|
223
|
+
|
|
224
|
+
For research-shaped requests (a research question, evaluator-backed analysis, or reference gathering), hand off to `autoresearch` after the interview converges on a validator-ready mission; keep the explicit `refine further` vs `launch` boundary and do not launch until the user confirms.
|
|
225
|
+
|
|
226
|
+
**Residual-Risk Rule:** if the interview ended via early exit, hard cap, or above-threshold proceed-with-warning, explicitly preserve that residual-risk state in the handoff so the downstream skill knows it inherited a partially clarified brief.
|
|
227
|
+
|
|
228
|
+
**IMPORTANT:** Deep Interview is a requirements mode. On handoff, invoke the selected skill using the contract above. **Do NOT implement directly** inside deep-interview.
|
|
229
|
+
|
|
230
|
+
</Steps>
|
|
231
|
+
|
|
232
|
+
<Tool_Usage>
|
|
233
|
+
|
|
234
|
+
- Use local search tools, `wp_session_*` retrieval, and read-only repo inspection for codebase fact gathering.
|
|
235
|
+
- Use the host's native structured-question tool (e.g. `AskUserQuestion`) for each round when available; otherwise ask one concise plain-text question and wait.
|
|
236
|
+
- Keep context snapshots and resumable interview state in session memory via the `wp_session_*` MCP tools, tagged with the task slug.
|
|
237
|
+
- Read applicable repo docs/rules/context during preflight; write durable docs/glossary/ADR updates only when the user explicitly opts in and the content is public-safe.
|
|
238
|
+
- Land transcript and spec artifacts in the active task's blueprint folder (`blueprints/draft/{slug}/`), created via `wp blueprint new` when missing.
|
|
239
|
+
- Use `best-practice-research` when unresolved ambiguity depends on current external/upstream guidance.
|
|
240
|
+
</Tool_Usage>
|
|
241
|
+
|
|
242
|
+
<Escalation_And_Stop_Conditions>
|
|
243
|
+
|
|
244
|
+
- User says stop/cancel/abort — persist state and stop.
|
|
245
|
+
- Ambiguity stalls for 3 rounds (± 0.05) — force Ontologist mode once.
|
|
246
|
+
- Max rounds reached — proceed with an explicit residual-risk warning.
|
|
247
|
+
- All dimensions `>= 0.9` — allow early crystallization even before max rounds.
|
|
248
|
+
</Escalation_And_Stop_Conditions>
|
|
249
|
+
|
|
250
|
+
<Final_Checklist>
|
|
251
|
+
|
|
252
|
+
- [ ] Preflight context snapshot captured to session memory (`wp_session_capture`, slug-tagged)
|
|
253
|
+
- [ ] Oversized initial context, if present, has a prompt-safe summary before scoring or handoff
|
|
254
|
+
- [ ] Ambiguity score shown each round
|
|
255
|
+
- [ ] Intent-first stage priority used before implementation detail
|
|
256
|
+
- [ ] Weakest-dimension targeting used within the active stage
|
|
257
|
+
- [ ] At least one explicit assumption probe before crystallization
|
|
258
|
+
- [ ] At least one persistent follow-up / pressure pass deepened a prior answer
|
|
259
|
+
- [ ] Challenge modes triggered at thresholds (when applicable)
|
|
260
|
+
- [ ] `Non-goals` and `Decision Boundaries` explicit before handoff
|
|
261
|
+
- [ ] Transcript written to `blueprints/draft/{slug}/interview.md`
|
|
262
|
+
- [ ] Spec folded into `blueprints/draft/{slug}/_overview.md` (blueprint created via `wp blueprint new` if missing)
|
|
263
|
+
- [ ] Brownfield questions use evidence-backed confirmation and doc grounding when applicable
|
|
264
|
+
- [ ] Fuzzy/conflicting terminology challenged against repo language when applicable
|
|
265
|
+
- [ ] Handoff options provided (`ralplan`, `autopilot`, `ultragoal`, `team`, blueprint lifecycle)
|
|
266
|
+
- [ ] No direct implementation performed in this mode
|
|
267
|
+
</Final_Checklist>
|
|
268
|
+
|
|
269
|
+
Task: {{ARGUMENTS}}
|