Collection of utility scripts and hooks for agent workspace management, including appointment extraction, file formatting, file protection, session initialization, role validation, AI news fetching, and audit checks.
This is a sample/reference architecture, not a production MCP server. Tools are defined as Python CLI scripts with minimal schema exposure. Most tool definitions are inferred from docstrings and CLI argument parsing rather than explicit MCP registration. Input schemas are either missing or only partially visible (e.g., appointments.py shows argparse definitions, not JSON Schema). Descriptions vary widely: some are detailed (appointments.py), others are bare (cmd_stats has empty input {}). No output schemas documented. Error handling is basic (exit codes, stderr messages). Security patterns like secret injection and permission gates are absent. The server uses STDIO transport only, which is not remotely accessible.
PostToolUse hook that formats edited files using language-specific formatters (ruff, prettier) to maintain code style consistency
Verify that backup-restic logs exist and are recent (within 30 days, warn if >7 days)
Verify that audit canary fixture files exist and contain expected trigger patterns
Verify that health skill has run recently (within 30 days) by checking health_history.jsonl modification time
Verify that run-scheduled-skill.ps1 wrapper contains --max-budget-usd flag for heartbeat cost control
Verify that heartbeat preflight_gate.py exists and state file is present
No explicit MCP tool registration visible. Tools are inferred from Python CLI scripts and docstrings. Tool definitions lack formal JSON Schema input/output declarations required by MCP spec.
Nine audit check tools (check_*) have empty input schemas ({}). These tools provide no parameter descriptions or type information.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Verify that run-scheduled-skill.ps1 wrapper contains ModelMap and heartbeat-monitor configuration
Verify that public and private META_ARCHITECTURE.md files are synchronized (within 14 days, same section count)
Verify that audit module rotation state file exists and contains valid group value (G1, G2, G3, or G4)
Verify that token_history.jsonl exists and is current (within 8 days)
Fetch curated AI news feeds, deduplicate against SQLite history, filter to last 48 hours, and emit JSON with fresh items
Record token usage and duration cost for most recent (or all) upgrade-audit run(s) into audit_cost.jsonl
Print AI news database statistics including row count, latest seen_at timestamp, and per-source breakdown
Print per-run cost trend table over specified weeks window with median/latest comparison
Generate the source-token string embedded in event descriptions for deduplication (format: [source: gmail:<messageId>])
Fetch and parse RSS/Atom feed, extracting items with title, link, publication date, and snippet
Format a validated appointment dict into a payload ready for google-calendar MCP create-event tool, including dedup token in description
Extract cost record (tokens, duration, status) from a single upgrade-audit log file
PreToolUse hook that blocks Edit/Write operations on sensitive files matching protected patterns (.env, *.pem, *.key, credentials, finance/, medical-records/, etc.)
SessionStart hook that injects session context including current date, git branch status, and task file excerpt into opening context
Validate a JSON file of appointments against required schema (title, start, end, source_msg_id) and ISO8601 date format constraints
Validate that a project role binding includes a canonical role reference (@roles/<name>.md) and a context file (CONTEXT.md or health_profile.md)
Validate a canonical role file frontmatter schema (name, role_version, description, category, default_model, tools, requires_context, tags) and required body sections
Tool naming inconsistency: cmd_fetch, cmd_stats, cmd_log, cmd_trend use 'cmd_' prefix (generic action verb). Should use specific verbs: fetch_ai_news, get_news_stats, record_audit_cost, get_cost_trend. Generic names reduce LLM clarity.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., validate_appointment returns errors list, but this is not formally declared.
No error handling guidance. Tools return exit codes and stderr messages, but do not guide LLMs on recovery (e.g., 'If validation fails, check field names against schema'). Error responses lack actionable next steps.