Project Router
by @safatinaztepe
Terminal-first project bootstrapper and workspace context manager. Use when the user asks for /project-style workflows: detect current project, read project context/brief, run standardized targets (build/test/lint/deploy), init a .project bundle via plan/apply, manage artifacts, or expose these actions via MCP server mcp-project-router and CLI project.
clawhub install project-routerπ About This Skill
name: project-router description: "Terminal-first project bootstrapper and workspace context manager. Use when the user asks for /project-style workflows: detect current project, read project context/brief, run standardized targets (build/test/lint/deploy), init a .project bundle via plan/apply, manage artifacts, or expose these actions via MCP server mcp-project-router and CLI project."
project-router
This skill is Safaβs canonical project management + context switching control plane.
Core idea:
It provides:
project ... mcp-project-router (tools mirror the CLI).project/ (brief, targets, artifact index)Project bundle layout (v1)
The .project/ bundle is the project-local context nucleus. The canonical PM DB points at these bundles.
Inside a project root:
.project/project.json β structured manifest.project/PROJECT.md β living brief.project/targets.json β target definitions (commands).project/index/artifacts.json β artifact index.project/history/plans/*.json β plans.project/history/applies/*.json β apply receiptsCLI quick start
Baseline / existing commands
From anywhere inside a repo/workspace:
project detectproject contextproject target listproject target run Initialize a bundle (dry-run plan + apply):
project init (prints plan)project apply Artifacts:
project artifact add [--tags a,b,c] (plan + apply)Canonical PM + context switching (new)
> Note: these verbs are the target UX. Implementations should remain idempotent and safe.
Project registration:
project pm project add --name "..." --root project pm project listTask management:
project pm task add "" --priority P0|P1|P2|P3 [--status inbox|next|doing|blocked|waiting|done] project pm task list [--project ] [--status ...] project pm task set-status Context switching:
project pm switch project pm focus Trello sync:
project pm trello sync [--project ] MCP quick start (via mcporter)
mcporter list mcp-project-router --schema --timeout 120000 --jsonExamples:
mcporter call --server mcp-project-router --tool project_detect --args '{}'
mcporter call --server mcp-project-router --tool project_context_read --args '{}'
mcporter call --server mcp-project-router --tool project_target_run --args '{"target":"test"}'Trello backend conventions
Single-board setup:
Safa β PM (or configurable)Inbox, Next, Doing, Blocked, Waiting, Done
[] --- pm ---
task_id:
project:
status:
priority: P0|P1|P2|P3
---
P0 = red
- P1 = orange
- P2 = yellow
- P3 = blueCanonical PM storage (SQLite)
Recommended DB location (in workspace):
/home/safa/clawd/data/pm/pm.sqliteMinimum tables (v0):
projects(slug PRIMARY KEY, name, root_path, created_at, updated_at)tasks(task_id PRIMARY KEY, project_slug, title, status, priority, created_at, updated_at)task_refs(task_id, kind, ref) (file paths / urls / artifacts)external_refs(task_id, system, external_id, meta_json) (e.g., Trello card_id/list_id)Safety
task_id marker; never duplicate cards).project_target_run executes commands defined in .project/targets.json.