con un clic
my-web-plan
Planning for React web UI implementation with component design focus
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Planning for React web UI implementation with component design focus
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Plan and execute 2-week engineering sprints with structured debate, task-by-task execution, and incremental markdown reporting. Use when asked to "plan a sprint", "create a sprint", "execute a sprint", "resume a sprint", or "plan roadmap". Supports pause/resume, tracks progress in markdown files as source of truth. Scans the project, proposes a plan, critiques it, synthesizes a final plan, then executes each task sequentially with review after each one.
Use for planning work
React web development conventions and patterns
Explain how to do logging
| name | my-web-plan |
| description | Planning for React web UI implementation with component design focus |
Create an implementation plan in docs/plans/yyyymmdd-<task-name>.md with interactive context gathering. This plan is specialized for React web UI work — component decomposition, bottom-up build order, and visual design analysis are first-class concerns.
Before asking questions, understand what the user is working on:
Parse user's command arguments to identify intent:
Launch Explore agent (via Task tool with subagent_type: Explore) to gather relevant context based on intent:
For feature development:
For bug fixing:
For refactoring/migration:
For generic/unclear requests:
git status and recent file activitySynthesize findings into context summary:
When the user provides a screenshot or design reference, this is a critical planning input. Do not rush past it.
Think hard about component structure. Work outside-in to understand nesting, then plan bottom-up for implementation:
ui/ folder before planning new ones.ChannelView
├── ChannelHeader
│ ├── ChannelTitle
│ └── ChannelActions (pin, search, members)
├── MessageList
│ └── MessageRow (repeats)
│ ├── Avatar
│ ├── MessageContent
│ │ ├── MessageAuthor + timestamp
│ │ ├── MessageBody (text, attachments)
│ │ └── ReactionBar
│ └── MessageActions (hover menu)
└── Composer
├── FileUploadButton
├── TextInput
└── SendButton
CRITICAL: always plan implementation from leaf components upward to page-level containers.
This order ensures:
Show the discovered context, then ask questions one at a time using the AskUserQuestion tool:
"Based on your request, I found: [context summary]"
Ask questions one at a time (do not overwhelm with multiple questions):
Plan purpose: use AskUserQuestion - "What is the main goal?"
Scope: use AskUserQuestion - "Which components/files are involved?"
Constraints: use AskUserQuestion - "Any specific requirements or limitations?"
Testing approach: use AskUserQuestion - "Do you prefer TDD or regular approach?"
Plan title: use AskUserQuestion - "Short descriptive title?"
After all questions answered, synthesize responses into plan context.
Once the problem is understood, propose implementation approaches:
For UI work, approaches often differ in:
Example format:
I see three approaches:
**Option A: [name]** (recommended)
- How it works: ...
- Pros: ...
- Cons: ...
**Option B: [name]**
- How it works: ...
- Pros: ...
- Cons: ...
Which direction appeals to you?
Use AskUserQuestion tool to let user select preferred approach before creating the plan.
Skip this step if:
Check docs/plans/ for existing files, then create docs/plans/<task-name>.md:
# [Plan Title]
## Overview
- Clear description of the feature/change being implemented
- Problem it solves and key benefits
- How it integrates with existing system
## Context (from discovery)
- Files/components involved: [list from step 0]
- Related patterns found: [patterns discovered]
- Dependencies identified: [dependencies]
- Existing components to reuse: [list from ui/ and domain folders]
## Component Design
<!-- Include this section for any UI work -->
### Component Tree
[Visual tree from screenshot analysis or design thinking] PageComponent ├── SectionA │ ├── LeafComponent1 │ └── LeafComponent2 └── SectionB └── ListComponent └── ListItem (repeats)
### New Components
| Component | File | Props | Notes |
|-----------|------|-------|-------|
| ComponentName | `components/domain/ComponentName.tsx` | `items`, `onSelect` | Renders list of... |
### Reused Components
- `Avatar` from `components/ui/` — for user avatars
- `Badge` from `components/ui/` — for status indicators
- [etc.]
## Development Approach
- **Build order**: bottom-up (leaf components first, containers last)
- **Testing approach**: [TDD / Regular - from user preference in planning]
- Complete each task fully before moving to the next
- Make small, focused changes
- **CRITICAL: every task MUST include new/updated tests** for code changes in that task
- tests are not optional - they are a required part of the checklist
- write unit tests for new functions/methods
- write unit tests for modified functions/methods
- add new test cases for new code paths
- update existing test cases if behavior changes
- tests cover both success and error scenarios
- **CRITICAL: all tests must pass before starting next task** - no exceptions
- **CRITICAL: update this plan file when scope changes during implementation**
- Run tests after each change
- Maintain backward compatibility
## Testing Strategy
- **Unit tests**: required for every task (see Development Approach above)
- **Visual verification**: after each component task, add it to the dev page and use `agent-browser` to screenshot and verify appearance
- **E2E tests**: if project has UI-based e2e tests (Playwright, Cypress, etc.):
- UI changes → add/update e2e tests in same task as UI code
- Backend changes supporting UI → add/update e2e tests in same task
- Treat e2e tests with same rigor as unit tests (must pass before next task)
- Store e2e tests alongside unit tests (or in designated e2e directory)
## Progress Tracking
- Mark completed items with `[x]` immediately when done
- Add newly discovered tasks with ➕ prefix
- Document issues/blockers with ⚠️ prefix
- Update plan if implementation deviates from original scope
- Keep plan in sync with actual work done
## What Goes Where
- **Implementation Steps** (`[ ]` checkboxes): tasks achievable within this codebase - code changes, tests, documentation updates
- **Post-Completion** (no checkboxes): items requiring external action - manual testing, changes in consuming projects, deployment configs, third-party verifications
## Implementation Steps
<!--
Task structure guidelines:
- BUILD BOTTOM-UP: first tasks are leaf/primitive components, last tasks are page-level wiring
- Each task = ONE component (or one tightly coupled group)
- Use specific descriptive names: "Build MessageRow component", not "Implement message UI"
- Aim for ~5 checkboxes per task (more is OK if logically atomic)
- **CRITICAL: Each task MUST end with writing/updating tests before moving to next**
- **CRITICAL: Each UI component task should include dev page entry for visual verification**
Example (bottom-up order):
### Task 1: Build MessageBubble component
- [ ] create `components/messages/MessageBubble.tsx` with text content + timestamp
- [ ] handle long text wrapping and link detection
- [ ] add to dev page with sample messages (short, long, with links, empty)
- [ ] screenshot dev page with agent-browser to verify appearance
- [ ] write tests for MessageBubble rendering and edge cases
- [ ] run project tests - must pass before task 2
### Task 2: Build MessageRow component
- [ ] create `components/messages/MessageRow.tsx` composing Avatar + MessageBubble
- [ ] handle own-message vs other-message alignment
- [ ] add to dev page with both variants
- [ ] screenshot dev page with agent-browser to verify appearance
- [ ] write tests for MessageRow rendering
- [ ] run project tests - must pass before task 3
### Task 3: Build MessageList container
- [ ] create `components/messages/MessageList.tsx` rendering list of MessageRow
- [ ] implement auto-scroll to bottom on new messages
- [ ] handle empty state and loading skeleton
- [ ] add to dev page with populated, empty, and loading states
- [ ] write tests for MessageList rendering and scroll behavior
- [ ] run project tests - must pass before task 4
### Task 4: Wire up ChannelView page
- [ ] create `components/channels/ChannelView.tsx` composing ChannelHeader + MessageList + Composer
- [ ] connect to store/API for real data
- [ ] update route file to render ChannelView
- [ ] write integration tests
- [ ] run project tests - must pass before task 5
-->
### Task 1: [leaf component - smallest building block]
- [ ] [create component file with props interface]
- [ ] [implement rendering logic]
- [ ] add to dev page with representative states
- [ ] screenshot with agent-browser to verify
- [ ] write tests for rendering and edge cases
- [ ] run tests - must pass before next task
### Task N-2: [page/container - composes all pieces]
- [ ] [create page component composing child components]
- [ ] [connect to data (store/API/loader)]
- [ ] [wire up in route file]
- [ ] write integration tests
- [ ] run tests - must pass before next task
### Task N-1: Verify acceptance criteria
- [ ] verify all requirements from Overview are implemented
- [ ] verify edge cases are handled
- [ ] run full test suite (unit tests)
- [ ] run e2e tests if project has them
- [ ] run linter - all issues must be fixed
- [ ] screenshot final result with agent-browser and compare to reference design
- [ ] verify test coverage meets project standard (80%+)
### Task N: [Final] Update documentation
- [ ] update README.md if needed
- [ ] update project knowledge docs if new patterns discovered
## Technical Details
- Data structures and changes
- Parameters and formats
- Processing flow
## Post-Completion
*Items requiring manual intervention or external systems - no checkboxes, informational only*
**Manual verification** (if applicable):
- Manual UI/UX testing scenarios
- Cross-browser verification
- Responsive breakpoint testing
- Performance testing under load
**External system updates** (if applicable):
- Consuming projects that need updates after this library change
- Configuration changes in deployment systems
- Third-party service integrations to verify
After creating the file, tell user:
"Created plan: docs/plans/<task-name>.md
Ready to start implementation?"
If yes, begin with task 1 (the leaf-most component).
CRITICAL testing rules during implementation:
After completing code changes in a task:
[x] in plan fileIf tests fail:
Only proceed to next task when:
[x]Plan tracking during implementation:
On completion:
Partial implementation exception:
[x] write tests ... (fails until Task X)This ensures each task is solid before building on top of it.
ui/ components and project primitives before building new ones