From Dev10x
Reformulates plain-text decision questions into structured AskUserQuestion widgets from recent conversation turns or reinforces decision-gate convention for agent-supervisor interactions.
npx claudepluginhub dev10x-guru/dev10x-claude --plugin Dev10xThis skill is limited to using the following tools:
**Announce:** "Using Dev10x:ask to convert questions into
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Announce: "Using Dev10x:ask to convert questions into structured decision widgets."
This skill follows references/task-orchestration.md patterns.
Create a task at invocation, mark completed when done:
REQUIRED: Create a task at invocation. Execute at startup:
TaskCreate(subject="Convert questions to widgets", activeForm="Converting questions")Mark completed when done: TaskUpdate(taskId, status="completed")
Agents drift toward plain-text questions for supervisor decisions. This skill provides two corrective modes:
AskUserQuestion widgetsAskUserQuestion for all decision pointsDetermine the mode from arguments and context:
| Signal | Mode |
|---|---|
| No arguments, recent plain-text questions visible | Reformulate |
Argument --reinforce or reinforce | Reinforce |
| Argument is a quoted question string | Reformulate (single question) |
| User says "ask that again" or "convert that to options" | Reformulate |
If ambiguous, default to Reformulate — it is the more common use case.
Look back through the most recent 10-15 conversation turns for plain-text questions directed at the supervisor. A question qualifies for reformulation when ALL of these are true:
AskUserQuestion)Skip questions that are purely informational (e.g., "What's the file path?", "Can you clarify the requirement?").
For each qualifying question, build a structured representation:
?label: concise choice name (1-5 words)description: what happens if chosen, trade-offsREQUIRED: Call AskUserQuestion (do NOT use plain text).
Present all extracted questions in a single AskUserQuestion
call (up to 4 questions per call). If more than 4 questions
were found, batch them into sequential calls.
After the supervisor responds, output a brief summary:
Scan recent conversation for the plain-text question that
triggered this invocation. If the user provided arguments
(e.g., /Dev10x:ask reinforce), use the most recent
plain-text decision question as the target.
Read the decision gate rules from:
.claude/rules/skill-gates.md — pattern and checklist.claude/rules/essentials.md § Decision Gates — global scopeOutput a structured reinforcement message:
## Decision Gate Reinforcement
**Violation detected:** Plain-text decision question found in
recent conversation.
**Rule:** All decision points that affect execution flow MUST
use `AskUserQuestion` tool calls, never plain text.
**Why:**
- Plain text does not block execution (agents auto-proceed)
- No structured options (supervisor must type free-form)
- Breaks orchestration contracts in skills
**Correct pattern:**
AskUserQuestion(questions=[{
question: "Your decision question here?",
header: "Topic",
options: [
{label: "Option A (Recommended)",
description: "What happens with A"},
{label: "Option B",
description: "What happens with B"}
],
multiSelect: false
}])
**References:**
- `.claude/rules/skill-gates.md` — full pattern
- `.claude/rules/essentials.md` § Decision Gates — global scope
- Mark gates with: **REQUIRED: Call `AskUserQuestion`**
Skip reformulation for these question types — they are legitimately plain-text:
Only reformulate questions where the supervisor must choose between discrete alternatives that change the execution path.
Context: Agent previously asked in plain text: "Should I fix this with a retry wrapper or by increasing the timeout? The retry approach is more resilient but adds complexity."
Invocation: /Dev10x:ask
Result: Calls AskUserQuestion with:
question: "How should we fix the timeout failure?"
header: "Fix strategy"
options:
- label: "Retry wrapper (Recommended)"
description: "More resilient, adds wrapper complexity"
- label: "Increase timeout"
description: "Simpler change, less resilient to transient failures"
Invocation: /Dev10x:ask reinforce
Result: Outputs the reinforcement message from Mode 2 Step 3, citing the specific rules and correct pattern.
Invocation: /Dev10x:ask "Should we use polling or webhooks?"
Result: Calls AskUserQuestion with:
question: "Should we use polling or webhooks?"
header: "Strategy"
options:
- label: "Polling"
description: "Simpler to implement, higher latency"
- label: "Webhooks"
description: "Real-time updates, requires endpoint setup"
This skill can be referenced by other skills as a reinforcement mechanism:
Dev10x:skill-reinforcement — handles CLI-to-skill
redirects; Dev10x:ask handles plain-text-to-widget redirectsDev10x:work-on — can invoke Dev10x:ask reinforce if
an agent within the work-on pipeline uses plain text for a
decision point