Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions .agents/docs/skills_agents_catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,23 @@ Slash commands. Invoked as `/<name>` (Claude Code) or `#<name>` (Codex/Cursor/Ge
| `release-prep` | [`skills/release-prep/SKILL.md`](../skills/release-prep/SKILL.md) | Pre-tag checklist + version bump for cutting a release |
| `dependency-add` | [`skills/dependency-add/SKILL.md`](../skills/dependency-add/SKILL.md) | Adding a Python dep (pyproject + Homebrew formula sync) |
| `doc-edit` | [`skills/doc-edit/SKILL.md`](../skills/doc-edit/SKILL.md) | Updating docs without touching code |
| `dailybot-progress-report` | [`skills/dailybot-progress-report/SKILL.md`](../skills/dailybot-progress-report/SKILL.md) | Reporting agent progress through the CLI itself |


### Dailybot agent skill pack (vendored from [`DailybotHQ/agent-skill`](https://github.com/DailybotHQ/agent-skill))

The full pack lives under [`.agents/skills/dailybot/`](../skills/dailybot/) (router + nine sub-skills). The router auto-routes by intent — read [`skills/dailybot/SKILL.md`](../skills/dailybot/SKILL.md) and let it pick the right sub-skill. Direct sub-skill entry points:

| Slug | Procedure | Use when |
|------|-----------|----------|
| `dailybot-report` | [`skills/dailybot/report/SKILL.md`](../skills/dailybot/report/SKILL.md) | Reporting agent progress through the CLI itself (replaces the legacy `dailybot-progress-report` skill) |
| `dailybot-messages` | [`skills/dailybot/messages/SKILL.md`](../skills/dailybot/messages/SKILL.md) | Polling for instructions sent to this agent by teammates |
| `dailybot-health` | [`skills/dailybot/health/SKILL.md`](../skills/dailybot/health/SKILL.md) | Announcing online/offline status on long sessions |
| `dailybot-email` | [`skills/dailybot/email/SKILL.md`](../skills/dailybot/email/SKILL.md) | Sending email on the agent's behalf (with mandatory pre-send safety checks) |
| `dailybot-checkin` | [`skills/dailybot/checkin/SKILL.md`](../skills/dailybot/checkin/SKILL.md) | Listing and completing pending check-ins (user-scoped) |
| `dailybot-kudos` | [`skills/dailybot/kudos/SKILL.md`](../skills/dailybot/kudos/SKILL.md) | Giving kudos to a teammate or a whole team |
| `dailybot-teams` | [`skills/dailybot/teams/SKILL.md`](../skills/dailybot/teams/SKILL.md) | Listing / resolving teams (the resolver `dailybot-kudos` and `dailybot-chat` delegate to) |
| `dailybot-forms` | [`skills/dailybot/forms/SKILL.md`](../skills/dailybot/forms/SKILL.md) | Listing, submitting, updating, or transitioning form responses |
| `dailybot-chat` | [`skills/dailybot/chat/SKILL.md`](../skills/dailybot/chat/SKILL.md) | Sending / editing Dailybot bot messages on Slack / Teams / Discord / Google Chat (DMs, channels, teams; report-style threads; in-place edits). Requires `dailybot-cli >= 1.13.0` |

## Agents

Expand All @@ -38,7 +54,11 @@ Persona definitions. Use these as the system prompt / role when spawning a sub-a
| Update README / docs only | `doc-edit` | `docs-writer` |
| Add `httpx-retries` to deps | `dependency-add` | `cli-developer` |
| Cut v0.4.13 | `release-prep` | `release-manager` |
| Report what you just shipped | `dailybot-progress-report` | (any) |
| Report what you just shipped | `dailybot-report` | (any) |
| Send a Slack/Teams/Discord/Google Chat message (DM, channel, team; report-style threads) | `dailybot-chat` | (any) |
| Recognize a teammate or a whole team | `dailybot-kudos` | (any) |
| Complete a pending check-in / standup | `dailybot-checkin` | (any) |
| Submit / transition / update a form response | `dailybot-forms` | (any) |

## Conventions

Expand Down
114 changes: 107 additions & 7 deletions .agents/skills/dailybot/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: dailybot
description: Official Dailybot agent skill pack — report progress, check messages, send emails, announce agent status, complete check-ins, give kudos, and submit forms. Routes to the right sub-skill based on intent. Use when the developer mentions Dailybot or wants to interact with their team.
version: "1.3.0"
description: Official Dailybot agent skill pack — report progress, check messages, send emails, announce agent status, complete check-ins, give kudos (to users or teams), resolve teams, run the full forms lifecycle (list, submit, update, transition between workflow states), and send/edit chat messages on the team's Slack/Teams/Discord/Google Chat (including report-style threads). Routes to the right sub-skill based on intent. Use when the developer mentions Dailybot or wants to interact with their team.
version: "1.7.0"
documentation_url: https://api.dailybot.com/skill.md
user-invocable: true
metadata: {"openclaw":{"emoji":"📡","homepage":"https://dailybot.com","requires":{"anyBins":["dailybot","curl"]},"primaryEnv":"DAILYBOT_API_KEY","install":[{"id":"cli-install-script","kind":"download","url":"https://cli.dailybot.com/install.sh","label":"Install Dailybot CLI (official script — preferred on Linux/macOS)"},{"id":"pip","kind":"pip","package":"dailybot-cli","bins":["dailybot"],"label":"Install Dailybot CLI via pip (fallback if binary fails)"}]}}
Expand All @@ -21,17 +21,19 @@ This is the canonical, first-party integration. Source of truth:

## What it does

Seven coordinated capabilities, with smart routing between them:
Nine coordinated capabilities, with smart routing between them:

| Capability | Sub-skill | When it fires |
|------------|-----------|---------------|
| **Progress reports** | `dailybot-report` | After meaningful work — a completed task, or a batch of edits to 3+ files |
| **Message polling** | `dailybot-messages` | Session start, idle moments, or when the developer asks "what should I work on?" |
| **Email** | `dailybot-email` | Explicit user request, with mandatory pre-send safety checks |
| **Chat** | `dailybot-chat` | Developer wants to send / edit a bot message on Slack, Teams, Discord, or Google Chat — to a channel, DMs, or whole team. Supports report-style threads (headline + replies in one call) and editing the parent or any reply afterward |
| **Health & status** | `dailybot-health` | Long-running sessions; periodic heartbeats |
| **Check-ins** | `dailybot-checkin` | Developer asks to complete a standup or fill in a pending check-in |
| **Kudos** | `dailybot-kudos` | Developer wants to recognize a teammate's contribution |
| **Forms** | `dailybot-forms` | Developer wants to list or submit a form response (surveys, retros, pulse checks) |
| **Kudos** | `dailybot-kudos` | Developer wants to recognize a teammate or a whole team's contribution |
| **Teams** | `dailybot-teams` | List teams, inspect members, or resolve a team name → UUID (used as a resolver by other skills) |
| **Forms** | `dailybot-forms` | Developer wants to list, submit, update, or transition forms — including workflow-state forms with audience permissions |

## Install

Expand All @@ -43,6 +45,94 @@ Six install methods are supported (skills.sh CLI, OpenClaw native, git
clone + `setup.sh`, conversational, manual per-agent, and HTTP-only
fallback). Full guide: [`docs/INSTALLATION.md`](https://github.com/DailybotHQ/agent-skill/blob/main/docs/INSTALLATION.md).

## Required Dailybot CLI version

> **Minimum:** `dailybot-cli >= 1.10.0` (released **2026-05-26**, MIT-licensed,
> [pypi.org/project/dailybot-cli/1.10.0/](https://pypi.org/project/dailybot-cli/1.10.0/)).
>
> Requires **Python >= 3.10**. The 1.10.0 wheel is `py3-none-any` (pure Python).
>
> **`1.11.0` enhancement (optional):** `dailybot agent update` echoes the
> report's placement link as a `View:` line. Older CLIs still report fine —
> the link is always in the API response body, just not printed — so this is
> not a hard floor. See [`report/SKILL.md`](report/SKILL.md) Step 7.
>
> **`1.12.0` enhancement (recommended):** the `dailybot hook` command group
> (`session-start` / `post-commit` / `activity` / `stop` / `dismiss`) lets
> the agent harness remind the model **deterministically** to report
> unreported work — including non-commit work — via lifecycle hooks, backed
> by a local per-repo ledger. This is what makes reporting fully autonomous.
> Not a hard floor either: below 1.12.0 the prompt triggers still work. See
> [`report/hooks.md`](report/hooks.md) and the
> [CLI hook docs](https://github.com/DailybotHQ/cli/blob/main/docs/AGENT_HOOKS.md).
>
> **`1.13.0` floor for `dailybot-chat`** ([PyPI](https://pypi.org/project/dailybot-cli/1.13.0/),
> released **2026-06-12**): the `dailybot chat send` / `chat update`
> command group first ships in 1.13.0, together with login-Bearer auth on
> `/v1/send-message/` (so the developer doesn't need an org API key to
> send a chat message), report-style threads via `--thread-message`
> (≤10 per call), and individually-editable thread reply ids. The
> `dailybot-chat` sub-skill requires this minimum; the other sub-skills
> are unaffected. See [`chat/SKILL.md`](chat/SKILL.md).

### Why this minimum

The `dailybot-forms`, `dailybot-teams`, and `dailybot-kudos` sub-skills depend on
CLI surface that **first ships in 1.10.0**:

- `dailybot form get` / `form responses` / `form response get` — inspect forms and prior responses.
- `dailybot form update` / `form transition` / `form delete` — drive a response through its workflow.
- `dailybot team list` / `team get [--with-members]` — role-scoped team reads.
- `dailybot kudos give --team "<name>"` — team-targeted kudos (caller excluded from the expansion).
- Standardized user-scoped exit codes (`0` / `2` / `3` / `4` / `5` / `6` / `7`).
- `--json` 4xx errors include the structured `code` field (`form_response_change_state_forbidden`, `final_state_locked`, `no_valid_team`, …) so agents can pattern-match without parsing prose.

CLI versions below 1.10.0 only expose `form list` + `form submit` and user-only
kudos; the sub-skills detect the gap and fail cleanly (exit-code messaging will
ask the developer to upgrade).

### Checking the installed version

```bash
# Single-line, scriptable
dailybot --version
# → dailybot 1.10.0 (Python 3.12.4)

# Multi-line panel: version, Python runtime, install path, release notes link
dailybot version

# Same panel + queries PyPI to tell you whether a newer version exists
dailybot version --check
```

### Upgrading a stale install

```bash
dailybot upgrade
```

The CLI auto-detects how it was installed (`pipx` / `uv tool` / `pip` /
Homebrew / Linux binary / editable dev) and either runs the right command in a
subprocess or prints the exact command for installs the CLI shouldn't drive.
`dailybot upgrade --dry-run` previews without executing.

If the developer is below 1.10.0, ask them to run `dailybot upgrade` once,
then resume. Do not retry CLI commands in a loop while the upgrade is pending.

### Direct install commands

| Channel | Command |
|---------|---------|
| pip | `pip install 'dailybot-cli>=1.10.0'` |
| Homebrew | `brew install dailybothq/tap/dailybot` |
| Universal installer (Linux / macOS / WSL2 / Git Bash) | `curl -sSL https://cli.dailybot.com/install.sh \| bash` |
| Windows PowerShell (when WSL2 / Git Bash unavailable) | `irm https://cli.dailybot.com/install.ps1 \| iex` |

The universal installer auto-detects the OS and routes to Homebrew on macOS,
the prebuilt binary on Linux x86_64, or pipx / uv tool / pip --user elsewhere.
Full safety story (SHA-256 sidecar, cross-origin diff, optional cosign): see
[`shared/auth.md`](shared/auth.md).

## Why use the official skill

- **First-party.** Built by the Dailybot team and kept in sync with the
Expand Down Expand Up @@ -87,20 +177,30 @@ the full step-by-step workflow.
| "email this to Alice", "send an email", "send a summary to the team" | **Email** → read [`email/SKILL.md`](email/SKILL.md) |
| "go online", "announce status", "health check" | **Health** → read [`health/SKILL.md`](health/SKILL.md) |
| "complete my check-in", "fill in my standup", "answer my dailybot", "any pending check-ins?" | **Checkin** → read [`checkin/SKILL.md`](checkin/SKILL.md) |
| "give kudos to Jane", "recognize Alice for the PR review", "thank Bob for the help" | **Kudos** → read [`kudos/SKILL.md`](kudos/SKILL.md) |
| "list my forms", "fill out the feedback survey", "submit the retro form", "what forms do I have?" | **Forms** → read [`forms/SKILL.md`](forms/SKILL.md) |
| "give kudos to Jane", "recognize Alice", "kudos al equipo Engineering", "felicita al team de QA" | **Kudos** → read [`kudos/SKILL.md`](kudos/SKILL.md) |
| "list my teams", "who's in QA?", "resolve the Engineering team", or another skill needs a team UUID | **Teams** → read [`teams/SKILL.md`](teams/SKILL.md) |
| "list my forms", "submit the retro form", "continue my release-form draft", "transition the release to released", "show me the last form response" | **Forms** → read [`forms/SKILL.md`](forms/SKILL.md) |
| "send a Slack message", "DM Sergio in chat", "post the deploy report to #releases (with a thread)", "edit that chat message I just sent", "ping the Engineering team in chat" | **Chat** → read [`chat/SKILL.md`](chat/SKILL.md) |

### Auto-activation (no explicit request)

| Situation | Route to |
|-----------|----------|
| You completed a task/subtask, or edited 3+ files | **Report** → read [`report/SKILL.md`](report/SKILL.md) |
| A Dailybot hook reminder was injected into your context ("commits have landed…" / "sustained work without a progress report…") | **Report** → read [`report/SKILL.md`](report/SKILL.md); if nothing significant happened, run `dailybot hook dismiss` instead — never ignore the reminder silently |
| Starting a long work session or idle for 15+ minutes | **Health** → read [`health/SKILL.md`](health/SKILL.md) |

**Disambiguation:** "check in with the team" → **Health**; "complete my
check-in" or "fill in standup" → **Checkin**. The word "check-in" alone
with no verb defaults to **Checkin** (the structured questionnaire).

**Report vs Chat.** "Report this to Dailybot" / "tell my team what we built"
defaults to **Report** (dashboard). Switch to **Chat** only when the
developer explicitly mentions a chat platform / channel / channel id, or
says "send a message" / "ping in chat" / "post to #channel". Chat is
externally visible to other humans on the connected platform; report goes
to the Dailybot dashboard.

If the intent is ambiguous, default to **Report** — it's the most
common use case.

Expand Down
Loading