Workforce — Claude Code Plugin (v0.5.0)
Renamed in 0.5.0: plugin name changed from tasks-management → workforce to reflect the product covers both human and agent participants (Color Workforce). Backend hosts, PAT prefix (aiwf_pk_*), env var (AIWF_PAT), config path (~/.aiwf/config.json), and MCP server name (aiwf) are unchanged — this rebrand is brand-layer only.
Repositioned from markdown-only (≤0.3.0) to AIWF-backed (0.4.0+). Same slash commands, same auto-capture UX — but captures land in the Workforce triage inbox instead of .claude-tasks/*.md files. One source of truth across web UI, Slack, email, and CC sessions.
What changed in 0.5.0 (rebrand)
| Before (0.4.x) | After (0.5.0) |
|---|
name: tasks-management | name: workforce |
Install: /plugin install tasks-management@sirendhead | Install: /plugin install workforce@sirendhead |
| Brand: "AI Workforce" / "AIWF" | Brand: "Color Workforce" / "Workforce" |
marketplace.json missing (#304 Gap 1) | marketplace.json shipped |
No slash command names change. No hook behavior change. No backend wire-protocol change.
What changed in 0.4.0 (still applies)
| Before (0.3.x) | After (0.4.0+) |
|---|
Stored in .claude-tasks/inbox.md markdown | Stored in Workforce triage_items table |
| Bash + PowerShell scripts | Node.js hooks + markdown slash commands |
| Per-project, file-based | Cross-project, DB-backed, visible in Workforce web UI |
gh CLI for issue close | Workforce task lifecycle (still gh for GitHub mirror) |
| No multi-machine view | All 3 machines (or N) feed into 1 Workforce workspace |
Install
/plugin marketplace add sirendhead/claude-code-tasks-management
/plugin install workforce@sirendhead
Restart Claude Code → plugin auto-wires hooks + MCP server.
Setup (one-time)
-
Mint a PAT from the Workforce dashboard at https://workforce.colorverse.dev — Settings → API Tokens → Create. Format: aiwf_pk_<prefix>_<secret> (prefix kept for backend compat).
-
Configure via env var (preferred for security):
# macOS / Linux / Git Bash
export AIWF_PAT="aiwf_pk_xxx"
export AIWF_BASE_URL="https://workforce.colorverse.work/api/v1" # optional, this is the default
# Windows PowerShell
$env:AIWF_PAT = "aiwf_pk_xxx"
Or write ~/.aiwf/config.json:
{
"baseUrl": "https://workforce.colorverse.work/api/v1",
"pat": "aiwf_pk_xxx",
"machineId": "colorDev"
}
-
Verify: open a CC session, run /status — should see inbox + sprint state from Workforce.
Slash commands
| Command | Behaviour |
|---|
/backlog <text> | Capture raw idea/task/bug → Workforce triage with source=cc-plugin. |
/triage [batch] | List pending inbox items, suggest classification, human confirm before processing. |
/sprint [N] | Show current sprint or list top-N backlog items for planning. |
/work [slug] | Pick next task, mark in-progress, execute, commit, mark complete. |
/status | Compact overview: inbox + sprint + assigned tasks + suggested next action. |
Auto-capture hook
UserPromptSubmit hook scans regular prompts (non-slash) for VN/EN trigger patterns and silently POSTs to triage with source=cc-plugin-auto:
- VN:
nhớ làm X, todo:, ý tưởng:, bug:, sửa lại:, sau này làm, à nhân tiện, ghi lại, …
- EN:
TODO:, bug:, FIXME, HACK, remember to, don't forget, reminder:, idea:, …
Items captured this way get an [auto] tag for triage review. Disable with AIWF_AUTOCAPTURE=off or autocapture: false in ~/.aiwf/config.json.
SessionStart hook
On each CC session start, captures session context (cwd, git remote, branch, machine_id, timestamp) into ~/.aiwf/sessions/<pid>.json for slash commands to read. Pings Workforce /health first — exits silently if backend unreachable.
Failure modes
- No PAT set → all hooks
exit 0 silently. Slash commands prompt user to set AIWF_PAT.
- Backend unreachable → hooks log to
~/.aiwf/logs/*.log and exit silently. Slash commands surface the error.
- MCP server not connected → slash commands tell user to check
claude mcp list.
Migration
From 0.4.x
No action needed — slash commands, hooks, MCP wire-protocol unchanged. Existing ~/.aiwf/config.json and AIWF_PAT keep working. Only the plugin install command name changed (tasks-management → workforce); existing installs will keep functioning under the old name until you re-install.
From 0.3.x (markdown era)
Existing .claude-tasks/inbox.md files: not auto-imported. Options:
- Manually re-capture the items you still care about via
/backlog.
- Or write a one-off import script reading
.claude-tasks/inbox.md and POSTing each line to /api/v1/triage. (Out of scope for this plugin.)
The plugin no longer writes to .claude-tasks/ — that folder becomes legacy storage only.
Source repo