Skip to content
Development
Skill

/ask

Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or skills during development. Not for: code changes (use feature-dev), code review (use codex-review-fast), deep research (use deep-research), full code

From plugin
sd0x-dev-flow
194102 skills16 agents5 hooks

Claude Code

$ npx -y skills add sd0xdev/sd0x-harness --skill ask --agent claude-code

SKILL.md

ask.SKILL.md
name: ask
description: "Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or skills during development. Not for: code changes (use feature-dev), code review (use codex-review-fast), deep research (use deep-research), full code trace (use code-explore). Output: structured answer with source attribution."
allowed-tools: Read, Grep, Glob, Bash(git:*), Bash(node:*), Agent

Ask — Context-Aware Q&A

Trigger

  • Keywords: ask, quick question, context question, project question, 問一下, 想了解, 想知道

When NOT to Use

| Scenario | Alternative | |----------|------------| | Code modification or implementation | `/feature-dev` | | Code review or PR review | `/codex-review-fast` | | Tech spec review | `/review-spec` | | Document review | `/codex-review-doc` | | Bug fixing | `/bug-fix` | | Next step decision | `/next-step` | | Deep multi-source research | `/deep-research` | | Systematic code tracing | `/code-explore` |

Procedure

Phase 0: Session Context Capture

Run these 4 commands in parallel to build session context:

| # | Action | Tool | |---|--------|------| | 1 | Current branch | `Bash("git branch --show-current")` | | 2 | Feature detection | `Bash("node scripts/resolve-feature.js")` — the wrapper, not the CLI: it owns the failure payload, so a resolver that runs and fails — nonzero exit, signal, truncated write, off-contract payload — still yields the full shape with `scan_error: true` rather than `{}` or a truncated document. A missing `node` yields no JSON at all; treat that like any other unusable payload | | 2b | `scan_error` gate | `scan_error !== false` ⇒ the source sets are **unknown, not empty** — report and take the ⚠️ Need Human exit rather than answering from an empty set. Gate on `!== false`, not `=== true`: a `{}` payload from a shell fallback has no such field, so a non-null `key` is not evidence the sets are complete | | 3 | Changed files | `Bash("git status --porcelain")` | | 4 | Recent commits | `Bash("git log --oneline -5")` |

**Untracked file fallback**: If feature resolver returns `key: null`, derive feature from changed/untracked paths: 1. Parse `git status --porcelain` output for `docs/features/<key>/` or `skills/<key>/` patterns 2. Extract `<key>` as candidate feature 3. Use this for `docs` intent feature-first lookup when resolver fails

Phase 1: Intent Classification + Routing

1a. Conversation Context Integration

Before classifying intent, review prior conversation turns for:

  • **Active feature**: feature being developed, files recently discussed or edited
  • **Ongoing task**: what skill was last invoked, what phase we are in
  • **Implicit scope**: if the user asks "why?" after a code change, the scope is that change

Use this context to disambiguate the question and select the right intent. See `references/intent-patterns.md` for edge cases.

1b. Intent Classification

Classify the question (LLM-inferred) into one or more intents:

| Intent | Signal Examples | Context Actions | |--------|----------------|-----------------| | `code` | "function X 做什麼", file paths, module names | Grep → Read → trace 1 level | | `git` | "最近改了什麼", "誰改的", "when" | git log / diff / blame | | `docs` | "需求是什麼", "spec 寫了什麼" | Feature resolve → source set by question kind → fallback Glob | | `rules` | "規則是什麼", "convention", "allowed" | Read rules/ files | | `skill` | "有沒有 skill", "怎麼用 /X" | Glob skills/ → Read SKILL.md | | `arch` | "系統架構", "整體設計" | CLAUDE.md + Explore agent | | `multi` | Multiple intents mixed | Combine actions from each intent |

1c. Skill Routing Check

Before gathering context, check if the question is action-oriented. See `references/routing-table.md`.

If a better skill is identified, suggest it: "這個問題更適合 `/X`,要改用嗎?" — do not auto-redirect.

Phase 2: Context Gathering

Execute per-intent tool call sequences. Hard limits apply.

**`code`**: Grep keywords (top 10 files) → Read most relevant (max 5) → trace imports (1 level)

**`git`**: `git log --oneline -20` → `git diff` (if recent changes) → `git blame` (if specific lines)

**`docs`**: Resolve feature → pick the source set the question actually asks for → fallback `Glob "docs/**/*.md"` (top 5) → Read (max 3)

| The question is… | Read | Not | |------------------|------|-----| | "現在的行為是什麼" | code, `rules/`, `current_authority` | A tech spec — it records the design, not what shipped | | "當初為什麼這樣設計" | `design_records` | — | | "當初要求什麼 / 這張單結了嗎" | `work_records` | — | | "這個決定是什麼時候做的" | `history_records` | — |

Answering a current-behaviour question from a design record is the specific failure this split exists to prevent: the spec is the older artifact, so it reads as authoritative and is wrong. When a design record is the only source available, say which document the answer came from and that it may predate the code.

**`rules`**: Glob `rules/*.md` + `.claude/rules/*.md` → Grep keywords → Read + quote (max 3)

**`skill`**: Glob `skills/*/SKILL.md` → Grep keywords (top 5) → Read (max 3)

**`arch`**: Read CLAUDE.md + key entrypoints → dispatch Explore agent

**`multi`**: Combine steps from each intent. Parallel execution. Hard limit: max 8 file reads total.

Phase 3: Sub-Agent Dispatch (Optional)

| Complexity | Criteria | Strategy | |------------|----------|----------| | Simple | Single intent, clear target, < 5 files | Direct tools only (0 agents) | | Medium | Multi-file, cross-module | 1 Explore agent | | Complex | Multi-intent, cross-cutting | 2 agents parallel (hard max) |

Dispatch when: Grep returns > 10 files across modules, or question involves architecture / cross-cutting concerns. Default: direct tool calls.

Phase 4: Answer Synthesis

Combine all gathered context into a structured answer. Follow the output format below.

Read-Only Enforcement

This skill is strictly read-only. The following git commands are **prohibited**:

git add | git commit | git push | git pull | git reset | git sta
Read more
@sd0xdev
Ships withsd0x-dev-flow

Language: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Claude has discretion inside a closed, test-pinned anchor set.

194102 skills16 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
194
Star history of sd0xdev/sd0x-dev-flow on GitHub, a chart by star-history.com

Other skills on sd0x-dev-flow.

adr

adr

Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…

agentctl-setup

agentctl-setup

Install and set up the optional agentctl mod (task scope, refusal before execution, evidence that goes stale, model-free…

architecture

architecture

Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and…

best-practices

best-practices

Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) +…

bug-fix

bug-fix

Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev),…

bump-version

bump-version

Bump package and plugin version in sync. Updates package.json, .claude-plugin/plugin.json, and install-state manifest to the same…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about ask.

Which coding agents can use ask?
ask installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.