chore(skills): sync vendored dailybot skill pack to v3.13.0 - #80
Conversation
## Summary Dogfood sync of .agents/skills/dailybot/ to DailybotHQ/agent-skill v3.13.0 — full Labels skill, Featured stars, and pack CLI floor dailybot-cli >= 3.9.0. ## Change Log - Sync all vendored SKILL.md / shared docs to v3.13.0 - Bump pack version + CLI floor in AGENTS.md and skills_agents_catalog.md - Add labels + featured catalog entries ## Risks - None at runtime — vendored docs only; no source or packaging changes [skip release] Co-authored-by: Cursor <cursoragent@cursor.com>
AI review for
|
There was a problem hiding this comment.
Verdict
Solid dogfood sync of DailybotHQ/agent-skill v3.13.0 — version pins, catalog counts, AGENTS.md, and the docker CLI floor are consistent. A few warnings in the newly expanded Labels/Featured skill docs are worth fixing (or filing upstream) so agents don’t mis-handle auth/errors.
Findings
| # | Severity | File | Summary |
|---|---|---|---|
| 1 | .agents/skills/dailybot/featured/SKILL.md:44 |
HTTP fallback uses $DAILYBOT_CLI_TOKEN; rest of pack uses $DAILYBOT_BEARER_TOKEN |
|
| 2 | .agents/skills/dailybot/shared/env-json.md:441 |
Floor bump makes “older CLIs never look at env.json” false for 3.7–3.8 | |
| 3 | .agents/skills/dailybot/shared/list-query-and-errors.md:183 |
Several Labels codes (403/409) listed under the 400 section | |
| 4 | .agents/skills/dailybot/labels/SKILL.md:194 |
.results[] alternate jq path doesn’t match CLI --json (bare array) |
|
| 5 | ℹ️ info | .agents/skills/dailybot/featured/SKILL.md:3 |
Typo: “dashboards items” → “dashboard items” |
Sync intent (looks good)
- Router + catalog both report sixteen sub-skills; table rows match on-disk dirs (
labels+featuredincluded). - Frontmatter
version: "3.13.0"and pack baselinedailybot-cli >= 3.9.0are applied consistently across sub-skills;pyproject.tomlis already3.9.0. - Diff scope matches Rule 15.a dogfood sync (vendored pack + catalog/AGENTS + docker pin).
- Labels skill correctly drops the old
staging-api.dailybot.comexample for a generic placeholder (Rule 11.a).
Adjacent (not in diff — do not block this PR)
dailybot_cli/commands/public_api_helpers.py maps friendly text under archived_label_not_assignable, while the public errors doc and this skill use frozen code archived_label. CLI --json still forwards the server code; only the friendly-message lookup misses. Worth a follow-up CLI fix outside this sync.
Merge note
Squash-merge with [skip release] in the squash commit body (Rule 15.a use case a).
Recommendation: comment-only
|
|
||
| ```bash | ||
| curl "https://api.dailybot.com/v1/me/featured/?entity_type=forms" \ | ||
| -H "Authorization: Bearer $DAILYBOT_CLI_TOKEN" |
There was a problem hiding this comment.
HTTP fallback auth env var doesn’t match the rest of the pack.
This curl uses $DAILYBOT_CLI_TOKEN, but shared/http-fallback.md and sibling skills (forms, checkin, workflow, …) document Authorization: Bearer $DAILYBOT_BEARER_TOKEN for user-scoped HTTP fallback.
Failure mode: an agent that followed the shared fallback / OTP flow and exported DAILYBOT_BEARER_TOKEN will send an empty Bearer here and get 401, even though auth is set up.
DAILYBOT_CLI_TOKEN is the real CLI env var (get_token()), so either align this example with $DAILYBOT_BEARER_TOKEN (pack convention) or document both names explicitly.
| ## 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. |
There was a problem hiding this comment.
Mechanical floor bump made this compatibility claim false.
env.json loading shipped in 3.7.0. Raising the pack baseline to >= 3.9.0 is fine, but “Older CLIs never look at .dailybot/env.json” is wrong for 3.7.x / 3.8.x — those builds still load the file (auth resolution layer 2).
Failure mode: an agent debugging auth on 3.8.0 is told the file is inert clutter when it is actually overriding credentials.
Suggested wording: keep the pack floor as >= 3.9.0, and say env loading itself exists from >= 3.7.0 (CLIs below that ignore the file).
| | `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. | |
There was a problem hiding this comment.
Several Labels codes are filed under “### 400 — bad input” but are not 400s.
Per the public errors doc and labels/SKILL.md:
guest_not_allowed/permission_denied→ 403label_in_use/duplicate_name→ 409 (the cell text notes 409, but the section header still says 400)
archived_label / label_limit_exceeded / invalid_color are correctly 400.
Failure mode: agents that branch on HTTP status from the section header (instead of code) will treat guest/plan/role denials as validation errors and may retry or “fix the payload” instead of stopping.
Move the 403 codes next to feature_not_available / paid_plan_required, and put 409 codes in a conflict subsection (or at least don’t leave them under the 400 heading).
| dailybot form list --limit 20 --json | jq '.[] | {name, labels}' | ||
| # or paginated envelope: .results[] |
There was a problem hiding this comment.
Alternate jq path doesn’t match what the CLI emits.
dailybot form list --json / workflow list --json emit a bare array (emit_json(forms) / emit_json(workflows)), so jq '.[] | …' is correct.
The comment # or paginated envelope: .results[] will mislead agents into jq '.results[] | {name, labels}', which yields nothing on a JSON array.
The worked example below already uses map({name, labels}) / if type=="array" then … — drop or reword the .results[] alternate so it only applies to raw HTTP pagination envelopes, not CLI --json.
| @@ -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). | |||
There was a problem hiding this comment.
Nit: “star/unstar dashboards items” → “star/unstar dashboard items” (or “items on dashboards”).
Summary
.agents/skills/dailybot/to DailybotHQ/agent-skill v3.13.0dailybot-cli >= 3.9.0Test plan
.agents/skills/dailybot/SKILL.mdfrontmatterversion: "3.13.0"labels/andfeatured/exist under.agents/skills/dailybot/Merge note — REQUIRED
Squash-merge with
[skip release]in the squash commit body (accepted use case: Dailybot skill-pack dogfood sync per AGENTS.md Rule 15.a). Example:[skip release]
Made with Cursor