Use when running daily maintenance across all repos — pull, analyze, fix P0s, synthesize to Obsidian, push. Invoke via /daily-orchestration or at start of day.
Autonomous daily sweep: pull all repos, analyze health, fix P0s via subagents, write Obsidian daily note, push everything.
REPOS=(devloop kan braid minibox obfsck devkit doob magi tools notfiles personal-mcp dumcp notes steve romp pieces-ob inflection gooey goder dotfiles)
DEV=~/dev
Language map (determines fallback analysis):
| Lang | Repos |
|---|---|
| Rust | devloop, kan, braid, minibox, obfsck, doob, tools, notfiles, personal-mcp, romp, gooey |
| Go | devkit, dumcp, inflection, goder |
| Python | steve |
| Other | pieces-ob (obsidian plugin), magi, notes, dotfiles (shell/config) |
Before touching any repo, verify the session is live:
# Verify 1Password is unlocked (needed for secret resolution in analyze phase)
op whoami --account=my.1password.com 2>&1
If this fails with "not signed in" or "authorization prompt":
op whoami succeeds.SSH auth uses the native macOS agent (no Touch ID needed). The ~/.ssh/config routes only $INFRA_VPS_HOST and $INFRA_MAC_MINI_HOST through 1Password's agent.
After Phase 0 succeeds, no further auth prompts. If auth fails mid-run (e.g., 1Password auto-locked), do NOT re-prompt — report the failure and stop.
for repo in "${REPOS[@]}"; do
DIR="$DEV/$repo"
[ ! -d "$DIR/.git" ] && echo "SKIP $repo (not a git repo)" && continue
BRANCH=$(git -C "$DIR" symbolic-ref --short HEAD 2>/dev/null)
git -C "$DIR" pull --ff-only origin "${BRANCH:-main}" 2>&1 || echo "PULL_FAIL $repo"
done
Auth error handling: If a pull fails with auth errors after Phase 0 passed, something changed (lid close, 1Password auto-lock). Stop and report — don't re-prompt.
Spawn one Agent per repo (subagent_type: general-purpose). Each agent:
export OPENAI_API_KEY=$(sed -n 's/^OPENAI_API_KEY=//p' ~/.secrets)
timeout 120 devloop analyze --council --council-mode standard --repo $DEV/<repo>
If devloop binary is missing or council times out (exit 124), fall back.
Rust repos:
cd $DEV/<repo>
cargo clippy --all-targets 2>&1 | tail -30
cargo nextest run --no-fail-fast 2>&1 | tail -40
Go repos:
cd $DEV/<repo>
go vet ./... 2>&1 | tail -30
go test ./... -count=1 2>&1 | tail -40
Python repos:
cd $DEV/<repo>
uv run ruff check . 2>&1 | tail -30
uv run pytest --tb=short 2>&1 | tail -40
Other repos (no build system): Just report git log --oneline -10.
REPO: <name>
STATUS: healthy | warnings | p0_issues
COUNCIL_HEALTH: <score or "skipped">
P0_ISSUES: [list of critical items, or "none"]
WARNINGS: [list]
FALLBACK_USED: true | false
For each repo with STATUS: p0_issues, spawn a separate Agent (subagent_type: general-purpose). Each fix-agent:
git status before reporting success:
git add -A && git commit -m "fix: <description of P0 fix>
Co-Authored-By: Claude Opus 4.6 <[email protected]>"
FIX_APPLIED: <repo> — <description> or FIX_FAILED: <repo> — <reason>If a fix-agent encounters:
ln -sf <target> <link> if target is discoverablecargo-nextest, bacon, ruff): Attempt install:
cargo install <tool> or cargo binstall <tool>uv tool install <tool>go install <pkg>@latestSELF_REPAIR_FAILED: <repo> — <tool/symlink> — <error> and move onVAULT="/Users/joe/Documents/Obsidian Vault"
TODAY=$(date +%Y-%m-%d)
DAILY="$VAULT/01_Daily/$TODAY.md"
If daily note doesn't exist, create from template at $VAULT/08_Templates/Template - Daily.md with frontmatter:
---