feat: auto-provision compass via disinto init from disinto.ai

disinto init now silently downloads the compass from
https://disinto.ai/compass.md to ~/.disinto/compass.md, sets
EXEC_COMPASS in .env, and activates the exec agent. No prompts,
no friction — the compass is public philosophy, not a secret.

Once on disk, the factory cannot modify it. Only the executive
can edit ~/.disinto/compass.md directly.

- site/compass.md: compass hosted on disinto.ai (Codeberg Pages)
- bin/disinto: init downloads compass, sets env var, activates exec
- exec-session.sh, exec-briefing.sh: fallback to ~/.disinto/compass.md
- .env.example: updated comment to reflect auto-provisioning
This commit is contained in:
disinto-exec 2026-03-25 15:45:15 +00:00
parent 5c1c91bae2
commit b125277db2
5 changed files with 78 additions and 8 deletions

View file

@ -44,9 +44,9 @@ check_memory 2000
log "--- Exec briefing start ---"
# ── Load compass (required) ────────────────────────────────────────────
COMPASS_FILE="${EXEC_COMPASS:-}"
if [ -z "$COMPASS_FILE" ] || [ ! -f "$COMPASS_FILE" ]; then
log "FATAL: EXEC_COMPASS not set or file not found — exec agent refuses to start without its compass"
COMPASS_FILE="${EXEC_COMPASS:-${HOME}/.disinto/compass.md}"
if [ ! -f "$COMPASS_FILE" ]; then
log "FATAL: compass not found at ${COMPASS_FILE} — exec agent refuses to start without its compass"
exit 1
fi
COMPASS_BLOCK=$(cat "$COMPASS_FILE")

View file

@ -52,8 +52,8 @@ log "--- Exec session start ---"
# ── Load compass (required — lives outside the repo) ──────────────────
# The compass is the agent's core identity. It cannot live in code because
# code can be changed by the factory. The compass cannot.
COMPASS_FILE="${EXEC_COMPASS:-}"
if [ -z "$COMPASS_FILE" ] || [ ! -f "$COMPASS_FILE" ]; then
COMPASS_FILE="${EXEC_COMPASS:-${HOME}/.disinto/compass.md}"
if [ ! -f "$COMPASS_FILE" ]; then
log "FATAL: EXEC_COMPASS not set or file not found (${COMPASS_FILE:-unset})"
log "The exec agent refuses to start without its compass."
log "Set EXEC_COMPASS=/path/to/compass.md in .env or .env.enc"