Skip to content
Back to skills

Answer Open Question With Recommendation

ASecurity

Record an open question's embedded recommendation as that question's answer in the current milestone's requirements.md.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 2, 2026
ai-agentsgogit

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add uHappyLogic/cairn --skill answer-open-question-with-recommendation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Answer Open Question With Recommendation?

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

Security grade badge for Answer Open Question With Recommendation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/uhappylogic-answer-open-question-with-recommendation-0828f608/badge)](https://www.skillsdirectory.com/skills/uhappylogic-answer-open-question-with-recommendation-0828f608)

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: answer-open-question-with-recommendation
description: Record an open question's embedded recommendation as that question's answer in the current milestone's requirements.md.
---

# answer-open-question-with-recommendation

Records one open question's **embedded recommendation** as its answer **inline, in the
current conversation** — never in a subagent — so the recording reasoning (which block was
resolved, what decision was folded in, what cascaded) stays in context for follow-up.

To record **every** recommendation-bearing question unattended instead, use
`/answer-all-open-questions-with-recommendation`.

## Invocation

```
/answer-open-question-with-recommendation <Short Title>
```

`<Short Title>` must match (case-insensitive, against the block's `id`) an existing
`<open-question>` block in `<MILESTONE_DIR>/open_questions.xml` that the
`/recommend-all-open-questions` sweep has already annotated with a `<recommendation>`
element. The skill resolves the current milestone itself, so nothing needs to be looked up
first.

## Workflow

### 1. Find the current milestone

Follow `${PLUGIN_ROOT}/shared/get-current-milestone.md` to resolve `<MILESTONE_DIR>`. Never
use a hardcoded path. Hold `<MILESTONE_DIR>` — you need it for the delegated recording and
the commit.

### 2. Run the shared lift-then-delegate procedure inline

Read and follow the shared procedure at
`${PLUGIN_ROOT}/shared/answer-with-recommendation-procedure.md`, carrying out every step
**yourself, in this conversation**. Pass it the `<MILESTONE_DIR>` from step 1 and the
`<Short Title>` from the invocation as its `MILESTONE_DIR` and `SHORT TITLE` inputs. That
procedure owns the lift → delegate work, composing over
`${PLUGIN_ROOT}/shared/answer-procedure.md`, which owns the
locate/analyse/fold/remove/cascade recording; every read and write of `open_questions.xml`
in either is a call to the plugin's open-question tool.

Hold the one line the shared procedure's `lift` call prints, "`<option>` — `<rationale>`" —
it is the commit body below.

**Clean-stop-and-point:** if the shared procedure's `lift` call fails — the tool's `Error:`
line says no block has that id, or that the matched block carries no `<recommendation>`
element — it stops without changing anything. Relay that `Error:` line to the user and point
them to run `/recommend-all-open-questions` first (so the question gets an embedded
recommendation), or to record a literal answer via `/answer-open-question <Short Title>. <answer text>`.
Commit nothing — go no further.

### 3. Commit the recommendation answer

Read and follow the shared commit procedure at
`${PLUGIN_ROOT}/shared/commit-procedure.md`, carrying out its steps yourself. Supply it these three inputs, using the
`<MILESTONE_DIR>` from step 1:

- **PATHS** — this skill's own edits: `<MILESTONE_DIR>/open_questions.xml` and
  `<MILESTONE_DIR>/requirements.md`.
- **SUBJECT** — exactly `Recommendation-answer: <Short Title>` (the answered question's
  handle). This distinct subject marks an accepted recommendation: when
  `/capture-milestone-principle-updates` walks a milestone's answer commits across all three
  subjects, it reads this one as evidence about principles already in the store only, never as
  a source of new principles — those come from the `Manual-answer:` and `Alternative-answer:`
  override signals.
- **BODY** — the lifted recommendation: the "`<option>` — `<rationale>`" line the `lift` call
  printed in step 2, verbatim — the answer that was recorded.

That procedure owns the path-scoped staging, the dirty-own-path no-op guard, and the commit.
Its no-op guard also covers this skill's clean-stop case: if step 2 stopped on the `lift`
call's `Error:` line, neither file changed, so nothing is staged and nothing is committed.

### 4. Report findings

On the success path — the recommendation was recorded and committed — print exactly one fixed
terse status line, carrying no identifier (no Short Title, no commit subject):

```
Answer recorded.
```

Do **not** re-narrate which question resolved or how the documents changed (the removed block,
the decision folded into `## Decisions`, the cascading resolutions). Alongside the terse line
keep only the one piece of genuinely git-absent advisory output: any new open questions the
recorded decision may have introduced — surface these but do **not** add them to the document
without user confirmation.

**No-op case:** if step 3's dirty-own-path guard fired — nothing was committed because
neither file changed (step 2's clean stop on the `lift` call's `Error:` line) — do **not**
print the terse success line. Instead print a single line stating that nothing was recorded
and briefly why.

Then stay available: the user may now ask follow-up questions or request adjustments, with
the full recording context still in hand.

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.