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 skills/dtannen/pm/pm-dashboard-devnpx skills add dtannen/pm --skill pm-dashboard-devgit clone --depth 1 https://github.com/dtannen/pmWrote 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/skills/dtannen/pm/pm-dashboard-dev)<a href="https://agentmods.dev/skills/dtannen/pm/pm-dashboard-dev"><img src="https://agentmods.dev/badge/skills/dtannen/pm/pm-dashboard-dev.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.00047 | $0.02137 |
| Opus 5 | $0.00023 | $0.01069 |
| Sonnet 5 | $0.00009 | $0.00427 |
| Haiku 4.5 | $0.00005 | $0.00214 |
Grade A, and why
pm-dashboard-dev 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 — 370 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PM Dashboard Development Patterns
This skill guides development on the PM Dashboard plugin codebase with established patterns, architecture, and testing requirements.
Architecture Overview
Database Layer (SQLite + WAL)
↓
Tools Layer (MCP tools via tools_lib/)
↓
MCP Server (FastMCP integration)
↓
API Layer (FastAPI + WebSocket)
↓
Frontend (Static HTML/CSS/JS)
For detailed architecture, see ARCHITECTURE.md.
Quick Start Commands
# Activate virtual environment
source activate.sh
# Install dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest test/project_manager/ -v
# Run specific test file
python -m pytest test/project_manager/test_database.py -v
# Type checking
mypy src/
# Code formatting
black .
# Lint code
ruff check .
# Start API server
python -m task_manager.api
# Start MCP server
python -m task_manager.mcp_server
Project Structure
src/task_manager/
├── database/
│ ├── connection.py # Database initialization & schema
│ ├── tasks.py # Task CRUD operations
│ ├── locks.py # Atomic task locking
│ └── projects.py # Project/epic operations
├── tools_lib/
│ ├── base.py # BaseTool class
│ ├── tasks.py # Task management tools
│ ├── knowledge.py # Knowledge management tools
│ └── assumptions.py # RA tag tools
├── routers/
│ ├── board.py # Board state endpoint
│ ├── tasks.py # Task endpoints
│ ├── projects.py # Project endpoints
│ └── knowledge.py # Knowledge endpoints
├── api.py # FastAPI app + WebSocket manager
├── mcp_server.py # FastMCP server
├── models.py # Pydantic models
└── static/ # Frontend assets
Adding New MCP Tools
See ADDING_MCP_TOOLS.md for complete step-by-step guide.
Quick Pattern
- Create tool class in
tools_lib/:
from .base import BaseTool
class MyNewTool(BaseTool):
async def apply(self, param1: str, param2: Optional[int] = None) -> str:
"""Tool description."""
try:
# Implementation
return self._format_success_response(
"Operation successful",
result_data=data
)
except Exception as e:
return self._format_error_response("Operation failed", error_details=str(e))
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · 370 lines · 47 tokens per session scan A 49b3a13ce511
pm-dashboard-dev is a skill published in the GitHub repository dtannen/pm (0 stars, last pushed 10mo ago), licensed MIT. It adds 47 tokens to every session and 2,137 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 skills, from other repositories
timeline-creator
Create HTML timelines and project roadmaps with Gantt charts, milestones, phase groupings, and progress indicators. Use when users request timelines, roadmaps, Gantt charts, project schedules, or milestone visualizations.
bootstrap-prd
Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.
glab-issue
Create, view, update, and manage GitLab issues. Use when working with issue tracking, bug reports, feature requests, or task management. Operations include creating issues, listing with filters, viewing details, adding comments/notes, updating labels/assignees/milestones, closing/reopening, and board management.…
sales-ops
Set up and run Airtable-based sales operations and CRM workflows — pipeline management, account and renewal management, deal desk, RFP / tender pipelines, partner CRMs, sales forecasting, vertical CRMs (real estate, mortgage, brokerage, capital markets, public works, nonprofit), and AI-native lean stacks…
jira
Search and manage Jira issues using JQL queries, create/update tickets, and manage workflows. Use when asked to find Jira tickets, check the backlog, manage sprints, track bugs, or work with Atlassian project management.
github
Use this skill when Enoch needs to coordinate work with GitHub: branches, pull requests, issues, reviews, comments, checks, and merges.