Claude Code Plugins

Community-maintained marketplace

Feedback

Act as a PM to flesh out a bead issue with acceptance criteria and implementation notes. Use when planning issues, adding acceptance criteria, or preparing issues for development.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name beads-plan
description Act as a PM to flesh out a bead issue with acceptance criteria and implementation notes. Use when planning issues, adding acceptance criteria, or preparing issues for development.

Beads Plan

Plan and document a bead issue without implementing it. This skill acts as a PM to prepare issues for development.

Workflow

1. Read the Issue

bd show <issue-id>

Review the current state of the issue including title, description, and any existing details.

2. Analyze the Codebase

If the issue involves code changes:

  • Explore relevant files and directories
  • Understand existing patterns and conventions
  • Identify files that will likely need modification
  • Note any dependencies or related components

3. Flesh Out the Issue

Create or update the issue description to include:

Clear Acceptance Criteria

Format as checkboxes:

## Acceptance Criteria
- [ ] Specific, testable criterion 1
- [ ] Specific, testable criterion 2
- [ ] ...

Implementation Notes

## Implementation Notes
- Suggested approach and rationale
- Key files to modify: `path/to/file.ext`
- Patterns to follow from existing code
- Potential edge cases to handle
- Testing strategy

Complexity Assessment

## Complexity
- Scope: Small/Medium/Large
- Risk areas: (any tricky parts)
- Dependencies: (external libs, other issues)

4. Update the Issue

Update the issue with the fleshed-out description:

bd update <issue-id> --description="<full updated description>"

If the title is vague or unclear, update it too:

bd update <issue-id> --title="<clearer title>"

5. Identify Dependencies

If this issue depends on other work:

bd dep add <issue-id> <depends-on-id>

If you discover new issues that should be created:

bd create --title="..." --type=task --priority=2
bd dep add <new-id> <issue-id>  # if new issue depends on this one

6. Report Summary

After planning, report:

"Planned issue <issue-id>: </p> <p>Changes made:</p> <ul> <li><what was added/updated></li> </ul> <p>Acceptance criteria: <count> items Ready for: <code>/codegangsta:build <issue-id></code>"</p> </blockquote> <h2>Guidelines</h2> <ul> <li><strong>Do NOT implement</strong> - Only plan and document</li> <li><strong>Be specific</strong> - Vague acceptance criteria are useless</li> <li><strong>Be realistic</strong> - Note actual complexity and risks</li> <li><strong>Explore first</strong> - Understand the codebase before suggesting approaches</li> <li><strong>Check dependencies</strong> - Ensure blockers are identified and linked</li> <li><strong>Make it buildable</strong> - Another agent should be able to implement from your plan</li> </ul> </div> </article> </section> </div> </main> <vercel-analytics data-props="{}" data-params="{"slug":"@codegangsta/dotfiles/beads-plan"}" data-pathname="/skills/@codegangsta/dotfiles/beads-plan"></vercel-analytics> <script type="module">var f="@vercel/analytics",l="1.5.0",w=()=>{window.va||(window.va=function(...r){(window.vaq=window.vaq||[]).push(r)})};function d(){return typeof window<"u"}function u(){try{const e="production"}catch{}return"production"}function v(e="auto"){if(e==="auto"){window.vam=u();return}window.vam=e}function m(){return(d()?window.vam:u())||"production"}function c(){return m()==="development"}function b(e,r){if(!e||!r)return e;let n=e;try{const t=Object.entries(r);for(const[a,i]of t)if(!Array.isArray(i)){const o=s(i);o.test(n)&&(n=n.replace(o,`/[${a}]`))}for(const[a,i]of t)if(Array.isArray(i)){const o=s(i.join("/"));o.test(n)&&(n=n.replace(o,`/[...${a}]`))}return n}catch{return e}}function s(e){return new RegExp(`/${h(e)}(?=[/?#]|$)`)}function h(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y(e){return e.scriptSrc?e.scriptSrc:c()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?`${e.basePath}/insights/script.js`:"/_vercel/insights/script.js"}function g(e={debug:!0}){var r;if(!d())return;v(e.mode),w(),e.beforeSend&&((r=window.va)==null||r.call(window,"beforeSend",e.beforeSend));const n=y(e);if(document.head.querySelector(`script[src*="${n}"]`))return;const t=document.createElement("script");t.src=n,t.defer=!0,t.dataset.sdkn=f+(e.framework?`/${e.framework}`:""),t.dataset.sdkv=l,e.disableAutoTrack&&(t.dataset.disableAutoTrack="1"),e.endpoint?t.dataset.endpoint=e.endpoint:e.basePath&&(t.dataset.endpoint=`${e.basePath}/insights`),e.dsn&&(t.dataset.dsn=e.dsn),t.onerror=()=>{const a=c()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${n}. ${a}`)},c()&&e.debug===!1&&(t.dataset.debug="false"),document.head.appendChild(t)}function p({route:e,path:r}){var n;(n=window.va)==null||n.call(window,"pageview",{route:e,path:r})}function k(){try{return}catch{}}customElements.define("vercel-analytics",class extends HTMLElement{constructor(){super();try{const r=JSON.parse(this.dataset.props??"{}"),n=JSON.parse(this.dataset.params??"{}");g({...r,disableAutoTrack:!0,framework:"astro",basePath:k(),beforeSend:window.webAnalyticsBeforeSend});const t=this.dataset.pathname;p({route:b(t??"",n),path:t})}catch(r){throw new Error(`Failed to parse WebAnalytics properties: ${r}`)}}});</script> </body></html>