Skip to content
Back to skills

Embed

ASecurity

Draft an idea ticket's PM description in the background, leaving every gap as an inline [TBA: …] instead of guessing

  • 67 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 23, 2026
ai-agentsgobash

Security analysis

A100/100

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

Scanned September 23, 2026

npx -y skills add gethuman-sh/human --skill embed --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Embed?

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

Security grade badge for Embed
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethuman-sh-embed-96b6296f/badge)](https://www.skillsdirectory.com/skills/gethuman-sh-embed-96b6296f)

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: human-idea-draft
description: Draft an idea ticket's PM description in the background, leaving every gap as an inline [TBA: …] instead of guessing
argument-hint: <idea-key> [--recreate]
---

# Overview

Point this skill at a freshly captured idea and it writes that ticket's PM description while the idea sits in the Ideas column — so promotion later opens on a real draft instead of a blank page. With `--recreate` it is pointed at a ticket that has already been promoted, whose description a person asked to have written again from scratch; the work is identical, only the trigger differs. It runs **once, in a single pass**, reads the repository for evidence, and never sub-launches other agents.

This skill runs **without user interaction**. Do NOT use `AskUserQuestion` at any step — there is nobody to ask, and that is precisely why the unanswerable parts stay on the page as questions rather than becoming answers.

The artifact is the **description**. The title is the user's own capture phrase and is never touched.

`$KEY` below is the idea key passed as the argument.

When the arguments carry `--recreate`, a person asked for this rewrite from the board's Product-Backlog card menu. Pass `--recreate` to **every** `human idea draft` call in this run. Nothing else about the run changes: the same rules produce the same `[TBA: …]`-carrying draft from the same evidence.

## The rules (these govern every sentence you write)

- **Never invent.** No persona, metric, user count, deadline, dependency or constraint outside a `[TBA: …]`. A confident-sounding description whose invented detail is indistinguishable from a real one is worse than a blank page: the user has to detect the fabrication before deleting it.
- **A gap stays where it belongs.** Write `[TBA: <the question>]` inline, in the sentence the assumption would have gone into. No "Open Questions" section, no footnotes, no summary of the unknown at the end — a gap collected elsewhere is a gap the reader has to re-attach to the sentence it came from.
- **The question is the payload.** `[TBA: which team is this for?]`, not `[TBA: unclear]`. A marker that does not ask anything cannot be answered.
- **The repository is evidence; the user is not available.** Read the code for what exists today and state that. Anything about intent, audience, priority or business value is a `[TBA: …]`.
- **The title is not yours.** Never propose one, never edit one.
- **Most of a one-line idea is `[TBA:]`, and that is the correct output.** A draft that is mostly questions has done its job; a draft that is mostly answers it could not have known has failed.

## Procedure

### 1. Announce the run

```bash
human marker post $KEY idea-draft-started
```

### 2. Ask whether your work is wanted at all

```bash
human idea draft $KEY --check   # add --recreate when the run carries it
```

Read the JSON `decision`:

- `stand-down` — a human owns this description. Record the stand-down and stop; write nothing:
  ```bash
  human idea draft $KEY --stand-down
  ```
- `current` — the draft is already current and its input has not changed. Record and stop; write nothing.
- `write` — continue.

Under `--recreate` the check returns `write` by construction — the user's ask outranks the guard. The `stand-down` and `current` branches cannot be reached there and must not be second-guessed, and `--stand-down` is never called in a recreate run: the command rejects the combination.

### 3. Read the ticket

```bash
human get $KEY
```

Use the per-ticket detail fetch — a board card and a list fetch may carry no description at all on some trackers, where an omitted description is indistinguishable from an empty one.

### 4. Read the repository for what exists today

```bash
human codenav search "<the surface the idea names>"
human search "<subject terms>" --json --limit 20
```

What the code already does is evidence you may state. What a search did not find is not evidence that nothing exists — say so as a `[TBA: …]` rather than as a fact.

### 5. Compose the description

Write the full text to a file, in this shape:

- **Problem Statement** — what is wrong or missing today, grounded in the repository where possible.
- **User Story** — as a `[TBA: which user?]`, I want …, so that ….
- **Acceptance Criteria** — checkboxes, each one checkable; every criterion resting on an unknown carries its `[TBA: …]` in the criterion itself.
- **Scope** — what is in, what is deliberately out.

Every point the evidence does not support carries its `[TBA: …]` in place.

### 6. Write it through the guard

```bash
human idea draft $KEY --description-file <file>   # add --recreate when the run carries it
```

Read the JSON back:

- `written: false` — a human wrote to the ticket in the meantime. That is a correct outcome, not a failure. Record it and stop.
- `roundtrip_ok: false` — the tracker did not store the `[TBA:` text verbatim. Say so in the state record; the draft is written either way.

### 7. Record the outcome

```bash
human state set <IDEA_KEY> stage.idea-draft --json --body-file - <<'EOF'
{"exit":"done",
 "summary":"one line — what was drafted, or why nothing was",
 "evidence":"the decision and the TBA count the command reported",
 "next":"what a person would do with this"}
EOF
```

## Autonomy and boundaries

- No human gates — draft and record.
- Never edit the title.
- Never add or remove a label; never close, link or transition the ticket.
- Never post a marker other than the two named here.
- The description write goes through `human idea draft` alone — never `human issue edit`, never a direct tracker call. The guard that protects the user's own words lives in that command, and a write that goes around it goes around the guard.

<!-- human:include fsm -->

<!-- human:include exit-contract -->

Files in this skill

  • brainstorm-codebase-agent.md3.3 KB
  • brainstorm-opportunities-agent.md3.7 KB
  • brainstorm-recon-agent.md3.3 KB
  • brainstorm-trajectory-agent.md3.4 KB
  • brainstorm-triage-agent.md4.5 KB
  • codenav-skill.md2.6 KB
  • features-recon-agent.md4.8 KB
  • features-synthesis-agent.md10.2 KB
  • findbugs-api-agent.md5.8 KB
  • findbugs-concurrency-agent.md5.6 KB
  • findbugs-errors-agent.md5 KB
  • findbugs-logic-agent.md4.8 KB
  • findbugs-recon-agent.md4.6 KB
  • findbugs-triage-agent.md4.7 KB
  • gardening-complexity-agent.md5.8 KB
  • gardening-duplication-agent.md5.2 KB
  • gardening-hygiene-agent.md6.6 KB
  • gardening-structure-agent.md5.3 KB
  • gardening-survey-agent.md7.1 KB
  • gardening-triage-agent.md8.6 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.