一键导入
ea-project-kanban
Drips, pipelines, HITL: Kanban project boards, not todo.md.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Drips, pipelines, HITL: Kanban project boards, not todo.md.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Search Desktop files via gbrain; mail use joshu-mail.
Meeting-mail scheduling. Kanban ea-sched-*; Calendly fallback.
Find/search mail; local cache first, deep server Gmail.
jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths.
Daily handoff — prep yesterday carryover, interactive morning review, finalize today's time block.
Triage mail to Projects. Not drips—use ea-project-kanban.
| name | ea-project-kanban |
| description | Drips, pipelines, HITL: Kanban project boards, not todo.md. |
| metadata | {"hermes":{"category":"executive-assistant","version":"1.4.0"}} |
Default for multi-step work. If a request has several steps, parallel lanes, timed follow-ups, or human-in-the-loop (owner approval, replies, judgment calls), run it on a dedicated Hermes board — not as a one-shot chat turn or rows in todo.md alone.
Kanban gives you durable state (ready / running / blocked / done), crash recovery, Hermes Admin visibility, and kanban_block when waiting on a person. Joshu action guard on sends is a common HITL gate — workers should expect kanban_block until approval clears.
Projects/<slug>/ holds a brief summary and file pointers — not a mirror of every card.
Layout: docs/executive-assistant.md · ${JOSHU_FILES_ROOT}/FILING.md
| Signal | Examples |
|---|---|
| Multi-step | Research → draft → send → follow up; gather docs → summarize → email |
| Parallel | Email 10 people; chase three vendors; multiple workstreams |
| HITL | Owner must approve sends (nylas_send_message action guard), confirm spend, pick between options |
| Wait on others | Block until reply; negotiate; "check back Thursday" |
| Long-running | Work may span days; needs resume after restart |
| Supervision | Owner wants to see cards on Hermes Admin |
Skip Kanban for: single quick answers, one immediate send with no follow-up, inbox stub filing (ea-playbook), or automated meeting-mail scheduling (ea-scheduling).
| Trigger | This skill |
|---|---|
| User asks to start a project or any multi-step / HITL task | Full kickoff below |
| Drip/outreach, email N people + follow up | Full kickoff below |
| User asks status on an active Kanban project | Read about.md kanban_board, use kanban_list on that board |
| Mail triage stub | Not this skill — use ea-playbook |
| Scheduling / meeting mail | Not this skill — use ea-scheduling on ea-sched-* boards |
| Skill | Role |
|---|---|
| ea-playbook | Ingest stubs → update Projects/ docs; cron rollups |
| ea-scheduling | Fixed ingress + meeting boards for calendar negotiation |
| ea-project-kanban | Multi-step and HITL work on project-<slug> boards (campaigns are one common case) |
Clarify (minimal): goal, steps or waves, who/what is parallel, HITL gates (approvals, owner decisions), follow-up timing.
Filesystem under ${JOSHU_FILES_ROOT}/Projects/<slug>/:
about.md — outcome, urgency; leave kanban_board / kanban_root_task null until step 5recipients.md (outreach), brief.md (constraints for root card body)Board project-<slug> (slug = folder slug, lowercase hyphens).
Create the board using one of these paths (check in order):
A) Joshu bridge MCP tools (preferred on Joshu boxes).
mcp_joshu_connectors_project_kanban_ensure_board(projectSlug="<slug>", name="<Short title>") creates the board and returns db_path.
Then mcp_joshu_connectors_project_kanban_create_triage_root(projectSlug="<slug>", title="...", body="...") for the root task (body from decomposition-template.md).
B) kanban_create / kanban_list tools if your profile has the kanban toolset (check your tool list before assuming they're absent — you may have them even when the CLI is missing).
C) Hermes CLI if on PATH and tools unavailable:
hermes kanban boards create project-<slug> \
--name "<Short title>"
# NOTE: workdir is set per-task on kanban create via --workspace dir:<path>, not on the board itself.
D) SQLite direct insert if none of the above are available (see references/kanban-sqlite.md).
Board slug must match project-<slug>.
Triage root card (when not created via MCP in step A) — no assignee, triage: true (CLI: --triage). Body from decomposition-template.md. Pass body text inline:
# Body text is passed inline via --body (not a file path flag)
BODY=$(cat /path/to/body.md) && hermes kanban create "Title" --triage --body "$BODY"
Update about.md frontmatter:
kanban_board: project-<slug>
kanban_root_task: <task_id from create>
Append one-line outcome under the title. Do not copy every child task into todo.md.
Child tasks run via dispatcher (kanban-worker + assignee profile, default default).
kanban_show() — read title, body, workspace$HERMES_KANBAN_WORKSPACE (project folder)nylas_send_message via Joshu connectors MCP — action guard = HITL; do not spin in chat; kanban_block(reason="awaiting owner approval") until send succeedskanban_block or kanban_complete with evidence in metadatakanban_complete(summary=..., metadata={step, evidence})kanban_block(reason=...) — owner reply, approval, external party, or "need decision"scheduled_at on create or parents deps (next wave after prior done)scheduled_at (ISO8601) or parent links to wave-1 idskanban_block follow-up until meeting worker logic applies — do not auto-send without reading the thread (read_file on mail mirror or gbrain)journal_YYYY-MM-DD.md and about.md summary — not per-card rows in todo.mdOwner can supervise at hermes-admin.<box>/ — pick board project-<slug> in the switcher.
ea-sched-ingress / ea-scheduling boards for campaignsscheduling_* MCP toolstriage creates on EA boards (Joshu bridge rejects them)todo.mdkanban_create from workers to fan out unrelated work (orchestrator / decomposer handles fan-out)Tool order matters. On Joshu VPS boxes, prefer Joshu bridge MCP (step 3A) before CLI or SQLite. Do not waste retries on hermes kanban when project_kanban_* MCP tools are available.
hermes CLI not on PATH. If which hermes fails, fall through to kanban_* tools or SQLite (step 3D). Do not waste retries on the CLI.
kanban_* tools not in toolset. When the active profile doesn't include the kanban toolset, kanban_create, kanban_list, etc. are absent from available tools. Use MCP (3A) or SQLite direct insert (3D) without hesitation.
SQLite db_path unknown. Board databases live at ~/.hermes/kanban/boards/project-<slug>/kanban.db. If the board hasn't been created yet, use mcp_joshu_connectors_project_kanban_ensure_board first, then locate the db from .meta.db_path.
ID collision on manual insert. Always query existing task IDs (SELECT id FROM tasks) and use secrets.token_hex(6) with a collision-check loop. Do not guess or increment hex values.
Task state can change between dispatch and startup. Always kanban_show first if the tool is available. If status is blocked or archived, stop — you shouldn't be running.
Body is JSON, not opaque text. The body column stores structured metadata (name, email, e1_sent, etc.) as serialized JSON. When reading body back, use json.loads() — do not treat it as plaintext.
Surface to owner: bulk list unclear, legal/financial sensitivity, repeated send failures, action guard timeout.