High-salience fast path to ~/.config/mosaic/tools/ for fleet agents: inter-agent messaging via tmux/agent-send.sh (priority #1) and the git/*.sh provider wrappers, including the GITEA_LOGIN-by-origin-host gotcha (the recurring `GetUserByName ... not found` failure on USC repos). Lighter than mosaic-gitea (full flag reference) and purpose-built for salience. Force-loaded for Pi by the launcher's DEFAULT_PI_FORCE_SKILLS (mosaicstack/stack), which is otherwise `--no-skills` by default. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoYiBeKNh3BiYtAJS5Z587
67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
---
|
|
name: mosaic-tools
|
|
description: Fast path to the Mosaic fleet toolkit at ~/.config/mosaic/tools/. Use FIRST when you need to message another agent's tmux session, open/merge a Gitea/GitHub PR or issue, run a CI queue wait, or operate Portainer/Woodpecker/Authentik/Cloudflare. Reach for these wrappers before hand-rolling raw tmux send-keys, raw tea/gh/glab, or curl.
|
|
---
|
|
|
|
# mosaic-tools
|
|
|
|
You are a Mosaic fleet agent on web1. A maintained toolkit lives at `~/.config/mosaic/tools/`.
|
|
Use it FIRST for the tasks below — improvising with raw CLIs causes the recurring failures this
|
|
skill exists to prevent. This is the high-frequency fast path; the full reference is the
|
|
`# Machine Tools` section already in your system prompt.
|
|
|
|
## 1. Message another agent (highest priority)
|
|
|
|
To send a message or briefing to another agent's tmux session, use the wrapper — **never** raw
|
|
`tmux send-keys` / `paste-buffer` (interactive REPLs swallow a trailing Enter or leave the text as
|
|
an unsubmitted draft; the wrapper handles bracketed paste, Enter flushing, and the `[src -> dst]`
|
|
preamble):
|
|
|
|
```bash
|
|
~/.config/mosaic/tools/tmux/agent-send.sh -s <target-session> -m "your message"
|
|
~/.config/mosaic/tools/tmux/agent-send.sh -s mos-claude -f path/to/brief.md # send a file's contents
|
|
```
|
|
|
|
The coordinator session is `mos-claude`. Status reports, findings, and questions go there.
|
|
|
|
## 2. Git provider operations (issues / PRs / milestones)
|
|
|
|
Use the wrappers — they auto-detect the platform (Gitea or GitHub) and handle auth. Prefer them
|
|
over raw `tea` / `gh` / `glab`:
|
|
|
|
```bash
|
|
~/.config/mosaic/tools/git/issue-create.sh ...
|
|
~/.config/mosaic/tools/git/issue-close.sh ...
|
|
~/.config/mosaic/tools/git/pr-create.sh ...
|
|
~/.config/mosaic/tools/git/pr-merge.sh ...
|
|
~/.config/mosaic/tools/git/ci-queue-wait.sh --purpose push|merge # REQUIRED before any push or merge
|
|
```
|
|
|
|
### GITEA_LOGIN gotcha (do not skip)
|
|
|
|
The wrappers default to `--login ${GITEA_LOGIN:-mosaicstack}`. On **USC** repos hosted at
|
|
`git.uscllc.com`, that default fails with `gitea / Error: GetUserByName ... not found`. Pick the
|
|
login from the repo's `origin` host **before** running a wrapper:
|
|
|
|
```bash
|
|
git remote get-url origin # inspect the host, then:
|
|
```
|
|
|
|
| origin host | login |
|
|
| --------------------- | -------------------------------------------- |
|
|
| `git.uscllc.com` | `export GITEA_LOGIN=usc` |
|
|
| `git.mosaicstack.dev` | default `mosaicstack` (no export needed) |
|
|
|
|
## 3. Other tool suites under `~/.config/mosaic/tools/`
|
|
|
|
- `woodpecker/` — CI pipeline status/trigger (`pipeline-status.sh`, `pipeline-list.sh`; `-a usc` for USC repos)
|
|
- `portainer/` — Docker Swarm stack status/redeploy
|
|
- `authentik/` — identity: users, groups, apps, flows
|
|
- `cloudflare/` — DNS records (`-a <instance>` for multi-account)
|
|
- `health/` — `stack-health.sh` service checks
|
|
- `openbrain/` — semantic agent memory (meta-observations only)
|
|
|
|
For the complete reference, consult the `# Machine Tools` section in your system prompt before
|
|
improvising. Related skills: `mosaic-gitea` (full git-wrapper flag reference),
|
|
`mosaic-tmux-comms` (inter-agent messaging detail).
|