agentleFS
DestrayonDestrayon/Connapse/.claude/skills/create-tickets/SKILL.md

create-tickets

Skill22 starsChanged 7 days agoMITView on GitHub

Batch-create GitHub issues from a brainstorming discussion. Decomposes ideas into properly-sized tickets with labels, milestones, and project board placement. Trigger when user says: create tickets, make tickets, turn ideas into issues, create issues from brainstorm, create issues from discussion, batch create issues.

5 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions5 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 5

    1. lawrips/skills★ 2same name
    2. nbirkner/digital-brain★ 0same name
    3. pahlevikun/levistack★ 0same name
    4. talgacapri/pm-os★ 0same name
    5. tomharris/engineer-agent★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository6 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. 0 are common, 13 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After a discussion about features, improvements, or bugs, this skill:

    line 12
  2. Distinctive:

    Read the full conversation history.

    line 21
  3. Distinctive:

    Not every layer applies to every feature.

    line 46
  4. Distinctive:

    No milestone: exploratory or unscheduled work

    line 81
  5. Distinctive:

    Use this exact template for every issue:

    line 85
  6. Distinctive:

    Before creating anything, present the full issue plan in a clear table format:

    line 110
  7. Distinctive:

    Ask the user to confirm, modify, or remove issues before proceeding.

    line 125
  8. Distinctive:

    If the user wants changes, apply them and present again.

    line 129
  9. Distinctive:

    After user approval, create issues in dependency order (parents before children).

    line 133
  10. Distinctive:

    Use HEREDOC for the body to preserve formatting

    line 152
  11. Very specific:

    Use --milestone only when a milestone was assigned

    line 154
  12. Distinctive:

    After creating each issue:

    line 157
  13. Distinctive:

    After both parent and child issues exist, link them using the GitHub API.

    line 165
  14. Distinctive:

    After all issues are created, present a summary:

    line 201

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create Tickets

Turn a brainstorming conversation into well-structured, properly-sized GitHub issues.

Overview

After a discussion about features, improvements, or bugs, this skill:

  1. Extracts every idea from the conversation
  2. Decomposes large features into PR-sized sub-issues
  3. Presents a structured plan for user review
  4. Batch-creates all approved issues with proper metadata
  5. Adds them to the project board

Step 1: Extract Ideas from Conversation

Read the full conversation history. For each distinct idea, feature, bug, or task mentioned, capture:

  • What it is (feature, bug fix, enhancement, refactor, docs, test, infrastructure)
  • Why it matters (the user's stated motivation)
  • Rough scope (how many files/areas it touches)

Group related ideas together. If the user discussed a large feature with multiple parts, keep those parts linked.

Step 2: Size and Decompose

Apply these sizing rules strictly:

SizeLines ChangedFilesTarget
XS< 501-2Ideal for config, typos, small fixes
S50-1502-4Target size for most issues
M150-3003-6Acceptable for focused features
L/XL300+6+MUST be decomposed — never create as single issue

For any idea estimated at L or larger, decompose by layer:

  1. Data layer: models, migrations, interfaces (S)
  2. Service layer: business logic implementing interfaces (S-M)
  3. Endpoint layer: API endpoints wired to service (S)
  4. UI layer: Blazor components consuming endpoints (S-M)
  5. Test layer: unit + integration tests (S-M)

Not every layer applies to every feature. Only create sub-issues for layers that are relevant.

Step 3: Structure Each Issue

For each issue, determine all metadata:

Title

  • Concise, actionable, imperative voice
  • Good: "Add multi-prefix OR-clause to cloud scope search"
  • Bad: "Cloud scope search improvements"

Labels (one type, one or more area labels, and a size label)

Type labels (exactly one): type: feature, type: bug, type: enhancement, type: refactor, type: docs, type: test, type: infrastructure

Area labels (one or more): area: core, area: web-ui, area: api, area: cli, area: mcp, area: ingestion, area: search, area: database, area: storage, area: identity, area: agents

Size labels (exactly one): size/XS, size/S, size/M, size/L, size/XL

Do NOT add needs-triage — issues created by this skill are fully triaged at creation time.

Priority

  • P0-Critical: Blocking users or breaking core functionality
  • P1-High: Important for next release, significant user impact
  • P2-Medium: Planned improvement, moderate impact
  • P3-Low: Nice to have, minor improvement

Milestone

Assign based on scope and dependencies:

  • v0.3.1: Polish, tech debt, CI improvements
  • v0.4.0: Cross-container search, live events, local connector ACLs
  • v0.5.0: New connectors (GitHub, Notion, Slack) and embedding providers
  • No milestone: exploratory or unscheduled work

Issue Body Format

Use this exact template for every issue:

## Description
[1-3 sentences: what this does and why it matters]

## Acceptance Criteria
- [ ] [Specific, testable criterion]
- [ ] [Another criterion]
- [ ] Tests pass (`dotnet test`)

## Implementation Notes
- Key file: `src/Connapse.[Project]/[relevant path]`
- Interface: `[relevant interface if applicable]`
- Pattern: [follow existing pattern in X if applicable]

## Size Estimate
[XS/S/M] — [one-line justification, e.g. "~80 lines across 2 files"]

## Related
[Parent: #N | Part of: #N | Depends on: #N | none]

Step 4: Present for Review

Before creating anything, present the full issue plan in a clear table format:

## Proposed Issues

### [Milestone or Group Name]

| # | Title | Type | Area | Size | Priority | Parent |
|---|-------|------|------|------|----------|--------|
| 1 | Title here | feature | storage | S | P2 | — |
| 2 | Title here | feature | storage | S | P2 | #1 |

Then show the full body for each issue so the user can review descriptions and acceptance criteria.

Ask the user to confirm, modify, or remove issues before proceeding. Use AskUserQuestion:

  • "Create all N issues as shown?"
  • Options: "Create all", "Let me make changes first", "Skip for now"

If the user wants changes, apply them and present again.

Step 5: Create Issues

After user approval, create issues in dependency order (parents before children).

For each issue, run:

gh issue create \
  --repo Destrayon/Connapse \
  --title "TITLE" \
  --body "$(cat <<'ISSUE_EOF'
BODY_CONTENT
ISSUE_EOF
)" \
  --label "type: feature" \
  --label "area: storage" \
  --label "size/S" \
  --milestone "v0.4.0"

Important gh issue create rules:

  • Use HEREDOC for the body to preserve formatting
  • Each --label flag takes one label (repeat the flag for multiple labels)
  • Use --milestone only when a milestone was assigned
  • Capture the issue URL from the output for project board and sub-issue linking

After creating each issue:

gh project item-add 3 --owner Destrayon --url ISSUE_URL

Sub-issue Linking

After both parent and child issues exist, link them using the GitHub API. First get the parent issue's node ID:

PARENT_NODE_ID=$(gh api graphql -f query='
  query {
    repository(owner: "Destrayon", name: "Connapse") {
      issue(number: PARENT_NUMBER) { id }
    }
  }' -q '.data.repository.issue.id')

Then get the child issue's node ID and add it as a sub-issue:

CHILD_NODE_ID=$(gh api graphql -f query='
  query {
    repository(owner: "Destrayon", name: "Connapse") {
      issue(number: CHILD_NUMBER) { id }
    }
  }' -q '.data.repository.issue.id')

gh api graphql -f query='
  mutation {
    addSubIssue(input: {
      issueId: "'"$PARENT_NODE_ID"'"
      subIssueId: "'"$CHILD_NODE_ID"'"
    }) {
      issue { id }
      subIssue { id }
    }
  }'

Step 6: Summary

After all issues are created, present a summary:

## Created Issues

| Issue | Title | Labels | Milestone |
|-------|-------|--------|-----------|
| #18 | Add multi-prefix OR-clause | type: enhancement, area: search | v0.3.1 |
| #19 | ... | ... | ... |

All issues added to project board: https://github.com/users/Destrayon/projects/3

Important Rules

  1. NEVER create issues without user approval — always present the plan first
  2. NEVER create L/XL issues — always decompose into S/M sub-issues
  3. Every issue must have acceptance criteria — vague issues lead to vague PRs
  4. One concern per issue — don't mix refactoring with features
  5. Use TodoWrite to track progress through the batch creation process
  6. If gh commands fail, report the error and ask if the user wants to retry or skip
  7. Reference CLAUDE.md for architecture context when writing implementation notes

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.