cm-dashboard-e6abae — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cm-dashboard-e6abae (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Visual + API control plane for tasks dispatched to Codex, Google Antigravity, Cursor, Gemini CLI, and Claude Code. Runs locally at http://localhost:6969.
backlog → in-progress → review → done) per project.| ID | Display name | Skill prefix |
|---|---|---|
codex | OpenAI Codex | / |
antigravity | Google Antigravity | @[/...] |
cursor | Cursor | @ |
gemini-cli | Gemini CLI | @[/...] |
claude-code | Claude Code | / |
(Also: windsurf, cline, copilot, manual.)
# 1. Start the dashboard (auto-starts on first cm command, or run explicitly)
cm dashboard # opens http://localhost:6969
# 2. Health-check
curl -s http://localhost:6969/api/projects | jq# Create
TASK_ID=$(curl -s -X POST http://localhost:6969/api/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Refactor auth middleware","agent":"codex","skill":"cm-execution","priority":"high"}' \
| jq -r .id)
# Dispatch (writes .agent-tasks/<id>-*.agent-task.md inside the project)
curl -s -X POST http://localhost:6969/api/tasks/$TASK_ID/dispatch | jqThe dispatcher emits a per-agent CLI command:
codex --task "<file>"antigravity -p "$(cat <file>)"cursor --task "<file>"gemini run --task "<file>"claude --task "<file>"curl -s -X PUT http://localhost:6969/api/tasks/$TASK_ID/move \
-H "Content-Type: application/json" \
-d '{"column":"in-progress"}' # backlog | in-progress | review | doneUse this from a running Codex/Gemini/Cursor/Antigravity session to report status — upserts by conversationId.
curl -s -X POST http://localhost:6969/api/tasks/auto-sync \
-H "Content-Type: application/json" \
-d '{
"conversationId":"codex-2026-05-11-001",
"title":"Refactor auth middleware",
"status":"in-progress",
"agent":"codex",
"skill":"cm-execution"
}'Status values map to columns: pending|todo → backlog, started|active|in-progress|idle → in-progress, review → review, completed|done → done.
curl -s 'http://localhost:6969/api/agents/suggest?skill=cm-debugging' | jq
# → { skill, domain, agents: ["claude-code","codex","cursor","antigravity"] }The web UI shows:
in-progress tasks.| Method | Path | Purpose |
|---|---|---|
| GET | /api/projects | List projects with task counts |
| POST | /api/projects | Create project |
| GET | /api/tasks?projectId=… | List tasks (optionally per project) |
| POST | /api/tasks | Create task (agent, skill, …) |
| POST | /api/tasks/sync | Bulk import tasks from an agent |
| POST | /api/tasks/auto-sync | Upsert by conversationId |
| PUT | /api/tasks/:id/move | Move to column |
| POST | /api/tasks/:id/dispatch | Write .agent-tasks/*.md for agent |
| GET | /api/agents/suggest?skill=… | Best agents for a skill domain |
| GET | /api/judge/suggestions?projectId=… | Auto-transition recommendations |
Full surface: see src/dashboard.ts.
| Domain | Best fit |
|---|---|
| Engineering / refactor / debugging | Claude Code, Codex |
| Long-context architecture & docs | Antigravity, Gemini |
| Inline edits / IDE-driven | Cursor |
| Quick CLI prompts / shell tasks | Gemini CLI, Codex |
/api/*.lsof -i :6969 to find it.agent set; PUT /api/tasks/:id with {"agent":"codex"} first.path so dispatch can write into .agent-tasks/.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.