Skip to content

Instantly share code, notes, and snippets.

@blocktator
Last active March 13, 2026 17:43
Show Gist options
  • Select an option

  • Save blocktator/a6786a852e8ea8c3feeded065aa1a5f5 to your computer and use it in GitHub Desktop.

Select an option

Save blocktator/a6786a852e8ea8c3feeded065aa1a5f5 to your computer and use it in GitHub Desktop.
Claude Code: create-execution-plan skill
Error in user YAML: (<unknown>): mapping values are not allowed in this context at line 2 column 286
---
name: create-execution-plan
description: Create an execution plan for a feature or technical initiative. Creates a Confluence page under the Execution Plans parent, then links it from the Jira ticket description. Use when planning implementation work, architecture changes, or any non-trivial feature. Triggers on: create execution plan, write execution plan, plan this out, document the plan, create a plan doc, setup execution plans, set up execution plans for a space.
---

Create Execution Plan

Creates a Confluence execution plan page and links it from the associated Jira ticket.

When to Run

Before implementation work on any non-trivial feature, technical initiative, or architectural change where a written plan adds value.

Credentials

These values are user-specific. Before running, check project memory for stored values. If any are missing, ask the user:

"To set up the execution plan skill, I need a few details:

  1. Your Atlassian Cloud ID (find it at https://admin.atlassian.com or from your Confluence URL)
  2. Your Jira account ID (find it at https://<your-domain>.atlassian.net/rest/api/3/myself)
  3. The Confluence parent page ID where execution plans should be created (the number in the page URL)
  4. Your Confluence space key (e.g. PLGEX, ENG)

Once provided, I'll save these to memory so you don't need to enter them again."

Save the answers to project memory under a ## Execution Plans section, then proceed.

Ben Wagaman's values (pre-configured):

  • Cloud ID: 8313f62f-6c74-427a-9769-96d0ba5db9fc
  • Jira account ID: 633b2da3140ba0bf651d3711
  • Space key: PLGEX
  • Atlassian domain: housecall.atlassian.net (not housecallpro.atlassian.net)
  • Jira issue URLs: https://housecall.atlassian.net/browse/<ISSUE_KEY>
  • Confluence base URL: https://housecall.atlassian.net/wiki

Page Hierarchy

Execution plans must live under this structure:

R&D  (emoji: :research_and_development:)
└── Execution Plans  (emoji: :hammer_pick:)
    └── <Your Execution Plan>

Setup Mode

If the user says "set up execution plans for a space" or similar, run the Space Setup flow instead of the normal plan creation flow:

Space Setup Flow

This bootstraps the R&D > Execution Plans hierarchy in a new Confluence space and populates the Execution Plans page with onboarding content so other team members know how to use the skill.

Step S1 — Collect credentials

Ask the user for (or read from memory if already stored):

  1. Atlassian Cloud ID
  2. Confluence space key for the new space
  3. Atlassian domain (e.g. housecall.atlassian.net)

Step S2 — Create the page hierarchy

Follow the same logic as Step 1 in the normal flow below: search for R&D, create it if missing, then search for Execution Plans under R&D, create it if missing.

Step S3 — Populate the Execution Plans page

Use updateConfluencePage to set the body of the "Execution Plans" page. Use the following as the canonical template (it mirrors the source-of-truth page at https://housecall.atlassian.net/wiki/spaces/PLGEX/pages/3917414530/Execution+Plans):

This page serves as a shared folder for Claude-driven and human-driven execution plans, where each plan documents the concrete steps, assumptions, and decisions associated with a specific Jira card.

---

## What is an Execution Plan?

An execution plan is a short, structured doc written before implementation that captures:

- **Background / Problem Statement** — why this work is happening
- **Goals & Non-Goals** — what success looks like and what's out of scope
- **Proposed Approach** — the technical plan, key decisions, tradeoffs
- **Milestones / Phases** — how work is sequenced
- **Open Questions** — anything unresolved
- **Risks** — known risks and mitigations

Each plan lives here as a child page and is linked from the associated Jira ticket description.

---

## Installation

1. Install [Claude Code](https://claude.ai/claude-code) and connect the **Atlassian MCP server**
2. Download the skill file: [create-execution-plan SKILL.md](https://gist.github.com/blocktator/a6786a852e8ea8c3feeded065aa1a5f5)
3. Drop it into `~/.claude/skills/create-execution-plan/SKILL.md`
4. Claude Code picks it up automatically — no restart needed

---

## Usage

### Creating an execution plan

Say something like:

> *"Create an execution plan for <ISSUE_KEY>"*

Claude will:
1. Ask you to walk through the plan sections collaboratively
2. Create a child page here under `Execution Plans`
3. Link it from the Jira ticket description automatically

On first run, Claude will ask for your Atlassian credentials (Cloud ID, Jira account ID, space key) and save them to memory so you don't need to enter them again.

---

### Setting up a new Confluence space

If your team wants to use this skill in a different Confluence space, say:

> *"Set up execution plans for space ENG"*

Claude will:
1. Create the `R&D > Execution Plans` page hierarchy in that space
2. Populate the Execution Plans page with this onboarding content
3. Save the new space configuration to memory for future runs

Note: If the source page at https://housecall.atlassian.net/wiki/spaces/PLGEX/pages/3917414530/Execution+Plans has been updated since this skill was written, fetch its latest content using getConfluencePage (pageId 3917414530, cloudId 8313f62f-6c74-427a-9769-96d0ba5db9fc) and use that as the template instead.

Step S4 — Save to memory

Save the new space's Execution Plans page ID to memory under ## Execution Plans keyed by space key, so future runs in that space skip the hierarchy lookup.

Step S5 — Confirm

Report back:

"Space <SPACE_KEY> is set up. Execution Plans page: "


Steps

1. Ensure the page hierarchy exists

Check memory for a stored Execution Plans page ID. If not present, search for it:

Use searchConfluenceUsingCql to find the "Execution Plans" page in the space:

title = "Execution Plans" AND space = "<SPACE_KEY>" AND ancestor = "<RD_PAGE_ID_IF_KNOWN>"

If "Execution Plans" page is missing:

First, ensure the "R&D" page exists — search for it:

title = "R&D" AND space = "<SPACE_KEY>"

If "R&D" is missing, create it using createConfluencePage:

{
  "cloudId": "<CLOUD_ID>",
  "spaceKey": "<SPACE_KEY>",
  "title": "R&D",
  "emoji": "research_and_development",
  "content": "<p>Research and development initiatives.</p>"
}

Then create the "Execution Plans" page as a child of R&D:

{
  "cloudId": "<CLOUD_ID>",
  "spaceKey": "<SPACE_KEY>",
  "title": "Execution Plans",
  "emoji": "hammer_pick",
  "parentId": "<RD_PAGE_ID>",
  "content": "<p>Execution plans for technical initiatives.</p>"
}

Save the resulting "Execution Plans" page ID to memory so this lookup is skipped in future runs.

2. Draft the execution plan content

Work with the user to produce the plan content. A good execution plan typically includes:

  • Background / Problem Statement — why this work is happening
  • Goals & Non-Goals — what success looks like and what's out of scope
  • Proposed Approach — the technical plan, key decisions, tradeoffs
  • Milestones / Phases — how work is sequenced
  • Open Questions — anything unresolved
  • Risks — known risks and mitigations

3. Create the Confluence page

Use createConfluencePage as a child of the Execution Plans page:

{
  "cloudId": "<CLOUD_ID>",
  "spaceKey": "<SPACE_KEY>",
  "title": "<ISSUE_KEY>: <Feature/Initiative Name> - Execution Plan",
  "parentId": "<EXECUTION_PLANS_PAGE_ID>",
  "content": "<page content in Confluence storage format>"
}

Capture the returned page URL from the response.

4. Link from the Jira ticket

Use editJiraIssue to update the ticket description. Pass a markdown string (NOT an ADF object). Structure the description as:

  1. ## Execution Plan heading
  2. A markdown link to the Confluence page: [Confluence Execution Plan](<url>)
  3. A 3–5 sentence scope summary (what the ticket does, any key constraints like feature flags, what's out of scope)
  4. ## Product Requirements heading
  5. The existing description content (preserve it — don't drop it)
{
  "cloudId": "8313f62f-6c74-427a-9769-96d0ba5db9fc",
  "issueIdOrKey": "<ISSUE_KEY>",
  "fields": {
    "description": "## Execution Plan\n\n[Planning Document](<confluence_page_url>)\n\n<3-5 sentence scope summary>\n\n## Product Requirements\n\n<existing description content>"
  }
}

5. Confirm

Report back to the user:

"Execution plan created: <confluence_url> — linked from <ISSUE_KEY>."

Important Notes

  • Never create local planning docs in the repo (not in doc/, tasks/, or anywhere else)
  • Always use a markdown string for Jira description updates (the MCP tool converts markdown → ADF). Use [link text](url) for clickable links — this works correctly.
  • Always use housecall.atlassian.net for all Jira and Confluence URLs — never housecallpro.atlassian.net
  • Preserve existing Jira description content under the ## Product Requirements heading — don't discard it
  • If no Jira ticket is associated, skip step 4 and just share the Confluence URL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment