Skip to content

Default Jobs

Instar ships with fourteen default jobs that run automatically on schedule. Each gives your agent a different rhythm: short-period health and commitment checks, mid-range reflection and evolution, daily identity reviews, and continuous oversight across development, learning, infrastructure, maintenance, and guardian responsibilities.

JobCronModelPurpose
health-check*/5 * * * * (every 5 min)HaikuVerify infrastructure health
commitment-detection*/5 * * * * (every 5 min)HaikuDetect new commitments in the recent conversation flow
reflection-trigger0 */4 * * * (every 4h)OpusReflect on recent work and surface insights
evolution-overdue-check0 */4 * * * (every 4h)HaikuSurface overdue commitments and stalled action items
evolution-proposal-evaluate0 */6 * * * (every 6h)SonnetEvaluate evolution proposals against current goals
evolution-proposal-implement0 1,7,13,19 * * * (4× daily)OpusImplement evolution proposals that passed evaluation
overseer-guardian0 */6 * * * (every 6h)SonnetGuardian oversight — safety, alignment, value drift
insight-harvest0 */8 * * * (every 8h)OpusSynthesize learnings into evolution proposals
overseer-infrastructure0 6 * * * (daily 6am)HaikuInfrastructure oversight — quotas, health, scheduled work
overseer-development0 8 * * * (daily 8am)HaikuDevelopment oversight — open work, blockers, follow-through
relationship-maintenance0 9 * * * (daily 9am)HaikuReview stale relationships, refresh significance scoring
overseer-maintenance0 2 * * * (daily 2am)SonnetMaintenance oversight — log rotation, cleanup, hygiene
identity-review0 3 * * * (daily 3am)OpusIdentity review — AGENT.md drift, value alignment
overseer-learning0 3 */2 * * (every other day 3am)SonnetLearning oversight — knowledge consolidation, gap detection
docs-coverage-audit0 10 * * 1 (Mondays 10am)HaikuWeekly walk of the instar source tree against the docs surface, surfaces newly-undocumented capabilities. Ships enabled: false by default; only useful on machines with the instar source repo locally
org-intent-drift-audit(configurable)SonnetPeriodic drift detection for organizational intent — compares recent decisions and outputs against the constraints and goals declared in ORG-INTENT.md, surfaces drift via the degradation channel
mentor-onboarding*/15 * * * * (every 15m)HaikuFramework-Onboarding Mentor heartbeat — a thin timer that pokes POST /mentor/tick; the in-process tick runs a leak-detector canary, a fail-closed budget gate, a safe-window check, a constrained Stage-A spawn, the leakage detector, Stage-B forensics, and ledger capture. Ships enabled: false and mentor.mode: 'off'; dormant until promoted off → dry-run → live
failure-analyzer0 9 * * 3 (Wednesdays 9am)HaikuFailure-Learning Loop analyzer — weekly scan of the failure ledger for dev-process patterns. Surfaces support-and-diversity-thresholded insights, opens human-approved tracked improvements (never auto-implements), and runs the verify step on past fixes. Tier-1 supervised (wraps the deterministic /failures/analyze endpoint, validating each insight against its evidence). Ships enabled: false; turns on with monitoring.failureLearning.enabled
initiative-digest-review0 11 * * 1,4 (Mon & Thu 11am)SonnetThe self-driving half of the InitiativeTracker — twice-weekly review of the initiative board. Surfaces initiatives that need a decision and, for ships-staged features in rollout (dry-run → live → default-on), gathers promotion evidence and posts an explicit, evidence-gated recommendation. Near-silent (posts only when a genuinely-new decision is waiting); operator-gated — it recommends, it never flips a config flag

All jobs ship inside src/scaffold/templates/jobs/instar/ and are installed on instar init plus refreshed on every update via PostUpdateMigrator.

Jobs declare a supervision field that controls how each step is validated:

  • tier0 — Raw programmatic. No LLM validation. Fast, cheap, silent failures.
  • tier1 — LLM-supervised. A lightweight model (typically Haiku) validates each step. Observed failures.
  • tier2 — Full intelligent. A capable model (Sonnet or Opus) handles reasoning end-to-end. Handled failures.

The supervision tier is independent of the execution model — tier1 may use Haiku while the job runs on Sonnet, for instance. See docs/LLM-SUPERVISED-EXECUTION.md for the full design.

The scheduler reads from a shared QuotaTracker and shedds load as quota tightens. Threshold buckets in scheduler.quotaThresholds:

  • normal — full scheduling
  • elevated — defer Opus-tier jobs
  • critical — defer Sonnet-tier jobs as well
  • shutdown — pause everything except health-check

Tier-aware shedding lets you keep critical safety jobs alive even when you’re hammering against your daily cap.

When the host wakes from sleep, the scheduler reaps any pending runs older than wakeReaper.thresholdMultiplier × expectedDurationMinutes. This prevents a stampede of overdue jobs from firing all at once after a long suspend.

Job gates (preconditions evaluated before the job body runs) can fail transiently. The scheduler retries gates up to gateRetries times (default 3) with gateRetryDelayMs between attempts (default 5 s). Persistent gate failures surface as a degradation rather than a stuck job.

Edit .instar/jobs.json (or the per-job .md files under .instar/jobs/instar/ if your agent uses the newer agentmd execution type) to:

  • Change schedules
  • Adjust models
  • Add new jobs
  • Disable jobs you don’t need

The agent can also modify its own jobs through the evolution system.

A newer execution type, agentmd, lets the job body live in the markdown frontmatter of .instar/jobs/<origin>/<slug>.md rather than inline in jobs.json. The fourteen built-in jobs ship as agentmd files under src/scaffold/templates/jobs/instar/, which is why you’ll find them as markdown files rather than JSON entries.

These older jobs still exist in some agent installations for backward compatibility but are disabled by default:

JobReplaced by
update-checkAutoUpdater (built-in server component — no session needed)
dispatch-checkAutoDispatcher (built-in server component — no session needed)

Both replacements are server-side components that don’t spawn Claude sessions, saving quota.