Skip to content
Back to skills

Ask

ASecurity

Use when the user asks how the product behaves or why (business rule, use case, decision, handler guarantee), or before changing a handler outside the kit's flow. Answers from the knowledge base via `cctoolkit ask`, each fact cited by id.

  • 7 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 19, 2026
code-qualitygo

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add pierrebelin/claude-code-toolkit --skill ask --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ask?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ask
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pierrebelin-ask/badge)](https://www.skillsdirectory.com/skills/pierrebelin-ask)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ask
description: "Use when the user asks how the product behaves or why (business rule, use case, decision, handler guarantee), or before changing a handler outside the kit's flow. Answers from the knowledge base via `cctoolkit ask`, each fact cited by id."
argument-hint: "<question> | <id> | <Handler>"
---

# Ask the knowledge base

Answers from the knowledge base (`knowledge.root` of `.claude/kit.config.json`). Formats → `skills/knowledge-sync/references/knowledge-format.md`, opened only when an answer turns on one.

$ARGUMENTS

## Levels

Cheapest first; stop at the one that answers.

0. **Map** — `<root>/INDEX.md`, read whole: the contexts, their prefix and summary. Skipped when the question names its context.
1. **Context** — `cctoolkit ask --context <C>`: its use cases and rules, one line each; `<root>/<C>/OVERVIEW.md` for its vocabulary, lifecycle and neighbours.
2. **Objects** — `cctoolkit ask "<question>" [--context <C>] [--kind usecase|rule|decision|adr]`: ranked cards. Then `cctoolkit ask --id <id>[,<id>]` for the one to three that answer, whole. An id as the argument → `--id` at once; a handler name → `--handler <Name>`; how something changed → `--history [--context <C>] [--id <id>]`.
3. **Source** — the code an object names, or the `path:line` of its observed line: a bounded `Read` around that line. Only when the base leaves the question open.

Questions that do not depend on each other go in one message.

## Reading the output

- `shown N of M`, N below M: the budget cut — narrow with `--context`, `--kind` or `--id`.
- `shown 0 of 0`: rephrase once with the other vocabulary — the base is written in `language.docs`, the code in its own names (`archive` / `ArchiveProductCommandHandler`). Still nothing: the base does not cover it; say so, offer to look in the code.
- An object marked `observed <level>` is deduced from the code, not validated: say so beside the fact, with its source.
- Exit 1 (no base): say so, propose `/cctoolkit:knowledge-sync`.

Never `Read` a context's `rules.md`, `decisions.md` or `HISTORY.md` whole: `read-bounds` refuses it, `ask --id` gives the object.

## Answer

The answer first, in the user's language; each fact followed by its id (`CAT-RM-003`), an `observed` one by its level and source. A rule, its outcome in code (`ProductNotPublishedException`). Several contexts involved: one line per context.

The base is never written here. The code contradicts an object, or an object is missing → say it, with `path:line`, and propose `/cctoolkit:knowledge-sync <Context>`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.