Skip to content

fix(omarchy): install Stage-1 Claude files + plugins + enable tailscaled - #9

Open
Exploitacious wants to merge 10 commits into
masterfrom
feat/omarchy-claude-stage1-tailscaled
Open

fix(omarchy): install Stage-1 Claude files + plugins + enable tailscaled#9
Exploitacious wants to merge 10 commits into
masterfrom
feat/omarchy-claude-stage1-tailscaled

Conversation

@Exploitacious

Copy link
Copy Markdown
Owner

Problem

omarchy/omarchySetup.sh skipped three things the generic shellSetup.sh performs, exposed while fixing t2omarchy (2026-08-25):

  1. Stage-1 Claude files never installedclaude/clawd booted on Claude's onboarding settings.json stub (model: sonnet, no hooks / statusline / model-pins) instead of the Fable-primary harness config. deploy.sh (Stage-2) only mirrors these to the personal profile; laying them down is Stage-1's job.
  2. Plugins never installed — caveman + ponytail; ponytail was silently absent.
  3. tailscaled not enabledtailscale up alone doesn't persist, so a reboot silently dropped all remote access until systemctl enable --now tailscaled.

Fix

New section 7b (before the Stage-2 deploy.sh call), faithfully replicating shellSetup's proven logic:

  • symlink settings.json / statusline.sh / CLAUDE.md from $LPX_DIR/claude/.claude, backing up existing real files (mirrors deploy_claude_config)
  • claude plugin marketplace add + install for caveman + ponytail (mirrors install_claude_plugins)
  • sudo systemctl enable --now tailscaled (guarded on tailscale being installed)

Idempotent (already-linked / already-installed are no-ops), warn-don't-abort throughout. bash -n clean.

All three were fixed by hand on t2omarchy this session; this closes them for future Omarchy provisions.

https://claude.ai/code/session_017tSSvn67RJVKkpKTSNvR5k

omarchySetup.sh skipped three things the generic shellSetup.sh does, so a fresh
Omarchy box booted `claude`/`clawd` on Claude's onboarding stub (model:sonnet,
no hooks/statusline/model-pins), ponytail never installed, and tailscaled did
not survive a reboot. New section 7b (before Stage-2 deploy.sh, which only
MIRRORS these to the personal profile):

- symlink the Level-1 Claude files (settings.json/statusline.sh/CLAUDE.md) from
  the repo, backing up any existing real file (mirrors deploy_claude_config)
- install caveman + ponytail plugins (mirrors install_claude_plugins)
- systemctl enable --now tailscaled so remote access survives a reboot

All three gaps found + fixed by hand on t2omarchy 2026-08-25.
Matches the COWORK same-pass edit; both profile CLAUDE.md symlinks
resolve to this file.
…ing-model skill

Drop the caveman + ponytail plugin registrations from settings.json
(enabledPlugins, extraKnownMarketplaces) and the PONYTAIL_DEFAULT_MODE
env var. Register the COWORK umbrella-operating-model.sh hook on
SessionStart, SubagentStart, and UserPromptSubmit. Replace the CAVEMAN
and PONYTAIL statusline badges with a static [Umbrella] pin (the skill
is unconditionally on).

Convert the plugin install sites in shellSetup.sh, omarchySetup.sh, and
winSetup.ps1 to an idempotent uninstall of caveman + ponytail on
already-provisioned hosts. Repoint the model-roles and unslop references
in claude/.claude/CLAUDE.md and the README to the umbrella-operating-model
skill and the umbrella-* lane names.

Operator ruling 2026-08-31.
…rs by source

The foreman charter, an operator boot digest, and the operating model now
reach the model through the launch function's --append-system-prompt (cached,
never truncated), so the charter hook leaves SessionStart. SessionStart splits
into startup|clear (full set) and resume|compact (resume snapshot, handoff
check, briefing, registry, fleet reorient, session stamp) so a compact resume
stops re-paying the whole boot. Global CLAUDE.md drops the blanket formatting
rules and the duplicated compression and model-roles text in favor of pointers
to the harness's single sources.
…ess boxes

The hook line was the only SessionStart entry without a test -x guard and
used an absolute /home/master path. On a box without herdr (T3COWORK) it
would shell out to a missing file on every session start. Same guard
pattern as its siblings; $HOME instead of the hardcoded home.

Claude-Session: https://claude.ai/code/session_01XYkketGFEtCrt8xrMZSjxw
VS Code Remote-SSH (and scp/rsync/automation) run the login shell to
bootstrap, with stdin piped and non-interactive. The picker's read
prompt then blocks forever, so the VS Code server never installs and
the client hangs at "Initializing VS Code Server". Add interactive +
TTY guards so the picker fires only for a human terminal login.

Claude-Session: https://claude.ai/code/session_01XYkketGFEtCrt8xrMZSjxw
Same package name in the omarchy repo and the AUR; repo first. A stale sync DB 404s the download because the repo rotates package files, so the step refreshes (-Sy only) and retries once, then proves the install with pacman -Q.
…minder hook

Global CLAUDE.md 865 to about 420 words, pointing at the COWORK harness surfaces instead of restating them. The UserPromptSubmit reminder line duplicated the operating-model body that already rides the system prompt on every launch path; the SubagentStart injection stays because lanes do not get the system-prompt append. Operator ruling 2026-09-10.
Extend the rtk PreToolUse (Bash) token filter from the PERSONAL-only
pilot to both profiles per the operator ruling 2026-09-10 (deploy it
for everything). settings.json is the single Stage-1 base symlinked
into ~/.claude and ~/.claude-personal, so carrying the hook here is the
right home for both. The command is gated on rtk being installed
(command -v / ~/.local/bin/rtk) and is a clean no-op on a box without
rtk. Ordered after the git-guard and secrets-guard PreToolUse entries
so guard verdicts are unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant