From maestro
Continuous project monitoring via CronCreate. Schedules periodic checks for tests, type errors, and performance regressions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/maestro:watchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Schedules periodic health checks for the project using CronCreate. Catches regressions early by running the test suite, type checker, and performance audits on a configurable schedule.
Schedules periodic health checks for the project using CronCreate. Catches regressions early by running the test suite, type checker, and performance audits on a configurable schedule.
Read watch settings from .maestro/config.yaml:
watch:
enabled: true
frequency: "*/30 * * * *" # every 30 minutes during active development
checks:
tests: true
typecheck: true
lint: false # optional, can be noisy
lighthouse: false # requires dev server
severity_threshold: error # error | warning | info
auto_fix: false # create fix stories automatically
log_file: .maestro/watch.log
If the watch section does not exist in config.yaml, use these defaults:
When the watch skill is invoked:
.maestro/config.yaml for watch settings.maestro/dna.md for the correct test and typecheck commandsSchedule: [frequency from config]
Task: Run project health checks (tests, typecheck)
Commands:
- [test command from DNA]
- [typecheck command from DNA]
- [lint command if enabled]
Each scheduled run:
Execute each enabled check in sequence:
# Tests
npm test 2>&1
# TypeScript
npx tsc --noEmit 2>&1
# Lint (if enabled)
npm run lint 2>&1
For each check, determine:
Append to .maestro/watch.log:
[ISO timestamp] CHECK RESULTS
tests: PASS (42 passing, 0 failing)
typecheck: FAIL (3 errors in src/components/Widget.tsx)
lint: SKIP (disabled)
If any check fails and severity meets the threshold:
If auto_fix: false (default):
.maestro/watch.log.maestro/notes.md:
## [timestamp] — Watch Alert
**Intent:** urgent-fix
**Message:** TypeScript check failed: 3 errors in src/components/Widget.tsx
**Action taken:** Logged to watch.log. Manual fix required.
If auto_fix: true:
---
id: WATCH-FIX-[timestamp]
slug: fix-[check-type]-[short-description]
title: "Fix: [check type] failure — [short description]"
model_recommendation: sonnet
type: infrastructure
---
## Acceptance Criteria
1. [The check command] passes cleanly
## Context for Implementer
- Error output: [exact error]
- Affected files: [parsed from error output]
The watch skill responds to these subcommands:
| Command | Action |
|---|---|
watch start | Schedule checks based on config |
watch stop | Cancel scheduled checks |
watch status | Show current schedule, last run results, and log tail |
watch run | Run all checks immediately (one-shot, no scheduling) |
watch log | Show the last 20 entries from .maestro/watch.log |
During an active Opus session, watch results are processed by the conversation-channel:
information notes if the failure is in code not touched by the current milestone, or urgent-fix if the failure is in code the current milestone modifiednpx claudepluginhub adilbilal/maestro-opusGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.