agentleFS
Cloud-PeekCloud-Peek/agent-skills/skills/plan-to-issue/SKILL.md

plan-to-issue

Skill1 starsChanged 4 months agoApache-2.0View on GitHub

Use when the user wants to turn the just-approved plan from the current conversation into a self-contained GitHub issue that another agent can implement cold.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

21 rules. About 0 are common, 18 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈18

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the most recently approved plan in the conversation as the source of truth, including any user refinements made during approval.

    line 14
  2. Distinctive:

    If no agreed plan is available, stop and ask the user to point to it.

    line 16
  3. Distinctive:

    If approval included changes such as "do it but skip the migration", fold those into the issue so it reflects the final agreement.

    line 18
  4. Distinctive:

    Verify first. If any check fails, stop and report what is missing.

    line 22
  5. Very specific:

    Before drafting, resolve implicit details against the actual codebase.

    line 39
  6. Distinctive:

    If filling these gaps exposes a real ambiguity that would make the issue vague or likely wrong, stop and ask before filing.

    line 49
  7. Distinctive:

    Use a conventional-commits prefix only if recent merged PRs or issues use one.

    line 57
  8. Distinctive:

    Check recent title style when needed:

    line 59
  9. Very specific:

    Use this body template. Omit optional sections rather than padding them, but always include Context, Files to change, Acceptance criteria, …

    line 65
  10. Distinctive:

    Write for an agent with no chat history.

    line 110
  11. Distinctive:

    Do not invent scope the approved plan did not include.

    line 112
  12. Distinctive:

    Do not silently drop plan steps.

    line 113
  13. Distinctive:

    Do not paste credentials or secrets.

    line 114
  14. Distinctive:

    Only use labels that already exist:

    line 118
  15. Distinctive:

    If the user provides a comma-separated label list, apply only labels that exist and tell the user about skipped labels.

    line 124
  16. Very specific:

    Do not run gh issue create until the user confirms.

    line 132
  17. Distinctive:

    After confirmation, write the approved body to a temp file and create the issue:

    line 136
  18. Distinctive:

    Never implement the plan in this skill.

    line 165
  19. Distinctive:

    Never file a hollow issue when the plan is too vague.

    line 166
  20. Distinctive:

    Never add acceptance criteria that the plan does not imply.

    line 167
  21. Distinctive:

    Never include secrets, credentials, or real tokens in the issue body.

    line 168

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Plan To Issue

Turn the most recently approved plan in this conversation into a GitHub issue that another agent can complete without access to the chat. Do not implement the plan. Capture it faithfully as an issue, show the draft to the user, and create the issue only after confirmation.

The downstream agent will likely use the implement-issue skill against the issue URL, so the issue body must include explicit context, acceptance criteria, files or modules to touch, conventions, tests, and verification steps.

Locate The Plan

Use the most recently approved plan in the conversation as the source of truth, including any user refinements made during approval.

If no agreed plan is available, stop and ask the user to point to it. Do not invent a plan.

If approval included changes such as "do it but skip the migration", fold those into the issue so it reflects the final agreement.

Prerequisites

Verify first. If any check fails, stop and report what is missing.

git rev-parse --is-inside-work-tree
gh --version
gh auth status

Resolve the repo:

gh repo view --json owner,name,defaultBranchRef \
  --jq '{owner: .owner.login, name: .name, base: .defaultBranchRef.name}'

Fill Plan Gaps

Before drafting, resolve implicit details against the actual codebase. Read files, search with rg, and avoid guessing.

Resolve:

  • Concrete file paths for loosely named modules or features.
  • Relevant project instructions, such as root AGENTS.md or CLAUDE.md and nested instruction files under touched directories.
  • Actual validation scripts from package.json.
  • Tests required by the repo rules, including where to add or extend unit tests and any coverage expectations.
  • Genuine open questions that the plan did not settle.

If filling these gaps exposes a real ambiguity that would make the issue vague or likely wrong, stop and ask before filing.

Draft The Issue

Title rules:

  • Imperative, sentence case, no trailing period.
  • Aim for about 50 characters; keep under about 72.
  • Use a conventional-commits prefix only if recent merged PRs or issues use one.

Check recent title style when needed:

gh pr list --state merged --limit 10 --json title --jq '.[].title'

Use this body template. Omit optional sections rather than padding them, but always include Context, Files to change, Acceptance criteria, and Verification.

## Context

<2-4 sentences explaining the problem and goal for an agent with no chat history.>

## Approach

<The agreed plan as concrete ordered steps. Be specific about what changes and in what order.>

## Files to change

- `path/to/file.ts` - <what changes here>
- `path/to/other.ts` - <what changes here>
- <new files to create, with intended paths>

## Acceptance criteria

- [ ] <Observable, checkable outcome 1>
- [ ] <Observable, checkable outcome 2>
- [ ] Unit tests added or updated for the new code; touched package stays at or above required coverage.
- [ ] Required formatting, linting, typechecking, and tests pass.

## Tests required

- <Which test files to add or extend, and the key happy path, validation failure, error, and boundary cases.>

## Conventions

- Follow root `AGENTS.md` or `CLAUDE.md` and any nested instruction files under touched directories.
- Validation commands: `<commands from package.json and project instructions>`.
- <Any area-specific rules, such as tenant RLS, shared UI components, config conventions, or integration patterns.>

## Verification

- <Concrete commands, scenarios, UI flows, or API checks that prove the work.>

## Open questions

<Optional. Only include unresolved decisions the implementer must answer or ask about.>

Drafting rules:

  • Write for an agent with no chat history. Never rely on "as discussed".
  • Name real symbols, files, commands, packages, and tests where possible.
  • Do not invent scope the approved plan did not include.
  • Do not silently drop plan steps.
  • Do not paste credentials or secrets. If env vars are needed, name them and note where examples should be documented.

Labels

Only use labels that already exist:

gh label list --limit 200 --json name --jq '.[].name'

If the user provides a comma-separated label list, apply only labels that exist and tell the user about skipped labels.

Otherwise choose sensible area labels by mapping files to the existing label list, such as API, frontend, database, CI, or docs labels. Skip labels that do not exist. Never create labels.

Confirm Before Creating

Print the proposed title, full body, and labels in chat. Ask whether to file as-is, edit the issue, or change labels.

Do not run gh issue create until the user confirms.

Create

After confirmation, write the approved body to a temp file and create the issue:

BODY_FILE=$(mktemp)
cat > "$BODY_FILE" <<'EOF'
<approved body>
EOF

gh issue create \
  --title "<approved title>" \
  --body-file "$BODY_FILE" \
  --label "<confirmed-label-1>" \
  --label "<confirmed-label-2>"

rm -f "$BODY_FILE"

Pass one --label flag per confirmed label. If gh rejects a missing label, drop that label and retry rather than creating labels.

Hand Back

Print the new issue URL and a one-line summary. Remind the user that another agent can implement it with:

/implement-issue <issue-url>

Guardrails

  • Never implement the plan in this skill.
  • Never file a hollow issue when the plan is too vague.
  • Never add acceptance criteria that the plan does not imply.
  • Never include secrets, credentials, or real tokens in the issue body.

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.