global-project-manager
Scannednpx machina-cli add skill arhuman/claude-plugin/global-project-manager --openclawGlobal Task Manager
Manages tasks in .claude/global-project/ with lightweight files + separate history. Auto-commits with jj on completion.
Quick Reference
| User Says | Action |
|---|---|
| "new task", "start work on..." | Create task-XXX.md, ask title/priority |
| "mark done", "finished", "complete" | status→done, jj commit, update history |
| "list tasks", "what's pending?" | Show in_progress, then todo |
| "this week", "recent" | Filter completed_at last 7 days |
| "cancel task X" | status→cancelled, update history |
| "current task" | Show in_progress tasks |
File Structure
.claude/global-project/
├── project.md # Metadata (read references/schema.md for format)
├── project_history.md # Append-only log
├── task-001.md # Current state only
├── task-001-history.md # All changes (saves tokens)
└── ...
Statuses: backlog | todo | in_progress | done | cancelled
Priorities: low | medium | high | critical
Workflow
First Use in Project
If .claude/global-project/ missing:
- Create
.claude/global-project/ - Create
project.md(readreferences/schema.mdfor full format):shortname: kebab-case from directory namegit_repo: from.git/configif existsjj_repo: trueif.jj/directory exists
- Create
project_history.mdwithcreatedentry
Creating Tasks
- Read existing
task-*.mdto get next sequential ID (task-001, task-002...) - Create
task-XXX.mdwith frontmatter (see references/schema.md when creating files) - Create
task-XXX-history.mdwithcreatedentry - Add
task_added | task-XXXtoproject_history.md - If jj repo: run
jj new -m "task-XXX: {title}"
Optional: Create detailed files in .claude/global-project/task-XXX/:
overview.md: objectives, success criteriaapproach.md: methodologychecklist.md: actionable stepsnotes.md: insights during execution
Updating Tasks
- Edit
task-XXX.mdfrontmatter - Append to
task-XXX-history.md:{timestamp} | {event} | {details}- Events:
status_change,priority_change,note,title_change
- Events:
- Update timestamps:
started_at: when →in_progresscompleted_at: when →doneorcancelled
Completing Tasks
When status → done or cancelled:
- Set
completed_attimestamp - Update histories
- If
jj_repo: true:jj new -m "{task_title}" - Add entry to
project_history.md
Listing Tasks
Read task-*.md files (ignore -history.md), filter by status/date.
S3 Sync (Optional)
If env vars exist (MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY):
- Sync to
s3://global_projects/{shortname}/ - Update
last_syncinproject.md
Schema Details
Only read references/schema.md when creating new files. Contains field definitions, format examples, ID generation rules.
Source
git clone https://github.com/arhuman/claude-plugin/blob/main/plugins/global-project-manager/skills/global-project-manager/SKILL.mdView on GitHub Overview
Global Task Manager orchestrates tasks inside .claude/global-project/ using lightweight MD files and a separate history. It tracks statuses, priorities, and timestamps, offering an auditable record and optional S3 syncing. On completion, it auto-commits with jj when a repo is present.
How This Skill Works
It maintains per-task files like task-XXX.md for the current state and task-XXX-history.md for all changes, plus project_history.md for project events. Updates modify frontmatter (status, priority, started_at, completed_at) and append history entries; when a task completes, it can trigger a jj commit and a new project entry, and an optional S3 sync can push to s3://global_projects/{shortname}/.
When to Use It
- Starting a new task in .claude/global-project/
- Moving a task through its lifecycle (backlog → todo → in_progress → done)
- Reviewing current work or recently completed tasks
- Cancelling a task or changing its priority
- Backing up and syncing project state to S3 via MINIO env vars
Quick Start
- Step 1: Initialize the project folder and create project.md (see workflow)
- Step 2: Create the first task-001.md with frontmatter and task-001-history.md
- Step 3: Update status to in_progress (and run jj commit if applicable), then observe project_history.md
Best Practices
- Follow the file naming convention: task-XXX.md with incremental IDs
- Keep frontmatter fields in sync with references/schema.md (shortname, git_repo, jj_repo, status, priority)
- Always append changes to task-XXX-history.md for traceability
- Use jj commits when jj_repo is true on completion
- After updates, log a project_history.md entry and verify last_sync after S3 sync
Example Use Cases
- Kick off a project by creating project.md and project_history.md, then add task-001.md
- Create a new task-001.md with initial frontmatter and a matching task-001-history.md created
- Advance a task: set status to in_progress and record a title/priority change
- Complete a task: set completed_at, update histories, and run jj new -m with the task title if jj_repo is true
- Enable S3 sync by setting MINIO_* vars and confirming last_sync in project.md