heartbeat-log
This skill should be used when the user asks to "show heartbeat log", "heartbeat history", "what has woterclip done", "show agent activity", "summarize…
This skill should be used when the user asks to "initialize woterclip", "set up woterclip", "woterclip init", "configure woterclip for this repo", or runs the /woterclip-init command. Scaffolds a repo with WoterClip config, persona directories, and GitHub labels.
$ npx -y skills add wotai-dev/woterclip --skill init --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/initContext preview
The summary Claude sees to decide when to auto-load this skill.
This skill should be used when the user asks to "initialize woterclip", "set up woterclip", "woterclip init", "configure woterclip for this repo", or runs the /woterclip-init command. Scaffolds a repo with WoterClip config, persona directories, and GitHub labels.
name: woterclip-init description: This skill should be used when the user asks to "initialize woterclip", "set up woterclip", "woterclip init", "configure woterclip for this repo", or runs the /woterclip-init command. Scaffolds a repo with WoterClip config, persona directories, and GitHub labels. version: 0.1.0
Initialize WoterClip in the current repository. This creates the `.woterclip/` directory with config, persona templates, and corresponding GitHub labels.
Before starting, verify the `gh` CLI is ready:
1. Run `gh auth status` — must exit 0 (installed **and** authenticated) 2. Run `gh repo view --json nameWithOwner` — must resolve (the current directory is a repo with a GitHub remote) 3. If either fails, stop and instruct the user:
1. Run `gh repo view --json nameWithOwner --jq .nameWithOwner` to resolve the target repo 2. Run `gh api user --jq .login` to identify the authenticated user 3. Present findings and ask the user to confirm:
When the confirmed Board user equals the authenticated login (the common single-account setup), warn: GitHub does not notify a user of their own comments, so blocked-escalation @-mentions will not produce notifications — the Board should watch the repo or rely on `/woterclip-status`. A separate bot/machine account for `gh auth` avoids this.
Ask the user which persona set to scaffold:
| Preset | Personas Created | |--------|-----------------| | **engineering** (default) | Orchestrator, CEO, Backend, Frontend | | **full** | Orchestrator, CEO, Backend, Frontend, Infra, QA | | **minimal** | Orchestrator, CEO only | | **custom** | Orchestrator, CEO + user-specified personas |
For "custom", ask the user to name each persona and its GitHub label.
GitHub labels are flat (no groups). Create the WoterClip labels on the target repo:
1. Check what already exists: `gh label list --repo <owner/name> --limit 200` 2. Create each missing label with `gh label create <name> --repo <owner/name> --color <hex> --description "<desc>"`:
3. Skip creation for any label that already exists (matching on name).
All labels above are created unconditionally — the heartbeat and Orchestrator write them (`gh issue edit --add-label` fails when a label doesn't exist on the repo). Only the human-managed `backlog` and `todo` status labels are optional — offer them, but the heartbeat treats unlabeled open issues as eligible without them (see `${CLAUDE_PLUGIN_ROOT}/references/status-mapping.md`).
1. Create the directory structure:
.woterclip/
├── config.yaml
└── personas/
├── orchestrator/
│ ├── SOUL.md
│ ├── TOOLS.md
│ └── config.yaml
├── ceo/
│ ├── SOUL.md
│ ├── TOOLS.md
│ └── config.yaml
├── backend/ (if selected)
│ ├── SOUL.md
│ ├── TOOLS.md
│ └── config.yaml
└── frontend/ (if selected)
├── SOUL.md
├── TOOLS.md
└── config.yaml2. Copy templates from the plugin's `templates/` directory:
3. Update `config.yaml` personas section to match the selected preset — remove entries for personas that weren't scaffolded.
Ask the user if they want to set up a recurring heartbeat:
The full trade-off, and the ~2h threshold for treating a quiet repo as stopped, are in `${CLAUDE_PLUGIN_ROOT}/references/beat-economics.md` § Scheduling Preconditions.
Display what was created:
WoterClip initialized! GitHub labels created on owner/name: ✓ agent-working ✓ agent-blocked ✓ backend ✓ frontend Config: .woterclip/config.yaml Personas: ✓ orchestrator → default (no label) ✓ ceo → "ceo" label ✓ backend → "backend" label ✓ frontend → "frontend" label Next steps: 1. Review .woterclip/config.yaml 2. Customize persona SOUL.md files for your project 3. Run /heartbeat or /schedule 30m /heartbeat
| Error | Response | |-------|----------| | `gh` not installed or not authenticated | Stop. Print install/auth instructions (`brew install gh`, `gh auth login`). | | No GitHub remote on the current repo | Stop. Ask user to run from a GitHub-hosted checkout or pass the repo explicitly. | | Label creation fails | Log the error, continue with remaining labels, report at end. | | `.woterclip/` already exists | Check the config `v
GitHub Issues-backed agent orchestration for Claude Code. A single Claude instance wears different "hats" (personas) based on GitHub issue labels – an Orchestrator routes work, a CEO makes strategic calls, and worker personas execute.
This skill should be used when the user asks to "show heartbeat log", "heartbeat history", "what has woterclip done", "show agent activity", "summarize…
This skill should be used when the user asks to "run a heartbeat", "run the agent loop", "process GitHub issues", "check for work", or runs the /heartbeat…
This skill should be used when the user asks to "create a persona", "add a new persona", "set up a new agent role", "add a woterclip persona", or runs the…
This skill should be used when the user asks to "import a paperclip agent", "convert paperclip to woterclip", "migrate from paperclip", "import persona from…
This skill should be used when the user asks to "list personas", "show personas", "what personas are configured", "show woterclip agents", or runs the…
This skill should be used when the user asks to "check woterclip status", "show agent status", "what is woterclip doing", "show heartbeat status", "what's in…