Skip to main content

Autopilot — set and forget

Autopilot is SigmaShake's autonomous governance mode. Once enabled, the daemon periodically pulls newer versions of installed Hub rulesets, gated by a configurable trust tier. Every action is recorded in a transparency ledger, and you can pause, resume, or roll back at any time.

Users don't want to think about writing rules. They want their AI agent to not do bad things — automatically, quietly, and continuously.

Autopilot is the machinery behind that experience.

What autopilot does today​

  • Periodic Hub upgrades. The ssg daemon checks hub.sigmashake.com on an interval (default: every 24 hours) for newer versions of every ruleset pinned in ~/.sigmashake/hub-pins.json. Updates that meet your trust tier are applied automatically using the same integrity + Ed25519 verification path as a manual ssg hub pull.
  • Trust-gated installs. Only rulesets matching your configured trust tier are auto-applied. By default that's certified-signed — the ruleset must carry both the Hub's Certified badge and a verifiable Ed25519 signature.
  • Transparency ledger. Every autopilot decision — check, skip, apply, pause, rollback — is written to ~/.sigmashake/autopilot-ledger.jsonl. Inspect it any time with ssg autopilot log.
  • Pause / resume. Autopilot respects a pause flag. Invoke ssg autopilot pause before risky work; ssg autopilot resume when you're done.

Quick start​

Autopilot is on by default for new installs. To verify:

ssg autopilot status

Sample output:

Autopilot status:
Active: yes
Enabled: yes
Trust tier: certified-signed
Hub update: every 24h
Insights scan: every 24h

Trust tiers​

Configure in .sigmashake/config.toml:

[autopilot]
enabled = true
trust_tier = "certified-signed"
hub_update_interval_ms = 86400000
insights = true
insights_interval_ms = 86400000
TierCriteriaUse when
offNever auto-installYou want full manual control
certifiedRuleset has the Hub Certified badgeYou're OK trusting Hub review alone
certified-signedCertified AND Ed25519-signed (default)Recommended — full trust chain
official-onlyPublished by the SSG official keyStrictest — only SSG-authored rulesets

Overrides:

  • SSG_AUTOPILOT=0 forces autopilot off for the current process
  • SSG_AUTOPILOT_TRUST=off overrides the file-config trust tier

CLI​

ssg autopilot status # Show config + pause state + recent actions
ssg autopilot pause [--reason=X] # Suspend autonomous actions
ssg autopilot resume # Re-enable
ssg autopilot log [--limit=N] # Dump the ledger
ssg autopilot rollback <id> # Show command to restore the last pre-autopilot version

All commands accept --json for machine-readable output.

Rollback​

If an auto-applied update introduces a regression, every autopilot hub-update-apply is recorded with the fromVersion it replaced. To revert:

ssg autopilot log --limit 20 # find the applied version
ssg autopilot rollback rules-xyz # prints the hub-pull command
ssg hub pull rules-xyz@v3 --force-reinstall

Transparency​

Autopilot is built on the same deterministic primitives as the rest of ssg: every action is logged, every install passes the standard Ed25519 + hash-pin verification, and you can pin a specific ruleset version at any time. Nothing happens invisibly.

Privacy​

Autopilot makes outbound HTTP requests only to hub.sigmashake.com to query ruleset metadata. No conversation history, no audit log, and no local file contents are transmitted by autopilot itself. (Audit-sync is a separate Pro/Enterprise feature with its own opt-in.)

Limitations (current release)​

  • Autopilot upgrades already-installed rulesets. It does not discover new rulesets or install unrelated ones.
  • The insights-based rule-synthesis loop (synthesising rules from conversation history patterns) is not yet wired to the daemon. Use ssg insights / ssg suggest manually for now.
  • Dashboard "always allow / always deny" one-click decisions synthesise rules into autopilot.rules immediately via the autopilot rule-writer.

Disabling​

ssg autopilot pause # temporary

Or in .sigmashake/config.toml:

[autopilot]
enabled = false

Or permanently via env:

export SSG_AUTOPILOT=0