Repository variables

VariablePurpose
AGENT_HANDLEOverride the mention handle. Defaults to @sepo-agent.
AGENT_ENABLEDGlobal Sepo pause switch. Defaults to enabled when unset; set exactly false to skip packaged agent-*.yml workflows and generated agent-action template jobs before checkout or provider setup. Normal CI workflows such as test-scripts.yml are not governed by this flag.
AGENT_TRIAGE_MODEControls only explicit mentions that do not contain a slash command. Defaults to commands, which routes them directly to answer; set to agent to restore model-backed dispatch triage and inferred routes. Explicit slash routes, label routes, authorization checks, and AGENT_FOLLOWUP_INTENT_MODE behavior are unchanged. Other values fail an affected request with a configuration error.
AGENT_FOLLOWUP_INTENT_MODEControls unmentioned follow-up detection on new issue/PR comments, new PR review comments, and submitted PR reviews whose target already has the fixed agent label. Defaults to agent-label; set to disabled or false to require explicit mentions only. Implicit follow-ups can only become inline answer responses or be ignored.
AGENT_RUNS_ONJSON array string for runner selection. test-scripts.yml also falls back to this value after AGENT_TEST_RUNS_ON, so self-hosted labels here can route pull_request CI onto that runner. If you are using self-hosted runners, see Self-hosted GitHub Action runner.
AGENT_TEST_SCRIPTS_ENABLEDSet to true to enable automatic test-scripts.yml pull request checks outside the canonical self-evolving/repo source repository. Manual workflow dispatches remain available without this variable.
AGENT_TEST_RUNS_ONOptional JSON array string for test-scripts.yml runner selection. It falls back to AGENT_RUNS_ON, then ["ubuntu-latest"]. When automatic test-scripts.yml pull request checks are enabled, self-hosted runner labels here allow PR code to run on that runner.
AGENT_DEFAULT_PROVIDERDefault provider for single-agent runs and review synthesis: auto, codex, or claude. Explicit codex / claude choices are honored even without matching repository secrets, allowing self-hosted runners to use local provider authentication. auto chooses Codex when OPENAI_API_KEY is configured; otherwise it chooses Claude when either CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY is configured.
AGENT_MODEL_POLICYOptional JSON policy for model/reasoning defaults, provider-specific model settings, and route overrides. It supports default for non-provider defaults, providers.codex, providers.claude, and route_overrides; reviewer lanes stay fixed as the built-in Claude/Codex matrix, while review-synthesize uses this policy. Use AGENT_DEFAULT_PROVIDER for the global/default provider.
AGENT_DISPLAY_MODELOptional true / false toggle for appending compact run metadata to direct agent response comments that use the standard response posting helpers. When enabled, the footer order is provider | model | reasoning effort | runner; empty optional values are omitted, and an empty model is shown as default model. Defaults to true; set to false to hide the footer.
AGENT_SESSION_BUNDLE_MODEDefault session-bundle behavior: auto, always, or never. For the trade-offs behind this setting, see Session continuity.
AGENT_AUTOMATION_MODEOrchestrator decision mode. Defaults to agent for planner-backed orchestration validated by runtime policy. Set to heuristics for deterministic status-based routing with lower model cost. Compatibility alias: true = heuristics; explicit false or legacy disabled values fall back to heuristics for explicit /orchestrate chains. See Agent orchestrator.
AGENT_AUTOMATION_MAX_ROUNDSMaximum number of explicit orchestration handoff rounds. Defaults to 12.
AGENT_ALLOW_SELF_APPROVEOpt-in gate for agent-self-approve.yml. Defaults to false; when enabled, the workflow can approve only an open pull request whose current head matches trusted review synthesis provenance and the self-approval agent’s inspected head. Same-actor approval is still blocked unless AGENT_ALLOW_SELF_MERGE=true is also enabled for full self-governance mode.
AGENT_ALLOW_SELF_MERGEOpt-in gate for agent-self-merge.yml. Defaults to false; when enabled with self-approval, trusted current-head self-approved PRs can be marked ready and merged into their configured base with --match-head-commit. Together with AGENT_ALLOW_SELF_APPROVE=true, this allows Sepo-authored PRs to use an internal current-head self-approval status when GitHub review approval would be same-actor.
AGENT_COLLAPSE_OLD_REVIEWSGenerated comment cleanup toggle. Defaults to enabled; set to false to leave older AI review synthesis, rubrics review, fix-pr status, and orchestrator handoff comments visible instead of minimizing them as outdated.
AGENT_STATUS_LABEL_ENABLEDSet to true to apply the fixed agent status label to handled issues and pull requests.
AGENT_PROJECT_MANAGEMENT_ENABLEDSet to true to enable scheduled prompt-driven project-management runs. Manual runs can also use the workflow’s enabled input. Defaults off.
AGENT_PROJECT_MANAGEMENT_DRY_RUNDefaults project-management runs to dry-run mode. Defaults to true; set to false to apply validated managed-label plans when label application is enabled.
AGENT_PROJECT_MANAGEMENT_APPLY_LABELSDefaults to true, allowing the deterministic post-agent step to update managed priority/* and effort/* labels when dry-run mode is disabled. Set to false to keep label application disabled even with dry-run off.
AGENT_PROJECT_MANAGEMENT_POST_SUMMARYSet to true to have the final workflow step comment with the project-management summary on today’s existing Daily Summary discussion. If the discussion is missing, only the Actions step summary is written.
AGENT_PROJECT_MANAGEMENT_DISCUSSION_CATEGORYDiscussion category shared by Daily Summary discussion creation and project-management summary comments. Defaults to General.
AGENT_PROJECT_MANAGEMENT_LIMITMaximum open issues and pull requests for the agent to inspect per kind. Defaults to 100.
AGENT_SELF_IMPROVEMENT_ENABLEDSet to true to enable the disabled-by-default agent-self-improvement.yml workflow.
AGENT_AUTO_UPDATESet to false to disable scheduled agent-update.yml checks. Defaults to enabled; manual workflow dispatch remains available. The canonical self-evolving/repo source repository should use this when scheduled self-updates are not wanted.
AGENT_ACCESS_POLICYJSON trigger allowlist policy. See Trigger access policy.
AGENT_TASK_TIMEOUT_POLICYJSON policy for GitHub Actions step timeouts on agent tasks. Defaults to {"default_minutes":30} and accepts route overrides, for example {"default_minutes":30,"route_overrides":{"implement":60,"review":45}}. Values must be 1-360 minutes.
AGENT_PROGRESS_POLICYJSON policy controlling live progress comments and thumbs-down cancellation. Defaults to implement and fix-pr enabled, answer report-only, and other routes disabled. Modes are enabled, report-only, and disabled. Explicit orchestration context defaults to disabled and only honors the orchestration-specific orchestration_mode opt-in.
AGENT_MEMORY_POLICYJSON policy controlling which routes can read or write repository memory. See Repository memory.
AGENT_MEMORY_REFDefault branch name used when workflows mount repository memory. Defaults to agent/memory.
AGENT_SCHEDULE_POLICYJSON policy controlling scheduled workflow runs. By default, scheduled daily summaries are disabled while manual dispatch remains available. See Repository memory.
AGENT_RUBRICS_POLICYJSON policy controlling which routes can read or write user/team rubrics. Defaults to read-only. See team rubrics.
AGENT_RUBRICS_REFDefault branch name used when workflows mount user/team rubrics. Defaults to agent/rubrics.
AGENT_RUBRICS_LIMITMaximum selected rubrics injected into an agent prompt. Defaults to 10.
AGENT_COMMITTER_NAMECustom commit author name for implementation and PR-fix runs
AGENT_COMMITTER_EMAILCustom commit author email for implementation and PR-fix runs

Bundled model defaults live in .agent/model-defaults.json and are intentionally small and pinned:

ProviderDefault modelDefault reasoning effort
codexgpt-5.6-solmax
claudeclaude-opus-4-8

Sepo does not maintain a general model catalog, and the resolver reads these defaults from the bundled file locally with no network access at run time. Updates to the file ship through agent-update.yml with the rest of .agent/. Use AGENT_MODEL_POLICY when a repository needs different models, route-specific choices, or reasoning effort overrides.

AGENT_MODEL_POLICY example:

{
  "providers": {
    "codex": { "model": "gpt-5.6-sol", "reasoning_effort": "max" },
    "claude": { "model": "claude-opus-4-8", "reasoning_effort": "max" }
  },
  "route_overrides": {
    "answer": { "provider": "codex", "model": "gpt-5.4-mini", "reasoning_effort": "high" },
    "review-synthesize": { "provider": "claude" }
  }
}

For Codex GPT-5 models, Sepo accepts provider-neutral model plus reasoning_effort policy entries and applies them together whenever the adapter creates or resumes a thread. For example, { "model": "gpt-5.6-sol", "reasoning_effort": "max" } is reported by the bundled @agentclientprotocol/codex-acp adapter as the effective model id gpt-5.6-sol[max]. A policy model with a slash suffix such as gpt-5.6-sol/max is also accepted, and its suffix is authoritative over a separate reasoning_effort value. The bundled max effort applies only with the bundled gpt-5.6-sol model; reasoning-only policy overrides still apply independently.

The bundled workflows still keep native YAML escape hatches: an inline route_provider in a workflow’s resolve-agent-provider step overrides AGENT_MODEL_POLICY for that route. Provider selection precedence is inline route_provider, then AGENT_MODEL_POLICY.route_overrides[route].provider, then AGENT_DEFAULT_PROVIDER, then auto detection from configured provider secrets. Model selection starts from Sepo’s built-in provider default, then applies AGENT_MODEL_POLICY.default.model, AGENT_MODEL_POLICY.providers[provider].model, and AGENT_MODEL_POLICY.route_overrides[route].model; inline route_provider skips that route’s policy override. The review workflow still launches explicit Claude and Codex reviewer lanes; those lane providers are fixed with inline route_provider, so built-in/default/provider-specific model settings apply while route-specific review overrides do not. The synthesis step is resolved separately as review-synthesize.

AGENT_PROGRESS_POLICY example:

{
  "default_mode": "disabled",
  "orchestration_mode": "report-only",
  "route_overrides": {
    "implement": "enabled",
    "fix-pr": "report-only",
    "answer": "report-only"
  }
}

enabled starts the progress comment and allows authorized 👎 cancellation. report-only starts the progress comment but ignores cancellation reactions. disabled preserves the normal run without a progress comment. Malformed policy disables progress for that run instead of failing the workflow. Orchestrated chains default to disabled progress mode and rely on handoff or status comments; set orchestration_mode to report-only to opt into non-cancellable progress comments for orchestrated runs. enabled is not accepted for orchestration_mode because cancellable chained-run semantics are not defined.

Repository secrets

SecretPurpose
Model provider secrets
OPENAI_API_KEYEnable Codex-backed runs on runners without local Codex authentication; also lets AGENT_DEFAULT_PROVIDER=auto detect Codex. Sepo passes it through as OPENAI_API_KEY and mirrors it to acpx Codex auth aliases at runtime.
CLAUDE_CODE_OAUTH_TOKENEnable Claude-backed runs on runners without local Claude authentication; also lets AGENT_DEFAULT_PROVIDER=auto detect Claude
ANTHROPIC_API_KEYEnable Claude-backed runs with a direct Anthropic API key; also lets AGENT_DEFAULT_PROVIDER=auto detect Claude
GitHub auth secrets
AGENT_APP_IDSelf-managed GitHub App ID for the bring-your-own-app path; set only with AGENT_APP_PRIVATE_KEY. The public Sepo App ID 3527007 is informational for hosted/OIDC usage.
AGENT_APP_PRIVATE_KEYSelf-managed GitHub App private key for the bring-your-own-app path
AGENT_PATPAT fallback for environments where app-based auth is not practical
AGENT_SECONDARY_GITHUB_TOKENOptional read-only secondary fine-grained PAT exposed as INPUT_SECONDARY_GITHUB_TOKEN for explicit external repo context; does not replace the primary same-repo token

See Setup guide for how token secrets are used.