Design and implement a new feature or component from a GitHub issue. Use for net-new functionality, not bug fixes.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
name: implement-github-feature
description: Design and implement a new feature or component from a GitHub issue. Use for net-new functionality, not bug fixes.
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Edit, Write, Bash(gh issue view *), Bash(gh pr view *), Bash(git status), Bash(git diff *), Bash(git log *), Bash(git branch *), Bash(git checkout *), Bash(git add *), Bash(git commit *), Bash(npm run build), Bash(npm run lint), Bash(ls *)
---
**Usage:** `/implement-github-feature ISSUE_NUMBER`
**Example:** `/implement-github-feature 281`
Implement GitHub feature request $ARGUMENTS following AgnosticUI conventions, accessibility standards, and CSS-first principles.
---
## Setup
1. **Read project context**
- Read `.claude/PROJECT_CONTEXT.md`
- Understand:
- Repository structure
- Design principles
- Accessibility requirements
- Branch conventions
- Component workflows
---
## Phase 0: Safety Checks (Required)
2. **Verify clean starting state**
- Run `git status`
- Confirm:
- Working directory is clean
- Current branch is `master`
- If either condition fails:
- **STOP**
- Ask the user to resolve before continuing
---
## Phase 1: Branching
3. **Propose feature branch**
- Follow convention: `issue-$ARGUMENTS/short-descriptive-name`
- Example: `issue-281/selection-card-group`
- Run:
```
git checkout -b issue-$ARGUMENTS/short-description
```
- **WAIT FOR USER APPROVAL of branch name before proceeding**
---
## Phase 2: Issue Analysis & Intent Extraction (No Code)
4. **Analyze the GitHub issue**
- Fetch full details:
```
gh issue view $ARGUMENTS
```
- Extract and summarize:
- Feature goals
- Non-goals / constraints
- API expectations
- Accessibility requirements
- Styling and theming expectations
- Framework implications (Lit / React / Vue)
5. **Study existing related components**
- Identify components this feature will compose or resemble
- Read their implementations in `v2/lib/src/components/`
- Note patterns for:
- Props and attributes
- Slot usage
- CSS custom properties
- `::part` exposure
- Event dispatching
- Accessibility implementation
- This ensures consistency with established AgnosticUI conventions
7. **Confirm feature classification**
- This is a:
- Net-new component OR
- Major enhancement (not a bug fix)
- If scope appears ambiguous:
- Ask the user before proceeding
---
## Phase 3: Design Proposal (Hard Stop Before Code)
8. **Propose high-level design**
- Identify:
- New components to be created
- Public vs internal APIs
- Required props vs optional props
- Slot usage and responsibilities
- Accessibility model (labels, roles, keyboard behavior)
- Shadow DOM strategy (`::part`, `::slotted`)
- Explicitly call out:
- Web Component constraints
- CSS-first decisions
- What is intentionally *not* supported
9. **Propose file & directory layout**
- Core components:
- `v2/lib/src/components/...`
- Documentation:
- `v2/site/docs/components/...`
- Storybook playgrounds:
- Lit
- React
- Vue
- Examples:
- Lit / React / Vue test examples
10. **WAIT FOR USER APPROVAL**
- Do **not** create files
- Do **not** write code
- Proceed only after explicit approval of:
- API shape
- Accessibility approach
- Styling strategy
---
## Phase 4: Scaffolding (Minimal, Intentional)
11. **Create initial scaffolding**
- Create component directories
- Add placeholder files where appropriate
- Add minimal README or doc stubs if needed
- No implementation logic yet
12. **Show scaffolding diff**
- Use `git diff`
- Explain what was created and why
- **WAIT FOR USER APPROVAL**
---
## Phase 5: Core Implementation (Lit Web Components First)
13. **Implement core component(s)**
- Work only in:
- `v2/lib/src/components/`
- Follow:
- CSS-first approach
- Design token usage
- Accessibility requirements
- Ensure:
- Keyboard interaction works
- Labels and semantics are correct
- Shadow DOM parts are intentional and minimal
14. **Verify build**
- Run `npm run build` in `v2/lib/`
- Fix any compilation errors
- Run `npm run lint` if available
15. **Pause for review**
- Explain:
- DOM structure
- Slot behavior
- `::part` surface
- Accessibility decisions
- **WAIT FOR USER APPROVAL before proceeding**
---
## Phase 6: Framework Integrations
16. **Integrate with frameworks**
- React playground
- Vue playground
- Lit playground
- APIs should feel idiomatic but map 1:1 conceptually
17. **Add Storybook stories**
- Demonstrate:
- Core use cases
- Variants
- Accessibility states
- Ensure consistency across frameworks
---
## Phase 7: Documentation & Examples
18. **Write documentation**
- Add VitePress docs:
- API
- Slots vs props
- Styling guidance
- Accessibility notes
- Update or add playbooks if applicable
19. **Update examples**
- Verify examples compile and behave correctly
- Keep examples minimal and educational
---
## Phase 8: Final Review & Commit
20. **Final verification**
- Review:
- `git diff`
- Accessibility behavior
- Styling hooks
- API consistency
- Ensure no accidental breaking changes
21. **Prepare commit**
- Stage changes:
```
git add .
```
- Commit message format:
```
Add #$ARGUMENTS: [concise feature description]
```
- Show commit contents
- **WAIT FOR USER APPROVAL before committing**
---
## Phase 9: Handoff
22. **Explain next steps**
- User is on branch: `issue-$ARGUMENTS/...`
- Review with:
```
git diff master
```
- Push when ready:
```
git push -u origin issue-$ARGUMENTS/...
```
- Create PR:
```
gh pr create --base master --head issue-$ARGUMENTS/...
```
---
## Important Rules
- **NEVER work directly on `master`**
- **NEVER push without explicit user permission**
- **ALWAYS stop at design gates**
- **ALWAYS prioritize accessibility over convenience**
- **Prefer slots for layout, props for semantics**
- **CSS custom properties > ::part > ::slotted**
- Do not assume intent — if unclear, ask
---No comments yet. Be the first to comment!