
project-planner
Project planning and feature breakdown for Python/React full-stack projects. Use during the planning phase when breaking down feature requests, user stories, or product requirements into implementation plans. Guides identification of affected files and modules, defines acceptance criteria, assesses risks, and estimates overall complexity. Produces module maps, risk assessments, and acceptance criteria. Does NOT cover architecture decisions (use system-architecture), implementation (use python-backend-expert or react-frontend-expert), or atomic task decomposition (use task-decomposition).
- Installs
- 58
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/hieutrtr/ai1-skills --skill project-planner- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads project-planner automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Project Planner
When to Use
Activate this skill when:
- Breaking down a feature request or user story into an implementation plan
- Sprint planning or backlog refinement for a Python/React project
- Designing a new module, service, or feature area
- Estimating the overall complexity of a proposed change
- Identifying file-level impact before starting implementation
- Mapping the impact of a change across backend and frontend layers
Do NOT use this skill for:
- Architecture decisions or technology trade-offs (use
system-architecture) - Writing implementation code (use
python-backend-expertorreact-frontend-expert) - API contract design (use
api-design-patterns) - Decomposing into atomic implementation tasks (use
task-decomposition)
Instructions
Planning Workflow
Follow this 4-step workflow for every planning request:
Step 1: Analyze the Requirement
- Read the feature request, user story, or product requirement in full
- Identify the core objective — what value does this deliver?
- List explicit inputs (what triggers the feature) and outputs (what the user sees)
- Note ambiguities or missing details — list them as open questions
- Determine if this is a new feature, enhancement, bug fix, or refactoring
Step 2: Map Affected Modules
Scan the project and identify every file or module area affected by the change:
Backend (FastAPI):
routes/— New or modified endpoint handlersservices/— Business logic changesrepositories/— Data access layer changesmodels/— SQLAlchemy model changes (triggers migration)schemas/— Pydantic request/response schema changescore/— Configuration, security, or middleware changesmigrations/— Alembic migration files
Frontend (React/TypeScript):
pages/— New or modified page componentscomponents/— Shared UI component changeshooks/— Custom hook changes or additionsservices/— API client changes (TanStack Query keys, mutations)types/— Shared TypeScript type definitionsutils/— Utility function changes
Shared / Cross-cutting:
types/orshared/— Types shared between backend and frontend.env/ config — Environment variable changestests/— Test files for each changed module
Present the module map as a table:
| Layer | Module | Change Type | Impact |
|----------|-----------------|-------------------|-----------|
| Backend | models/user.py | Add field | Migration |
| Backend | schemas/user.py | Add response field| API change|
| Frontend | hooks/useUser.ts| Update query | UI change |
Step 3: Define Verification Criteria
Define how the completed feature will be verified:
Integration verification:
- End-to-end test scenario describing the complete user flow
- Manual smoke test steps if automated E2E is not available
Regression check:
- Existing tests still pass:
pytest -x && npm test - No type errors:
mypy src/ && npx tsc --noEmit - No lint issues:
ruff check src/ && npm run lint
Step 4: Identify Risks and Unknowns
Flag potential issues using the categories below. For each risk:
- Risk: Description of what could go wrong
- Likelihood: Low / Medium / High
- Impact: Low / Medium / High
- Mitigation: How to reduce or eliminate the risk
See references/risk-assessment-checklist.md for the complete risk category list.
Output Format
Write the plan to a file at the project root: plan.md (or plan-<feature-name>.md if multiple plans exist). Use references/plan-template.md as the template.
The file must contain:
# Implementation Plan: [Feature Name]
## Objective
[1-2 sentence summary of what this delivers]
## Context
- Triggered by: [user story / feature request / bug report]
- Related work: [links to related plans, ADRs, or PRs]
## Open Questions
[List ambiguities that need resolution before implementation]
## Affected Modules
[Module map table from Step 2]
## Verification
[Integration verification from Step 3]
## Risks & Unknowns
[Risk table from Step 4]
## Acceptance Criteria
[Bullet list of observable outcomes that confirm the feature works]
## Estimation Summary
[Overall complexity estimate — see table below]
Always write the plan to a file. This enables /task-decomposition to read it as input. After writing, tell the user: "Plan written to plan.md. Run /task-decomposition to break it into atomic tasks."
Estimation Summary
Estimate overall feature complexity using this table:
| Metric | Value |
|---|---|
| Total backend modules affected | [N] |
| Total frontend modules affected | [N] |
| Migration required | Yes / No |
| API changes | Yes / No (new endpoints / modified contracts) |
| Overall complexity | trivial / small / medium / large |
Complexity guidelines:
- Trivial: 1-2 modules, no migration, <50 lines
- Small: 2-4 modules, no migration, <200 lines
- Medium: 4-8 modules, migration possible, <500 lines
- Large: 8+ modules, migration likely, 500+ lines
Examples
Example: Plan "Add User Profile Picture Upload"
Objective: Allow users to upload and display a profile picture.
Affected Modules:
| Layer | Module | Change Type | Impact |
|---|---|---|---|
| Backend | models/user.py | Add avatar_url | Migration |
| Backend | schemas/user.py | Add field | API contract |
| Backend | services/upload.py | New service | New file |
| Backend | routes/users.py | Add endpoint | API change |
| Frontend | components/AvatarUpload | New component | UI change |
| Frontend | hooks/useUploadAvatar.ts | New hook | Data fetch |
| Frontend | pages/ProfilePage.tsx | Integrate | UI change |
Verification:
- Upload an image via the profile page, verify it displays
- Upload an oversized file, verify rejection with error message
- Regression:
pytest -x && npm test
Risks:
- File size limits need validation (server + client) — Medium likelihood — Add early validation
- S3 permissions may need configuration — Low likelihood — Test with local storage first
Acceptance Criteria:
- User can upload a profile picture from the profile page
- Uploaded image displays as the user's avatar across the app
- Files over 5MB are rejected with a clear error message
- Non-image files are rejected
- All existing tests pass
Estimation Summary:
| Metric | Value |
|---|---|
| Backend modules affected | 4 |
| Frontend modules affected | 3 |
| Migration required | Yes |
| API changes | Yes (new upload endpoint) |
| Overall complexity | medium |
Output: Written to plan.md. Run /task-decomposition to break it into atomic tasks.
Edge Cases
-
Cross-cutting changes (auth middleware, error handling, logging): These affect many modules. Flag for architecture review before planning. Consider whether the change should be its own plan.
-
Database migrations with data transformation: Flag as a risk. Note that migration testing (upgrade + rollback) is needed. Task-decomposition will create a dedicated migration task.
-
Frontend state cascades: When modifying shared state (React Context, TanStack Query cache), map the component tree to identify all consumers in the module map.
-
API breaking changes: If modifying an existing endpoint's contract, check for frontend consumers first. Consider API versioning if external consumers exist. Note in the plan that frontend updates must be coordinated.
-
Feature flags: For large features spanning multiple sprints, note in the plan that a feature flag is needed. Task-decomposition will handle the implementation ordering.
-
Third-party dependency updates: If the feature requires a new package, list it in the plan's affected modules. Note potential peer dependency conflicts as a risk.
FAQ
What does the project-planner skill do?
Project planning and feature breakdown for Python/React full-stack projects. Use during the planning phase when breaking down feature requests, user stories, or product requirements into implementation plans. Guides identification of affected files and modules, defines acceptance criteria, assesses risks, and estimates overall complexity. Produces module maps, risk assessments, and acceptance criteria. Does NOT cover architecture decisions (use system-architecture), implementation (use python-backend-expert or react-frontend-expert), or atomic task decomposition (use task-decomposition).
How do I install project-planner?
Run npx skills add https://github.com/hieutrtr/ai1-skills --skill project-planner in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/project-planner/ (personal) or .claude/skills/project-planner/ (project).
Which AI agents can use project-planner?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is project-planner safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains project-planner?
It is published by hieutrtr in hieutrtr/ai1-skills. It has 58 recorded installs.
More from hieutrtr/ai1-skills
e2e-testing
hieutrtr/ai1-skills
End-to-end testing patterns with Playwright for full-stack Python/React applications. Use when writing E2E tests for complete user workflows (login, CRUD, navigation), critical path regression tests, or cross-browser validation. Covers test structure, page object model, selector strategy (data-testid role label), wait strategies, auth state reuse, test data management, and CI integration. Does NOT cover unit tests or component tests (use pytest-patterns or react-testing-patterns).
code-review-security
hieutrtr/ai1-skills
Security-focused code review checklist and automated scanning patterns. Use when reviewing pull requests for security issues, auditing authentication/authorization code, checking for OWASP Top 10 vulnerabilities, or validating input sanitization. Covers SQL injection prevention, XSS protection, CSRF tokens, authentication flow review, secrets detection, dependency vulnerability scanning, and secure coding patterns for Python (FastAPI) and React. Does NOT cover deployment security (use docker-best-practices) or incident handling (use incident-response).
react-frontend-expert
hieutrtr/ai1-skills
React/TypeScript frontend implementation patterns. Use during the implementation phase when creating or modifying React components, custom hooks, pages, data fetching logic with TanStack Query, forms, or routing. Covers component structure, hooks rules, custom hook design (useAuth, useDebounce, usePagination), TypeScript strict-mode conventions, form handling, accessibility requirements, and project structure. Does NOT cover testing (use react-testing-patterns), E2E testing (use e2e-testing), or deployment.
react-testing-patterns
hieutrtr/ai1-skills
Open the skill to read its SKILL.md instructions.
python-backend-expert
hieutrtr/ai1-skills
Open the skill to read its SKILL.md instructions.
ui-design-system
hieutrtr/ai1-skills
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.