Skip to content

Scheduler configuration

AXE scheduler routines, jobs, and execution limits.

Defaults come from the schema when declared, otherwise from the bundled YAML. An object with listed children is expanded below; {…} and […] summarize compound defaults. A dash means the schema has no finite allowed-value list.

axe

Config key Type Default Allowed values Description
axe object {…} (10 keys; values below) — Configuration for the axe scheduler daemon
axe.zombie_timeout_seconds integer 7200 — Zombie detection timeout in seconds. Hooks and CRS workflows running longer than this are marked as ZOMBIE.
axe.max_hook_runners integer 3 — Maximum concurrent hook runners (non-$ hooks)
axe.max_agent_runners integer 3 — Maximum concurrent agent runners (agents and mentors)
axe.query string "" — Default query filter for axe operations
axe.chop_script_dirs array [] — Legacy alias for job_script_dirs. Additional directories to search for job scripts (searched before PATH lookup)
axe.chop_script_dirs[] string not set — —
axe.job_script_dirs array [] — Additional directories to search for job scripts (searched before PATH lookup)
axe.job_script_dirs[] string not set — —
axe.lumberjack_log_max_bytes integer 52428800 — Legacy alias for routine_log_max_bytes. Maximum bytes retained for each bounded routine log.
axe.routine_log_max_bytes integer 52428800 — Maximum bytes retained for each bounded routine log.
axe.lumberjack_log_temp_max_age_seconds integer 300 — Minimum age in seconds before orphaned bounded-log rotation temp files are removed.
axe.routine_log_temp_max_age_seconds integer 300 — Minimum age in seconds before orphaned bounded-log rotation temp files are removed.
axe.lumberjack_restart_backoff_max_seconds integer 60 — Legacy alias for routine_restart_backoff_max_seconds. Maximum delay between retries for a crashing routine.
axe.routine_restart_backoff_max_seconds integer 60 — Maximum delay between retries for a crashing routine.
axe.verbose_lumberjack_diagnostics boolean false — Legacy alias for verbose_routine_diagnostics. Include verbose routine diagnostics in job script contexts.
axe.verbose_routine_diagnostics boolean false — Include verbose routine diagnostics in job script contexts.
axe.lumberjacks object not set — Legacy alias for routines. Each key is a routine name with interval and jobs config.
axe.lumberjacks.<key> object not set — —
axe.lumberjacks.<key>.description string not set — The cadence and class of work this routine owns. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.lumberjacks.<key>.interval integer 1 — Tick interval in seconds for this routine
axe.lumberjacks.<key>.chop_timeout string not set — Legacy alias for job_timeout. Default positive compound duration controlling the maximum runtime for jobs in this routine
axe.lumberjacks.<key>.job_timeout string not set — Default positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for jobs in this routine
axe.lumberjacks.<key>.wait_runners integer not set — Start a lane agent only once at most this many other agents hold a runner slot; omit to use the global max_running_agents cap
axe.lumberjacks.<key>.env object not set — Environment values inherited by every job in this routine
axe.lumberjacks.<key>.env.<key> string | object not set — —
axe.lumberjacks.<key>.env.<key>.env string not set — —
axe.lumberjacks.<key>.env.<key>.file string not set — —
axe.lumberjacks.<key>.env.<key>.pass string not set — —
axe.lumberjacks.<key>.chops array | object not set — Legacy alias for jobs. List or composable map of job scripts to run on each tick
axe.lumberjacks.<key>.chops[] string | object not set — —
axe.lumberjacks.<key>.chops[].name string not set — Name of the job script
axe.lumberjacks.<key>.chops[].description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.lumberjacks.<key>.chops[].script string not set — Exact installed console-script or executable name; defaults to the job name
axe.lumberjacks.<key>.chops[].enabled boolean true — Soft-disable this job without deleting its configuration
axe.lumberjacks.<key>.chops[].run_every string not set — Positive compound duration (e.g., '60m', '1h30m', '1d') controlling how often this job runs
axe.lumberjacks.<key>.chops[].env object not set — Environment values merged over routine env
axe.lumberjacks.<key>.chops[].env.<key> string | object not set — —
axe.lumberjacks.<key>.chops[].env.<key>.env string not set — —
axe.lumberjacks.<key>.chops[].env.<key>.file string not set — —
axe.lumberjacks.<key>.chops[].env.<key>.pass string not set — —
axe.lumberjacks.<key>.chops[].inhibit_if array | object not set — Runner-evaluated patch, agent-hood, agent-clan, or agent-runners guards that inhibit dispatch when any provider matches
axe.lumberjacks.<key>.chops[].inhibit_if.agent_runners object | array not set — —
axe.lumberjacks.<key>.chops[].inhibit_if.agent_runners.max integer not set — —
axe.lumberjacks.<key>.chops[].inhibit_if.agent_runners[] object not set — —
axe.lumberjacks.<key>.chops[].inhibit_if.agent_runners[].max integer not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[] object not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.lumberjacks.<key>.chops[].inhibit_if[].name_prefix string not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].statuses array not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].statuses[] string not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].hood string not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].name string not set — —
axe.lumberjacks.<key>.chops[].inhibit_if[].max integer not set — —
axe.lumberjacks.<key>.chops[].inhibit_if.<key> object | array not set — —
axe.lumberjacks.<key>.chops[].inhibit_if.<key>[] object not set — —
axe.lumberjacks.<key>.chops[].trigger string | object not set "always" Runner-evaluated trigger provider (always by default)
axe.lumberjacks.<key>.chops[].trigger.provider any not set "always", "git.commits_since", "fs" —
axe.lumberjacks.<key>.chops[].trigger.project string not set — —
axe.lumberjacks.<key>.chops[].trigger.threshold integer not set — —
axe.lumberjacks.<key>.chops[].trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops[].trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops[].trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.chops[].trigger.paths[] string | object not set — —
axe.lumberjacks.<key>.chops[].trigger.paths[].path string not set — —
axe.lumberjacks.<key>.chops[].trigger.paths[].glob string not set — —
axe.lumberjacks.<key>.chops[].trigger.max_quiet string not set — —
axe.lumberjacks.<key>.chops[].trigger.always object | null not set — —
axe.lumberjacks.<key>.chops[].trigger.git.commits_since object not set — —
axe.lumberjacks.<key>.chops[].trigger.git.commits_since.project string not set — —
axe.lumberjacks.<key>.chops[].trigger.git.commits_since.threshold integer not set — —
axe.lumberjacks.<key>.chops[].trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops[].trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops[].trigger.fs object not set — —
axe.lumberjacks.<key>.chops[].trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.chops[].trigger.fs.paths[] string | object not set — —
axe.lumberjacks.<key>.chops[].trigger.fs.paths[].path string not set — —
axe.lumberjacks.<key>.chops[].trigger.fs.paths[].glob string not set — —
axe.lumberjacks.<key>.chops[].trigger.fs.max_quiet string not set — —
axe.lumberjacks.<key>.chops[].once_per string | object not set — Bounded per-proposal event-dedupe key template
axe.lumberjacks.<key>.chops[].once_per.key string not set — —
axe.lumberjacks.<key>.chops[].once_per.capacity integer not set — —
axe.lumberjacks.<key>.chops[].timeout string not set — Positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for this job
axe.lumberjacks.<key>.chops[].for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.lumberjacks.<key>.chops[].for_each.kind any not set "literal", "source" —
axe.lumberjacks.<key>.chops[].for_each.targets array not set — —
axe.lumberjacks.<key>.chops[].for_each.targets[] object not set — —
axe.lumberjacks.<key>.chops[].for_each.source any not set "projects" —
axe.lumberjacks.<key>.chops[].for_each.name string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.name[] string not set — —
axe.lumberjacks.<key>.chops[].for_each.names string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.names[] string not set — —
axe.lumberjacks.<key>.chops[].for_each.vcs string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.vcs[] string not set — —
axe.lumberjacks.<key>.chops[].for_each.filters object not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.name string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.name[] string not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.names string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.names[] string not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.vcs string | array not set — —
axe.lumberjacks.<key>.chops[].for_each.filters.vcs[] string not set — —
axe.lumberjacks.<key>.chops[].for_each[] object not set — —
axe.lumberjacks.<key>.chops[].vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.lumberjacks.<key>.chops.<key> object not set — —
axe.lumberjacks.<key>.chops.<key>.name string not set — —
axe.lumberjacks.<key>.chops.<key>.description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.lumberjacks.<key>.chops.<key>.script string not set — Exact installed console-script or executable name; defaults to the job identity
axe.lumberjacks.<key>.chops.<key>.enabled boolean true — Soft-disable this job without deleting its keyed configuration
axe.lumberjacks.<key>.chops.<key>.run_every string not set — Positive compound duration (for example '5m', '1h30m', or '1d') limiting how often this job runs
axe.lumberjacks.<key>.chops.<key>.timeout string not set — Per-job timeout duration overriding the routine job_timeout
axe.lumberjacks.<key>.chops.<key>.env object not set — Environment values merged over routine env; accepts literals and env, file, or pass references
axe.lumberjacks.<key>.chops.<key>.env.<key> string | object not set — —
axe.lumberjacks.<key>.chops.<key>.env.<key>.env string not set — —
axe.lumberjacks.<key>.chops.<key>.env.<key>.file string not set — —
axe.lumberjacks.<key>.chops.<key>.env.<key>.pass string not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if array | object not set — Patch, agent-hood, agent-clan, or agent-runners guards evaluated before the script
axe.lumberjacks.<key>.chops.<key>.inhibit_if.agent_runners object | array not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if.agent_runners.max integer not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if.agent_runners[] object not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if.agent_runners[].max integer not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[] object not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].name_prefix string not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].statuses array not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].statuses[] string not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].hood string not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].name string not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if[].max integer not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if.<key> object | array not set — —
axe.lumberjacks.<key>.chops.<key>.inhibit_if.<key>[] object not set — —
axe.lumberjacks.<key>.chops.<key>.trigger string | object not set "always" Runner-evaluated trigger provider: always, git.commits_since, or fs
axe.lumberjacks.<key>.chops.<key>.trigger.provider any not set "always", "git.commits_since", "fs" —
axe.lumberjacks.<key>.chops.<key>.trigger.project string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.threshold integer not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops.<key>.trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops.<key>.trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.chops.<key>.trigger.paths[] string | object not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.paths[].path string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.paths[].glob string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.max_quiet string not set — Positive compound duration (e.g., '60s', '5m') after which the fs trigger fires even without a watched-path change
axe.lumberjacks.<key>.chops.<key>.trigger.always object | null not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.git.commits_since object not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.git.commits_since.project string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.git.commits_since.threshold integer not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops.<key>.trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.chops.<key>.trigger.fs object not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.chops.<key>.trigger.fs.paths[] string | object not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.fs.paths[].path string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.fs.paths[].glob string not set — —
axe.lumberjacks.<key>.chops.<key>.trigger.fs.max_quiet string not set — —
axe.lumberjacks.<key>.chops.<key>.once_per string | object not set — Bounded per-proposal deduplication-key template
axe.lumberjacks.<key>.chops.<key>.once_per.key string not set — —
axe.lumberjacks.<key>.chops.<key>.once_per.capacity integer not set — —
axe.lumberjacks.<key>.chops.<key>.for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.lumberjacks.<key>.chops.<key>.for_each.kind any not set "literal", "source" —
axe.lumberjacks.<key>.chops.<key>.for_each.targets array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.targets[] object not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.source any not set "projects" —
axe.lumberjacks.<key>.chops.<key>.for_each.name string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.name[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.names string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.names[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.vcs string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.vcs[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters object not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.name string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.name[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.names string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.names[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.vcs string | array not set — —
axe.lumberjacks.<key>.chops.<key>.for_each.filters.vcs[] string not set — —
axe.lumberjacks.<key>.chops.<key>.for_each[] object not set — —
axe.lumberjacks.<key>.chops.<key>.vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.lumberjacks.<key>.jobs array | object not set — List or composable map of job scripts to run on each tick
axe.lumberjacks.<key>.jobs[] string | object not set — —
axe.lumberjacks.<key>.jobs[].name string not set — Name of the job script
axe.lumberjacks.<key>.jobs[].description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.lumberjacks.<key>.jobs[].script string not set — Exact installed console-script or executable name; defaults to the job name
axe.lumberjacks.<key>.jobs[].enabled boolean true — Soft-disable this job without deleting its configuration
axe.lumberjacks.<key>.jobs[].run_every string not set — Positive compound duration (e.g., '60m', '1h30m', '1d') controlling how often this job runs
axe.lumberjacks.<key>.jobs[].env object not set — Environment values merged over routine env
axe.lumberjacks.<key>.jobs[].env.<key> string | object not set — —
axe.lumberjacks.<key>.jobs[].env.<key>.env string not set — —
axe.lumberjacks.<key>.jobs[].env.<key>.file string not set — —
axe.lumberjacks.<key>.jobs[].env.<key>.pass string not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if array | object not set — Runner-evaluated patch, agent-hood, agent-clan, or agent-runners guards that inhibit dispatch when any provider matches
axe.lumberjacks.<key>.jobs[].inhibit_if.agent_runners object | array not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if.agent_runners.max integer not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if.agent_runners[] object not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if.agent_runners[].max integer not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[] object not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.lumberjacks.<key>.jobs[].inhibit_if[].name_prefix string not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].statuses array not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].statuses[] string not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].hood string not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].name string not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if[].max integer not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if.<key> object | array not set — —
axe.lumberjacks.<key>.jobs[].inhibit_if.<key>[] object not set — —
axe.lumberjacks.<key>.jobs[].trigger string | object not set "always" Runner-evaluated trigger provider (always by default)
axe.lumberjacks.<key>.jobs[].trigger.provider any not set "always", "git.commits_since", "fs" —
axe.lumberjacks.<key>.jobs[].trigger.project string not set — —
axe.lumberjacks.<key>.jobs[].trigger.threshold integer not set — —
axe.lumberjacks.<key>.jobs[].trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs[].trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs[].trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.jobs[].trigger.paths[] string | object not set — —
axe.lumberjacks.<key>.jobs[].trigger.paths[].path string not set — —
axe.lumberjacks.<key>.jobs[].trigger.paths[].glob string not set — —
axe.lumberjacks.<key>.jobs[].trigger.max_quiet string not set — —
axe.lumberjacks.<key>.jobs[].trigger.always object | null not set — —
axe.lumberjacks.<key>.jobs[].trigger.git.commits_since object not set — —
axe.lumberjacks.<key>.jobs[].trigger.git.commits_since.project string not set — —
axe.lumberjacks.<key>.jobs[].trigger.git.commits_since.threshold integer not set — —
axe.lumberjacks.<key>.jobs[].trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs[].trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs[].trigger.fs object not set — —
axe.lumberjacks.<key>.jobs[].trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.jobs[].trigger.fs.paths[] string | object not set — —
axe.lumberjacks.<key>.jobs[].trigger.fs.paths[].path string not set — —
axe.lumberjacks.<key>.jobs[].trigger.fs.paths[].glob string not set — —
axe.lumberjacks.<key>.jobs[].trigger.fs.max_quiet string not set — —
axe.lumberjacks.<key>.jobs[].once_per string | object not set — Bounded per-proposal event-dedupe key template
axe.lumberjacks.<key>.jobs[].once_per.key string not set — —
axe.lumberjacks.<key>.jobs[].once_per.capacity integer not set — —
axe.lumberjacks.<key>.jobs[].timeout string not set — Positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for this job
axe.lumberjacks.<key>.jobs[].for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.lumberjacks.<key>.jobs[].for_each.kind any not set "literal", "source" —
axe.lumberjacks.<key>.jobs[].for_each.targets array not set — —
axe.lumberjacks.<key>.jobs[].for_each.targets[] object not set — —
axe.lumberjacks.<key>.jobs[].for_each.source any not set "projects" —
axe.lumberjacks.<key>.jobs[].for_each.name string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.name[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each.names string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.names[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each.vcs string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.vcs[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters object not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.name string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.name[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.names string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.names[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.vcs string | array not set — —
axe.lumberjacks.<key>.jobs[].for_each.filters.vcs[] string not set — —
axe.lumberjacks.<key>.jobs[].for_each[] object not set — —
axe.lumberjacks.<key>.jobs[].vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.lumberjacks.<key>.jobs.<key> object not set — —
axe.lumberjacks.<key>.jobs.<key>.name string not set — —
axe.lumberjacks.<key>.jobs.<key>.description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.lumberjacks.<key>.jobs.<key>.script string not set — Exact installed console-script or executable name; defaults to the job identity
axe.lumberjacks.<key>.jobs.<key>.enabled boolean true — Soft-disable this job without deleting its keyed configuration
axe.lumberjacks.<key>.jobs.<key>.run_every string not set — Positive compound duration (for example '5m', '1h30m', or '1d') limiting how often this job runs
axe.lumberjacks.<key>.jobs.<key>.timeout string not set — Per-job timeout duration overriding the routine job_timeout
axe.lumberjacks.<key>.jobs.<key>.env object not set — Environment values merged over routine env; accepts literals and env, file, or pass references
axe.lumberjacks.<key>.jobs.<key>.env.<key> string | object not set — —
axe.lumberjacks.<key>.jobs.<key>.env.<key>.env string not set — —
axe.lumberjacks.<key>.jobs.<key>.env.<key>.file string not set — —
axe.lumberjacks.<key>.jobs.<key>.env.<key>.pass string not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if array | object not set — Patch, agent-hood, agent-clan, or agent-runners guards evaluated before the script
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.agent_runners object | array not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.agent_runners.max integer not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.agent_runners[] object not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.agent_runners[].max integer not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[] object not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].name_prefix string not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].statuses array not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].statuses[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].hood string not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].name string not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if[].max integer not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.<key> object | array not set — —
axe.lumberjacks.<key>.jobs.<key>.inhibit_if.<key>[] object not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger string | object not set "always" Runner-evaluated trigger provider: always, git.commits_since, or fs
axe.lumberjacks.<key>.jobs.<key>.trigger.provider any not set "always", "git.commits_since", "fs" —
axe.lumberjacks.<key>.jobs.<key>.trigger.project string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.threshold integer not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs.<key>.trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs.<key>.trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.jobs.<key>.trigger.paths[] string | object not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.paths[].path string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.paths[].glob string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.max_quiet string not set — Positive compound duration (e.g., '60s', '5m') after which the fs trigger fires even without a watched-path change
axe.lumberjacks.<key>.jobs.<key>.trigger.always object | null not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.git.commits_since object not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.git.commits_since.project string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.git.commits_since.threshold integer not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs.<key>.trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.lumberjacks.<key>.jobs.<key>.trigger.fs object not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.lumberjacks.<key>.jobs.<key>.trigger.fs.paths[] string | object not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.fs.paths[].path string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.fs.paths[].glob string not set — —
axe.lumberjacks.<key>.jobs.<key>.trigger.fs.max_quiet string not set — —
axe.lumberjacks.<key>.jobs.<key>.once_per string | object not set — Bounded per-proposal deduplication-key template
axe.lumberjacks.<key>.jobs.<key>.once_per.key string not set — —
axe.lumberjacks.<key>.jobs.<key>.once_per.capacity integer not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.lumberjacks.<key>.jobs.<key>.for_each.kind any not set "literal", "source" —
axe.lumberjacks.<key>.jobs.<key>.for_each.targets array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.targets[] object not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.source any not set "projects" —
axe.lumberjacks.<key>.jobs.<key>.for_each.name string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.name[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.names string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.names[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.vcs string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.vcs[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters object not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.name string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.name[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.names string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.names[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.vcs string | array not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each.filters.vcs[] string not set — —
axe.lumberjacks.<key>.jobs.<key>.for_each[] object not set — —
axe.lumberjacks.<key>.jobs.<key>.vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.routines object {…} (9 keys; values below) — Named routine definitions. Each key is a routine name with interval and jobs config.
axe.routines.<key> object not set — —
axe.routines.<key>.description string not set — The cadence and class of work this routine owns. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.routines.<key>.interval integer 1 — Tick interval in seconds for this routine
axe.routines.<key>.chop_timeout string not set — Legacy alias for job_timeout. Default positive compound duration controlling the maximum runtime for jobs in this routine
axe.routines.<key>.job_timeout string not set — Default positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for jobs in this routine
axe.routines.<key>.wait_runners integer not set — Start a lane agent only once at most this many other agents hold a runner slot; omit to use the global max_running_agents cap
axe.routines.<key>.env object not set — Environment values inherited by every job in this routine
axe.routines.<key>.env.<key> string | object not set — —
axe.routines.<key>.env.<key>.env string not set — —
axe.routines.<key>.env.<key>.file string not set — —
axe.routines.<key>.env.<key>.pass string not set — —
axe.routines.<key>.chops array | object not set — Legacy alias for jobs. List or composable map of job scripts to run on each tick
axe.routines.<key>.chops[] string | object not set — —
axe.routines.<key>.chops[].name string not set — Name of the job script
axe.routines.<key>.chops[].description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.routines.<key>.chops[].script string not set — Exact installed console-script or executable name; defaults to the job name
axe.routines.<key>.chops[].enabled boolean true — Soft-disable this job without deleting its configuration
axe.routines.<key>.chops[].run_every string not set — Positive compound duration (e.g., '60m', '1h30m', '1d') controlling how often this job runs
axe.routines.<key>.chops[].env object not set — Environment values merged over routine env
axe.routines.<key>.chops[].env.<key> string | object not set — —
axe.routines.<key>.chops[].env.<key>.env string not set — —
axe.routines.<key>.chops[].env.<key>.file string not set — —
axe.routines.<key>.chops[].env.<key>.pass string not set — —
axe.routines.<key>.chops[].inhibit_if array | object not set — Runner-evaluated patch, agent-hood, agent-clan, or agent-runners guards that inhibit dispatch when any provider matches
axe.routines.<key>.chops[].inhibit_if.agent_runners object | array not set — —
axe.routines.<key>.chops[].inhibit_if.agent_runners.max integer not set — —
axe.routines.<key>.chops[].inhibit_if.agent_runners[] object not set — —
axe.routines.<key>.chops[].inhibit_if.agent_runners[].max integer not set — —
axe.routines.<key>.chops[].inhibit_if[] object not set — —
axe.routines.<key>.chops[].inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.routines.<key>.chops[].inhibit_if[].name_prefix string not set — —
axe.routines.<key>.chops[].inhibit_if[].statuses array not set — —
axe.routines.<key>.chops[].inhibit_if[].statuses[] string not set — —
axe.routines.<key>.chops[].inhibit_if[].hood string not set — —
axe.routines.<key>.chops[].inhibit_if[].name string not set — —
axe.routines.<key>.chops[].inhibit_if[].max integer not set — —
axe.routines.<key>.chops[].inhibit_if.<key> object | array not set — —
axe.routines.<key>.chops[].inhibit_if.<key>[] object not set — —
axe.routines.<key>.chops[].trigger string | object not set "always" Runner-evaluated trigger provider (always by default)
axe.routines.<key>.chops[].trigger.provider any not set "always", "git.commits_since", "fs" —
axe.routines.<key>.chops[].trigger.project string not set — —
axe.routines.<key>.chops[].trigger.threshold integer not set — —
axe.routines.<key>.chops[].trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops[].trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops[].trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.chops[].trigger.paths[] string | object not set — —
axe.routines.<key>.chops[].trigger.paths[].path string not set — —
axe.routines.<key>.chops[].trigger.paths[].glob string not set — —
axe.routines.<key>.chops[].trigger.max_quiet string not set — —
axe.routines.<key>.chops[].trigger.always object | null not set — —
axe.routines.<key>.chops[].trigger.git.commits_since object not set — —
axe.routines.<key>.chops[].trigger.git.commits_since.project string not set — —
axe.routines.<key>.chops[].trigger.git.commits_since.threshold integer not set — —
axe.routines.<key>.chops[].trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops[].trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops[].trigger.fs object not set — —
axe.routines.<key>.chops[].trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.chops[].trigger.fs.paths[] string | object not set — —
axe.routines.<key>.chops[].trigger.fs.paths[].path string not set — —
axe.routines.<key>.chops[].trigger.fs.paths[].glob string not set — —
axe.routines.<key>.chops[].trigger.fs.max_quiet string not set — —
axe.routines.<key>.chops[].once_per string | object not set — Bounded per-proposal event-dedupe key template
axe.routines.<key>.chops[].once_per.key string not set — —
axe.routines.<key>.chops[].once_per.capacity integer not set — —
axe.routines.<key>.chops[].timeout string not set — Positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for this job
axe.routines.<key>.chops[].for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.routines.<key>.chops[].for_each.kind any not set "literal", "source" —
axe.routines.<key>.chops[].for_each.targets array not set — —
axe.routines.<key>.chops[].for_each.targets[] object not set — —
axe.routines.<key>.chops[].for_each.source any not set "projects" —
axe.routines.<key>.chops[].for_each.name string | array not set — —
axe.routines.<key>.chops[].for_each.name[] string not set — —
axe.routines.<key>.chops[].for_each.names string | array not set — —
axe.routines.<key>.chops[].for_each.names[] string not set — —
axe.routines.<key>.chops[].for_each.vcs string | array not set — —
axe.routines.<key>.chops[].for_each.vcs[] string not set — —
axe.routines.<key>.chops[].for_each.filters object not set — —
axe.routines.<key>.chops[].for_each.filters.name string | array not set — —
axe.routines.<key>.chops[].for_each.filters.name[] string not set — —
axe.routines.<key>.chops[].for_each.filters.names string | array not set — —
axe.routines.<key>.chops[].for_each.filters.names[] string not set — —
axe.routines.<key>.chops[].for_each.filters.vcs string | array not set — —
axe.routines.<key>.chops[].for_each.filters.vcs[] string not set — —
axe.routines.<key>.chops[].for_each[] object not set — —
axe.routines.<key>.chops[].vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.routines.<key>.chops.<key> object not set — —
axe.routines.<key>.chops.<key>.name string not set — —
axe.routines.<key>.chops.<key>.description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.routines.<key>.chops.<key>.script string not set — Exact installed console-script or executable name; defaults to the job identity
axe.routines.<key>.chops.<key>.enabled boolean true — Soft-disable this job without deleting its keyed configuration
axe.routines.<key>.chops.<key>.run_every string not set — Positive compound duration (for example '5m', '1h30m', or '1d') limiting how often this job runs
axe.routines.<key>.chops.<key>.timeout string not set — Per-job timeout duration overriding the routine job_timeout
axe.routines.<key>.chops.<key>.env object not set — Environment values merged over routine env; accepts literals and env, file, or pass references
axe.routines.<key>.chops.<key>.env.<key> string | object not set — —
axe.routines.<key>.chops.<key>.env.<key>.env string not set — —
axe.routines.<key>.chops.<key>.env.<key>.file string not set — —
axe.routines.<key>.chops.<key>.env.<key>.pass string not set — —
axe.routines.<key>.chops.<key>.inhibit_if array | object not set — Patch, agent-hood, agent-clan, or agent-runners guards evaluated before the script
axe.routines.<key>.chops.<key>.inhibit_if.agent_runners object | array not set — —
axe.routines.<key>.chops.<key>.inhibit_if.agent_runners.max integer not set — —
axe.routines.<key>.chops.<key>.inhibit_if.agent_runners[] object not set — —
axe.routines.<key>.chops.<key>.inhibit_if.agent_runners[].max integer not set — —
axe.routines.<key>.chops.<key>.inhibit_if[] object not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.routines.<key>.chops.<key>.inhibit_if[].name_prefix string not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].statuses array not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].statuses[] string not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].hood string not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].name string not set — —
axe.routines.<key>.chops.<key>.inhibit_if[].max integer not set — —
axe.routines.<key>.chops.<key>.inhibit_if.<key> object | array not set — —
axe.routines.<key>.chops.<key>.inhibit_if.<key>[] object not set — —
axe.routines.<key>.chops.<key>.trigger string | object not set "always" Runner-evaluated trigger provider: always, git.commits_since, or fs
axe.routines.<key>.chops.<key>.trigger.provider any not set "always", "git.commits_since", "fs" —
axe.routines.<key>.chops.<key>.trigger.project string not set — —
axe.routines.<key>.chops.<key>.trigger.threshold integer not set — —
axe.routines.<key>.chops.<key>.trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops.<key>.trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops.<key>.trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.chops.<key>.trigger.paths[] string | object not set — —
axe.routines.<key>.chops.<key>.trigger.paths[].path string not set — —
axe.routines.<key>.chops.<key>.trigger.paths[].glob string not set — —
axe.routines.<key>.chops.<key>.trigger.max_quiet string not set — Positive compound duration (e.g., '60s', '5m') after which the fs trigger fires even without a watched-path change
axe.routines.<key>.chops.<key>.trigger.always object | null not set — —
axe.routines.<key>.chops.<key>.trigger.git.commits_since object not set — —
axe.routines.<key>.chops.<key>.trigger.git.commits_since.project string not set — —
axe.routines.<key>.chops.<key>.trigger.git.commits_since.threshold integer not set — —
axe.routines.<key>.chops.<key>.trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops.<key>.trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.chops.<key>.trigger.fs object not set — —
axe.routines.<key>.chops.<key>.trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.chops.<key>.trigger.fs.paths[] string | object not set — —
axe.routines.<key>.chops.<key>.trigger.fs.paths[].path string not set — —
axe.routines.<key>.chops.<key>.trigger.fs.paths[].glob string not set — —
axe.routines.<key>.chops.<key>.trigger.fs.max_quiet string not set — —
axe.routines.<key>.chops.<key>.once_per string | object not set — Bounded per-proposal deduplication-key template
axe.routines.<key>.chops.<key>.once_per.key string not set — —
axe.routines.<key>.chops.<key>.once_per.capacity integer not set — —
axe.routines.<key>.chops.<key>.for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.routines.<key>.chops.<key>.for_each.kind any not set "literal", "source" —
axe.routines.<key>.chops.<key>.for_each.targets array not set — —
axe.routines.<key>.chops.<key>.for_each.targets[] object not set — —
axe.routines.<key>.chops.<key>.for_each.source any not set "projects" —
axe.routines.<key>.chops.<key>.for_each.name string | array not set — —
axe.routines.<key>.chops.<key>.for_each.name[] string not set — —
axe.routines.<key>.chops.<key>.for_each.names string | array not set — —
axe.routines.<key>.chops.<key>.for_each.names[] string not set — —
axe.routines.<key>.chops.<key>.for_each.vcs string | array not set — —
axe.routines.<key>.chops.<key>.for_each.vcs[] string not set — —
axe.routines.<key>.chops.<key>.for_each.filters object not set — —
axe.routines.<key>.chops.<key>.for_each.filters.name string | array not set — —
axe.routines.<key>.chops.<key>.for_each.filters.name[] string not set — —
axe.routines.<key>.chops.<key>.for_each.filters.names string | array not set — —
axe.routines.<key>.chops.<key>.for_each.filters.names[] string not set — —
axe.routines.<key>.chops.<key>.for_each.filters.vcs string | array not set — —
axe.routines.<key>.chops.<key>.for_each.filters.vcs[] string not set — —
axe.routines.<key>.chops.<key>.for_each[] object not set — —
axe.routines.<key>.chops.<key>.vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.routines.<key>.jobs array | object not set — List or composable map of job scripts to run on each tick
axe.routines.<key>.jobs[] string | object not set — —
axe.routines.<key>.jobs[].name string not set — Name of the job script
axe.routines.<key>.jobs[].description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.routines.<key>.jobs[].script string not set — Exact installed console-script or executable name; defaults to the job name
axe.routines.<key>.jobs[].enabled boolean true — Soft-disable this job without deleting its configuration
axe.routines.<key>.jobs[].run_every string not set — Positive compound duration (e.g., '60m', '1h30m', '1d') controlling how often this job runs
axe.routines.<key>.jobs[].env object not set — Environment values merged over routine env
axe.routines.<key>.jobs[].env.<key> string | object not set — —
axe.routines.<key>.jobs[].env.<key>.env string not set — —
axe.routines.<key>.jobs[].env.<key>.file string not set — —
axe.routines.<key>.jobs[].env.<key>.pass string not set — —
axe.routines.<key>.jobs[].inhibit_if array | object not set — Runner-evaluated patch, agent-hood, agent-clan, or agent-runners guards that inhibit dispatch when any provider matches
axe.routines.<key>.jobs[].inhibit_if.agent_runners object | array not set — —
axe.routines.<key>.jobs[].inhibit_if.agent_runners.max integer not set — —
axe.routines.<key>.jobs[].inhibit_if.agent_runners[] object not set — —
axe.routines.<key>.jobs[].inhibit_if.agent_runners[].max integer not set — —
axe.routines.<key>.jobs[].inhibit_if[] object not set — —
axe.routines.<key>.jobs[].inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.routines.<key>.jobs[].inhibit_if[].name_prefix string not set — —
axe.routines.<key>.jobs[].inhibit_if[].statuses array not set — —
axe.routines.<key>.jobs[].inhibit_if[].statuses[] string not set — —
axe.routines.<key>.jobs[].inhibit_if[].hood string not set — —
axe.routines.<key>.jobs[].inhibit_if[].name string not set — —
axe.routines.<key>.jobs[].inhibit_if[].max integer not set — —
axe.routines.<key>.jobs[].inhibit_if.<key> object | array not set — —
axe.routines.<key>.jobs[].inhibit_if.<key>[] object not set — —
axe.routines.<key>.jobs[].trigger string | object not set "always" Runner-evaluated trigger provider (always by default)
axe.routines.<key>.jobs[].trigger.provider any not set "always", "git.commits_since", "fs" —
axe.routines.<key>.jobs[].trigger.project string not set — —
axe.routines.<key>.jobs[].trigger.threshold integer not set — —
axe.routines.<key>.jobs[].trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs[].trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs[].trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.jobs[].trigger.paths[] string | object not set — —
axe.routines.<key>.jobs[].trigger.paths[].path string not set — —
axe.routines.<key>.jobs[].trigger.paths[].glob string not set — —
axe.routines.<key>.jobs[].trigger.max_quiet string not set — —
axe.routines.<key>.jobs[].trigger.always object | null not set — —
axe.routines.<key>.jobs[].trigger.git.commits_since object not set — —
axe.routines.<key>.jobs[].trigger.git.commits_since.project string not set — —
axe.routines.<key>.jobs[].trigger.git.commits_since.threshold integer not set — —
axe.routines.<key>.jobs[].trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs[].trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs[].trigger.fs object not set — —
axe.routines.<key>.jobs[].trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.jobs[].trigger.fs.paths[] string | object not set — —
axe.routines.<key>.jobs[].trigger.fs.paths[].path string not set — —
axe.routines.<key>.jobs[].trigger.fs.paths[].glob string not set — —
axe.routines.<key>.jobs[].trigger.fs.max_quiet string not set — —
axe.routines.<key>.jobs[].once_per string | object not set — Bounded per-proposal event-dedupe key template
axe.routines.<key>.jobs[].once_per.key string not set — —
axe.routines.<key>.jobs[].once_per.capacity integer not set — —
axe.routines.<key>.jobs[].timeout string not set — Positive compound duration (e.g., '30s', '1h30m', '1d') controlling the maximum runtime for this job
axe.routines.<key>.jobs[].for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.routines.<key>.jobs[].for_each.kind any not set "literal", "source" —
axe.routines.<key>.jobs[].for_each.targets array not set — —
axe.routines.<key>.jobs[].for_each.targets[] object not set — —
axe.routines.<key>.jobs[].for_each.source any not set "projects" —
axe.routines.<key>.jobs[].for_each.name string | array not set — —
axe.routines.<key>.jobs[].for_each.name[] string not set — —
axe.routines.<key>.jobs[].for_each.names string | array not set — —
axe.routines.<key>.jobs[].for_each.names[] string not set — —
axe.routines.<key>.jobs[].for_each.vcs string | array not set — —
axe.routines.<key>.jobs[].for_each.vcs[] string not set — —
axe.routines.<key>.jobs[].for_each.filters object not set — —
axe.routines.<key>.jobs[].for_each.filters.name string | array not set — —
axe.routines.<key>.jobs[].for_each.filters.name[] string not set — —
axe.routines.<key>.jobs[].for_each.filters.names string | array not set — —
axe.routines.<key>.jobs[].for_each.filters.names[] string not set — —
axe.routines.<key>.jobs[].for_each.filters.vcs string | array not set — —
axe.routines.<key>.jobs[].for_each.filters.vcs[] string not set — —
axe.routines.<key>.jobs[].for_each[] object not set — —
axe.routines.<key>.jobs[].vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides
axe.routines.<key>.jobs.<key> object not set — —
axe.routines.<key>.jobs.<key>.name string not set — —
axe.routines.<key>.jobs.<key>.description string not set — What this job does. Line 1 is a summary of at most 100 characters; if a body follows, line 2 must be blank. At most 2000 characters.
axe.routines.<key>.jobs.<key>.script string not set — Exact installed console-script or executable name; defaults to the job identity
axe.routines.<key>.jobs.<key>.enabled boolean true — Soft-disable this job without deleting its keyed configuration
axe.routines.<key>.jobs.<key>.run_every string not set — Positive compound duration (for example '5m', '1h30m', or '1d') limiting how often this job runs
axe.routines.<key>.jobs.<key>.timeout string not set — Per-job timeout duration overriding the routine job_timeout
axe.routines.<key>.jobs.<key>.env object not set — Environment values merged over routine env; accepts literals and env, file, or pass references
axe.routines.<key>.jobs.<key>.env.<key> string | object not set — —
axe.routines.<key>.jobs.<key>.env.<key>.env string not set — —
axe.routines.<key>.jobs.<key>.env.<key>.file string not set — —
axe.routines.<key>.jobs.<key>.env.<key>.pass string not set — —
axe.routines.<key>.jobs.<key>.inhibit_if array | object not set — Patch, agent-hood, agent-clan, or agent-runners guards evaluated before the script
axe.routines.<key>.jobs.<key>.inhibit_if.agent_runners object | array not set — —
axe.routines.<key>.jobs.<key>.inhibit_if.agent_runners.max integer not set — —
axe.routines.<key>.jobs.<key>.inhibit_if.agent_runners[] object not set — —
axe.routines.<key>.jobs.<key>.inhibit_if.agent_runners[].max integer not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[] object not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].provider any not set "patch", "changespec", "agent_hood", "agent_clan", "agent_runners" —
axe.routines.<key>.jobs.<key>.inhibit_if[].name_prefix string not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].statuses array not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].statuses[] string not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].hood string not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].name string not set — —
axe.routines.<key>.jobs.<key>.inhibit_if[].max integer not set — —
axe.routines.<key>.jobs.<key>.inhibit_if.<key> object | array not set — —
axe.routines.<key>.jobs.<key>.inhibit_if.<key>[] object not set — —
axe.routines.<key>.jobs.<key>.trigger string | object not set "always" Runner-evaluated trigger provider: always, git.commits_since, or fs
axe.routines.<key>.jobs.<key>.trigger.provider any not set "always", "git.commits_since", "fs" —
axe.routines.<key>.jobs.<key>.trigger.project string not set — —
axe.routines.<key>.jobs.<key>.trigger.threshold integer not set — —
axe.routines.<key>.jobs.<key>.trigger.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs.<key>.trigger.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs.<key>.trigger.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.jobs.<key>.trigger.paths[] string | object not set — —
axe.routines.<key>.jobs.<key>.trigger.paths[].path string not set — —
axe.routines.<key>.jobs.<key>.trigger.paths[].glob string not set — —
axe.routines.<key>.jobs.<key>.trigger.max_quiet string not set — Positive compound duration (e.g., '60s', '5m') after which the fs trigger fires even without a watched-path change
axe.routines.<key>.jobs.<key>.trigger.always object | null not set — —
axe.routines.<key>.jobs.<key>.trigger.git.commits_since object not set — —
axe.routines.<key>.jobs.<key>.trigger.git.commits_since.project string not set — —
axe.routines.<key>.jobs.<key>.trigger.git.commits_since.threshold integer not set — —
axe.routines.<key>.jobs.<key>.trigger.git.commits_since.checkpoint_policy any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs.<key>.trigger.git.commits_since.checkpoint any not set "on_observation", "on_action_accepted", "on_action_success" —
axe.routines.<key>.jobs.<key>.trigger.fs object not set — —
axe.routines.<key>.jobs.<key>.trigger.fs.paths array not set — Shallow filesystem watch specs for the fs trigger: bare paths or {path, glob} objects
axe.routines.<key>.jobs.<key>.trigger.fs.paths[] string | object not set — —
axe.routines.<key>.jobs.<key>.trigger.fs.paths[].path string not set — —
axe.routines.<key>.jobs.<key>.trigger.fs.paths[].glob string not set — —
axe.routines.<key>.jobs.<key>.trigger.fs.max_quiet string not set — —
axe.routines.<key>.jobs.<key>.once_per string | object not set — Bounded per-proposal deduplication-key template
axe.routines.<key>.jobs.<key>.once_per.key string not set — —
axe.routines.<key>.jobs.<key>.once_per.capacity integer not set — —
axe.routines.<key>.jobs.<key>.for_each array | object not set — Literal targets or a named target source expanded into stable job instances
axe.routines.<key>.jobs.<key>.for_each.kind any not set "literal", "source" —
axe.routines.<key>.jobs.<key>.for_each.targets array not set — —
axe.routines.<key>.jobs.<key>.for_each.targets[] object not set — —
axe.routines.<key>.jobs.<key>.for_each.source any not set "projects" —
axe.routines.<key>.jobs.<key>.for_each.name string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.name[] string not set — —
axe.routines.<key>.jobs.<key>.for_each.names string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.names[] string not set — —
axe.routines.<key>.jobs.<key>.for_each.vcs string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.vcs[] string not set — —
axe.routines.<key>.jobs.<key>.for_each.filters object not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.name string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.name[] string not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.names string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.names[] string not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.vcs string | array not set — —
axe.routines.<key>.jobs.<key>.for_each.filters.vcs[] string not set — —
axe.routines.<key>.jobs.<key>.for_each[] object not set — —
axe.routines.<key>.jobs.<key>.vars object not set — Arbitrary non-secret values copied into the job context; builtin refresh_docs accepts prompt and polish_prompt string overrides

_[project]: A sase project is a named unit of work registered with SASE. _[workspace]: A sase workspace is a numbered clone of a project's primary repo, managed by the workspace store and tracked in that project's registry.json. _[agent]: A sase agent is an agent session or a single agent that does not belong to a session. _[prompt]: A prompt is the text SASE hands to a provider to start an agent turn. _[macro]: A macro is a reusable prompt triggered with #name in agent prompts. _[Patch]: A Patch is SASE's local unit of change. _[bead]: A bead is one tracked work item in SASE's git-native issue tracker. _[plan]: A plan is a persisted, approved artifact recording the intent behind agent work. _[TUI]: The TUI is SASE's terminal interface for running agents and reviewing results. _[epic]: An epic is an executable multi-phase plan run with sase bead work. _[gate]: A sase gate is a durable, command-backed request for one user decision, created when work must pause for the user. _[monitor]: A sase monitor is a monitor turn that runs one long command under a detached supervisor, so the command outlives the agent that started it. *[stitch]: A stitch is the lightweight ordered change record inside a Patch's STITCHES: section.