From 75e2f22c29f41883ca883edcf8f09667c0f370d9 Mon Sep 17 00:00:00 2001 From: Dan Guido Date: Fri, 6 Feb 2026 11:24:15 -0500 Subject: [PATCH] Remove ask-questions-if-underspecified seed plugin Humanizer and skill-extractor now serve as the reference examples in CLAUDE.md. Co-Authored-By: Claude Opus 4.6 --- .claude-plugin/marketplace.json | 11 --- CLAUDE.md | 4 +- CODEOWNERS | 1 - README.md | 1 - .../.claude-plugin/plugin.json | 10 --- .../ask-questions-if-underspecified/README.md | 24 ------ .../ask-questions-if-underspecified/SKILL.md | 85 ------------------- 7 files changed, 2 insertions(+), 134 deletions(-) delete mode 100644 plugins/ask-questions-if-underspecified/.claude-plugin/plugin.json delete mode 100644 plugins/ask-questions-if-underspecified/README.md delete mode 100644 plugins/ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 0dd2024..4ce7af3 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,17 +9,6 @@ "description": "Curated, community-vetted Claude Code plugins reviewed for quality and safety" }, "plugins": [ - { - "name": "ask-questions-if-underspecified", - "version": "1.0.1", - "description": "Clarify requirements before implementing. When doubting, ask questions.", - "author": { - "name": "Kevin Valerio", - "email": "opensource@trailofbits.com", - "url": "https://github.com/trailofbits" - }, - "source": "./plugins/ask-questions-if-underspecified" - }, { "name": "humanizer", "version": "1.0.0", diff --git a/CLAUDE.md b/CLAUDE.md index c860f4f..764f52b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,8 +12,8 @@ | Complexity | Skill | What It Demonstrates | |------------|-------|---------------------| -| **Basic** | [ask-questions-if-underspecified](plugins/ask-questions-if-underspecified/) | Minimal frontmatter, simple guidance | -| **Intermediate** | [constant-time-analysis](https://github.com/trailofbits/skills/tree/main/plugins/constant-time-analysis) | Python package, references/, language-specific docs | +| **Basic** | [humanizer](plugins/humanizer/) | Frontmatter, references/, before/after examples | +| **Intermediate** | [skill-extractor](plugins/skill-extractor/) | Multiple references/, quality gates, command interface | | **Advanced** | [culture-index](https://github.com/trailofbits/skills/tree/main/plugins/culture-index) | Scripts, workflows/, templates/, PDF extraction, multiple entry points | **When in doubt, copy one of these and adapt it.** diff --git a/CODEOWNERS b/CODEOWNERS index 4105944..43e48de 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -2,6 +2,5 @@ * @dguido # Plugin-specific owners (alphabetical) -/plugins/ask-questions-if-underspecified/ @kevin-valerio @dguido /plugins/humanizer/ @dguido /plugins/skill-extractor/ @dguido diff --git a/README.md b/README.md index 9c406c7..af70691 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,6 @@ cd /path/to/parent # e.g., if repo is at ~/projects/skills-curated, be in ~/pro | Plugin | Description | |--------|-------------| -| [ask-questions-if-underspecified](plugins/ask-questions-if-underspecified/) | Clarify requirements before implementing | | [skill-extractor](plugins/skill-extractor/) | Extract reusable skills from work sessions | ## Trophy Case diff --git a/plugins/ask-questions-if-underspecified/.claude-plugin/plugin.json b/plugins/ask-questions-if-underspecified/.claude-plugin/plugin.json deleted file mode 100644 index e005dfd..0000000 --- a/plugins/ask-questions-if-underspecified/.claude-plugin/plugin.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "ask-questions-if-underspecified", - "version": "1.0.1", - "description": "Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.", - "author": { - "name": "Kevin Valerio", - "email": "opensource@trailofbits.com", - "url": "https://github.com/trailofbits" - } -} diff --git a/plugins/ask-questions-if-underspecified/README.md b/plugins/ask-questions-if-underspecified/README.md deleted file mode 100644 index b306bfd..0000000 --- a/plugins/ask-questions-if-underspecified/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Ask Questions If Underspecified - -Ask the minimum set of clarifying questions needed to avoid wrong work. - -**Author:** Kevin Valerio - -## When to Use - -Use this skill when: -- The request has multiple plausible interpretations -- Success criteria, scope, constraints, or environment details are unclear -- Starting implementation without clarification risks doing the wrong work - -## What It Does - -- Asks 1-5 must-have questions in a scannable, answerable format (multiple choice + defaults) -- Pauses before acting until required answers are provided (unless the user approves proceeding on stated assumptions) -- Restates confirmed requirements before starting work - -## Installation - -``` -/plugin install trailofbits/skills-curated/plugins/ask-questions-if-underspecified -``` diff --git a/plugins/ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md b/plugins/ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md deleted file mode 100644 index 9c11bef..0000000 --- a/plugins/ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -name: ask-questions-if-underspecified -description: Clarify requirements before implementing. Use when serious doubts arise. ---- - -# Ask Questions If Underspecified - -## When to Use - -Use this skill when a request has multiple plausible interpretations or key details (objective, scope, constraints, environment, or safety) are unclear. - -## When NOT to Use - -Do not use this skill when the request is already clear, or when a quick, low-risk discovery read can answer the missing details. - -## Goal - -Ask the minimum set of clarifying questions needed to avoid wrong work; do not start implementing until the must-have questions are answered (or the user explicitly approves proceeding with stated assumptions). - -## Workflow - -### 1) Decide whether the request is underspecified - -Treat a request as underspecified if after exploring how to perform the work, some or all of the following are not clear: -- Define the objective (what should change vs stay the same) -- Define "done" (acceptance criteria, examples, edge cases) -- Define scope (which files/components/users are in/out) -- Define constraints (compatibility, performance, style, deps, time) -- Identify environment (language/runtime versions, OS, build/test runner) -- Clarify safety/reversibility (data migration, rollout/rollback, risk) - -If multiple plausible interpretations exist, assume it is underspecified. - -### 2) Ask must-have questions first (keep it small) - -Ask 1-5 questions in the first pass. Prefer questions that eliminate whole branches of work. - -Make questions easy to answer: -- Optimize for scannability (short, numbered questions; avoid paragraphs) -- Offer multiple-choice options when possible -- Suggest reasonable defaults when appropriate (mark them clearly as the default/recommended choice; bold the recommended choice in the list, or if you present options in a code block, put a bold "Recommended" line immediately above the block and also tag defaults inside the block) -- Include a fast-path response (e.g., reply `defaults` to accept all recommended/default choices) -- Include a low-friction "not sure" option when helpful (e.g., "Not sure - use default") -- Separate "Need to know" from "Nice to know" if that reduces friction -- Structure options so the user can respond with compact decisions (e.g., `1b 2a 3c`); restate the chosen options in plain language to confirm - -### 3) Pause before acting - -Until must-have answers arrive: -- Do not run commands, edit files, or produce a detailed plan that depends on unknowns -- Do perform a clearly labeled, low-risk discovery step only if it does not commit you to a direction (e.g., inspect repo structure, read relevant config files) - -If the user explicitly asks you to proceed without answers: -- State your assumptions as a short numbered list -- Ask for confirmation; proceed only after they confirm or correct them - -### 4) Confirm interpretation, then proceed - -Once you have answers, restate the requirements in 1-3 sentences (including key constraints and what success looks like), then start work. - -## Question templates - -- "Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ...." -- "Which of these should it be? A) ... B) ... C) ... (pick one)" -- "What would you consider 'done'? For example: ..." -- "Any constraints I must follow (versions, performance, style, deps)? If none, I will target the existing project defaults." -- Use numbered questions with lettered options and a clear reply format - -```text -1) Scope? -a) Minimal change (default) -b) Refactor while touching the area -c) Not sure - use default -2) Compatibility target? -a) Current project defaults (default) -b) Also support older versions: -c) Not sure - use default - -Reply with: defaults (or 1a 2a) -``` - -## Anti-patterns - -- Don't ask questions you can answer with a quick, low-risk discovery read (e.g., configs, existing patterns, docs). -- Don't ask open-ended questions if a tight multiple-choice or yes/no would eliminate ambiguity faster.