mirror of
https://github.com/basecamp/skills.git
synced 2026-09-14 20:16:48 +08:00
0cd0a040bf
* Fix link to Basecamp CLI install guide * Reposition as agent skills for all 37signals products This repo publishes the agent skills of Basecamp, HEY, and Fizzy, but the README, install guide, and AGENTS.md still described it as Basecamp-only. README: name all three products, list every skill with the product and the CLI repo it is published from, and say where the hey and fizzy skills are until they land here (hey is absent because of the shared-manifest sync bug in #5; fizzy-cli has no skills sync yet). Requirements per product use each CLI's documented installer and auth command; the Homebrew cask is basecamp/tap/basecamp-cli, not basecamp/tap/basecamp, which does not exist. install.md: restructured per the install-md spec so an agent installs the Basecamp CLI (required) and the HEY and Fizzy CLIs only for the products the user has, with a verify step per product and a DONE WHEN that holds when only one CLI is installed. Points at the lowercase basecamp-cli install.md. AGENTS.md: describe the multi-source layout, the per-source manifests each sync owns and the legacy .managed-skills tombstone, and the rule that skills are edited upstream in each CLI's skills/ directory. * Describe all 37signals products in the plugin manifest, version 0.2.0 The plugin and marketplace descriptions said Basecamp only. Name Basecamp, HEY, and Fizzy, and bump the version. The plugin name stays basecamp-skills so existing installs keep resolving. * Test the authenticated flag, since auth status exits 0 when signed out All three CLIs' auth status commands return their OK envelope whether or not you are signed in (basecamp-cli app.OK, hey-cli writeOK, fizzy-cli printDetail), so a bare `auth status` in the DONE WHEN and the verify steps never failed. Test the JSON envelope's "authenticated": true instead, with --json so the shape does not depend on a TTY. Each CLI pretty-prints with a two-space indent, so that literal is exact. * Point at the proposed fizzy-cli skills sync * Make each product optional in install.md and install the absent skills from their CLIs * Say which skills the plugin bundles today The plugin description named Basecamp, HEY and Fizzy as though all three were packaged, while skills/ holds only the Basecamp ones until the hey-cli and fizzy-cli syncs publish here. Keep the 37signals scope and state what installs now, in plugin.json and the matching marketplace plugin entry. * Stop when the products you chose are signed in, not every CLI on PATH The completion predicate required every product CLI found on PATH to be signed in, so a machine with an unused, unauthenticated hey or fizzy binary could never finish a Basecamp-only run — or worse, sent the agent to sign in to a product the user did not choose. Completion now follows the TODO: each chosen product's auth status must report authenticated, at least one, and a CLI for a product that was not chosen is left alone. * Install the hey and fizzy skills even when their CLIs were already installed Steps 2 and 3 told the reader to skip the installer when the CLI was present, but the only `skill install` command sat behind that installer in one && chain, so a machine that already had the CLI could finish the run without the selected product's skill. Each step is now three lines that stand alone: the installer runs only when the CLI is missing, sign-in only when not already signed in, and the skill install every time. --------- Co-authored-by: Jeff <142809588+ksp-jjensen@users.noreply.github.com>
87 lines
4.5 KiB
Markdown
87 lines
4.5 KiB
Markdown
# Agent Skills for 37signals products
|
|
|
|
[Agent skills](https://agentskills.io) for Basecamp, HEY, and Fizzy. Each skill
|
|
teaches a coding agent to work in one product through that product's CLI.
|
|
|
|
```
|
|
npx skills add basecamp/skills
|
|
```
|
|
|
|
That installs every skill in `skills/`. See [install.md](install.md) for the
|
|
full setup, including installing and authenticating each CLI.
|
|
|
|
## Skills
|
|
|
|
| Skill | Product | Published from | Description |
|
|
|-------|---------|----------------|-------------|
|
|
| [basecamp](skills/basecamp/SKILL.md) | Basecamp | [basecamp-cli](https://github.com/basecamp/basecamp-cli/tree/main/skills/basecamp) | Interact with Basecamp via the Basecamp CLI. Full API coverage: projects, todos, cards, messages, files, schedule, check-ins, timeline, recordings, templates, webhooks, subscriptions, lineup, chat, pings, gauges, assignments, notifications, bookmarks, bubble-up, drafts, notes, calendars, and accounts. |
|
|
| [basecamp-doctor](skills/basecamp-doctor/SKILL.md) | Basecamp | [basecamp-cli](https://github.com/basecamp/basecamp-cli/tree/main/skills/basecamp-doctor) | Diagnose Basecamp CLI, authentication, and agent-plugin health. |
|
|
| hey | HEY | [hey-cli](https://github.com/basecamp/hey-cli/tree/main/skills/hey) | Interact with HEY via the HEY CLI. Read and send email; manage contacts, boxes, labels, collections, calendars, todos, habits, time tracking, and journal entries. **Missing from `skills/` right now** (see below). |
|
|
| fizzy | Fizzy | [fizzy-cli](https://github.com/basecamp/fizzy-cli/tree/master/skills/fizzy) | Interact with Fizzy via the Fizzy CLI. Manage boards, cards, columns, comments, steps, reactions, tags, users, notifications, pins, webhooks, and account settings. **Not published here yet** (see below). |
|
|
|
|
**hey** is absent because of a sync bug
|
|
([#5](https://github.com/basecamp/skills/issues/5)): the basecamp-cli and
|
|
hey-cli release syncs shared one `.managed-skills` manifest, so each product's
|
|
release deleted the other product's skills. Fixes are in flight in both CLIs.
|
|
The skill returns automatically on the first hey-cli release after that fix
|
|
ships. Until then, get it from
|
|
[hey-cli/skills/hey](https://github.com/basecamp/hey-cli/tree/main/skills/hey),
|
|
or run `hey skill install`, which installs it from the CLI itself.
|
|
|
|
**fizzy** is not published here yet: fizzy-cli's release has no skills sync.
|
|
One is proposed in
|
|
[fizzy-cli#214](https://github.com/basecamp/fizzy-cli/pull/214); once it ships,
|
|
the skill arrives with the next fizzy-cli release.
|
|
Get it from
|
|
[fizzy-cli/skills/fizzy](https://github.com/basecamp/fizzy-cli/tree/master/skills/fizzy),
|
|
or run `fizzy skill install`.
|
|
|
|
## Requirements
|
|
|
|
Each skill drives its product's CLI, so install and authenticate the CLI for
|
|
the products you use. One is enough; the skills for the others sit idle.
|
|
|
|
**Basecamp** — [basecamp-cli](https://github.com/basecamp/basecamp-cli)
|
|
([install guide](https://github.com/basecamp/basecamp-cli/blob/main/install.md))
|
|
|
|
```bash
|
|
curl -fsSL https://basecamp.com/install-cli | bash # or: brew install --cask basecamp/tap/basecamp-cli
|
|
basecamp auth login
|
|
```
|
|
|
|
**HEY** — [hey-cli](https://github.com/basecamp/hey-cli)
|
|
([install guide](https://github.com/basecamp/hey-cli/blob/main/docs/install.md))
|
|
|
|
```bash
|
|
curl -fsSL https://hey.com/install-cli | bash # or: brew install --cask basecamp/tap/hey
|
|
hey auth login
|
|
```
|
|
|
|
**Fizzy** — [fizzy-cli](https://github.com/basecamp/fizzy-cli)
|
|
([install guide](https://github.com/basecamp/fizzy-cli#quick-start))
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/basecamp/fizzy-cli/master/scripts/install.sh | bash # or: brew install --cask basecamp/tap/fizzy
|
|
fizzy setup # personal access token, account, default board
|
|
```
|
|
|
|
## Contributing
|
|
|
|
Skills are never edited in this repo; a change made here is overwritten by the
|
|
next release of the CLI that owns it. Open issues and pull requests against the
|
|
skill's source instead:
|
|
|
|
- Basecamp: [basecamp-cli/skills](https://github.com/basecamp/basecamp-cli/tree/main/skills)
|
|
- HEY: [hey-cli/skills](https://github.com/basecamp/hey-cli/tree/main/skills)
|
|
- Fizzy: [fizzy-cli/skills](https://github.com/basecamp/fizzy-cli/tree/master/skills)
|
|
|
|
Issues about this repo itself (the README, install.md, the plugin manifest, or
|
|
the publishing) belong here.
|
|
|
|
## About
|
|
|
|
This repo is a publish target. On each release, a CLI's `scripts/sync-skills.sh`
|
|
copies its `skills/` tree into `skills/` here, records the directories it owns
|
|
in a manifest, and commits straight to `main`. Only the README, install.md,
|
|
AGENTS.md, and `.claude-plugin/` are written by hand.
|