personal-lifecycle-tracker / on-call-engineer / autonomy-policy.json
autonomy-policy.json
Raw
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "On-Call Autonomy Policy",
  "description": "Code outside the model enforcing permission boundaries for autonomous responder actions.",
  "policy_version": "1.0.0",
  "autonomy_levels": {
    "LEVEL_1_AUTO_EXECUTE": "Safe, reversible operational actions executed without human gatekeeping",
    "LEVEL_2_HUMAN_APPROVAL": "Code modifications or schema updates requiring human sign-off",
    "LEVEL_3_ESCALATE": "Unallowlisted, high-risk, or destructive actions blocked immediately"
  },
  "allowlisted_actions": [
    {
      "action_name": "rollback",
      "autonomy_level": "LEVEL_1_AUTO_EXECUTE",
      "allowed_commands": [
        "docker compose -f docker-compose.prod.yml up -d --no-build",
        "git checkout HEAD~1"
      ],
      "reversible": true,
      "max_executions_per_incident": 1
    },
    {
      "action_name": "restart_service",
      "autonomy_level": "LEVEL_1_AUTO_EXECUTE",
      "allowed_commands": [
        "docker compose restart backend",
        "docker compose restart frontend"
      ],
      "reversible": true,
      "max_executions_per_incident": 2
    },
    {
      "action_name": "rerun_ci_job",
      "autonomy_level": "LEVEL_1_AUTO_EXECUTE",
      "allowed_commands": [
        "gh run rerun {run_id} --failed"
      ],
      "reversible": true,
      "max_executions_per_incident": 2
    },
    {
      "action_name": "apply_patch",
      "autonomy_level": "LEVEL_2_HUMAN_APPROVAL",
      "allowed_commands": [
        "git apply /tmp/patch.diff",
        "git cherry-pick {commit_sha}"
      ],
      "requires_human_confirmation": true
    },
    {
      "action_name": "fix_ci_workflow",
      "autonomy_level": "LEVEL_2_HUMAN_APPROVAL",
      "allowed_commands": [
        "act -n -W .github/workflows/ci.yml",
        "make ci-validate"
      ],
      "requires_human_confirmation": true
    },
    {
      "action_name": "scale_deployment",
      "autonomy_level": "LEVEL_2_HUMAN_APPROVAL",
      "allowed_commands": [
        "docker compose up --scale backend=2 -d"
      ],
      "requires_human_confirmation": true
    }
  ],
  "forbidden_patterns": [
    "rm -rf",
    "DROP TABLE",
    "DROP DATABASE",
    "TRUNCATE",
    "DELETE FROM .* WHERE 1=1",
    "docker compose down -v",
    "--no-verify",
    "semgrep.*--disable",
    "npm audit.*--audit-level=none"
  ],
  "default_fallback": "LEVEL_3_ESCALATE"
}