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
- •Read project context
- •Read
.claude/PROJECT_CONTEXT.md - •Understand:
- •Repository structure
- •Design principles
- •Accessibility requirements
- •Branch conventions
- •Component workflows
- •Read
Phase 0: Safety Checks (Required)
- •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
- •Run
Phase 1: Branching
- •Propose feature branch
- •Follow convention:
issue-$ARGUMENTS/short-descriptive-name - •Example:
issue-281/selection-card-group - •Run:
code
git checkout -b issue-$ARGUMENTS/short-description
- •WAIT FOR USER APPROVAL of branch name before proceeding
- •Follow convention:
Phase 2: Issue Analysis & Intent Extraction (No Code)
- •
Analyze the GitHub issue
- •Fetch full details:
code
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)
- •Fetch full details:
- •
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
- •
::partexposure - •Event dispatching
- •Accessibility implementation
- •This ensures consistency with established AgnosticUI conventions
- •
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
- •This is a:
Phase 3: Design Proposal (Hard Stop Before Code)
- •
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
- •Identify:
- •
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
- •Core components:
- •
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)
- •
Create initial scaffolding
- •Create component directories
- •Add placeholder files where appropriate
- •Add minimal README or doc stubs if needed
- •No implementation logic yet
- •
Show scaffolding diff
- •Use
git diff - •Explain what was created and why
- •WAIT FOR USER APPROVAL
- •Use
Phase 5: Core Implementation (Lit Web Components First)
- •
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
- •Work only in:
- •
Verify build
- •Run
npm run buildinv2/lib/ - •Fix any compilation errors
- •Run
npm run lintif available
- •Run
- •
Pause for review
- •Explain:
- •DOM structure
- •Slot behavior
- •
::partsurface - •Accessibility decisions
- •WAIT FOR USER APPROVAL before proceeding
- •Explain:
Phase 6: Framework Integrations
- •
Integrate with frameworks
- •React playground
- •Vue playground
- •Lit playground
- •APIs should feel idiomatic but map 1:1 conceptually
- •
Add Storybook stories
- •Demonstrate:
- •Core use cases
- •Variants
- •Accessibility states
- •Ensure consistency across frameworks
- •Demonstrate:
Phase 7: Documentation & Examples
- •
Write documentation
- •Add VitePress docs:
- •API
- •Slots vs props
- •Styling guidance
- •Accessibility notes
- •Update or add playbooks if applicable
- •Add VitePress docs:
- •
Update examples
- •Verify examples compile and behave correctly
- •Keep examples minimal and educational
Phase 8: Final Review & Commit
- •
Final verification
- •Review:
- •
git diff - •Accessibility behavior
- •Styling hooks
- •API consistency
- •
- •Ensure no accidental breaking changes
- •Review:
- •
Prepare commit
- •Stage changes:
code
git add .
- •Commit message format:
code
Add #$ARGUMENTS: [concise feature description]
- •Show commit contents
- •WAIT FOR USER APPROVAL before committing
- •Stage changes:
Phase 9: Handoff
- •Explain next steps
- •User is on branch:
issue-$ARGUMENTS/... - •Review with:
code
git diff master
- •Push when ready:
code
git push -u origin issue-$ARGUMENTS/...
- •Create PR:
code
gh pr create --base master --head issue-$ARGUMENTS/...
- •User is on branch:
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