Project Tracker
project-tracker
Creates a project management database in Notion with tasks, statuses, owners, due dates, and priorities, pre-populated from a project brief or scope document. Use when a user needs to set up project tracking for a new engagement, wants to replace spreadsheet-based task management, or needs a lightweight PM system without paid software.
- This skill, packaged and ready to upload. project-tracker.zip
- In claude.ai or Claude desktop: Customize → Skills (+) → Create skill → Upload a skill, select the zip and toggle it on. Greyed out? Enable code execution under Settings → Capabilities.
- It’s live in your chats — no code, no setup. Want every Business skill at once? Add the whole plugin from the Business page (Customize → Personal plugins → Create plugin → Upload plugin).
/plugin marketplace add Salah-XD/equipt
/plugin install equipt-business Installs the whole equipt-business plugin — this skill included.
npx @equipt/cli init
npx @equipt/cli add project-tracker Adds just this skill to your Claude Code project.
When to Use This Skill
Use this skill when you need to:
- Create a project task database in Notion from a project brief, scope document, or verbal description
- Replace a spreadsheet, whiteboard, or sticky-note system for tracking project tasks
- Set up task tracking for a new client engagement, product launch, or internal initiative
- Build a lightweight project management system without paying for Asana, Monday, or ClickUp
- Pre-populate a task board with phases, owners, due dates, and priorities from a project plan
DO NOT use this skill for:
- Client or contact relationship tracking (use a client-crm skill instead)
- Kanban-only boards with no task metadata (just use a plain Notion board)
- Enterprise portfolio management across dozens of projects (too complex for a single database)
- Time tracking or invoicing (different schema and tooling needed)
- Recurring task management or habit tracking (this is for finite project scopes)
Quick Reference: Project Tracker Features
| Feature | Details |
|---|---|
| Properties | 9 fields per task record |
| Status stages | 5 (Not Started through Blocked) |
| Priority levels | 4 (Urgent, High, Medium, Low) |
| Database views | 5 pre-built filtered views |
| Seeding | Bulk import from project brief, scope doc, or task list |
| Usage guide | Common operations documented for the user |
Quick Reference: Database Schema
| Property | Type | Purpose | Default/Options |
|---|---|---|---|
| Task Name | Title | Short, action-oriented task description | Required |
| Status | Select | Current state of the task | Not Started |
| Priority | Select | Urgency and importance level | Medium |
| Owner | Rich text | Person responsible for the task | Empty |
| Due Date | Date | Deadline for task completion | Empty |
| Project Phase | Select | Which phase of the project this task belongs to | See options below |
| Description | Rich text | Detailed requirements, acceptance criteria, or notes | Empty |
| Dependencies | Rich text | Other tasks that must complete before this one can start | Empty |
| Tags | Multi-select | Categories for filtering and grouping | See options below |
Status Options
Not Started --> In Progress --> In Review --> Complete --> Blocked
| Status | Meaning | Action Required |
|---|---|---|
| Not Started | Task is defined but work has not begun | Assign owner and due date if missing |
| In Progress | Actively being worked on | Owner updates Description with progress notes |
| In Review | Work is done, awaiting approval or feedback | Reviewer provides feedback within 2 business days |
| Complete | Task is finished and approved | No further action needed |
| Blocked | Cannot proceed due to a dependency or issue | Log the blocker in Description, escalate to project lead |
Priority Options
| Priority | Color | When to Use |
|---|---|---|
| Urgent | Red | Blocks other tasks or has a deadline within 48 hours |
| High | Orange | Critical path item, needed this week |
| Medium | Yellow | Standard task, due within the current phase |
| Low | Gray | Nice-to-have, can slip without impacting the project |
Default Project Phase Options
Phases are customized per project. If the user does not specify phases, use these defaults:
| Phase | Purpose |
|---|---|
| Planning | Research, requirements gathering, scoping |
| Design | Wireframes, mockups, architecture, strategy |
| Build | Development, writing, creation, production |
| Review | Testing, QA, feedback, revisions |
| Launch | Deployment, go-live, publishing, delivery |
Default Tag Options
milestone, client-facing, internal, content, design, development, admin, research, meeting, deliverable
Core Workflow
EVERY PROJECT TRACKER STARTS BY GATHERING THE PROJECT DETAILS AND CREATING THE DATABASE WITH THE FULL SCHEMA BEFORE ADDING ANY TASKS -- NEVER ADD PAGES TO A DATABASE THAT IS MISSING PROPERTIES.
Phase 1: Gather Project Details
Collect these details from the user before building anything:
- Project name -- what is this project called
- Notion parent page -- where should the tracker database live (page name or URL)
- Project phases -- custom phase names, or accept the 5 defaults (Planning, Design, Build, Review, Launch)
- Team members -- list of people who will own tasks (names only; these go in the Owner field)
- Timeline -- overall start date, end date, or phase-level deadlines
- Project brief or task list -- a scope document, brief, bullet list, or verbal description of what needs to get done
If the user provides only items 1 and 2, proceed with all defaults and generate tasks from context. Ask only about missing critical details.
Brief template for vague requests:
I'll build your project tracker in Notion. Quick answers needed:
1. What is the project name?
2. Which Notion page should I create the tracker under?
3. What are the project phases? (default: Planning, Design, Build, Review, Launch)
4. Who are the team members? (names for task ownership)
5. What is the timeline? (start date, end date, or key deadlines)
6. Do you have a project brief, scope doc, or task list I should use to pre-populate tasks?
Phase 2: Create the Database in Notion
- Call
notion-searchwith the page name or keywords the user provided to locate the parent page - Confirm the parent page with the user if multiple matches exist
- Call
notion-create-databasewith the parent page ID and full schema:
Database title: [Project Name] Tracker
Properties to create:
Task Name -> title
Status -> select
options: Not Started, In Progress, In Review, Complete, Blocked
colors: gray, blue, purple, green, red
Priority -> select
options: Urgent, High, Medium, Low
colors: red, orange, yellow, gray
Owner -> rich_text
Due Date -> date
Project Phase -> select
options: [user's custom phases OR defaults: Planning, Design, Build, Review, Launch]
colors: blue, purple, orange, green, pink
Description -> rich_text
Dependencies -> rich_text
Tags -> multi_select
options: milestone, client-facing, internal, content, design, development,
admin, research, meeting, deliverable
colors: red, blue, gray, pink, purple, green, brown, yellow, orange, default
Verify the database was created by calling
notion-fetchwith the returned database IDConfirm creation to the user:
Project tracker created: "[Project Name] Tracker"
Database ID: db_xyz789
Properties configured:
- Task Name (title)
- Status (5 stages: Not Started > In Progress > In Review > Complete > Blocked)
- Priority (4 levels: Urgent, High, Medium, Low)
- Owner (text)
- Due Date (date)
- Project Phase ([number] phases)
- Description (rich text)
- Dependencies (rich text)
- Tags (10 default tags)
IF THE PARENT PAGE IS NOT FOUND:
- Ask the user for the exact page title or a URL
- Try
notion-searchagain with the corrected term - If still not found, ask the user to share the page with the Notion integration
- After 3 failed searches, stop and explain: "I cannot find that page. Please verify the page exists and that the Notion integration has access to it. Check Settings > Connections in Notion."
IF DATABASE CREATION FAILS:
- Check the error message for permission issues
- Verify the parent page ID by calling
notion-fetchon it - Retry once with the same parameters
- If it fails again: "Database creation failed. This usually means the Notion integration does not have permission to create content on that page. Go to the parent page in Notion, click the three-dot menu, go to Connections, and ensure the integration has 'Can edit' access."
Phase 3: Pre-Populate Tasks from Project Brief
Parse the user's project brief, scope document, or task list into discrete tasks
For each task, map the data to the schema:
- Task Name -- short, action-oriented (start with a verb: "Design homepage wireframe", "Write onboarding email sequence")
- Status -- default to "Not Started" for all new tasks
- Priority -- infer from context; milestone items and deadline-sensitive tasks get "High" or "Urgent"; default to "Medium"
- Owner -- assign based on user instructions or skill/role matching; leave empty if no team info provided
- Due Date -- calculate from timeline if provided; distribute tasks across phases evenly if only start/end dates given
- Project Phase -- assign based on task nature and project flow
- Description -- extract relevant details, acceptance criteria, or specifications from the brief
- Dependencies -- note if a task explicitly depends on another task (e.g., "Design must complete before Build begins")
- Tags -- infer from task content (e.g., client deliverable =
client-facing+deliverable, research task =research)
Call
notion-create-pagesto add all tasks to the databaseReport seeding results:
Tasks imported: 20 of 20 successful
PLANNING (4 tasks):
Define project requirements — Medium, Sarah, Due: Mar 10
Audit existing website analytics — High, Marcus, Due: Mar 12
Stakeholder kickoff meeting — Urgent, Sarah, Due: Mar 7
Compile brand asset inventory — Low, Unassigned, Due: Mar 14
DESIGN (5 tasks): [listed with owner, priority, due date]
BUILD (7 tasks): [listed with owner, priority, due date]
REVIEW (2 tasks): [listed with owner, priority, due date]
LAUNCH (2 tasks): [listed with owner, priority, due date]
Total: 20 tasks | Assigned: 16 | Unassigned: 4 | Milestones: 3
IF THE BRIEF IS VAGUE OR INCOMPLETE:
- Generate reasonable tasks based on the project type and phases
- Present the generated task list to the user for approval BEFORE creating pages:
I generated 18 tasks from your brief. Here is the breakdown by phase: PLANNING (3 tasks): 1. Define target audience and goals — Medium 2. Audit competitor websites — Medium 3. Gather brand assets and copy — High Want me to proceed, or would you like to add, remove, or modify any tasks? - NEVER create tasks without confirmation when the data is inferred rather than explicit
IF BATCH CREATION PARTIALLY FAILS:
- Report which tasks succeeded and which failed
- Retry each failed task individually with
notion-create-pages - If individual retries fail, provide the task details formatted for manual entry
Phase 4: Set Up Views and Confirm
After the database and tasks are in place, guide the user on setting up filtered views. Notion MCP does not support creating views programmatically, so provide exact instructions.
Present these 5 views for the user to create manually:
RECOMMENDED VIEWS (create these in Notion):
1. ALL TASKS (Table view)
- View type: Table
- Sort: Due Date (ascending)
- No filter
- Purpose: Full task list ordered by deadline
2. MY TASKS (Table view)
- View type: Table
- Filter: Owner contains [your name]
- Sort: Due Date (ascending), then Priority (Urgent first)
- Purpose: Personal task list for each team member
3. THIS WEEK (Table view)
- View type: Table
- Filter: Due Date is within the next 7 days AND Status is not "Complete"
- Sort: Priority (Urgent first), then Due Date (ascending)
- Purpose: Weekly sprint view showing what needs attention now
4. BY PHASE (Board view)
- View type: Board
- Group by: Project Phase
- Filter: Status is not "Complete"
- Sort: Priority (Urgent first)
- Purpose: See active tasks organized by project phase
5. BLOCKED ITEMS (Table view)
- View type: Table
- Filter: Status is "Blocked"
- Sort: Priority (Urgent first)
- Purpose: Escalation list — resolve blockers before they cascade
Deliver a final summary including: database name and ID, task count by phase with date ranges, assigned vs. unassigned count, milestone count, and 3-4 concrete next steps (create views, assign unassigned tasks, review weekly, check blocked items daily).
Example 1: Website Redesign Project
User request: "We are redesigning our company website. 4 phases: Discovery, Design, Development, QA/Launch. Team is Sarah (PM), Marcus (designer), Priya (developer), and James (copywriter). Timeline is March 3 to April 25. My Notion page is called 'Active Projects'. Here is our scope..."
Execution:
- Gather: Project name "Website Redesign", parent page "Active Projects", 4 custom phases, 4 team members, 8-week timeline, scope document provided
- Search:
notion-searchfor "Active Projects" -> foundpg_active456, confirmed - Create:
notion-create-databasewith parentpg_active456, title "Website Redesign Tracker", custom phases (Discovery, Design, Development, QA/Launch) ->db_redesign789 - Seed 20 tasks:
DISCOVERY (5 tasks, Mar 3-10):
Stakeholder kickoff meeting — Urgent, Sarah, milestone
Audit current site analytics — High, Marcus
Competitor analysis (5 sites) — Medium, James
Define sitemap and page hierarchy — High, Sarah
Compile brand guidelines and assets — Medium, James
DESIGN (6 tasks, Mar 14-24):
Create wireframes for 8 key pages — High, Marcus
Design homepage mockup — Urgent, Marcus, milestone
Design inner page templates — High, Marcus
Write homepage copy — High, James
Write service page copy (4 pages) — Medium, James
Client design review and approval — High, Sarah, client-facing
DEVELOPMENT (6 tasks, Mar 25 - Apr 7):
Set up staging environment — High, Priya
Build homepage — Urgent, Priya
Build inner page templates — High, Priya
Integrate contact form and CRM — Medium, Priya
Mobile responsive QA pass — High, Priya
Content migration (blog posts) — Medium, James
QA/LAUNCH (3 tasks, Apr 11-25):
Full QA testing across browsers — High, Priya
Client UAT and final approval — Urgent, Sarah, milestone, client-facing
DNS switch and go-live — Urgent, Priya, milestone
Total: 20 tasks | Assigned: 20 | Milestones: 4 | Client-facing: 2
- Deliver: View instructions + final summary with phase breakdown and next steps
Example 2: Product Launch Project
User request: "I am launching a new online course in 6 weeks. Phases are Pre-Launch, Launch Week, and Post-Launch. It is just me doing everything. My Notion workspace has a page called 'Course Business'. I have a rough outline of what needs to happen."
Execution:
- Gather: Project name "Online Course Launch", parent page "Course Business", 3 custom phases, solo operator, 6-week timeline, rough outline provided
- Search:
notion-searchfor "Course Business" -> foundpg_course321, confirmed - Create:
notion-create-databasewith parentpg_course321, title "Online Course Launch Tracker", custom phases (Pre-Launch, Launch Week, Post-Launch) ->db_launch654 - Seed 15 tasks:
PRE-LAUNCH (9 tasks, Week 1-4):
Finalize course curriculum outline — Urgent, You, milestone
Record video lessons (8 modules) — High, You
Edit and upload videos to platform — High, You
Write sales page copy — High, You, client-facing
Design course thumbnail and graphics — Medium, You, design
Set up payment and checkout flow — High, You
Build email waitlist sequence (5 emails) — High, You, content
Create 3 social media teaser posts — Medium, You, content
Set up affiliate tracking links — Low, You
LAUNCH WEEK (4 tasks, Week 5):
Send launch email to waitlist — Urgent, You, milestone
Publish sales page and open cart — Urgent, You, milestone
Post daily social media content (5 days) — High, You, content
Run live Q&A or webinar — High, You, client-facing
POST-LAUNCH (2 tasks, Week 6):
Send follow-up email to non-buyers — Medium, You, content
Collect testimonials from first students — High, You, milestone, client-facing
Total: 15 tasks | Assigned: 15 | Milestones: 4 | Content: 4
- Deliver: View instructions (with solopreneur tip: skip "My Tasks" view, use "All Tasks" and "This Week" instead) + final summary with phase breakdown and milestone checkpoints
Pre-Delivery Checklist
Run this checklist before delivering the tracker to the user. DO NOT SKIP ANY ITEM.
| Check | What to Verify | How |
|---|---|---|
| Database exists | Database was created and is accessible | Call notion-fetch with database ID |
| All 9 properties present | Every property from the schema is configured | Verify in the notion-fetch response |
| Status options correct | All 5 statuses exist as select options | Check select options in database schema |
| Priority options correct | All 4 priorities exist as select options | Check select options in database schema |
| Project phases correct | All custom or default phases exist as select options | Check select options in database schema |
| Tags configured | All 10 default tags (or custom set) exist as multi-select options | Check multi-select options in database schema |
| Due Date configured | Due Date is a date type property | Verify property type in schema |
| Tasks seeded | All tasks were created successfully | Count created pages vs. expected |
| No duplicate tasks | Same task was not added twice during seeding | Check for duplicate task names |
| Owners assigned | Tasks have owners where team info was provided | Verify Owner field on seeded pages |
| Due dates set | Tasks have due dates where timeline was provided | Verify Date values on seeded pages |
| Milestones tagged | Key deliverables are tagged with "milestone" | Verify Tags on milestone tasks |
| View instructions delivered | User received setup instructions for all 5 views | Confirm in delivery message |
| Parent page correct | Database lives under the page the user requested | Verify parent in notion-fetch response |
Pre-Delivery Checklist:
[x] Database created and accessible
[x] All 9 properties configured
[x] Status options correct (5 stages)
[x] Priority options correct (4 levels)
[x] Project phases correct (custom or default)
[x] Tags configured (10 default or custom)
[x] Due Date property configured
[x] All tasks seeded successfully
[x] No duplicate tasks
[x] Owners assigned where applicable
[x] Due dates set from timeline
[x] Milestones tagged
[x] View setup instructions delivered
[x] Database under correct parent page
Recovery and Troubleshooting
Notion Search Returns No Results
If notion-search cannot find the target parent page:
- Ask the user for the exact page title (case-sensitive)
- Try searching with a shorter keyword (e.g., "Projects" instead of "Active Projects Dashboard")
- Ask the user to confirm the page exists and is not in a private section
- If 3 searches fail: "I cannot locate that page. Please verify the page title and ensure the Notion integration has access. Check Settings > Connections in Notion, find the integration, and confirm the page is shared with it."
Database Creation Fails
If notion-create-database returns an error:
- Verify the parent page ID by calling
notion-fetchon it - Check for permission errors in the response -- the integration may lack write access
- Retry once with the same parameters
- If it fails again: "Database creation failed due to a permissions issue. Please go to the parent page in Notion, click the three-dot menu, go to Connections, and ensure the integration has 'Can edit' access."
Task Seeding Partially Fails
If some tasks fail to create:
- Report which tasks succeeded and which failed
- Retry each failed task individually with
notion-create-pages - If individual retries fail, check if a required property is missing or malformed
- If retries continue to fail: Provide the task details formatted for manual entry:
Could not import these tasks automatically: Set up staging environment — High, Priya, Due: Mar 25 To add manually: open the tracker database in Notion, click "+ New", and enter the details above.
Notion API Rate Limits
If you receive rate limit errors during bulk seeding:
- Pause for 10 seconds between batches
- Reduce batch size to 5 tasks per
notion-create-pagescall - Continue until all tasks are imported
- DO NOT skip tasks due to rate limits -- slow down and retry
User Wants to Modify the Schema Later
Notion MCP does not support modifying existing database schemas. Instruct the user:
- To add a property: open the tracker, click "+" in the header row, choose type, name it
- To modify a property: click the column header, select "Edit property", change type/name/options
User Wants to Add More Tasks Later
- Call
notion-fetchto confirm the database ID and schema - Parse the new tasks following the same mapping rules in Phase 3
- Call
notion-create-pagesto add the new tasks - Report the additions and updated totals
Duplicate Detection
Flag potential duplicates before creating pages (e.g., "Write homepage copy" and "Draft homepage content" -- same task?). Present them to the user for confirmation. NEVER create duplicate task records -- always confirm first.
Anti-Patterns
- DO NOT create the database without the full property schema -- adding properties after pages exist causes data alignment issues
- DO NOT invent task details not present in the brief -- if the brief is vague, present generated tasks for approval first
- DO NOT skip the parent page confirmation -- creating a tracker under the wrong page is difficult to undo
- DO NOT assign owners that the user did not mention -- leave the Owner field empty for unassigned tasks
- DO NOT deliver without the view setup instructions -- the tracker is only valuable when the user can filter and sort tasks
- DO NOT set all tasks to "Urgent" or "High" -- a project where everything is urgent has no prioritization at all
- DO NOT create views programmatically -- Notion MCP does not support this; provide manual instructions instead
- DO NOT promise automated reminders, notifications, or status updates -- this is a database, not a project management app with automations