Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/ghostlygawd/engineering-board/pm-startgit clone --depth 1 https://github.com/GhostlyGawd/engineering-boardWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/ghostlygawd/engineering-board/pm-start)<a href="https://agentmods.dev/commands/ghostlygawd/engineering-board/pm-start"><img src="https://agentmods.dev/badge/commands/ghostlygawd/engineering-board/pm-start.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00045 | $0.01217 |
| Opus 5 | $0.00023 | $0.00609 |
| Sonnet 5 | $0.00009 | $0.00243 |
| Haiku 4.5 | $0.00005 | $0.00122 |
Grade A, and why
pm-start scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/pm-start: start PM mode
Mark the current session as the engineering-board PM session. While session-mode=pm, the Stop hook runs the PM continuation procedure: the passive extractor plus the full consolidator + tidier + learnings-curator dispatch chain. Use this to designate a long-running session whose job is consolidating scratch into the live board.
What to do
You are writing a small JSON state file that the Stop hook reads. Be precise about path and shape.
Step 1: Resolve paths
- State directory:
${CLAUDE_PROJECT_DIR}/.engineering-board/ - State file:
${CLAUDE_PROJECT_DIR}/.engineering-board/session-mode.json
Create the state directory if it does not exist (mkdir -p semantics).
Step 2: Run the mode-transition guard
Delegate the refusal-matrix decision to the deterministic guard (single source of truth for ARCHITECTURE.md §11.5):
bash "$CLAUDE_PLUGIN_ROOT/hooks/scripts/board-mode-guard.sh" pm
Inspect the exit code:
- 0 (ALLOW): continue to Step 3. The guard's stdout contains
CURRENT_MODE=null(onlynullreaches here. pm/worker/paused all short-circuit at exit 2 or 3). - 2 (NOOP): print the guard's stdout verbatim and stop. The canonical message for this branch is
Engineering board: already in PM mode. No action taken. - 3 (REFUSE): print the guard's stdout verbatim and stop. The canonical messages for this branch are either:
Engineering board: currently in worker mode (discipline=<value>). Restart the session to switch to PM mode. No action taken.Engineering board: currently paused. Run /board-resume first, then /pm-start. No action taken.
The four canonical messages live in hooks/scripts/board-mode-guard.sh so the same matrix is enforced identically by /pm-start, /worker-start, /board-pause, and /board-resume. Do not re-implement the matrix in this file.
Step 3: Determine current session_id
Read ${CLAUDE_PROJECT_DIR}/.engineering-board/last-stop-stdin.json if it exists and extract the session_id field. If that file does not exist or has no session_id, use an empty string "". (The hook will populate it on the next Stop turn anyway.)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 92 lines · 45 tokens per session scan A e8e4ecc18b18
pm-start is a command published in the GitHub repository GhostlyGawd/engineering-board (0 stars, last pushed 3d ago), licensed MIT. It adds 45 tokens to every session and 1,217 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
project-recap
Generate a visual project recap for context switching.
os-meeting
快速创建和管理AI团队会议.
workspace
Testany Workspace, 管理工作空间,成员权限,团队组织.
standup
Show a daily standup summary with completed, in-progress, and blocked tasks across all active epics.
m-task-planner
Target: $ARGUMENTS (Default: requirement document(s) discovered in the project).
triage-issues
Launch the Issue Triage Agent (Haiku) to categorize and prioritize GitHub issues.