Skip to content
Back to skills

Bobby Ticket Intake

ASecurity

Ticket Intake Skill: Converts a pasted PM/JIRA spec into a fully populated Bobby ticket. MANDATORY TRIGGERS: intake, ticket intake, create ticket from spec, parse ticket, import ticket, PM spec.

  • 6 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added October 26, 2026
toolsbash

Works with

  • cli

Security analysis

A100/100

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

Scanned October 26, 2026

npx -y skills add ccevans/bobbycode --skill bobby-ticket-intake --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bobby Ticket Intake?

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

Security grade badge for Bobby Ticket Intake
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ccevans-bobby-ticket-intake/badge)](https://www.skillsdirectory.com/skills/ccevans-bobby-ticket-intake)

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: bobby-ticket-intake
description: "Ticket Intake Skill: Converts a pasted PM/JIRA spec into a fully populated Bobby ticket. MANDATORY TRIGGERS: intake, ticket intake, create ticket from spec, parse ticket, import ticket, PM spec."
argument-hint: "(paste the PM spec after the command)"
---

# Bobby Ticket Intake Skill

> Turn a PM spec into a Bobby ticket with real content in one pass. No placeholders. Workflow agents should be able to start from the ticket immediately.

## When to Use

The user pastes a JIRA ticket body, a spec doc, or any PM-written description and wants it stored as a Bobby ticket.

## Steps

### 1. Parse the pasted content

Extract the following fields from the pasted spec:

| Field | Where to look |
|-------|--------------|
| `id` | Issue key from the ticket system (e.g. `TKT-001`, `PROJ-123`) — often in the title or URL. Omit if not present. |
| `title` | Summary line or first heading |
| `type` | `epic` if the spec spans multiple capabilities or explicitly says "Epic"; `bug` if it describes broken behaviour; `task` for infra/config; `feature` otherwise |
| `priority` | Explicit priority field, or infer: "critical" / "blocker" → `critical`, "high" / "must" → `high`, "nice to have" / "low" → `low`, default → `medium` |
| `area` | Match to a valid area from `.bobbyrc.yml` — read that file before inferring |
| `description` | Full body text cleaned to markdown. Preserve section headings and code examples. |
| `acceptance_criteria` | Checklist-style bullets, "Acceptance Criteria", "Definition of Done", or "AC" sections. Convert to `- [ ] …` format. |
| `open_questions` | Sections labelled "Open Questions", "TBD", "To Discuss", or any items marked with `??` or `[TBD]`. |

### 2. Read valid areas

Before inferring `area`, read `.bobbyrc.yml` and use its `areas` list. Do not hardcode area names.

### 3. Clarify before creating

If `area` or `priority` are genuinely ambiguous after reading the spec, ask the user. Do not guess at domain ownership — a wrong area routes the ticket to the wrong service.

You do not need to ask about anything else (title, type, description — extract and proceed).

### 4. Create the ticket via Bobby CLI

```bash
bobby ticket create -t "<title>" --type <type> -p <priority> --area <area>
# use --epic flag for epics
```

This claims the directory and ID atomically. Do not create the directory manually.

### 5. Overwrite ticket.md with real content

After `bobby ticket create`, the ticket.md contains placeholder text. Replace the entire body with real content:

```markdown
## Description

<full description from spec — real prose, not a placeholder>

## Acceptance Criteria

- [ ] <real AC 1>
- [ ] <real AC 2>
…

## Steps to Reproduce        ← bugs only, omit for all other types

1. <step>
2. <step>
3. Expected: … / Actual: …

## Open Questions

- <open question or TBD from spec>   ← "None yet." if spec has none

## Comments
- [<today>] system: Ticket created via bobby-ticket-intake from PM spec.
```

### 6. Add epic planning note (epics only)

If `type === epic`, append a comment:

```
- [<today>] system: Epic — run `bobby run plan <id>` to break into child tickets.
```

### 7. Confirm to the user

Output one line:
```
Created <id>: "<title>" [<type> · <priority> · <area>] → .bobby/tickets/<dirname>/ticket.md
```

## Rules

- **Never leave placeholder text** — `[What is this ticket about?]`, `[First criterion]`, `_None yet._` (unless there are genuinely no open questions) are failures.
- **Preserve PM language** — don't paraphrase the description. Keep the PM's wording so agents have the authoritative spec.
- **Bugs get Steps to Reproduce** — all other types do not.
- **Do not move the ticket to planning** — leave it in `backlog`. The engineer decides when to advance it.

## Anti-Patterns

<!-- bobby learn bobby-ticket-intake adds entries below this line -->

---

## Project overrides

If `.claude/skills/bobby-ticket-intake/SKILL.local.md` exists, read it and follow it. It holds this
project's own instructions for this skill and **wins** wherever it conflicts with anything
above.

`SKILL.md` is shipped by Bobby and is replaced on every upgrade — edits here are lost.
`SKILL.local.md` is yours and is never overwritten.

Files in this skill

  • SKILL.md4.2 KB
  • learnings.local.md505 B
  • learnings.md298 B

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.