원클릭으로
maestro-agent-base
// Base procedures for all mission agents: startup, cleanup, and handoff. REQUIRED skill for all mission feature implementations.
// Base procedures for all mission agents: startup, cleanup, and handoff. REQUIRED skill for all mission feature implementations.
Set up a repository as a long-running agent harness. Use when a project needs Maestro-owned context docs, evidence-first onboarding, root AGENTS.md guidance, language style guides, host-runtime session hooks, drift detection, or a setup report before implementation work begins.
Read handoff envelopes left by previous agents at the start of a session or when picking up a task in a maestro-initialized project. Use whenever you suspect a prior session left context behind — task was claimed by another agent, a block was raised, or a new shell is taking over an unfinished workflow.
Use at the start of any multi-step work in a maestro-initialized project, and throughout task execution. Claim one task at a time, iterate through the verify → block / ship loop. `claim` and `block` automatically emit a handoff envelope to `.maestro/handoffs/<hnd-...>.json`; see `maestro-handoff` for the read side. Auto-invokes whenever a `.maestro/` directory is present in the current working tree or an ancestor.
The canonical verification protocol for any task in a maestro project. Documents witness levels, Trust Verifier scope, ProofMap, plan-check, verdict semantics, cost-budget monitoring, AI Reviewer protocol (Rule 1 veto-only), and threat-model production. Cross-referenced by `maestro-task` and `maestro-mission`. Read this skill when starting a non-trivial task or before declaring completion.
Interview-driven product-spec authoring for maestro. Runs the grill protocol from ADR-0016 — walks the decision tree one branch at a time, challenges user language against CONTEXT.md and committed ADRs, cross-references claims against code when verifiable, updates CONTEXT.md inline as terms resolve, and offers ADRs sparingly. Produces a committed product-spec markdown at `.maestro/specs/<slug>.md` ready for `maestro task from-spec`. Use when the user wants to author or refine a spec before planning or implementation.
Turn an approved heavy-mode product-spec into an executable mission with child tasks. Use after `maestro-design` has produced a `mode: heavy` spec, or when a single task has grown big enough that it should be decomposed into a multi-PR batch. Persists the mission to `.maestro/missions/missions.jsonl` and the child tasks to `.maestro/tasks/tasks.jsonl`.
| name | maestro:agent-base |
| description | Base procedures for all mission agents: startup, cleanup, and handoff. REQUIRED skill for all mission feature implementations. |
| argument-hint | [--no-baseline] |
You are an agent in a multi-agent mission. This skill defines the procedures that ALL agents must follow. After completing startup, you'll invoke your specific agent skill for the actual work procedure.
Your feature has been pre-assigned by the system and is shown in your bootstrap message. The feature includes:
id - Feature identifierdescription - What to buildagentType - The skill you must invoke for the work procedureexpectedBehavior - What success looks likeverificationSteps - How to verify your workfulfills - Validation contract assertion IDs (if present)Your feature's fulfills field lists validation contract assertions that must be true after your work. Read these assertions carefully before starting — they define what "done" means for your feature. Before completing, ensure that each assertion would pass. If you realize an assertion cannot be fulfilled given your current scope, flag it in your handoff.
.maestro/bootstrap/ is the project bootstrap layerDo not remove or corrupt .maestro/bootstrap/ while a project relies on Maestro bootstrap assets. This subtree contains the committed project-local setup files agents depend on.
The .maestro/bootstrap/ subtree should be committed to the repository while .maestro/missions/, .maestro/sessions/, and other runtime state remain ignored.
You MAY read and update these files:
.maestro/bootstrap/services.yaml - Add new services/commands if discovered during work.maestro/bootstrap/library/ - Add knowledge for future agentsPERFORMANCE TIP: Parallelize your startup by reading all context files in a single tool call batch:
mission.md - The accepted mission proposal.maestro/AGENTS.md - Guidance from orchestrator/bootstrap (includes Mission Boundaries)validation-contract.md - If your feature has fulfills, read those assertions.maestro/bootstrap/services.yaml - Commands and services (single source of truth)features.json - Feature list and status.maestro/bootstrap/init.sh if it exists (one-time setup, idempotent)Run commands.test from .maestro/bootstrap/services.yaml. This verifies the mission is in a healthy state before you start.
CRITICAL: Do NOT pipe validator output through | tail, | head, or similar. Pipes can mask failing exit codes.
If baseline fails:
EndFeatureRun with returnToOrchestrator: true and explain the broken baselineView all features in your feature's milestone:
jq --arg m "YOUR_MILESTONE" '.features | map(select(.milestone == $m)) | map({id, description, status})' features.json
Refer to .maestro/bootstrap/library/ for knowledge from previous agents (organized by topic).
Start any services you'll need from .maestro/bootstrap/services.yaml:
depends_on and start dependencies firststart commandhealthcheck to passAfter completing startup, invoke the skill specified in your feature's agentType field.
If the skill does not exist (Skill tool returns error), do NOT proceed. Return to orchestrator via EndFeatureRun with returnToOrchestrator: true.
That skill will guide you through the actual work procedure.
All validators from .maestro/bootstrap/services.yaml must pass before handoff.
Scope note: your responsibility here is the per-feature baseline only. Milestone-level validation (code scrutiny and user-flow testing) is run separately by the conductor via maestro:scrutiny-validator and maestro:user-testing-validator after all features in the milestone are complete. Do not attempt to run those skills yourself.
stop commandsIf you discovered reusable services/commands, ADD them to .maestro/bootstrap/services.yaml.
When completing work, your handoff via EndFeatureRun must include:
{
successState: "success" | "partial" | "failure",
returnToOrchestrator: boolean,
commitId: string, // required if success
validatorsPassed: boolean, // required true if success
handoff: {
salientSummary: string, // 1-4 sentences, under 500 chars
whatWasImplemented: string, // min 50 chars
whatWasLeftUndone: string, // empty if complete
verification: {
commandsRun: Array<{
command: string,
exitCode: number,
observation: string // be specific!
}>,
interactiveChecks?: Array<{
action: string,
observed: string
}>
},
tests: {
added: Array<{
file: string,
cases: Array<{
name: string,
verifies: string
}>
}>,
coverage: string
},
discoveredIssues: Array<{
severity: "blocking" | "non_blocking" | "suggestion",
description: string,
suggestedFix?: string
}>,
skillFeedback?: {
followedProcedure: boolean,
deviations: Array<{
step: string,
whatIDidInstead: string,
why: string
}>
}
}
}
Set returnToOrchestrator: true when:
.maestro/bootstrap/services.yaml is the single source of truth for all commands.
Using the manifest:
start, stop, healthcheck commands exactly as declaredcommands.test)Starting services:
depends_on and start dependencies firststart command from the manifesthealthcheck to passCRITICAL: Never Kill User Processes
FORBIDDEN:
pkill node, killall, kill by process name.maestro/bootstrap/services.yamlALLOWED:
stop commandnon_blocking with "Pre-existing:" prefix