Skip to content
Back to skills

Harvest Questions

ASecurity

Read the project specifications and write one RAID register file per open question, risk, assumption, issue or dependency. Use when the user asks to harvest the open questions, collect the assumptions behind an estimate, fill the RAID register, import the spec-kit Clarifications sessions, or find what the specs leave undecided.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agentsgit

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add me-cedric/agent-compass --skill harvest-questions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harvest Questions?

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

Security grade badge for Harvest Questions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/me-cedric-harvest-questions/badge)](https://www.skillsdirectory.com/skills/me-cedric-harvest-questions)

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: harvest-questions
description: >
  Read the project specifications and write one RAID register file per open
  question, risk, assumption, issue or dependency. Use when the user asks to
  harvest the open questions, collect the assumptions behind an estimate, fill
  the RAID register, import the spec-kit Clarifications sessions, or find what
  the specs leave undecided.
risk_level: low
writes_files: true
requires_tools: []
license: MIT
metadata:
  version: "1"
---

# Harvest questions

Answer one question for the team: **what do the specifications leave undecided?**

Each finding becomes one file in the RAID register at
`docs/delivery/questions/`. The register holds all five RAID letters in one
shape and one lifecycle. The `kind` field says which letter an item is.

This skill produces questions. It does not produce answers.

## 1 — Read the specifications

Read every specification under `specs/`. When the host project puts its specs
somewhere else, use the host path.

Collect four types of finding:

1. A `[NEEDS CLARIFICATION]` marker.
2. An existing `## Clarifications` session.
3. Hedged prose: "TBD", "to be confirmed", "to be defined", "we assume that",
   "subject to". Match the language the specs are written in.
4. An unstated premise behind an estimate.

Set `kind: assumption` for an unstated premise. Assumptions pay the most,
because an estimate rests on them in silence and no other artifact records
them.

Never invent a finding. Quote the source line for each one.

## 2 — Read the register before you write

List `docs/delivery/questions/` first.

Read the `id`, the `status` and the `specRef` of every file present.

**Never overwrite a file whose `status` is `answered` or `folded`.** Skip it and
report the skip. This rule is absolute. A harvest that erases an answer
destroys the only record of a decision.

**Never overwrite any existing file.** Allocate a new id instead.

**Never delete a register file.** A deleted last file gives its id back to the
allocator, and two different questions then share one id in the git history and
in every ticket that names it. Set `status: folded` instead.

## 3 — Allocate the id

For each file, take the higher of two numbers: the `Q-NNN` in the filename stem,
and the `Q-NNN` in the frontmatter `id`. Both are read. A file named
`Q-020.md` with an empty `id:` key counts as 20.

Take the highest number over all files. Add one. Pad the number to three digits.

An empty register starts at `Q-001`.

Never derive an id from the question text. A reworded question keeps its id.

## 4 — Import an existing Clarifications session

spec-kit records answered questions inside the specification:

```markdown
## Clarifications

### Session 2026-09-03

- Q: Is the prorata calculated per day? → A: Per day.
```

Write one register file per `- Q: … → A: …` pair.

Skip a pair when a register file already holds the same question for the same
`specRef`. Report the skip. Without this check a second run of this skill
duplicates every clarification of the specification.

Set `status: answered` when the `A:` side has text. Set `status: open` when it
is empty. Put the `A:` text in the `## Answer` section.

Set `status: folded` only when the answer is already part of the requirements
of the same specification.

## 5 — Write the files

Read the target path immediately before each write. If it returns content, stop
and take the next id. Minutes pass between step 2 and this step, so the listing
of step 2 is stale and `Write` truncates without warning.

One file per finding, at `docs/delivery/questions/Q-NNN.md`:

```markdown
---
id: Q-014
kind: question
status: open
raisedAt: <YYYY-MM-DD>
raisedBy: assistant
owner:
specRef: specs/billing/spec.md#invoicing
taskRef:
ticket:
---
## Question

<the question, one sentence>

## Answer

## Consequence
```

Rules for the file:

- Emit all nine frontmatter keys. Keep an empty key bare.
- `kind` is one of `question`, `risk`, `assumption`, `issue`, `dependency`.
- `status` is one of `open`, `assigned`, `answered`, `folded`.
- `specRef` names the file and the heading the finding comes from.
- Use the heading `## Question` for every `kind`.
- Leave `## Answer` empty for a new finding.

## 6 — Limits

Write only inside `docs/delivery/questions/`. Never write a specification. The
user folds an answer back into a specification as a separate, reviewed change.

Stop at 20 findings per run. A register of 200 questions is noise.

Do not commit. The user commits.

## 7 — Report

Report three lists:

1. The ids you created, with the `kind` and the source of each one.
2. The ids you skipped, with the reason.
3. The findings you did not write, because the run reached 20.

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.