Global project manager
Skill arhuman/claude-plugins/plugins/global-project-manager/skills/global-project-manager
npx -y skills add arhuman/claude-plugins --skill global-project-managerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Task and project management in .claude/global-project/. Use when user ask for a new task.
SKILL.md
7.3 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Global Task Manager
Manages tasks in .claude/global-project/ with lightweight files + separate history. Auto-commits with jj on completion.
Handles task lifecycle, status tracking, and optional S3 sync.
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 |
| "status report", "project status", "what's the state?" | Generate status report (see Status Reporting) |
| "list projects", "show all projects" | List all projects from S3 via s4ync list (requires S3 env vars) |
| Any work request (implement, fix, add, refactor...) | Auto-create task silently before starting (see Auto Task Creation) |
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
Auto Task Creation
When the user makes a work request involving implementation, fixing, refactoring, or any significant change — automatically create a task before starting work, without asking for confirmation.
Trigger patterns
Any request containing verbs like: implement, fix, add, refactor, update, create, remove, migrate, optimize, write, build, integrate, change...
What to do
- Infer title from the user's request (concise, action-based: "Fix login bug", "Add CSV export", "Refactor auth module")
- Infer priority:
criticalif "urgent"/"blocker",highif "fix"/"bug",mediumotherwise - Create
task-XXX.mdwithstatus: in_progressandstarted_at= now - Create
task-XXX-history.mdwithcreated+status_change → in_progressentries - Add
task_added | task-XXXtoproject_history.md - Do not announce the task creation — proceed silently with the work
- When work is done, complete the task (see Completing Tasks)
Exceptions — do NOT auto-create a task when
- The request is a question, explanation, or analysis (no code change expected)
- A task for the same work already exists as
in_progress - The user explicitly says "no task", "skip tracking", or similar
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}"when the task is completed (which is already there), not on creation
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.
Status Reporting
When asked for a project status or report:
- Read all
task-*.mdfrontmatter (skip-history.mdfiles) - Group by status:
in_progress,todo/backlog,done,cancelled - For done tasks, check
completed_at— flag those within the last 7 days as "completed this week" - Get versioning info using the Version Control procedure below
- Output a concise markdown report:
## Project Status — {project shortname} **Branch**: {current branch/bookmark} | **Recent**: {latest commit summary} **In progress** (N) - task-XXX: title [priority] **Completed this week** (N) - task-XXX: title **Backlog** (N tasks) - If S3 env vars are present, sync the report alongside task files
Version Control
Use this procedure whenever version/commit information is needed (status reports, project init, etc.):
- Check for jj first: if
jj_repo: trueinproject.mdor.jj/directory exists:- Current bookmark/branch:
jj log -r @ --no-pager -T 'if(bookmarks, bookmarks, "detached")' - Recent changes:
jj log --no-pager -l 5 -T 'change_id.short() ++ " " ++ description.first_line() ++ "\n"'
- Current bookmark/branch:
- Fallback to git: if no jj, check for
.git/directory:- Current branch:
git branch --show-current - Recent commits:
git log --oneline -5
- Current branch:
- Neither: skip versioning info in output
Resolving s4ync Binary
Use this procedure whenever s4ync is needed:
- Check PATH:
which s4ync→ use it if found - Look for pre-built binary in plugin cache:
Use~/.claude/plugins/cache/arhuman-marketplace/global-project-manager/*/tools/s4ync/s4yncGlobto find it; if found, use that path asS4YNC_BIN - If binary not found, build from source:
- Find source dir via Glob:
~/.claude/plugins/cache/arhuman-marketplace/global-project-manager/*/tools/s4ync/ - Run
make buildin that directory - Use the resulting binary as
S4YNC_BIN
- Find source dir via Glob:
- If source not found either, inform the user that s4ync could not be found and suggest
make installin the plugin'stools/s4ync/directory
Listing All Projects
When asked to list all projects (not just the current one):
If S3 env vars exist (MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY):
- Resolve
S4YNC_BINusing the procedure above - Run
$S4YNC_BIN list
If no S3:
- S3 is the only cross-project registry; explain that
list projectsrequires S3 to be configured
S3 Sync (Optional)
If env vars exist (MINIO_ENDPOINT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY):
- Resolve
S4YNC_BINusing the procedure above - 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.