Project Management Skill
Centralized project and task management across PAL domains with bidirectional sync between project files and a master task list.
Workflow Routing
| Workflow | Trigger | File |
|---|---|---|
| Create Project | "create project", "new project", "start project" | workflows/create_project.md |
| Pull Tasks | "pull tasks", "sync tasks", "aggregate tasks", "gather tasks" | workflows/pull_tasks.md |
| Update Tasks | "update tasks", "push tasks", "sync back", "update projects" | workflows/update_tasks.md |
| Project Dashboard | "project dashboard", "list projects", "task summary", "show projects" | workflows/project_dashboard.md |
| Archive Project | "archive project", "complete project", "close project" | workflows/archive_project.md |
Examples
Example 1: Create a New Project
User: "I want to create a new project for the API integration work"
Workflow: create_project
Process:
- List available domains for selection
- Ask for project name: "API Integration"
- Ask for objective: "Integrate third-party payment API"
- Ask for initial tasks: "Research API docs, Create auth flow, Implement endpoints"
- Ask for priority: "high"
- Generate
API_INTEGRATION_PROJECT.mdin selected domain
Output:
Project created: domains/example-domain/01_PROJECTS/API_INTEGRATION_PROJECT.md
- Status: planning
- Priority: high
- Tasks: 3 open
- Updated domain INDEX.md
Example 2: Pull Tasks from All Projects
User: "Pull all open tasks into the master list"
Workflow: pull_tasks
Process:
- Scan
Domains/*/01_PROJECTS/PROJECT_*.md— tagged#ProjectName - Scan
Domains/*/01_PROJECTS/AD_HOC_TASKS.md— tagged#AdHoc:DomainName - Scan
Inbox/Daily/*.md— unsynced- [ ]items tagged#Daily:YYYY-MM-DD - Scan
Inbox/Notes/*.md— unsynced[action]and- [ ]items tagged#Note:slug - Generate
Inbox/Dashboards/TASKS.mdwith sections per source
Output:
Tasks pulled!
Domain projects: 7 files → 12 tasks
Domain ad-hoc: 3 files → 4 tasks
Inbox/Daily: 5 files → 3 unsynced tasks
Inbox/Notes: 2 files → 2 unsynced tasks
Tasks file: Inbox/Dashboards/TASKS.md
Example 3: View Project Dashboard
User: "Show me all projects and their status"
Workflow: project_dashboard
Process:
- Scan all *_PROJECT.md files across domains
- Parse status, priority, and task counts
- Generate summary view
Output:
PROJECT DASHBOARD
By Status:
Planning: 2 projects
In Progress: 3 projects
Review: 1 project
Completed: 1 project
High Priority:
- API_INTEGRATION_PROJECT (example-domain) - 3 open tasks
- SECURITY_AUDIT_PROJECT (security-domain) - 5 open tasks
Overdue: None
Task Format
Tasks use checkbox symbols to indicate status. The symbol inside the checkbox determines the task state.
Checkbox Symbol Reference
| Symbol | Status | Meaning | Section |
|---|---|---|---|
[ ] |
To Do | Task not started, ready to work on | Active |
[/] |
In Progress | Task actively being worked on | Active |
[!] |
Blocked | Cannot proceed (dependency, external blocker) | Inactive |
[?] |
Paused | Intentionally paused or temporarily deprioritized | Inactive |
[I] |
Backlog | Moved to backlog (not doing now, might do later) | Inactive |
[-] |
Not Doing | Decided not to do this task | Inactive |
[x] |
Done | Task completed | Done |
Example Project Tasks
### Active
- [ ] Research API documentation
- [/] Implement user authentication
### Inactive
- [!] Deploy to production (waiting for security review)
- [?] Add advanced analytics (paused until Q2)
- [I] Internationalization support
- [-] Add GraphQL support (decided against)
### Done
- [x] Set up project repository
- [x] Create initial documentation
Section Structure
### Active- Contains[ ](to do) and[/](in-progress) tasks### Inactive- Contains[!](blocked),[?](paused),[I](backlog),[-](not doing) tasks### Done- Contains[x](done) tasks
Quick Reference
| Location | Purpose |
|---|---|
Domains/*/01_PROJECTS/PROJECT_*.md |
Project task files → tagged #ProjectName |
Domains/*/01_PROJECTS/AD_HOC_TASKS.md |
Domain-level ad hoc tasks → tagged #AdHoc:DomainName |
Inbox/Daily/*.md |
Daily notes with unsynced tasks → tagged #Daily:YYYY-MM-DD |
Inbox/Notes/*.md |
Inbox notes with unsynced [action] items → tagged #Note:slug |
Inbox/Dashboards/TASKS.md |
Aggregated task dashboard (all sources) |
templates/project_template.md |
Template for new projects |
Project Tags
Tasks use #ProjectName suffix to identify their source project:
- [ ] Task description #APIIntegration→ belongs to API_INTEGRATION_PROJECT- [ ] Task without tag→ ad-hoc task (from AD_HOC_TASKS.md)
Tag format: # + project name in PascalCase (derived from PROJECT_NAME → ProjectName)
AD_HOC_TASKS.md
Every domain has one AD_HOC_TASKS.md in 01_PROJECTS/. It captures standalone tasks with no parent project. Frontmatter schema:
name: AD_HOC_TASKS
type: task-list
domain: DomainName
last_updated: YYYY-MM-DD
Pull Tasks and Update Plan workflows must scan AD_HOC_TASKS.md alongside PROJECT_*.md files.
Related Documentation
- DOMAINS_LOGIC.md - Domain structure
- create-domain skill - Domain creation