Problem
Made strictly decodes .made.yml, but syntactic validity is not enough. The effective configuration can still advertise unsupported agents/fields or reach the pipeline with combinations guaranteed to fail later. Capabilities and doctor currently under-report the information Consigliere needs to determine operational compatibility, and gate initialization still requires hidden low-level arguments for ordinary use.
Required implementation
Semantic config preflight
Validate the complete trusted/effective configuration before any pipeline stage executes. Reject:
- unsupported agent
- Review enabled without a supported agent
- Test enabled without a test command
- required CI combined with a CI-disable flag
- required stage explicitly disabled
- unsupported multi-agent
agents configuration
disable_project_settings when it cannot be enforced
- invalid or inaccessible evidence publication
- unsafe evidence paths
- contradictory or invalid timeout combinations
- pushed executable policy not authorized by trusted config
- any retained field that has no real behavioral owner
Remove or consolidate duplicate concepts such as no_ci versus ci.required unless both are necessary and documented.
Reject .made.yml symlinks and other non-regular-file/path-race tricks. Every retained field must affect real behavior and have a test.
Capabilities
Expand made capabilities --json to expose at least:
{
"protocol_version": 1,
"status_schema_version": 3,
"config_schema_version": 1,
"supported_agents": ["codex"],
"features": {
"high_level_submit": true,
"exact_status": true,
"batch_active_status": true,
"idempotent_cancel": true,
"stage_review_decision": true,
"merge_completion": true,
"durable_restart_state": true
}
}
Bump schema versions for incompatible changes and document compatibility policy.
Doctor
Expand made doctor --json and human output to validate:
- Made home ownership/mode
- daemon/socket/protocol
- status/config schema versions
- durable store health and migration state
- pending gate submissions
- torn/corrupt state and repair guidance
- gate initialization
- hook integrity and embedded Made binary path
- real remote and current default branch
- trusted
.made.yml
- semantic configuration
- supported agent binary/version/capabilities
- project-settings isolation capability
- reviewer containment availability
- GitHub authentication and check-query capability
- evidence publication health
- stale worktrees
- awaiting-action and interrupted/retryable runs
- required Consigliere compatibility range where configured
Human output must provide exact remediation commands.
Gate onboarding
Support the normal flow:
Infer target path, origin URL, and default branch. Retain explicit arguments for automation.
Acceptance criteria
- Guaranteed-invalid config fails before Intent or any agent/test command starts.
- Unsupported/decorative config fields are removed or rejected.
- Capabilities report all schema versions, supported agents, and required features truthfully.
- Doctor detects real operational incompatibility and provides actionable repair commands.
- Gate init works from a normal repository without requiring the user to manually pass path and origin URL.
- Symlink and path-race config attacks are rejected.
Required tests
- every semantic contradiction above
- supported/unsupported agent matrix
- required disabled stage
- trusted versus pushed executable-policy boundary
.made.yml symlink and replacement race
- capabilities schema compatibility
- doctor store/spool/gate/hook/agent/GitHub/evidence checks
- normal zero-argument gate init
- explicit automation arguments
- human remediation output
Problem
Made strictly decodes
.made.yml, but syntactic validity is not enough. The effective configuration can still advertise unsupported agents/fields or reach the pipeline with combinations guaranteed to fail later. Capabilities and doctor currently under-report the information Consigliere needs to determine operational compatibility, and gate initialization still requires hidden low-level arguments for ordinary use.Required implementation
Semantic config preflight
Validate the complete trusted/effective configuration before any pipeline stage executes. Reject:
agentsconfigurationdisable_project_settingswhen it cannot be enforcedRemove or consolidate duplicate concepts such as
no_civersusci.requiredunless both are necessary and documented.Reject
.made.ymlsymlinks and other non-regular-file/path-race tricks. Every retained field must affect real behavior and have a test.Capabilities
Expand
made capabilities --jsonto expose at least:{ "protocol_version": 1, "status_schema_version": 3, "config_schema_version": 1, "supported_agents": ["codex"], "features": { "high_level_submit": true, "exact_status": true, "batch_active_status": true, "idempotent_cancel": true, "stage_review_decision": true, "merge_completion": true, "durable_restart_state": true } }Bump schema versions for incompatible changes and document compatibility policy.
Doctor
Expand
made doctor --jsonand human output to validate:.made.ymlHuman output must provide exact remediation commands.
Gate onboarding
Support the normal flow:
Infer target path,
originURL, and default branch. Retain explicit arguments for automation.Acceptance criteria
Required tests
.made.ymlsymlink and replacement race