# Vestige Record Question

> Capture an open question to Vestige memory when an ambiguity can't be resolved now and needs a human, investigation, or later session. Fire on "TBD:", "open question:", "we should figure out…", "unclear whether…", "follow-up:", "to investigate:", "leaving X open", or when the user says "capture that as a question", "we'll come back to that", "park that for now", "good question — note it down". Questions surface in every `vestige context` pack until `vestige-forget`'d (typically when answered via `vestige-record-decision`). Default importance 0.5. Returns the new handle (`mem_<ULID>`).

- Skill: `conorluddy/vestige-record-question` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add conorluddy/vestige-record-question`
- Raw SKILL.md: https://api.skillmd.com/api/skills/conorluddy/vestige-record-question/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: conorluddy (https://skillmd.com/u/conorluddy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/conorluddy/vestige-record-question

---


# Record an open question

Capture an unresolved question / ambiguity / TBD so it isn't lost between sessions. Questions surface in the project context pack so future-you (or a future agent) can either answer them or rule them out.

## When to fire

- A real ambiguity surfaced — the answer matters but isn't available now.
- You're tempted to write "TODO" or "FIXME" but it's a *design* question, not a code task.
- The user said "let's come back to that" / "park it" / "we'll figure that out later".
- You wrote `## Open Questions` or `### TBD` in your own response.

Tie-breakers vs siblings:

- *Question vs note* — if the answer is known and you're recording the answer, that's a note (or a decision). Questions are *unknowns*.
- *Question vs source TODO* — if it's "write the function, fix the bug", leave a TODO comment in the source. Memories are for *project-level* ambiguities.

## How to invoke

```bash
vestige question add "<the question, framed as a question>" \
  --importance 0.5 \
  --json
```

- **body** (positional, required): write it as an actual question. "Should we keep V0 single-process or move to a daemon?" beats "Daemon mode TBD".
- **`--importance`** (optional, default 0.5): bump to 0.8+ for blockers; drop to 0.3 for "nice to know eventually".
- **`--source`** (optional): when the question was prompted by a specific file or piece of context, attach it.

## After invocation

The JSON envelope returns `{ "id": "mem_<ULID>", ... }`. Surface: *"Captured open question `mem_…`. It'll appear in `vestige context` until resolved."*

When the question gets answered later:

1. Use `vestige-record-decision` (or `-note`) to capture the answer.
2. Use `vestige-forget` on the original question's handle so the context pack stops surfacing it.

The journal still has the original question — `forget` is soft.

## Idempotence & dedup

Every call is a fresh write. Before capturing, dedup:

```bash
vestige recall "<key phrase>" --type question --json --limit 3
```

If the same question is already open, don't double-capture — the first one will already keep surfacing in the context pack. Only re-capture if you're rephrasing for clarity, in which case `vestige-forget` the old phrasing.

