Get the FREE Ultimate OpenClaw Setup Guide →

global-project-manager

Scanned
npx machina-cli add skill arhuman/claude-plugin/global-project-manager --openclaw
Files (1)
SKILL.md
3.0 KB

Global Task Manager

Manages tasks in .claude/global-project/ with lightweight files + separate history. Auto-commits with jj on completion.

Quick Reference

User SaysAction
"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:

  1. Create .claude/global-project/
  2. Create project.md (read references/schema.md for full format):
    • shortname: kebab-case from directory name
    • git_repo: from .git/config if exists
    • jj_repo: true if .jj/ directory exists
  3. Create project_history.md with created entry

Creating Tasks

  1. Read existing task-*.md to get next sequential ID (task-001, task-002...)
  2. Create task-XXX.md with frontmatter (see references/schema.md when creating files)
  3. Create task-XXX-history.md with created entry
  4. Add task_added | task-XXX to project_history.md
  5. If jj repo: run jj new -m "task-XXX: {title}"

Optional: Create detailed files in .claude/global-project/task-XXX/:

  • overview.md: objectives, success criteria
  • approach.md: methodology
  • checklist.md: actionable steps
  • notes.md: insights during execution

Updating Tasks

  1. Edit task-XXX.md frontmatter
  2. Append to task-XXX-history.md: {timestamp} | {event} | {details}
    • Events: status_change, priority_change, note, title_change
  3. Update timestamps:
    • started_at: when → in_progress
    • completed_at: when → done or cancelled

Completing Tasks

When status → done or cancelled:

  1. Set completed_at timestamp
  2. Update histories
  3. If jj_repo: true: jj new -m "{task_title}"
  4. 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_sync in project.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

  1. Step 1: Initialize the project folder and create project.md (see workflow)
  2. Step 2: Create the first task-001.md with frontmatter and task-001-history.md
  3. 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

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers