{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "task": {
      "default": {
        "providers": {
          "enabled": [
            "local"
          ],
          "default": "local"
        },
        "github": {
          "closeOnSuccess": false,
          "commentOnPrOpen": false
        },
        "linear": {
          "states": {
            "inProgress": "In Progress"
          }
        }
      },
      "type": "object",
      "properties": {
        "providers": {
          "default": {
            "enabled": [
              "local"
            ],
            "default": "local"
          },
          "type": "object",
          "properties": {
            "enabled": {
              "default": [
                "local"
              ],
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "linear",
                  "github",
                  "local"
                ]
              }
            },
            "default": {
              "default": "local",
              "type": "string",
              "enum": [
                "linear",
                "github",
                "local"
              ]
            }
          },
          "required": [
            "enabled",
            "default"
          ],
          "additionalProperties": false
        },
        "github": {
          "default": {
            "closeOnSuccess": false,
            "commentOnPrOpen": false
          },
          "type": "object",
          "properties": {
            "closeOnSuccess": {
              "default": false,
              "type": "boolean"
            },
            "commentOnPrOpen": {
              "default": false,
              "type": "boolean"
            },
            "labelMapping": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "closeOnSuccess",
            "commentOnPrOpen"
          ],
          "additionalProperties": false
        },
        "linear": {
          "default": {
            "states": {
              "inProgress": "In Progress"
            }
          },
          "type": "object",
          "properties": {
            "states": {
              "default": {
                "inProgress": "In Progress"
              },
              "type": "object",
              "properties": {
                "inProgress": {
                  "default": "In Progress",
                  "type": "string"
                },
                "inReview": {
                  "type": "string"
                },
                "done": {
                  "type": "string"
                }
              },
              "required": [
                "inProgress"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "states"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "providers",
        "github",
        "linear"
      ],
      "additionalProperties": false
    },
    "repo": {
      "default": {
        "defaultBranch": "main"
      },
      "type": "object",
      "properties": {
        "defaultBranch": {
          "default": "main",
          "type": "string"
        }
      },
      "required": [
        "defaultBranch"
      ],
      "additionalProperties": false
    },
    "linear": {
      "default": {},
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "github": {
      "default": {
        "reviewers": [],
        "requestCopilot": true,
        "review": {
          "requireApproval": false,
          "requiredApprovals": 1,
          "pollIntervalMs": 15000,
          "timeoutMs": 900000
        }
      },
      "type": "object",
      "properties": {
        "owner": {
          "type": "string"
        },
        "repo": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "reviewers": {
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requestCopilot": {
          "default": true,
          "type": "boolean"
        },
        "baseBranch": {
          "type": "string"
        },
        "review": {
          "default": {
            "requireApproval": false,
            "requiredApprovals": 1,
            "pollIntervalMs": 15000,
            "timeoutMs": 900000
          },
          "type": "object",
          "properties": {
            "requireApproval": {
              "default": false,
              "type": "boolean"
            },
            "requiredApprovals": {
              "default": 1,
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "pollIntervalMs": {
              "default": 15000,
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "timeoutMs": {
              "default": 900000,
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "requireApproval",
            "requiredApprovals",
            "pollIntervalMs",
            "timeoutMs"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "reviewers",
        "requestCopilot",
        "review"
      ],
      "additionalProperties": false
    },
    "verify": {
      "default": {
        "commands": [],
        "failFast": true
      },
      "type": "object",
      "properties": {
        "commands": {
          "default": [],
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "cmd": {
                "type": "string",
                "minLength": 1
              },
              "args": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "name",
              "cmd"
            ],
            "additionalProperties": false
          }
        },
        "failFast": {
          "default": true,
          "type": "boolean"
        },
        "shell": {
          "type": "string"
        }
      },
      "required": [
        "commands",
        "failFast"
      ],
      "additionalProperties": false
    },
    "naming": {
      "default": {
        "branchPrefix": "feature/",
        "worktreeDir": ".worktrees"
      },
      "type": "object",
      "properties": {
        "branchPrefix": {
          "default": "feature/",
          "type": "string"
        },
        "worktreeDir": {
          "default": ".worktrees",
          "type": "string"
        }
      },
      "required": [
        "branchPrefix",
        "worktreeDir"
      ],
      "additionalProperties": false
    },
    "features": {
      "default": {
        "autoMode": false,
        "cognitionDefaults": false
      },
      "type": "object",
      "properties": {
        "autoMode": {
          "default": false,
          "type": "boolean"
        },
        "cognitionDefaults": {
          "default": false,
          "type": "boolean"
        }
      },
      "required": [
        "autoMode",
        "cognitionDefaults"
      ],
      "additionalProperties": false
    },
    "state": {
      "default": {
        "mode": "global"
      },
      "type": "object",
      "properties": {
        "mode": {
          "default": "global",
          "type": "string",
          "enum": [
            "global",
            "repo"
          ]
        },
        "root": {
          "type": "string"
        }
      },
      "required": [
        "mode"
      ],
      "additionalProperties": false
    },
    "ui": {
      "default": {
        "worktrees": {
          "staleAfterDays": 7
        }
      },
      "type": "object",
      "properties": {
        "worktrees": {
          "default": {
            "staleAfterDays": 7
          },
          "type": "object",
          "properties": {
            "staleAfterDays": {
              "default": 7,
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "staleAfterDays"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "worktrees"
      ],
      "additionalProperties": false
    },
    "ai": {
      "default": {
        "models": {},
        "budgets": {
          "default": {},
          "plan": {},
          "execute": {},
          "review": {},
          "verify": {},
          "pr": {},
          "recovery": {}
        },
        "toolLimits": {},
        "cache": {
          "enabled": true
        },
        "sessions": {
          "persist": false
        },
        "cognition": {
          "provider": "anthropic",
          "fallbackProviders": [],
          "modelByTask": {}
        },
        "conversation": {
          "pruning": {
            "maxTurns": 80,
            "maxBytes": 200000,
            "summarizeAfterTurns": 30,
            "keepLastTurns": 20
          }
        }
      },
      "type": "object",
      "properties": {
        "models": {
          "default": {},
          "type": "object",
          "properties": {
            "default": {
              "type": "string"
            },
            "plan": {
              "type": "string"
            },
            "execute": {
              "type": "string"
            },
            "review": {
              "type": "string"
            },
            "verify": {
              "type": "string"
            },
            "pr": {
              "type": "string"
            },
            "recovery": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "budgets": {
          "default": {
            "default": {},
            "plan": {},
            "execute": {},
            "review": {},
            "verify": {},
            "pr": {},
            "recovery": {}
          },
          "type": "object",
          "properties": {
            "default": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "plan": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "execute": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "review": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "verify": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "pr": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            },
            "recovery": {
              "default": {},
              "type": "object",
              "properties": {
                "maxTurns": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBudgetUsd": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "maxThinkingTokens": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "default",
            "plan",
            "execute",
            "review",
            "verify",
            "pr",
            "recovery"
          ],
          "additionalProperties": false
        },
        "toolLimits": {
          "default": {},
          "type": "object",
          "properties": {
            "maxCalls": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "maxDurationMs": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "additionalProperties": false
        },
        "cache": {
          "default": {
            "enabled": true
          },
          "type": "object",
          "properties": {
            "enabled": {
              "default": true,
              "type": "boolean"
            }
          },
          "required": [
            "enabled"
          ],
          "additionalProperties": false
        },
        "sessions": {
          "default": {
            "persist": false
          },
          "type": "object",
          "properties": {
            "persist": {
              "default": false,
              "type": "boolean"
            }
          },
          "required": [
            "persist"
          ],
          "additionalProperties": false
        },
        "cognition": {
          "default": {
            "provider": "anthropic",
            "fallbackProviders": [],
            "modelByTask": {}
          },
          "type": "object",
          "properties": {
            "provider": {
              "default": "anthropic",
              "type": "string",
              "enum": [
                "anthropic",
                "openai",
                "gemini"
              ]
            },
            "fallbackProviders": {
              "default": [],
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "anthropic",
                  "openai",
                  "gemini"
                ]
              }
            },
            "modelByTask": {
              "default": {},
              "type": "object",
              "properties": {
                "kickoffPrompt": {
                  "type": "string"
                },
                "initDefaults": {
                  "type": "string"
                },
                "plan": {
                  "type": "string"
                },
                "reviewKickoff": {
                  "type": "string"
                },
                "reviewClassify": {
                  "type": "string"
                },
                "reviewCluster": {
                  "type": "string"
                },
                "localReview": {
                  "type": "string"
                },
                "ciTriage": {
                  "type": "string"
                },
                "verificationSummary": {
                  "type": "string"
                },
                "recovery": {
                  "type": "string"
                },
                "prDraft": {
                  "type": "string"
                },
                "learningNotes": {
                  "type": "string"
                },
                "conversationSummary": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "provider",
            "fallbackProviders",
            "modelByTask"
          ],
          "additionalProperties": false
        },
        "conversation": {
          "default": {
            "pruning": {
              "maxTurns": 80,
              "maxBytes": 200000,
              "summarizeAfterTurns": 30,
              "keepLastTurns": 20
            }
          },
          "type": "object",
          "properties": {
            "pruning": {
              "default": {
                "maxTurns": 80,
                "maxBytes": 200000,
                "summarizeAfterTurns": 30,
                "keepLastTurns": 20
              },
              "type": "object",
              "properties": {
                "maxTurns": {
                  "default": 80,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "maxBytes": {
                  "default": 200000,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "summarizeAfterTurns": {
                  "default": 30,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "keepLastTurns": {
                  "default": 20,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "maxTurns",
                "maxBytes",
                "summarizeAfterTurns",
                "keepLastTurns"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "pruning"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "models",
        "budgets",
        "toolLimits",
        "cache",
        "sessions",
        "cognition",
        "conversation"
      ],
      "additionalProperties": false
    },
    "review": {
      "default": {
        "localGate": {
          "enabled": true,
          "blockPrOnFail": true,
          "runWhen": "beforeReviewRequest",
          "requireVerifyBeforePr": true,
          "thresholds": {
            "filesChangedWarn": 20,
            "linesChangedWarn": 1500
          },
          "severities": {},
          "allowConsoleLogPatterns": []
        },
        "aiReviewer": {
          "enabled": true
        }
      },
      "type": "object",
      "properties": {
        "maxIterations": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "localGate": {
          "default": {
            "enabled": true,
            "blockPrOnFail": true,
            "runWhen": "beforeReviewRequest",
            "requireVerifyBeforePr": true,
            "thresholds": {
              "filesChangedWarn": 20,
              "linesChangedWarn": 1500
            },
            "severities": {},
            "allowConsoleLogPatterns": []
          },
          "type": "object",
          "properties": {
            "enabled": {
              "default": true,
              "type": "boolean"
            },
            "blockPrOnFail": {
              "default": true,
              "type": "boolean"
            },
            "runWhen": {
              "default": "beforeReviewRequest",
              "type": "string",
              "enum": [
                "beforePrOpen",
                "beforeReviewRequest",
                "both"
              ]
            },
            "requireVerifyBeforePr": {
              "default": true,
              "type": "boolean"
            },
            "thresholds": {
              "default": {
                "filesChangedWarn": 20,
                "linesChangedWarn": 1500
              },
              "type": "object",
              "properties": {
                "filesChangedWarn": {
                  "default": 20,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "linesChangedWarn": {
                  "default": 1500,
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "filesChangedWarn",
                "linesChangedWarn"
              ],
              "additionalProperties": false
            },
            "severities": {
              "default": {},
              "type": "object",
              "properties": {
                "diffstat": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "diffstatLines": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "configFiles": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "dependencyFiles": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "lockfile": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "envFile": {
                  "default": "blocker",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "consoleLog": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "debugger": {
                  "default": "blocker",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "todo": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "diffCheck": {
                  "default": "blocker",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "verifyFailed": {
                  "default": "blocker",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "verifyMissing": {
                  "default": "blocker",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "migration": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                },
                "branchNaming": {
                  "default": "warn",
                  "type": "string",
                  "enum": [
                    "blocker",
                    "warn",
                    "info"
                  ]
                }
              },
              "additionalProperties": false
            },
            "allowConsoleLogPatterns": {
              "default": [],
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "enabled",
            "blockPrOnFail",
            "runWhen",
            "requireVerifyBeforePr",
            "thresholds",
            "severities",
            "allowConsoleLogPatterns"
          ],
          "additionalProperties": false
        },
        "aiReviewer": {
          "default": {
            "enabled": true
          },
          "type": "object",
          "properties": {
            "enabled": {
              "default": true,
              "type": "boolean"
            }
          },
          "required": [
            "enabled"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "localGate",
        "aiReviewer"
      ],
      "additionalProperties": false
    },
    "learning": {
      "default": {
        "enabled": true,
        "mode": "artifact",
        "ai": {
          "enabled": false
        },
        "targets": {
          "rules": "docs/rules.md",
          "skills": "docs/skills.md",
          "docs": "docs/learned.md"
        }
      },
      "type": "object",
      "properties": {
        "enabled": {
          "default": true,
          "type": "boolean"
        },
        "mode": {
          "default": "artifact",
          "type": "string",
          "enum": [
            "artifact",
            "apply"
          ]
        },
        "ai": {
          "default": {
            "enabled": false
          },
          "type": "object",
          "properties": {
            "enabled": {
              "default": false,
              "type": "boolean"
            }
          },
          "required": [
            "enabled"
          ],
          "additionalProperties": false
        },
        "targets": {
          "default": {
            "rules": "docs/rules.md",
            "skills": "docs/skills.md",
            "docs": "docs/learned.md"
          },
          "type": "object",
          "properties": {
            "rules": {
              "default": "docs/rules.md",
              "type": "string"
            },
            "skills": {
              "default": "docs/skills.md",
              "type": "string"
            },
            "docs": {
              "default": "docs/learned.md",
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "enabled",
        "mode",
        "ai",
        "targets"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "task",
    "repo",
    "linear",
    "github",
    "verify",
    "naming",
    "features",
    "state",
    "ui",
    "ai",
    "review",
    "learning"
  ],
  "additionalProperties": false
}