Skip to content
Back to skills

Explain

ASecurity

Telegraph → prose. Expand one SPEC.md citation into plain English. Read-only; inverse of telegraph skill (telegraph encoder). Triggers: "/sdd:explain", "what does §V.<n> mean", "decompress this", "explain in prose", "I don't read telegraph". Writes → /sdd:spec.

  • 2 stars
  • 0 votes
  • 1 copy
  • 2 views
  • Added September 25, 2026
developmentpythongobashapi

Works with

  • terminal
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add kborovik/spec-driven-dev --skill explain --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Explain?

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

Security grade badge for Explain
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kborovik-explain-spec-driven-dev/badge)](https://www.skillsdirectory.com/skills/kborovik-explain-spec-driven-dev)

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: explain
description: |
  Telegraph → prose. Expand one SPEC.md citation into plain English. Read-only;
  inverse of telegraph skill (telegraph encoder). Triggers: "/sdd:explain",
  "what does §V.<n> mean", "decompress this", "explain in prose", "I don't
  read telegraph". Writes → /sdd:spec.
allowed-tools: Read, Bash(python3 ${CLAUDE_SKILL_DIR}/../../scripts/check-mechanical.py *)
disallowed-tools: Edit, Write
argument-hint: "[§-cite | --next]"
model: sonnet
---

# explain — decompress spec into prose

Inverse of `telegraph` skill.
Human-facing.
Reads SPEC.md, expands one citation → plain English w/ cited context.
Zero writes.

## LOAD

1. Spec overview via `python3 ${CLAUDE_SKILL_DIR}/../../scripts/check-mechanical.py emit-overview` — §G/§C/§I/§T/§B bodies + §V id list; not whole-file Read per single-load invariant (exact script-path grant pin via `${CLAUDE_SKILL_DIR}` frontmatter substitution per tooling-preference invariant).
   Script error "SPEC.md not found" → "no spec, nothing to explain."
   Bail.
2. Parse `$ARGUMENTS`:
   - `§T.n` / `§V.n` / `§B.n` / `§I.<key>` → that row
   - `§G` / `§C` → full section
   - `--next` or empty → lowest-numbered §T row w/ status `.`
3. `.spec/spec-renumber-map.json` exists (written by reorganize skill per §V renumber permission) → on `§V.<n>` arg, walk `old:V<n> → new:V<m>` chain newest-first to end, resolve result against current SPEC.md.
   Map read, never mutated (read-only-diagnostic invariant).
   Absent → arg resolves directly.
4. Citation absent → list valid ids in target section.
   Bail.
5. §V bodies (target row + cited siblings) via `python3 ${CLAUDE_SKILL_DIR}/../../scripts/check-mechanical.py emit-v-slices --dirty V<n>,...`; stub row `→ .spec/check-extras.md §V<n>` → Read that § there.

## EXPAND

1. Quote raw telegraph line(s) verbatim in code block.
2. Restate in plain English — full sentences, no telegraph symbols, no fragments.
3. Pull cited siblings:
   - §T → expand every §V and §I it cites.
   - §V → list §T tasks citing it, §B bugs referencing it.
   - §B → expand broken §V and fixing §T.
   - §I → name constraining §V invariants.
   - §G / §C → no cross-cites; prose only.
4. Close w/ one line: what reader should now understand.

## OUTPUT SHAPE

```
## §T.<n> — add auth middleware

> T<n>|.|add auth mw|V<n>,I.api

In plain English: this task adds an authentication middleware that runs before
every request reaches its handler.

Cited invariants:
- §V.<n> — every request must pass an auth check before the handler runs.

Cited interfaces:
- §I.api — POST /x returns 200 with {id:string}; the middleware must not
  change this shape.

Status: not started (`.`).

Bottom line: implement a middleware that enforces §V.<n> without altering §I.api.

## Hint

§T.<n> is pending — typical next step is item 1 to start work, or item 2 if you want to read the cited invariant first.

## Next

1. /sdd:build §T.<n> — start implementation
2. /sdd:explain §V.<n> — read the cited invariant in prose
```

## MECHANIZE — script-candidate scan

Recipe end → before the `## Next` block, scan this run for a mechanization candidate.
Candidate = any of:

- ≥ 2 same-shape deterministic calls this run (identical command modulo args)
- LLM-side join / sort / count / dedup over script-emittable data
- multi-step parse collapsible to one script emit mode
- fresh regex paraphrase of an existing mechanical rule (mechanical-realization invariant class)

Hit → emit exactly one `## Next` item naming the observed pattern + proposed script mode; none → no item.
Never self-implement the mechanization mid-run (recipe-step-no-dispatch + write-ownership invariants).
Route by cwd:

- dev repo (this plugin) → /sdd:spec → new §T row
- consumer repo, plugin-target → monitor dispatched `mechanization-candidate` path (monitor-protocol invariant)
- consumer repo-local → consumer /sdd:spec → `.spec/check-extras` row

## OUTPUT — "Next" block

Heading `## Next`; 1–5 atomic items (one sentence each, no `Reply` prefix); positional dispatch (`run <int>` or `run /<plugin>:<cmd> [args]`).
Optional `## Hint` (≤ 3 lines) precedes when item selection needs hidden state (closed-vs-pending row implications, citation-form edge cases).
Read-only → items are slash-cmd follow-ups: `/sdd:build §T.n` only for `.` rows; closed `x` rows → `/sdd:explain --next` or `/sdd:check`.

Closed §T row (terminal state) — tail of output:

```
Status: complete (`x`).

Bottom line: §V.<n> is enforced by the middleware shipped under §T.<n>.

## Hint

Closed rows are historical. `run 1` skips to live work; `run 2` audits whether the closed task drifted out of code.

## Next

1. /sdd:explain --next — read the next pending §T row
2. /sdd:check — audit whether the closed task still holds
```

"Bottom line" stays — summarizes citation, never directs action.
Action only in Next; pre-action context in optional Hint.

## NON-GOALS

- Zero writes.
  No SPEC.md edits, no code edits.
- No code reads.
  Spec-only (spec-vs-code → `/sdd:check`).
- No telegraph in output.
  Prose is the whole point.
- One id per call.
  Loop for multiple.

Files in this skill

  • SKILL.md5.1 KB
  • evals/evals.json1.2 KB

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.