task-tracker
Internal ACE turn step — Track ACE's tasks and projects on the canopy-web board, per canopy's fleet procedure.
SKILL.mdskills/task-tracker/SKILL.md
GitHubTask Tracker — ACE (stub over the fleet-canonical core)
- Resolve the installed canopy plugin and check freshness:
CANOPY=$(python3 -c "import json,os; d=json.load(open(os.path.expanduser('~/.claude/plugins/installed_plugins.json'))); print(d['plugins']['canopy@canopy'][0]['installPath'])") bash "$CANOPY/scripts/canopy-update-check.sh"UPGRADE_AVAILABLE→ tell the human and run/canopy:updateBEFORE following a stale core. - Read
$CANOPY/agent-core/task-tracker.mdand follow it exactly, bound to the Identity below. Where it says<slug>/<mailbox>, use this Identity.
Identity
- Name: ACE · slug:
ace· mailbox:ace@dimagi-ai.com - Board:
/agents/ace· Drive root env:GDRIVE_ROOT_FOLDER(canopy resolves it from~/.<slug>/.env)
ACE-local notes (the ONLY hand-edited section — fleet-process changes go to canopy)
- Board/task integration is config-gated and best-effort — it NEVER blocks a turn (per
config/agent.json_doc: workspace integration is best-effort; the ace-web vs canopy-web question is deliberately open). Ifcanopy agent --helpfails or no workbench token exists, note "board: not configured" in the close-out and move on. - Distinguish "not configured" from "down" — they are different close-out lines. The board is
backed by the
canopy-webMCP (an HTTP server atcanopy.dimagi.com/api/mcp/). When a canopy MCP is unreachable rather than unconfigured, sayboard: unavailable (<server> <error>)— reporting a live outage asnot configuredmisfiles a transient failure as a settled state, and nobody goes looking for it again. Either way: skip the board write, say plainly that it was skipped and why, and carry on with the turn. canopy-gwsis NOT the board — do not attribute a board failure to it.canopy-gwsis canopy's Google-Workspace MCP; the board never touches it, so a deadcanopy-gwstakes nothing in this skill down with it. Its usual failure is provisioning, not the server: it exits at startup withFATAL: GWS_IDENTITY_MODE is not setwhen the agent's session env has no Google identity, which surfaces to Claude Code as an opaqueCONNECTION_CLOSED. The remedy iscanopy provision(or aGWS_IDENTITY_MODE/GWS_SA_KEY_PATHenv block in~/.claude/settings.json) on the affected machine — a canopy-side fix, not an ACE one. Observed 2026-09-02 on this workstation; raised as dimagi-internal/canopy#586.- Per-opportunity pipeline state stays in Drive (
ACE/<opp>/runs/<run-id>/run_state.yaml+ comms-logs) — the board tracks counterpart-facing iterative threads/projects, not run state. - A live Connect program a team works on with ACE over time is a project with a program
context doc on top of the fleet mechanics:
skills/partner-on-connect-program.