diff --git a/.agents/docs/COMMANDS_REFERENCE.md b/.agents/docs/COMMANDS_REFERENCE.md index 1c6c27a..8c5e1db 100644 --- a/.agents/docs/COMMANDS_REFERENCE.md +++ b/.agents/docs/COMMANDS_REFERENCE.md @@ -58,7 +58,7 @@ Project-scoped slash commands curated for `dailybot-cli` work. Each routes to a ## Dailybot agent skill pack (vendored) -The full pack lives under [`../skills/dailybot/`](../skills/dailybot/) (router + 9 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. Each sub-skill is independently invocable; the full list lives in [`skills_agents_catalog.md`](skills_agents_catalog.md). +The full pack lives under [`../skills/dailybot/`](../skills/dailybot/) (router + sixteen sub-skills, including labels + featured). The router auto-routes by intent — read [`../skills/dailybot/SKILL.md`](../skills/dailybot/SKILL.md) and let it pick the right sub-skill. Each sub-skill is independently invocable; the full list lives in [`skills_agents_catalog.md`](skills_agents_catalog.md). --- diff --git a/.agents/docs/skills_agents_catalog.md b/.agents/docs/skills_agents_catalog.md index 923457f..300df84 100644 --- a/.agents/docs/skills_agents_catalog.md +++ b/.agents/docs/skills_agents_catalog.md @@ -18,7 +18,7 @@ Slash commands. Invoked as `/` (Claude Code) or `#` (Codex/Cursor/Ge ### 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 + fourteen sub-skills; vendored at **v3.11.0**). Every sub-skill requires `dailybot-cli >= 3.8.0` — the pack baseline. 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: +The full pack lives under [`.agents/skills/dailybot/`](../skills/dailybot/) (router + sixteen sub-skills; vendored at **v3.13.0**). Every sub-skill requires `dailybot-cli >= 3.9.0` — the pack baseline. 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 | |------|-----------|----------| @@ -35,6 +35,8 @@ The full pack lives under [`.agents/skills/dailybot/`](../skills/dailybot/) (rou | `dailybot-conversation` | [`skills/dailybot/conversation/SKILL.md`](../skills/dailybot/conversation/SKILL.md) | Opening (or idempotently reusing) a Slack group DM with the bot + named teammates, then optionally posting a report (`conversation open -u … -m …`; Slack only, org-admin only) | | `dailybot-ask` | [`skills/dailybot/ask/SKILL.md`](../skills/dailybot/ask/SKILL.md) | Asking the Dailybot AI a one-shot, headless question | | `dailybot-workflow` | [`skills/dailybot/workflow/SKILL.md`](../skills/dailybot/workflow/SKILL.md) | Listing / reading / triggering org workflows — `workflow list` (incl. `--filter api_trigger`) / `workflow get` / `workflow trigger` (plan-gated) | +| `dailybot-labels` | [`skills/dailybot/labels/SKILL.md`](../skills/dailybot/labels/SKILL.md) | Organization Labels — create/list/update/archive/delete and assign (or batch) to forms, check-ins, and workflows/automations (web chip-picker parity; `dailybot-cli >= 3.9.0`) | +| `dailybot-featured` | [`skills/dailybot/featured/SKILL.md`](../skills/dailybot/featured/SKILL.md) | Private per-user Featured stars on forms, automations, and check-ins (not org Labels; `dailybot-cli >= 3.9.0`) | | `dailybot-env` | [`skills/dailybot/env/SKILL.md`](../skills/dailybot/env/SKILL.md) | Managing per-repo API keys in the opt-in, gitignored `.dailybot/env.json` (`env add/use/show/list/remove/off/on`) — be "logged into different orgs in different repos" | ### Deep Work Plan skill pack (vendored from [`DailybotHQ/deepworkplan-skill`](https://github.com/DailybotHQ/deepworkplan-skill)) diff --git a/.agents/skills/dailybot/SKILL.md b/.agents/skills/dailybot/SKILL.md index 6897d1a..57b30a5 100644 --- a/.agents/skills/dailybot/SKILL.md +++ b/.agents/skills/dailybot/SKILL.md @@ -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 (to users or teams), resolve teams, run the full forms lifecycle (list, submit, update, transition between workflow states), **author check-ins and forms from scratch** (create/configure questions, workflow states, permissions, reminders, scheduling, AI settings, sharing), send/edit chat messages on the team's Slack/Teams/Discord/Google Chat (including report-style threads, sending as a user's identity, and interactive buttons with approval flows, workflow triggers, modals, and callbacks), open (or reuse) a Slack group DM with the bot and post a report to it, ask the Dailybot AI a question headlessly, **and browse/read/trigger the workspace** — who am I / my org / a user's profile (`me` / `org` / `user get`), browse the kudos feed + the org-wide feed + wall of fame, list/read workflows, and trigger API-triggerable workflows with optional payloads — all with shared pagination / search / date-range filters. Also **manages per-repo API keys** through the opt-in `.dailybot/env.json` file (dailybot env add/use/show/list/remove/off/on — pack baseline `>= 3.8.0`) so a developer can be "logged into different orgs in different repos" simultaneously. Routes to the right sub-skill based on intent. Use when the developer mentions Dailybot or wants to interact with their team. -version: "3.11.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), **author check-ins and forms from scratch** (create/configure questions, workflow states, permissions, reminders, scheduling, AI settings, sharing), send/edit chat messages on the team's Slack/Teams/Discord/Google Chat (including report-style threads, sending as a user's identity, and interactive buttons with approval flows, workflow triggers, modals, and callbacks), open (or reuse) a Slack group DM with the bot and post a report to it, ask the Dailybot AI a question headlessly, **browse/read/trigger the workspace** (`me` / `org` / `user get`, kudos browsing, workflows), **manage organization Labels** (`dailybot label` CRUD + assign/batch on forms, check-ins, workflows) and **private Featured stars**, and **manage per-repo API keys** through `.dailybot/env.json` (pack baseline `dailybot-cli >= 3.9.0`). Routes to the right sub-skill based on intent. Use when the developer mentions Dailybot or wants to interact with their team. +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -30,7 +30,7 @@ no network fetch is required** to know what to do. Run first-run setup in order: the `dailybot` CLI is the integration surface. If it is missing, follow [`shared/auth.md`](shared/auth.md) — it proposes the checksum-verified installer and installs **only after the developer confirms**. Confirm with - `dailybot --version` (minimum `>= 3.8.0` — the skill-pack baseline for + `dailybot --version` (minimum `>= 3.9.0` — the skill-pack baseline for every sub-skill). 2. **Authenticate.** `dailybot login` (email OTP) **or** set `DAILYBOT_API_KEY` — see [`shared/auth.md`](shared/auth.md). Credentials are stored owner-only @@ -51,7 +51,7 @@ machine — permissions, consent guarantees, and a self-audit you can run — is ## What it does -Fourteen coordinated capabilities, with smart routing between them: +Sixteen coordinated capabilities, with smart routing between them: | Capability | Sub-skill | When it fires | |------------|-----------|---------------| @@ -67,9 +67,10 @@ Fourteen coordinated capabilities, with smart routing between them: | **Teams** | `dailybot-teams` | List teams, inspect members, resolve a team name → UUID (used as a resolver by other skills) — **plus account context**: `dailybot me` (who am I / role), `dailybot org` (which org), and `dailybot user get` (one user's profile) | | **Forms** | `dailybot-forms` | List, submit, update, or transition forms — including workflow-state forms with audience permissions (`form list` is now **org-scoped** by default, with `--mine` to narrow to your own; list + responses support pagination / search / date filters) — **plus authoring**: create/configure a form (workflow states, permissions, anonymous/public/approval, ChatOps command) and manage its questions | | **Workflows** | `dailybot-workflow` | Developer wants to **read or trigger** the org's workflows — `workflow list` (paginated/searchable, with `--filter api_trigger`), `workflow get`, and `workflow trigger` (fire an API-triggerable workflow with an optional JSON payload). Creating/editing workflows is web-app only. Plan-gated | -| **Labels** | `dailybot-labels` | Create org Labels and assign them to forms, check-ins, and workflows (`label assign` / `label batch`) — same chip picker as the web app | | **Report channels** | `dailybot-channels` | Discover report-channel UUIDs to attach to forms/check-ins with `--report-channel` | -| **Per-repo API keys** | `dailybot-env` | Configure `.dailybot/env.json` — an **opt-in, gitignored** file that carries API keys + URLs for one or more environments (live, local, staging) so the developer can be "logged into different orgs in different repos". `dailybot env add / use / show / list / remove / off / on`. Pack baseline (`>= 3.8.0`) | +| **Per-repo API keys** | `dailybot-env` | Configure `.dailybot/env.json` — an **opt-in, gitignored** file that carries API keys + URLs for one or more environments (live, local, staging) so the developer can be "logged into different orgs in different repos". `dailybot env add / use / show / list / remove / off / on`. Pack baseline (`>= 3.9.0`) | +| **Organization Labels** | `dailybot-labels` | Full org Labels lifecycle (`dailybot label entitlement/list/get/create/update/archive/delete/assign/batch`) — shared taxonomy for forms, check-ins, and workflows/automations; web chip-picker parity. Requires CLI `>= 3.9.0` | +| **Featured stars** | `dailybot-featured` | Private per-user stars on Forms, Automations, Check-ins (`dailybot featured …`) | ## Install @@ -87,7 +88,7 @@ reporting, ships **inside this skill** — follow **[Start here (first run)](#st ## Required Dailybot CLI version -> **Baseline: `dailybot-cli >= 3.8.0`** for **every** sub-skill in the pack — +> **Baseline: `dailybot-cli >= 3.9.0`** for **every** sub-skill in the pack — > one single floor, no per-sub-skill exceptions. Recommended install / upgrade > target: **latest release** — `dailybot upgrade` (or `pip install > --upgrade dailybot-cli`) always satisfies it. @@ -105,18 +106,17 @@ reporting, ships **inside this skill** — follow **[Start here (first run)](#st ### Why this minimum -`3.8.0` is the release that shipped the interactive-button contract on -`dailybot chat send` / `update` (`--buttons`, approval / workflow-button -flags, modals, callbacks) and `dailybot workflow trigger` (plus -`workflow list --filter api_trigger`). It also includes everything earlier -floors already covered: `.dailybot/env.json` per-repo credentials (from -3.7.0), reporting, hooks, forms and check-in authoring, kudos, teams, -`ask`, the shared list query flags, and the machine-readable error codes. -Pinning one single floor keeps agent behavior predictable — no per-sub-skill -version matrix. - -If `dailybot --version` reports below 3.8.0, ask the developer to run -`dailybot upgrade` (or `pip install --upgrade 'dailybot-cli>=3.8.0'`) +`3.9.0` is the release that shipped **organization Labels** (`dailybot label` +CRUD + `assign` / `batch`) and **Featured** stars (`dailybot featured`), and +it includes everything from `3.8.0`: the interactive-button contract on +`dailybot chat send` / `update`, `dailybot workflow trigger`, +`.dailybot/env.json` per-repo credentials, reporting, hooks, forms and +check-in authoring, kudos, teams, `ask`, shared list query flags, and +machine-readable error codes. Pinning one single floor keeps agent behavior +predictable — no per-sub-skill version matrix. + +If `dailybot --version` reports below 3.9.0, ask the developer to run +`dailybot upgrade` (or `pip install --upgrade 'dailybot-cli>=3.9.0'`) before using any sub-skill. ### Checking the installed version @@ -124,7 +124,7 @@ before using any sub-skill. ```bash # Single-line, scriptable dailybot --version -# → dailybot 3.8.0 (Python 3.12.4) +# → dailybot 3.9.0 (Python 3.12.4) # Multi-line panel: version, Python runtime, install path, release notes link dailybot version @@ -144,7 +144,7 @@ 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 the pack baseline (`dailybot-cli >= 3.8.0`), +If the developer is below the pack baseline (`dailybot-cli >= 3.9.0`), ask them to run `dailybot upgrade` once, then resume. Do not retry CLI commands in a loop while the upgrade is pending. @@ -152,7 +152,7 @@ commands in a loop while the upgrade is pending. | Channel | Command | |---------|---------| -| pip | `pip install 'dailybot-cli>=3.8.0'` (the pack baseline) | +| pip | `pip install 'dailybot-cli>=3.9.0'` (the pack baseline) | | Homebrew | `brew install dailybothq/tap/dailybot` | | Universal installer (Linux / macOS / WSL2 / Git Bash) | `curl -fsSL https://cli.dailybot.com/install.sh \| bash` | | Windows PowerShell (when WSL2 / Git Bash unavailable) | `irm https://cli.dailybot.com/install.ps1 \| iex` | @@ -177,7 +177,7 @@ Full safety story (SHA-256 sidecar, cross-origin diff, optional cosign): see Every install method defaults to the latest release but can pin an exact version — useful when a developer needs to reproduce a known-good setup or -pin the `3.8.0` pack baseline (the installer scripts, `pip`, and Homebrew all +pin the `3.9.0` pack baseline (the installer scripts, `pip`, and Homebrew all accept a version pin): | Channel | Pin a version | @@ -245,6 +245,8 @@ the full step-by-step workflow. | "browse kudos", "kudos I received / gave", "org kudos stats", "who's on the wall of fame?" | **Kudos** → read [`kudos/SKILL.md`](kudos/SKILL.md) § Browsing kudos | | "add a label to a form / check-in / workflow", "tag this standup with Sprint", "assign organization labels" | **Labels** → read [`labels/SKILL.md`](labels/SKILL.md) | | "list my workflows", "show workflows", "what's in workflow X?" | **Workflows** → read [`workflow/SKILL.md`](workflow/SKILL.md) | +| "list organization labels", "create a label", "archive label X", "labels entitlement" | **Labels** → read [`labels/SKILL.md`](labels/SKILL.md) | +| "star this form", "featured check-ins", "unfeature automation", "list my starred forms" | **Featured** → read [`featured/SKILL.md`](featured/SKILL.md) | | "trigger the deploy workflow", "fire automation X", "run workflow ``", "trigger workflow with payload" | **Workflows** → read [`workflow/SKILL.md`](workflow/SKILL.md) § Step 4 (Trigger) | | "which channels can Dailybot post to?", "list report channels", "I need a channel UUID for the form / check-in" | **Channels** → read [`channels/SKILL.md`](channels/SKILL.md) | | "send a Slack message", "DM someone in chat", "post the deploy report to a channel (with a thread)", "edit that chat message I just sent", "ping the Engineering team in chat" | **Chat** → read [`chat/SKILL.md`](chat/SKILL.md) | diff --git a/.agents/skills/dailybot/ask/SKILL.md b/.agents/skills/dailybot/ask/SKILL.md index 28d1f62..bdee667 100644 --- a/.agents/skills/dailybot/ask/SKILL.md +++ b/.agents/skills/dailybot/ask/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-ask description: Ask the Dailybot AI a question from the terminal and read the answer, non-interactively. Runs headless — a single `dailybot ask ""` prints the assistant's reply to stdout (or structured JSON with `--json`), so an autonomous agent (Claude Code, CI, a bot) can query the Dailybot AI with only an API key. Use when the developer or agent says "ask Dailybot ...", "query the Dailybot AI", "what does Dailybot say about ...", or wants a one-shot answer from Dailybot's assistant. Distinct from dailybot-chat (bot messages to Slack/Teams) and dailybot-report (progress to the dashboard). -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,7 +10,7 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Ask -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline) — the `dailybot ask` +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline) — the `dailybot ask` > command and full API-key parity on the AI chat. On much older CLIs the AI chat only > exists as the interactive TUI (`dailybot interactive`) and requires a login > session. If `dailybot ask --help` is not recognized, ask the developer to run @@ -59,7 +59,7 @@ Read and follow the authentication steps in [`../shared/auth.md`](../shared/auth The AI chat accepts **either** a login session **or** an org API key — an agent with only `DAILYBOT_API_KEY` set can use `dailybot ask` directly. -Confirm the command exists (`dailybot-cli >= 3.8.0`): +Confirm the command exists (`dailybot-cli >= 3.9.0`): ```bash dailybot ask --help 2>&1 | head -1 diff --git a/.agents/skills/dailybot/channels/SKILL.md b/.agents/skills/dailybot/channels/SKILL.md index 4fab635..3c218ba 100644 --- a/.agents/skills/dailybot/channels/SKILL.md +++ b/.agents/skills/dailybot/channels/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-channels description: Discover the report channels (Slack/Teams/Discord/Google Chat) available to you via Dailybot, so their UUIDs can be attached to forms and check-ins with --report-channel. Use when the developer needs a channel UUID for form/check-in authoring. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,9 +10,9 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Report Channels -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The `dailybot channels list` +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The `dailybot channels list` > command is available at this floor. If `dailybot --version` reports below -> 3.8.0, ask the developer to run `dailybot upgrade`. See +> 3.9.0, ask the developer to run `dailybot upgrade`. See > [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). Report channels are the Slack / Microsoft Teams / Discord / Google Chat diff --git a/.agents/skills/dailybot/chat/SKILL.md b/.agents/skills/dailybot/chat/SKILL.md index a676b5d..846322e 100644 --- a/.agents/skills/dailybot/chat/SKILL.md +++ b/.agents/skills/dailybot/chat/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-chat description: Send and edit Dailybot bot messages on the team's connected chat platform (Slack, Microsoft Teams, Discord, Google Chat) — to user DMs, channels, or whole teams. Supports report-style threads (one headline + replies, in one call), interactive buttons (approval flows, workflow triggers, modals, callbacks), and editing the parent or any reply afterward. Use when the developer says "send a message to my Slack channel", "ping the team in chat", "post the deploy report to #releases", "send an approval request with buttons", or wants to update a previously sent bot message. Works headless for agents. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,13 +10,13 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Chat -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The > `dailybot chat send` / `chat update` command group — including > `--thread-message`, login-Bearer auth on `/v1/send-message/`, > `--send-as-user` / `--send-as-me`, and the full interactive-button > surface (`--buttons`, approval / workflow-button flags, modals, > callbacks) — is available at this floor. If `dailybot --version` is -> below 3.8.0, ask the developer to run `dailybot upgrade`. See +> below 3.9.0, ask the developer to run `dailybot upgrade`. See > [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) > for install commands and version-check tooling. @@ -367,7 +367,7 @@ The 72-hour edit window applies. > Interactive-button flags (`--buttons`, `--approve-button` / > `--reject-button`, `--callback-url`, `--callback-bearer`, -> `--workflow-button`) require **`dailybot-cli >= 3.8.0`** (this pack's +> `--workflow-button`) require **`dailybot-cli >= 3.9.0`** (this pack's > baseline). `--link-button` and `--button` are also available at that floor. ### Headless / agent use — capture the ids in JSON diff --git a/.agents/skills/dailybot/checkin/SKILL.md b/.agents/skills/dailybot/checkin/SKILL.md index 3f08c6e..31c624f 100644 --- a/.agents/skills/dailybot/checkin/SKILL.md +++ b/.agents/skills/dailybot/checkin/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-checkin description: Drive the full check-in lifecycle via Dailybot — list and complete pending check-ins, see pending/completed status for a day, inspect a check-in's questions and schedule, browse response history, edit or reset a submitted response, and backfill or future-date responses. Also authors check-ins — create and configure a check-in (schedule, participants, reminders, privacy, smart/AI) and manage its questions (types, report titles, variations, conditional logic). Works headless with an API key. Use when the developer asks to fill in their standup, answer daily questions, check what check-ins they have, edit or reset a check-in, review past responses, or create/configure a check-in. Do not use for free-text progress reports — those go through dailybot-report. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -285,11 +285,11 @@ prompts — handy for humans; agents should use the headless commands above. ## Step 3.7 — Authoring check-ins (create / configure / questions) -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The authoring surface — `checkin create`, +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The authoring surface — `checkin create`, > `checkin config`, `checkin archive`, the `checkin questions add|edit|delete|reorder` > group, resolving people by email, the smart/AI flags, and the **create requires > ≥ 1 question** rule (`questions_required`) — is all available. If -> `dailybot --version` is below 3.8.0, run `dailybot upgrade`. +> `dailybot --version` is below 3.9.0, run `dailybot upgrade`. Everything above **answers** a check-in. This section **builds** one. As of the authoring release, an agent can create a check-in from scratch, tune every @@ -727,6 +727,12 @@ dailybot checkin create -n "Daily Standup" \ # 2. Verify the round-trip dailybot checkin show --json + +# 3. Optional — attach organization Labels (CLI >= 3.9.0; create has no --labels). +# Prefer `.uuid` from create --json (aliased from API `id`). Full procedure: ../labels/SKILL.md +# LABEL=$(dailybot label create --name "Standup" --color "#4A90E2" --json | jq -r '.uuid') +# CID=$(dailybot checkin create ... --json | jq -r '.uuid // .id') +# dailybot label assign "$CID" --type checkins --label "$LABEL" ``` **2. Smart AI check-in with insights and capped follow-ups:** diff --git a/.agents/skills/dailybot/conversation/SKILL.md b/.agents/skills/dailybot/conversation/SKILL.md index d1ddbb7..63f84a6 100644 --- a/.agents/skills/dailybot/conversation/SKILL.md +++ b/.agents/skills/dailybot/conversation/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-conversation description: Open (or idempotently reuse) a private Slack group DM (MPIM) that includes the Dailybot bot, then optionally post a message or report to it. Use when the developer wants to start a Slack group with specific teammates plus the bot — e.g. "open a group DM with Jane and Bob and send them the analysis report". Slack only, org-admin only. Distinct from dailybot-chat (which posts to existing channels/DMs) and dailybot-channels (which discovers report-channel UUIDs). -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,7 +10,7 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Conversations -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline; the +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline; the > `dailybot conversation open` command itself shipped in 3.2.0). If > `dailybot --version` reports lower, ask the developer to run > `dailybot upgrade` and continue with your primary task meanwhile. See diff --git a/.agents/skills/dailybot/email/SKILL.md b/.agents/skills/dailybot/email/SKILL.md index 2a55c23..0e3110c 100644 --- a/.agents/skills/dailybot/email/SKILL.md +++ b/.agents/skills/dailybot/email/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-email description: Send emails to a confirmed recipient via Dailybot on behalf of the agent. Use for notifications, summaries, follow-ups, or any communication the developer asks you to send. Always confirm recipients with the developer before sending — never guess addresses. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.dailybot.com/skill.md user-invocable: false 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)"}]}} @@ -12,7 +12,7 @@ allowed-tools: Bash, Read, Grep, Glob You send emails on behalf of the developer's agent through Dailybot. Useful for notifications, summaries, follow-ups, weekly reports, or any communication that should be delivered as email. -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). --- diff --git a/.agents/skills/dailybot/env/SKILL.md b/.agents/skills/dailybot/env/SKILL.md index 1b8c5db..4432a0d 100644 --- a/.agents/skills/dailybot/env/SKILL.md +++ b/.agents/skills/dailybot/env/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-env -description: Manage per-repo API key overrides in `.dailybot/env.json` — an opt-in, gitignored file that carries API keys + optional URLs for one or more environments (live, local, staging). One profile is active at a time; when set, it overrides `DAILYBOT_API_KEY`, `config.json`, and the login Bearer session for the enclosing repo. Use when the developer wants to be "logged into different orgs in different repos" simultaneously, needs a local dev key just for this project, or wants to toggle between staging and prod without touching global config or env vars. Requires CLI >= 3.8.0 (pack baseline; `env` shipped in 3.7.0). -version: "3.11.0" +description: Manage per-repo API key overrides in `.dailybot/env.json` — an opt-in, gitignored file that carries API keys + optional URLs for one or more environments (live, local, staging). One profile is active at a time; when set, it overrides `DAILYBOT_API_KEY`, `config.json`, and the login Bearer session for the enclosing repo. Use when the developer wants to be "logged into different orgs in different repos" simultaneously, needs a local dev key just for this project, or wants to toggle between staging and prod without touching global config or env vars. Requires CLI >= 3.9.0 (pack baseline; `env` shipped in 3.7.0). +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,10 +10,10 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot per-repo API key override (`env.json`) -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The > `dailybot env` command group and `.dailybot/env.json` loader shipped in > 3.7.0 and are included in this floor. If `dailybot --version` reports -> below 3.8.0, ask the developer to run `dailybot upgrade` before continuing. +> below 3.9.0, ask the developer to run `dailybot upgrade` before continuing. > See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). This sub-skill lets an agent configure and manage `/.dailybot/env.json` — an **opt-in, gitignored** file that pins API keys + URL overrides per environment (live, local, staging) for the enclosing repo. When a profile is *active*, it overrides `DAILYBOT_API_KEY`, `config.json`, and the login Bearer session **only for that repo**. @@ -38,11 +38,11 @@ Route here when the developer says any of: ## Pre-flight — before writing anything -1. **Confirm the CLI meets the pack baseline** (>= 3.8.0): +1. **Confirm the CLI meets the pack baseline** (>= 3.9.0): ```bash dailybot env --help >/dev/null 2>&1 || { - echo "This feature requires dailybot-cli >= 3.8.0. Run: dailybot upgrade" >&2 + echo "This feature requires dailybot-cli >= 3.9.0. Run: dailybot upgrade" >&2 exit 1 } ``` diff --git a/.agents/skills/dailybot/featured/SKILL.md b/.agents/skills/dailybot/featured/SKILL.md new file mode 100644 index 0000000..616a861 --- /dev/null +++ b/.agents/skills/dailybot/featured/SKILL.md @@ -0,0 +1,51 @@ +--- +name: dailybot-featured +description: Manage private Featured stars via the Dailybot CLI — list, set, and batch feature/unfeature Forms, Automations, and Check-ins for the authenticated user. Use when the developer asks to star/unstar dashboards items or manage Featured state. Not for organization Labels (use dailybot-labels). +version: "3.13.0" +documentation_url: https://www.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)"}]}} +allowed-tools: Bash, Read, Grep, Glob +--- + +# Dailybot Featured + +> **Requires `dailybot-cli >= 3.9.0`** with `dailybot featured …` commands. If missing, ask the developer to run `dailybot upgrade`. + +**Featured** is private per-user personalization — star Forms, Automations, or Check-ins so they surface first in your dashboards. Not gated by paid Labels. + +## When to Use + +- List which entities the user has starred +- Star or unstar one entity +- Batch feature/unfeature after bulk selection + +Entity types: `forms`, `automations`, `checkins`. + +## Step 1 — Verify Setup + +Read [`../shared/auth.md`](../shared/auth.md). Featured requires a user-scoped session or API key. + +## Step 2 — Common commands + +```bash +dailybot featured list --entity-type forms +dailybot featured set --entity-type checkins +dailybot featured set --entity-type automations --unfeatured +dailybot featured batch --entity-type forms --uuids uuid-1,uuid-2 +``` + +Add `--json` for machine-readable output. + +## Step 3 — HTTP fallback + +```bash +curl "https://api.dailybot.com/v1/me/featured/?entity_type=forms" \ + -H "Authorization: Bearer $DAILYBOT_CLI_TOKEN" +``` + +See [`../shared/http-fallback.md`](../shared/http-fallback.md). + +## Non-Blocking Rule + +If auth fails, warn briefly and continue the primary task. diff --git a/.agents/skills/dailybot/forms/SKILL.md b/.agents/skills/dailybot/forms/SKILL.md index 09ab5a7..2f19088 100644 --- a/.agents/skills/dailybot/forms/SKILL.md +++ b/.agents/skills/dailybot/forms/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-forms description: List, inspect, submit, update, and transition form responses via Dailybot — including forms with workflow states and audience-scoped permissions. Also authors forms — create and configure a form (workflow states, permissions, anonymous/public/approval, ChatOps command) and manage its questions (types, report titles, variations, conditional logic). Use when the developer wants to see available forms, fill out a survey, continue an in-progress response, move a response between states, read prior responses, or create/configure a form. Do not use for daily check-ins — those go through dailybot-checkin. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,7 +10,7 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Forms -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The full forms lifecycle — `form list` / `submit` / `get` / `responses` / `response get` / `update` / `transition` / `delete` — plus the structured `--json` 4xx error shape are all available. If `dailybot --version` is below 3.8.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The full forms lifecycle — `form list` / `submit` / `get` / `responses` / `response get` / `update` / `transition` / `delete` — plus the structured `--json` 4xx error shape are all available. If `dailybot --version` is below 3.9.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. You help developers work with the full Dailybot forms lifecycle: list, inspect, submit, update, transition between workflow states, and read prior responses. Forms are custom questionnaires created by team leads — feedback surveys, retrospectives, release checklists, approval flows, or any structured data collection. Some forms are simple "fill once and done"; others have **workflow states** (e.g. `draft → review → released`) with audience-scoped permissions on who can edit and who can transition. @@ -140,7 +140,7 @@ Returns all forms in the caller's organization. Every org member sees every org ### Pagination, search, and date filters -> **Note:** the shared list query flags below are part of the `dailybot-cli >= 3.8.0` baseline. Older CLIs +> **Note:** the shared list query flags below are part of the `dailybot-cli >= 3.9.0` baseline. Older CLIs > return the full list with no filtering. `form list` accepts the **full shared list query flag set** — pagination @@ -314,7 +314,7 @@ When the form has a workflow (`workflow.enabled: true`), the agent must understa ## Step 5.5 — Authoring forms (create / configure / questions) -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The full authoring surface — `form create`, `form config` (workflow states, the three permission audiences, anonymous/public/brand/require-identity with `public_url`, approval + approvers, the ChatOps command), `form archive`, the `form questions add|edit|delete|reorder` group, resolving people by email, `--no-approvers`, the 3 report-channel cap, and the **create requires ≥ 1 question** rule (`questions_required`) — is all available. If `dailybot --version` is below 3.8.0, ask the developer to run `dailybot upgrade`. +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The full authoring surface — `form create`, `form config` (workflow states, the three permission audiences, anonymous/public/brand/require-identity with `public_url`, approval + approvers, the ChatOps command), `form archive`, the `form questions add|edit|delete|reorder` group, resolving people by email, `--no-approvers`, the 3 report-channel cap, and the **create requires ≥ 1 question** rule (`questions_required`) — is all available. If `dailybot --version` is below 3.9.0, ask the developer to run `dailybot upgrade`. Everything above this point *reads* and *responds to* forms. This section *builds and reshapes* them. An agent with the right permissions can now create a form, wire up its workflow states, permission audiences, approval flow, and ChatOps command, and manage its questions — all end-to-end from the CLI, without opening the Dailybot webapp. @@ -753,6 +753,11 @@ dailybot form questions add "$FID" --type multiple_choice --options "Standard,Ho # 4. Verify. dailybot form get "$FID" --json | jq '{workflow, command, questions: (.questions|length)}' + +# 5. Optional — attach organization Labels (CLI >= 3.9.0; create has no --labels). +# Full procedure: ../labels/SKILL.md +# LABEL=$(dailybot label create --name "Release" --color "#4A90E2" --json | jq -r '.uuid') +# dailybot label assign "$FID" --type forms --label "$LABEL" ``` **B — Anonymous public NPS survey (shareable link)** diff --git a/.agents/skills/dailybot/forms/_custom-template/SKILL.md b/.agents/skills/dailybot/forms/_custom-template/SKILL.md index 827cd62..0e935f0 100644 --- a/.agents/skills/dailybot/forms/_custom-template/SKILL.md +++ b/.agents/skills/dailybot/forms/_custom-template/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-custom-form-template description: STARTER TEMPLATE — do not consume this file in place. Copy it to .agents/skills/dailybot-custom//SKILL.md in your own repo, then customize. This is the bootstrap skeleton for authoring a per-form custom skill that the universal dailybot-forms resolver will load from .dailybot/profile.json. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.dailybot.com/skill.md user-invocable: false allowed-tools: Bash, Read, Grep, Glob diff --git a/.agents/skills/dailybot/health/SKILL.md b/.agents/skills/dailybot/health/SKILL.md index ee610fe..5e1e09a 100644 --- a/.agents/skills/dailybot/health/SKILL.md +++ b/.agents/skills/dailybot/health/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-health description: Announce agent online/offline status to Dailybot and receive pending messages from the team. Use for long-running or scheduled agents to stay visible and pick up instructions. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.dailybot.com/skill.md user-invocable: false 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)"}]}} @@ -12,7 +12,7 @@ allowed-tools: Bash, Read, Grep, Glob You announce the agent's status (online, working, offline, degraded) to Dailybot so the team knows whether the agent is alive and what it's doing. Health check responses also deliver pending messages from the team. -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). --- diff --git a/.agents/skills/dailybot/kudos/SKILL.md b/.agents/skills/dailybot/kudos/SKILL.md index d8b2a2f..6305a20 100644 --- a/.agents/skills/dailybot/kudos/SKILL.md +++ b/.agents/skills/dailybot/kudos/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-kudos description: Give kudos to a teammate or to an entire team via Dailybot to recognize their contributions. Use when the developer wants to thank or recognize one person, or recognize a whole team (e.g. "kudos al equipo Engineering"). Do not use for general progress reports — those go through dailybot-report. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,7 +10,7 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Kudos -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). Giving kudos to a user (`--to`) or a team (`--team`), and browsing kudos (`list` / `org` / `wall-of-fame`), are all available. If `dailybot --version` is below 3.8.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). Giving kudos to a user (`--to`) or a team (`--team`), and browsing kudos (`list` / `org` / `wall-of-fame`), are all available. If `dailybot --version` is below 3.9.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. You help developers recognize teammates by sending kudos through Dailybot. Kudos are team-visible appreciation messages — the whole team sees them in Dailybot's recognition feed and in connected chat platforms (Slack, Teams, Discord). @@ -32,7 +32,7 @@ If the developer has only an API key, kudos still work — the CLI falls back to ## Browsing kudos (read) > **Baseline:** the three read commands below (`kudos list`, `kudos org`, -> `kudos wall-of-fame`) are part of the `dailybot-cli >= 3.8.0` baseline. +> `kudos wall-of-fame`) are part of the `dailybot-cli >= 3.9.0` baseline. Beyond *giving* kudos, an agent can **browse** the recognition feed and read org-wide stats. All three return the standard pagination envelope where diff --git a/.agents/skills/dailybot/labels/SKILL.md b/.agents/skills/dailybot/labels/SKILL.md index 2c5517c..4a051c8 100644 --- a/.agents/skills/dailybot/labels/SKILL.md +++ b/.agents/skills/dailybot/labels/SKILL.md @@ -1,69 +1,305 @@ --- name: dailybot-labels -description: Create organization Labels and attach them to forms, check-ins, and workflows (automations) via the Dailybot CLI — same taxonomy as the web settings page and row chip picker. Use when the developer wants to add, replace, or clear Labels on those entities, or to create/list Labels. +description: Manage organization Labels via the Dailybot CLI (dailybot-cli >= 3.9.0) — entitlement, list/search, create, update, archive, hard-delete, assign (web chip-picker parity) to forms / check-ins / workflows (automations), and bulk batch add/remove/replace. Use when the developer asks about org labels, tagging entities, label CRUD, or Labels entitlement. Not for private Featured stars (use dailybot-featured) or form-response workflow state names. +version: "3.13.0" +documentation_url: https://www.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)"}]}} +allowed-tools: Bash, Read, Grep, Glob --- # Dailybot Labels -Organization Labels are a **shared taxonomy** (not private Featured stars). The -web picker on a form / check-in / automation row is a **replace-set**. Match -that with `dailybot label assign`. Bulk add/remove uses `dailybot label batch`. +> **Requires `dailybot-cli >= 3.9.0`** (pack baseline). That release ships the +> full `dailybot label` surface: `entitlement` / `list` / `get` / `create` / +> `update` / `archive` / `delete` / `assign` / `batch`. Confirm with +> `dailybot label assign --help`. If missing, ask the developer to run +> `dailybot upgrade` (or `pip install --upgrade 'dailybot-cli>=3.9.0'`). -Requires CLI from the personalized-labels branch (commands `label assign` and -`label batch`). Confirm with `dailybot label assign --help`. +Organization **Labels** are a **shared taxonomy** for Forms, Check-ins, and +Workflows (Automations) — the same chips on the web settings page and row +picker. They are **not** private Featured stars (`dailybot featured` → +[`../featured/SKILL.md`](../featured/SKILL.md)). + +The web picker on a form / check-in / automation row is a **replace-set**. +Match that with `dailybot label assign`. Bulk add/remove/replace across many +entities uses `dailybot label batch`. + +## When to Use + +- List, search, or inspect organization Labels +- Create, update, archive, or hard-delete Labels (when entitled) +- Attach / replace / clear Labels on one form, check-in, or workflow +- Bulk add / remove / replace Labels on many entities +- Check Labels entitlement before building automations that depend on tags + +Do **not** use for: + +| Intent | Route instead | +|--------|----------------| +| Private per-user stars | [`dailybot-featured`](../featured/SKILL.md) | +| Form **response** workflow states named “labels” (Draft → Review → …) | [`dailybot-forms`](../forms/SKILL.md) transitions | +| Creating the form / check-in / workflow itself | forms / checkin / workflow skills — then come back here to assign | ## Auth -Same session as the rest of the CLI (`dailybot login` or `DAILYBOT_API_KEY`). -Point at staging with `--api-url https://staging-api.dailybot.com` when testing -there. Server entitlement (`dailybot label entitlement`) is the source of -truth — do not assume a paid plan is required. +Same session as the rest of the CLI (`dailybot login` or `DAILYBOT_API_KEY` / +`.dailybot/env.json`). See [`../shared/auth.md`](../shared/auth.md). + +Point at a non-prod API with the global flag when needed: + +```bash +dailybot --api-url label entitlement +# Example placeholder: https://staging-api.example.com +``` + +## Step 1 — Entitlement (always first) -## Create and list Labels +Server entitlement is the **source of truth**. Do not assume Labels are (or +are not) a paid-only feature — plans differ. + +```bash +dailybot status --auth 2>&1 +dailybot label entitlement +dailybot label entitlement --json +``` + +JSON shape (stable fields): + +```json +{ + "entitled": true, + "feature": "LABELS", + "reason": null, + "is_guest": false, + "can_create": true, + "can_manage_all": true, + "can_hard_delete": true, + "can_manage": true +} +``` + +| Flag | Meaning | +|------|---------| +| `entitled` | Org may use Labels at all | +| `can_create` | Caller may create Labels | +| `can_manage_all` | Caller may edit/archive Labels they did not create | +| `can_hard_delete` | Caller may hard-delete (elevated; fails when Label is in use) | +| `is_guest` | Guest identity — usually cannot manage | + +If `entitled` is `false`, warn briefly (`feature_not_available` / +`paid_plan_required`), surface any upgrade hint, and **continue the primary +task** without looping. + +## Step 2 — List / search / get ```bash dailybot label list +dailybot label list --search sprint --json +dailybot label list --archived --limit 50 --offset 0 +dailybot label get +dailybot label get --json +``` + +| Flag | Notes | +|------|--------| +| `--search` | Case-insensitive name search | +| `--archived` | Include archived Labels | +| `--limit` / `--offset` | Pagination (limit default 20, max 100) | +| `--json` | Machine-readable `{count, results:[…]}` | + +Copy UUIDs from `label list` / `--json` — assign/batch need Label UUIDs, not +names. + +List rows include `usage` / `usage_count` (forms / automations / checkins). +Counters can lag briefly after assign; trust the assign/batch response and +`form list` / `workflow list` enrichment when verifying. + +## Step 3 — Create / update + +```bash dailybot label create --name "Sprint" --color "#4A90E2" +dailybot label create --name "Release" --color "#2ECC71" --description "Release train" --json + +dailybot label update --name "Sprint 42" --color "#C0392B" +dailybot label update --description "Updated copy" +# Clear description: +dailybot label update --description "" ``` -Copy UUIDs from `label list` (or `--json`). +| Flag | Notes | +|------|--------| +| `--name` | Required on create; unique per org | +| `--color` | Hex, e.g. `#4A90E2` | +| `--description` | Optional; empty string on update clears it | +| `--json` | Prefer for scripting | + +Duplicate names are rejected — pick another name or update the existing Label. -## Attach to one entity (web picker parity) +## Step 4 — Assign to one entity (web picker parity) + +`assign` **replaces** the full set of Labels on that entity (same as the web +chip picker). Pass every Label that should remain. ```bash # Forms dailybot label assign --type forms --label +dailybot label assign --type forms --label --label +dailybot label assign --type forms --label , -# Check-ins +# Check-ins (use the check-in UUID from create --json → .uuid or .id) dailybot label assign --type checkins --label # Workflows / Automations (same API; --type automations is an alias) dailybot label assign --type workflows --label +dailybot label assign --type automations --label ``` -Repeat `--label` (or comma-separate) for several Labels. The list **replaces** -whatever was on the entity. +Clear every Label on an entity: ```bash dailybot label assign --type forms --clear ``` -## Bulk add / remove +| Flag | Notes | +|------|--------| +| `--type` | **Required.** `forms` \| `checkins` \| `workflows` (`automations` alias) | +| `--label` | Repeatable or comma-separated Label UUIDs (replace-set) | +| `--clear` | Replace with an empty set (mutually exclusive with attaching labels) | +| `--json` | Returns `{uuid, labels:[…]}` for the entity | + +### After authoring forms / check-ins + +`dailybot form create` and `dailybot checkin create` do **not** take +`--labels`. Create first, then assign: + +```bash +# Forms expose .uuid +FID=$(dailybot form create -n "Retro" --questions-file q.json --active --json | jq -r '.uuid') +dailybot label assign "$FID" --type forms --label "$LABEL_UUID" + +# Check-ins: prefer .uuid (CLI >= 3.9.x also aliases API `id` → `uuid` on --json) +CID=$(dailybot checkin create -n "Standup" --user \ + --questions-file q.json --time 09:00 --days 1,2,3,4,5 --json | jq -r '.uuid // .id') +dailybot label assign "$CID" --type checkins --label "$LABEL_UUID" +``` + +Workflows are created in the web app only — list UUIDs with +`dailybot workflow list --json`, then `label assign --type workflows`. + +### Verify on list APIs + +```bash +dailybot form list --limit 20 --json | jq '.[] | {name, labels}' +# or paginated envelope: .results[] +dailybot workflow list --limit 20 --json | jq '.[] | {name, labels}' +``` + +`checkin show` may omit `labels` even when assign succeeded — use the assign +`--json` response or list enrichment where available. + +## Step 5 — Batch (many entities) ```bash dailybot label batch --type forms --uuids , --label --mode add dailybot label batch --type checkins --uuids --label --mode remove -dailybot label batch --type workflows --uuids --label --mode replace +dailybot label batch --type workflows --uuids , --label , --mode replace +dailybot label batch --type automations --uuids --label --mode add --json ``` -`--mode` is `add` (default), `remove`, or `replace`. +| Flag | Notes | +|------|--------| +| `--type` | `forms` \| `checkins` \| `workflows` (`automations` alias) | +| `--uuids` | Comma-separated entity UUIDs (**required**, at least one) | +| `--label` | Repeatable or comma-separated Label UUIDs | +| `--mode` | `add` (default) \| `remove` \| `replace` | +| `--json` | `{mode, updated_count, entity_uuids, labels}` | + +Use **batch** for bulk add/remove; use **assign** when the web picker +replace-set semantics for a single row matter. + +## Step 6 — Archive / delete + +```bash +# Soft-archive (idempotent). Archived Labels cannot be newly assigned +# (code: archived_label). +dailybot label archive +dailybot label archive --json + +# Hard-delete — elevated only; fails when the Label is still attached +# (code: label_in_use). +dailybot label delete -y +dailybot label delete -y --json +``` + +If delete fails because the Label is in use (`label_in_use`): clear or +reassign entities (`label assign … --clear` / `label batch --mode remove`), +then delete again — or leave it archived. + +## Worked end-to-end flow + +```bash +# 0. Gate +dailybot label entitlement --json | jq '.entitled, .can_create' + +# 1. Create taxonomy +L1=$(dailybot label create --name "Sprint" --color "#4A90E2" --json | jq -r '.uuid') +L2=$(dailybot label create --name "Platform" --color "#2ECC71" --json | jq -r '.uuid') + +# 2. Author entities (questions required on create) +cat > /tmp/db-q.json <<'EOF' +[{"question": "What shipped?", "short_question": "Shipped", "question_type": "text"}] +EOF +FID=$(dailybot form create -n "Sprint Retro" --questions-file /tmp/db-q.json --active --json | jq -r '.uuid') +CID=$(dailybot checkin create -n "Daily Standup" --user \ + --questions-file /tmp/db-q.json --time 09:00 --days 1,2,3,4,5 --json | jq -r '.uuid // .id') +WID=$(dailybot workflow list --limit 1 --json | jq -r 'if type=="array" then .[0].uuid else .results[0].uuid end') + +# 3. Attach (replace-set on one row; batch for many) +dailybot label assign "$FID" --type forms --label "$L1" --label "$L2" --json +dailybot label assign "$CID" --type checkins --label "$L1" --json +[ -n "$WID" ] && dailybot label assign "$WID" --type workflows --label "$L2" --json +dailybot label batch --type forms --uuids "$FID" --label "$L1" --mode add --json + +# 4. Inspect +dailybot label get "$L1" --json | jq '{name, usage, usage_count}' +dailybot form list --limit 5 --json | jq 'map({name, labels})' +``` + +## Error codes (match on `code`, never `detail`) + +See also [`../shared/list-query-and-errors.md`](../shared/list-query-and-errors.md). + +| `code` | HTTP | When | What to do | +|--------|------|------|------------| +| `feature_not_available` | 403 | Org not entitled to Labels | Stop Labels work; tell the developer; do not retry | +| `paid_plan_required` | 403 | Plan lacks Feature.LABELS | Surface upgrade path if present; do not retry | +| `guest_not_allowed` | 403 | Guest caller hit a Labels endpoint | Stop; Labels require a non-guest member | +| `permission_denied` | 403 | Caller lacks permission for this Labels action | Ask an admin/manager; do not retry blindly | +| `org_admin_required` / `insufficient_role` | 403 | Caller cannot manage/delete | Ask an admin/manager | +| `archived_label` | 400 | Assign/batch used an archived Label | Create a new Label or stop assigning that UUID; do not force | +| `invalid_color` | 400 | Create/update color is not valid hex | Fix `--color` (e.g. `#4A90E2`) | +| `label_limit_exceeded` | 400 | Assign/batch would exceed per-entity Label limit | Remove a Label first, then retry | +| `duplicate_name` | 409 | Label name already exists in the org | Pick another `--name` or update the existing UUID | +| `label_in_use` | 409 | Hard-delete while the Label still has attachments | Clear/reassign entities, then delete — or archive instead | +| `not_found` | 404 | Unknown Label or entity UUID | Verify UUID via `label list` / entity `list` | + +Frozen public codes: [Errors](https://www.dailybot.com/developers/errors) +(Labels & personalization). Match on `code` from CLI `--json` (server value +forwarded unchanged). + +A **403** is never “session expired” — only **401** is. Re-login will not +fix a plan/role 403. -## After authoring +## HTTP fallback -`dailybot form create` / `checkin create` do **not** take `--labels`. Create -first, then `label assign` with the new UUID from `--json`. +When the CLI is unavailable, call `/v1/labels/` and the per-entity assign +paths under `/v1/forms/…/labels/`, `/v1/checkins/…/labels/`, or +`/v1/workflows/…/labels/` with Bearer or `X-API-KEY`. +See [`../shared/http-fallback.md`](../shared/http-fallback.md) and +[Labels API docs](https://www.dailybot.com/developers/api/labels). -## Not this skill +## Non-Blocking Rule -Private stars → `dailybot featured`. Workflow *states* named "labels" on a -form response → `dailybot-forms` transitions. +If auth fails or Labels are not entitled, warn once and continue the +developer's primary task. Never block coding work on Labels availability. diff --git a/.agents/skills/dailybot/messages/SKILL.md b/.agents/skills/dailybot/messages/SKILL.md index acd1713..620e479 100644 --- a/.agents/skills/dailybot/messages/SKILL.md +++ b/.agents/skills/dailybot/messages/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-messages description: Check for pending messages and instructions from your team via Dailybot. Use when starting a work session, when idle, or when asked what to work on next. Messages are instructions that should influence your work. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.dailybot.com/skill.md user-invocable: false 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)"}]}} @@ -14,7 +14,7 @@ You check for pending messages and instructions from the developer's team. Messa This is the "what should I work on next?" skill. -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version). --- diff --git a/.agents/skills/dailybot/report/SKILL.md b/.agents/skills/dailybot/report/SKILL.md index 4c5b446..b1e1fc2 100644 --- a/.agents/skills/dailybot/report/SKILL.md +++ b/.agents/skills/dailybot/report/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-report description: Report work progress to Dailybot. Activate after completing a discrete task or subtask, or after any batch of edits that modifies 3 or more files. Compose a standup-style update describing what changed and why. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -123,9 +123,9 @@ trigger in a previous session. #### Check whether hooks apply, and whether they are already installed -1. **CLI version.** Run `dailybot --version`. If it reports below `3.8.0` +1. **CLI version.** Run `dailybot --version`. If it reports below `3.9.0` (or the CLI is absent), skip Step 0b silently and continue to Step 1 — - the pack baseline is `dailybot-cli >= 3.8.0`, and the Step 0a trigger + the pack baseline is `dailybot-cli >= 3.9.0`, and the Step 0a trigger alone still works on older installs. 2. **Harness support.** If the current harness has no lifecycle-hook system (e.g. Cline today), skip Step 0b silently — Step 0a covers it. diff --git a/.agents/skills/dailybot/report/hooks.md b/.agents/skills/dailybot/report/hooks.md index e51e5d5..8d6824a 100644 --- a/.agents/skills/dailybot/report/hooks.md +++ b/.agents/skills/dailybot/report/hooks.md @@ -12,7 +12,7 @@ in once, and from then on the harness re-arms the reminders in every future session, container, and repo. No human reminders, no reliance on the model's memory. -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The `dailybot hook` command group +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The `dailybot hook` command group > is available at this floor. > Check with `dailybot --version`; if older, ask the developer to run > `dailybot upgrade` once. Hooks installed against an older CLI fail @@ -163,7 +163,7 @@ the only remaining per-person step is `dailybot login`, and the | `soft_turn_threshold` | `8` (`5` in `continuous` mode when omitted) | Agent turns without a report before a soft nudge is eligible | Invalid `mode` values fall back to `"balanced"`; invalid `soft_turn_threshold` - values fall back to the mode default. (Part of the `dailybot-cli >= 3.8.0` + values fall back to the mode default. (Part of the `dailybot-cli >= 3.9.0` baseline; much older CLIs ignore `mode`/`soft_turn_threshold` and stay on the balanced defaults. diff --git a/.agents/skills/dailybot/shared/auth.md b/.agents/skills/dailybot/shared/auth.md index ab7316a..aa42fe2 100644 --- a/.agents/skills/dailybot/shared/auth.md +++ b/.agents/skills/dailybot/shared/auth.md @@ -45,7 +45,7 @@ treat that as session-wide consent. > [!NOTE] > **Installing a specific version.** Both installers default to the latest -> release but accept a version pin (the skill-pack baseline is **`dailybot-cli >= 3.8.0`**): +> release but accept a version pin (the skill-pack baseline is **`dailybot-cli >= 3.9.0`**): > - `install.sh` — set `DAILYBOT_VERSION=` in the environment, or > pass `bash -s -- --version `. Example (drop it into the verified > snippet below, right before `bash /tmp/install.sh`): diff --git a/.agents/skills/dailybot/shared/dashboard-urls.md b/.agents/skills/dailybot/shared/dashboard-urls.md index 55f752b..f04e00d 100644 --- a/.agents/skills/dailybot/shared/dashboard-urls.md +++ b/.agents/skills/dailybot/shared/dashboard-urls.md @@ -1,6 +1,6 @@ # Shared reference — Dailybot dashboard URLs -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The > `--app-url` flag and `DAILYBOT_APP_URL` env var for configuring the dashboard > base URL are available at this floor, as is the per-profile `app_url` in > [`env-json.md`](env-json.md). diff --git a/.agents/skills/dailybot/shared/env-json.md b/.agents/skills/dailybot/shared/env-json.md index 17c7586..93756a6 100644 --- a/.agents/skills/dailybot/shared/env-json.md +++ b/.agents/skills/dailybot/shared/env-json.md @@ -294,9 +294,9 @@ Rules: Developer: *"I need to test against my local Dailybot instance for this project without breaking my prod login."* ```bash -# 1. Confirm CLI >= 3.8.0 (pack baseline; env command exists). +# 1. Confirm CLI >= 3.9.0 (pack baseline; env command exists). dailybot env --help >/dev/null 2>&1 || { - echo "This feature requires dailybot-cli >= 3.8.0. Run: dailybot upgrade" >&2 + echo "This feature requires dailybot-cli >= 3.9.0. Run: dailybot upgrade" >&2 } # 2. Ensure the gitignore covers .dailybot/* (create if needed). @@ -438,7 +438,7 @@ That's what `~/.config/dailybot/agents.json` (global profiles) is for — see `d ## Version compatibility -- Requires **`dailybot-cli >= 3.8.0`**. Older CLIs never look at `.dailybot/env.json` and treat it as harmless clutter. +- Requires **`dailybot-cli >= 3.9.0`**. Older CLIs never look at `.dailybot/env.json` and treat it as harmless clutter. - The Dailybot agent skill pack targeting this doc requires the same floor. - If a developer is on an older CLI, offer to upgrade first: `dailybot upgrade` (auto-detects install method). diff --git a/.agents/skills/dailybot/shared/list-query-and-errors.md b/.agents/skills/dailybot/shared/list-query-and-errors.md index b9a05e6..4c76cee 100644 --- a/.agents/skills/dailybot/shared/list-query-and-errors.md +++ b/.agents/skills/dailybot/shared/list-query-and-errors.md @@ -1,10 +1,10 @@ # Shared reference — list query flags, pagination, and machine-readable errors -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). Everything on this page — the shared +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). Everything on this page — the shared > list query flags, the `{count, next, previous, results}` pagination envelope, > the `Showing X of N` footer, the machine-readable error `code` dispatch, and > the API-key / Bearer parity + free-plan gating rules — is available at this -> floor. If `dailybot --version` is below 3.8.0, ask the developer to run +> floor. If `dailybot --version` is below 3.9.0, ask the developer to run > `dailybot upgrade`. This is the **single source of truth** for behavior shared across every @@ -147,6 +147,8 @@ In `--json` mode the error surfaces as `{ error, status, code, detail }`. | `org_admin_required` | The endpoint is org-admin only (e.g. `kudos org`, `chat send --send-as-user`, webhook/team-member management). | Only an org admin can run it — a member must ask an admin or use an admin API key. Not a session problem. | | `workflow_execute_not_allowed` | The caller doesn't have permission to execute (trigger) workflows. | An admin or a user with the execute permission must run it. | | `workflow_frozen` | The workflow is disabled (frozen) and cannot be triggered. | Tell the developer; the workflow must be re-enabled in the Dailybot web app. | +| `feature_not_available` | Organization Labels (or another gated feature) are not enabled for this org. | For Labels: stop tagging work; surface the entitlement gap (`dailybot label entitlement`). Do not retry. | +| `paid_plan_required` | The org's plan lacks Feature.LABELS (or similar). | Surface any upgrade path; do not retry Labels commands. | ### 400 — bad input @@ -177,6 +179,13 @@ In `--json` mode the error surfaces as `{ error, status, code, detail }`. | `workflow_trigger_payload_invalid` | `workflow trigger --payload` is not a valid JSON object or exceeds 8 KiB. | Fix the payload — must be a JSON object ≤8 KiB (measured as sent on the wire). | | `invalid_owner_user_id` | `--owner` value isn't a valid UUID (after resolution). | Fix the UUID or name. | | `too_many_owner_user_ids` | More than 50 `--owner` values. | Narrow the filter — max 50 owners per request. | +| `archived_label` | `label assign` / `label batch` used an archived Label. | Create a new Label or stop assigning that UUID. | +| `guest_not_allowed` | Guest caller hit a Labels endpoint. | Stop; Labels require a non-guest member. | +| `label_in_use` | `label delete` while the Label still has attachments (409). | Clear/reassign entities, then delete — or archive instead. | +| `label_limit_exceeded` | Assign/batch would exceed the per-entity Label limit. | Remove a Label first, then retry. | +| `duplicate_name` | Label name collides with an existing org Label (409). | Pick another `--name` or update the existing UUID. | +| `invalid_color` | Label create/update color is not a valid hex color. | Fix `--color` (e.g. `#4A90E2`). | +| `permission_denied` | Caller lacks permission for this Labels action. | Ask an admin/manager; do not retry blindly. | ### 429 — rate limit diff --git a/.agents/skills/dailybot/teams/SKILL.md b/.agents/skills/dailybot/teams/SKILL.md index 8f40ba8..c73e952 100644 --- a/.agents/skills/dailybot/teams/SKILL.md +++ b/.agents/skills/dailybot/teams/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-teams description: Read and resolve teams visible to the authenticated user. Use when the developer references a team by name (for kudos targeting, member lookup, or routing context) and an agent needs to obtain its UUID. Other Dailybot skills (kudos, messages) delegate team-name resolution to this skill rather than duplicating the logic. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,7 +10,7 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Teams -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). `dailybot team list`, `dailybot team get`, and the account-context commands `dailybot me` / `org` / `user get` are all available. If `dailybot --version` is below 3.8.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). `dailybot team list`, `dailybot team get`, and the account-context commands `dailybot me` / `org` / `user get` are all available. If `dailybot --version` is below 3.9.0, ask the developer to run `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI version](../SKILL.md#required-dailybot-cli-version) for install commands and version-check tooling. You help agents resolve and read teams visible to the logged-in user. Teams are how Dailybot groups people inside an organization — they're the targets for team-scoped kudos, the routing context for some messages, and the source of truth for "who's in X?". @@ -170,7 +170,7 @@ Returns the team plus its membership when `--with-members` is set. Useful when t ## Step 4.5 — Read a single user, and your own account context -> **Baseline:** `user get`, `me`, and `org` are part of the `dailybot-cli >= 3.8.0` baseline. +> **Baseline:** `user get`, `me`, and `org` are part of the `dailybot-cli >= 3.9.0` baseline. The org directory has always been readable in bulk via `dailybot user list` (names + UUIDs; emails hidden as PII). You can also read diff --git a/.agents/skills/dailybot/workflow/SKILL.md b/.agents/skills/dailybot/workflow/SKILL.md index f35f407..4328956 100644 --- a/.agents/skills/dailybot/workflow/SKILL.md +++ b/.agents/skills/dailybot/workflow/SKILL.md @@ -1,7 +1,7 @@ --- name: dailybot-workflow description: List, inspect, and trigger Dailybot workflows — enumerate the workflows configured for the organization, read one workflow's configuration, and fire API-triggerable workflows on demand. Use when the developer asks "list my workflows", "show workflows", "what's in the release workflow?", "trigger the deploy workflow", or "fire automation X". Creating/editing workflows is done in the Dailybot web app. Plan-gated feature. -version: "3.11.0" +version: "3.13.0" documentation_url: https://www.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)"}]}} @@ -10,10 +10,10 @@ allowed-tools: Bash, Read, Grep, Glob # Dailybot Workflows -> **Requires `dailybot-cli >= 3.8.0`** (the skill-pack baseline). The +> **Requires `dailybot-cli >= 3.9.0`** (the skill-pack baseline). The > `dailybot workflow list` / `get` / `trigger` command group — including > `--filter api_trigger` and `--payload` — is available at this floor. If -> `dailybot --version` reports below 3.8.0, ask the developer to run +> `dailybot --version` reports below 3.9.0, ask the developer to run > `dailybot upgrade`. See [`../SKILL.md` § Required Dailybot CLI > version](../SKILL.md#required-dailybot-cli-version) for install commands and > version-check tooling. @@ -66,6 +66,10 @@ operation. And do not confuse it with **form workflow states** (the [`../forms/SKILL.md`](../forms/SKILL.md). This skill is the org-level **workflow** object. +To **tag** an existing workflow with organization Labels after you have its +UUID from `workflow list`, use [`../labels/SKILL.md`](../labels/SKILL.md) +(`dailybot label assign --type workflows` — `automations` is an alias). + --- ## Step 1 — Verify Setup diff --git a/AGENTS.md b/AGENTS.md index 53f4ad9..61f8161 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -491,7 +491,7 @@ dailybot agent update --name "Claude Code" --milestone \ --metadata '{"model":"claude-opus-4-7","plan":"PLAN_agent_profiles","repo":"cli"}' ``` -Full philosophy, what to report, and what to skip: [.agents/skills/dailybot/report/SKILL.md](.agents/skills/dailybot/report/SKILL.md) (part of the vendored Dailybot agent skill pack at `.agents/skills/dailybot/`, **v3.11.0**, which also ships the `chat` (incl. `--send-as-user`/`--send-as-me`, interactive buttons with approval flows / workflow triggers / modals / callbacks), the `conversation` sub-skill (open/reuse a Slack group DM with the bot and post a report, `conversation open`), `kudos` (give + browse: `list`/`org`/`wall-of-fame`), `teams` (+ account context `me`/`org`/`user get`), `channels`, the `workflow` surface (`list`/`get`/`trigger`, plus `--filter api_trigger`), the full `forms` (org-scoped `list` + `--mine`) / `checkin` **authoring** sub-skills, and the `env` sub-skill (per-repo API keys via the opt-in, gitignored `.dailybot/env.json`) — plus the shared list pagination/search/date filters and machine-readable error-code reference. The whole pack requires `dailybot-cli >= 3.8.0` (single baseline)). Key rules: +Full philosophy, what to report, and what to skip: [.agents/skills/dailybot/report/SKILL.md](.agents/skills/dailybot/report/SKILL.md) (part of the vendored Dailybot agent skill pack at `.agents/skills/dailybot/`, **v3.13.0**, which also ships the `chat` (incl. `--send-as-user`/`--send-as-me`, interactive buttons with approval flows / workflow triggers / modals / callbacks), the `conversation` sub-skill (open/reuse a Slack group DM with the bot and post a report, `conversation open`), `kudos` (give + browse: `list`/`org`/`wall-of-fame`), `teams` (+ account context `me`/`org`/`user get`), `channels`, the `workflow` surface (`list`/`get`/`trigger`, plus `--filter api_trigger`), the full `forms` (org-scoped `list` + `--mine`) / `checkin` **authoring** sub-skills, the `labels` sub-skill (org Labels CRUD + assign/batch), the `featured` sub-skill (private Featured stars), and the `env` sub-skill (per-repo API keys via the opt-in, gitignored `.dailybot/env.json`) — plus the shared list pagination/search/date filters and machine-readable error-code reference. The whole pack requires `dailybot-cli >= 3.9.0` (single baseline)). Key rules: - 1–3 sentences, **always in English** - Focus on WHAT + WHY, never "Agent completed…" @@ -522,7 +522,7 @@ When applying bot feedback on a PR, agents **must** skip `isMinimized == true` c Reusable **Skills** (slash commands) and **Agents** (specialized personas) live under [`.agents/`](.agents/) — the vendor-neutral standard adopted by most coding agents (Claude Code, Cursor, Codex, Gemini, Copilot, …): -- [`.agents/skills/`](.agents/skills/) — slash-command procedures (e.g., `/quick-fix`, `/release-prep`, `/cli-command-add`, plus the vendored Dailybot pack at `.agents/skills/dailybot/` with `/dailybot-report`, `/dailybot-chat`, `/dailybot-conversation`, `/dailybot-kudos`, `/dailybot-teams`, `/dailybot-forms`, `/dailybot-checkin`, `/dailybot-email`, `/dailybot-health`, `/dailybot-messages`, `/dailybot-env`, and the vendored Deep Work Plan pack at `.agents/skills/deepworkplan/` with `/deepworkplan-create`, `/deepworkplan-execute`, `/deepworkplan-refine`, `/deepworkplan-resume`, `/deepworkplan-status`, `/deepworkplan-verify`, `/deepworkplan-onboard`) +- [`.agents/skills/`](.agents/skills/) — slash-command procedures (e.g., `/quick-fix`, `/release-prep`, `/cli-command-add`, plus the vendored Dailybot pack at `.agents/skills/dailybot/` with `/dailybot-report`, `/dailybot-chat`, `/dailybot-conversation`, `/dailybot-kudos`, `/dailybot-teams`, `/dailybot-forms`, `/dailybot-checkin`, `/dailybot-email`, `/dailybot-health`, `/dailybot-messages`, `/dailybot-labels`, `/dailybot-featured`, `/dailybot-env`, and the vendored Deep Work Plan pack at `.agents/skills/deepworkplan/` with `/deepworkplan-create`, `/deepworkplan-execute`, `/deepworkplan-refine`, `/deepworkplan-resume`, `/deepworkplan-status`, `/deepworkplan-verify`, `/deepworkplan-onboard`) - [`.agents/agents/`](.agents/agents/) — agent personas (e.g., `cli-developer`, `release-manager`, `docs-writer`, `test-engineer`) - [`.agents/commands/`](.agents/commands/) — thin slash-command delegators that route to a sub-skill (the `dwp-*` short aliases, `/skill-create`, `/agent-create`, `/deepworkplan-onboard`) - [`.agents/docs/skills_agents_catalog.md`](.agents/docs/skills_agents_catalog.md) — full skill + persona index diff --git a/docker/local/cli/Dockerfile b/docker/local/cli/Dockerfile index cb39f09..c72bb1e 100644 --- a/docker/local/cli/Dockerfile +++ b/docker/local/cli/Dockerfile @@ -46,7 +46,7 @@ RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | d # dev-user). `-f` makes an HTTP error a non-zero curl exit instead of piping an error # page into bash; the `SHELL … pipefail` above makes a failing curl abort the build. # install.sh itself runs `set -euo pipefail`, so failures inside it abort too. -RUN curl -fsSL https://cli.dailybot.com/install.sh | DAILYBOT_VERSION='>=3.8.0' bash +RUN curl -fsSL https://cli.dailybot.com/install.sh | DAILYBOT_VERSION='>=3.9.0' bash # Install all Python dev/runtime deps from the repo's lock file. # This single COPY/RUN pair is the only build cache layer pip touches — it