Agents¶
BrewmasterAgent¶
File: morning_agents/agents/brewmaster.py
MCP Server: homebrew-mcp (local Bun TypeScript server)
Display name: 🍺 Brewmaster
Checks Homebrew package health. Calls two MCP tools concurrently:
list_outdated: returns packages with current/latest versionsget_doctor_status: returns warning strings
Passes results to Claude for severity assessment. Classifies version jumps (patch/minor/major) via semver.classify().
Finding metadata keys:
| Key | Description |
|---|---|
tool_id |
Package name (lowercase) or "brew_doctor" |
package |
Package name |
current_version |
Installed version |
latest_version |
Latest available |
version_jump |
patch / minor / major / unknown |
source |
"homebrew" or "brew_doctor" |
DevEnvAgent¶
File: morning_agents/agents/devenv.py
MCP Server: devenv-mcp (local Bun TypeScript server)
Display name: 🛠️ DevEnv
Checks dev tool version freshness. Calls four MCP tools concurrently:
check_xcode_versioncheck_vscode_versioncheck_node_versioncheck_python_version
Feeds results to Claude with tool_id hints per tool. Uses semver.classify() as authoritative override over Claude's jump classification.
Finding metadata keys:
| Key | Description |
|---|---|
tool_id |
xcode / vscode / node / python |
tool |
Human display name |
installed_version |
Installed version |
latest_version |
Latest available |
version_jump |
patch / minor / major / current / unknown / not_installed |
source |
"devenv" |
PRQueueAgent¶
File: morning_agents/agents/pr_queue.py
MCP Server: github-mcp (github-mcp-server binary)
Display name: 🔀 PR Queue
Surfaces GitHub PRs that need attention. Calls search_pull_requests twice concurrently:
- query
is:pr is:open review-requested:<user>(PRs awaiting your review) - query
is:pr is:open author:<user>(your authored open PRs)
Enriches PR timestamps with relative time strings ("3 days ago") via time_context.relative_time(). Passes enriched data to Claude for priority assessment.
Finding metadata keys:
| Key | Description |
|---|---|
tool_id |
"github_pr" |
pr_id |
PR number |
repo |
owner/repo |
url |
GitHub URL |
source |
"github" |
CrossRefAgent¶
File: morning_agents/agents/cross_ref.py
MCP Server: none
Display name: 🔗 Cross-Reference
Depth: 1 — depends_on = ["brewmaster", "devenv", "pr_queue"]
Runs after the three depth-0 agents complete. Receives their results as upstream and applies correlation rules from skills/cross_reference.py to find relationships across agents (e.g. a Node.js upgrade finding coinciding with Node-related open PRs).
Produces Finding objects with category = "cross_reference". Does not call the Claude API or any MCP tools — pure Python logic over upstream findings.
Finding metadata keys:
| Key | Description |
|---|---|
source_findings |
List of finding IDs that triggered this cross-reference |
source_agents |
List of agent names involved |