@floomhq/skills 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,41 +1,41 @@
1
- # @floomhq/floom
1
+ # @floomhq/skills
2
2
 
3
- The Floom CLI: one shared skill library, synced across every AI agent.
3
+ The Floom Skills CLI: publish, install, sync, and share AI agent skills.
4
4
 
5
- Docs: <https://floom.dev/docs>
5
+ Docs: <https://skills.floom.dev/docs>
6
6
 
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm i -g @floomhq/floom
10
+ npm i -g @floomhq/skills
11
11
  ```
12
12
 
13
13
  Pinned no-install form for automation:
14
14
 
15
15
  ```bash
16
- npx -y @floomhq/floom@3.0.2 --help
16
+ npx -y @floomhq/skills@1.1.0 --help
17
17
  ```
18
18
 
19
19
  ## Login
20
20
 
21
21
  ```bash
22
- floom login
22
+ floom-skills login
23
23
  ```
24
24
 
25
- The login command starts a browser device flow. Sign in at floom.dev with
25
+ The login command starts a browser device flow. Sign in at skills.floom.dev with
26
26
  Google or email, approve the device code, and the CLI stores the session at
27
27
  `~/.floom/auth.json`.
28
28
 
29
29
  Check the active account:
30
30
 
31
31
  ```bash
32
- floom account
32
+ floom-skills account
33
33
  ```
34
34
 
35
35
  ## First Skill
36
36
 
37
37
  ```bash
38
- floom push ~/.claude/skills/my-skill
38
+ floom-skills push ~/.claude/skills/my-skill
39
39
  ```
40
40
 
41
41
  The folder must contain `SKILL.md`. Each push creates a Library version.
@@ -43,16 +43,16 @@ The folder must contain `SKILL.md`. Each push creates a Library version.
43
43
  Create a starter skill when the folder does not exist yet:
44
44
 
45
45
  ```bash
46
- floom new my-skill --agent claude
46
+ floom-skills new my-skill --agent claude
47
47
  ```
48
48
 
49
49
  ## Bulk Sync
50
50
 
51
51
  ```bash
52
- floom sync
52
+ floom-skills sync
53
53
  ```
54
54
 
55
- Zero-arg `floom sync` detects installed agents and supported scopes, reviews
55
+ Zero-arg `floom-skills sync` detects installed agents and supported scopes, reviews
56
56
  local-to-Library and Library-to-local differences, and applies the selected
57
57
  plan. Use `--dry-run` to preview the plan without changing files or Library
58
58
  records.
@@ -60,24 +60,25 @@ records.
60
60
  Library-to-local only:
61
61
 
62
62
  ```bash
63
- floom pull
64
- floom pull --agent claude,codex
63
+ floom-skills pull
64
+ floom-skills pull --agent claude,codex
65
65
  ```
66
66
 
67
67
  Local-to-Library only:
68
68
 
69
69
  ```bash
70
- floom push
70
+ floom-skills push
71
71
  ```
72
72
 
73
- Use the installed `floom` command for interactive terminal work. Use the pinned
74
- `npx -y @floomhq/floom@3.0.2 <command>` form for automation and agent-run
73
+ Use the installed `floom-skills` command for interactive terminal work. Use the pinned
74
+ `npx -y @floomhq/skills@1.1.0 <command>` form for automation and agent-run
75
75
  commands that need reproducible CLI behavior.
76
76
 
77
77
  ## Releasing
78
78
 
79
- Releases publish to npm and bump the Homebrew tap formula automatically via
80
- `.github/workflows/publish-cli.yml`, triggered by a `cli-v*` tag.
79
+ Releases publish the exact smoke-tested npm tarball via
80
+ `.github/workflows/publish-cli.yml`, triggered by a `skills-v*` tag.
81
+ Provenance is disabled while the source repository remains private.
81
82
 
82
83
  ### Hard pre-publish smoke gate
83
84
 
@@ -93,24 +94,17 @@ and unknown commands silently rendered the dashboard. Only an out-of-band
93
94
  real-terminal smoke caught them. This script is that smoke, baked into the
94
95
  publish pipeline.
95
96
 
96
- ### Before pushing a `cli-v*` tag
97
+ ### Before pushing a `skills-v*` tag
97
98
 
98
- Run the local pre-tag check from the repo root:
99
+ Run the same local gates from the repo root:
99
100
 
100
101
  ```bash
101
- ./scripts/pre-tag-check.sh
102
+ pnpm --filter @floomhq/skills --fail-if-no-match lint
103
+ pnpm --filter @floomhq/skills --fail-if-no-match test
104
+ pnpm --filter @floomhq/skills --fail-if-no-match pack:smoke
105
+ packages/cli/scripts/pre-publish-smoke.sh
102
106
  ```
103
107
 
104
- It:
105
-
106
- 1. Confirms the working tree is clean.
107
- 2. Rebuilds the CLI from a clean `dist/`.
108
- 3. Runs the CLI unit test suite (`pnpm --filter @floomhq/floom test`).
109
- 4. Runs the full pre-publish smoke (same script the workflow runs).
110
-
111
- If everything passes, the script prints the exact `git tag` + `git push origin`
112
- commands. You then push the tag and the workflow takes over.
113
-
114
108
  If anything fails, fix the issue first. Do not push the tag.
115
109
 
116
110
  ### Smoke-only workflow run
@@ -119,7 +113,7 @@ To validate the smoke script itself without publishing (e.g. after editing
119
113
  `scripts/pre-publish-smoke.sh`):
120
114
 
121
115
  ```
122
- GitHub → Actions → Publish @floomhq/floom → Run workflow
116
+ GitHub → Actions → Publish @floomhq/skills → Run workflow
123
117
  smoke_only: true
124
118
  ```
125
119
 
@@ -138,14 +132,14 @@ See `scripts/pre-publish-smoke.sh` for the full assertion list. Summary:
138
132
 
139
133
  | Stage | Asserts |
140
134
  |------|---------|
141
- | 1 | Tarball builds, packs, installs cleanly into isolated `$HOME`; installed `floom --version` matches `package.json` |
142
- | 2 | **Every** subcommand `--help` exits 0, starts with `Usage: floom`, writes no `~/.floom/auth.json`, prints no "Signed (in|out)" / "Waiting for browser" (P0 #1 from 3.0.0) |
143
- | 3 | `floom --help \| head -3` and `floom push --help \| head -1` print no EPIPE / "Unhandled error event" (P0 #2 from 3.0.0) |
144
- | 4 | `floom <unknown>` exits non-zero with "unknown command" + "did you mean" hint (P0 #3 from 3.0.0) |
145
- | 5 | Bare `floom --help` exits 0 with grouped help |
135
+ | 1 | Tarball builds, packs, installs cleanly into isolated `$HOME`; installed `floom-skills --version` matches `package.json` |
136
+ | 2 | **Every** subcommand `--help` exits 0, starts with `Usage: floom-skills`, writes no `~/.floom/auth.json`, prints no "Signed (in|out)" / "Waiting for browser" (P0 #1 from 3.0.0) |
137
+ | 3 | `floom-skills --help \| head -3` and `floom-skills push --help \| head -1` print no EPIPE / "Unhandled error event" (P0 #2 from 3.0.0) |
138
+ | 4 | `floom-skills <unknown>` exits non-zero with "unknown command" + "did you mean" hint (P0 #3 from 3.0.0) |
139
+ | 5 | Bare `floom-skills --help` exits 0 with grouped help |
146
140
  | 6 | Unauth `whoami` / `account` / `logout` exit 0 idempotent; unauth `status` / `sync --json` / `push --json` exit non-zero with no stack trace |
147
- | 7 | `floom logout extra-positional` is rejected with non-zero exit AND `~/.floom/auth.json` is preserved (no destructive body) |
148
- | 8 | **Agent detection** picks up fake `.claude/`, `.codex/`, `.cursor/` marker dirs in the isolated `$HOME` (verified by parsing `floom doctor --json`); bare `floom sync` / `floom pull` with planted agents do not crash unauth (clean `signedIn:false` envelope). Note: fan-out *behaviour itself* requires real auth, so it is exercised at the **unit-test layer** by `src/commands/sync.fanout.test.ts`, which the publish workflow runs as a separate hard gate before the smoke. |
141
+ | 7 | `floom-skills logout extra-positional` is rejected with non-zero exit AND `~/.floom/auth.json` is preserved (no destructive body) |
142
+ | 8 | **Agent detection** picks up fake `.claude/`, `.codex/`, `.cursor/` marker dirs in the isolated `$HOME` (verified by parsing `floom-skills doctor --json`); bare `floom-skills sync` / `floom-skills pull` with planted agents do not crash unauth (clean `signedIn:false` envelope). Note: fan-out *behaviour itself* requires real auth, so it is exercised at the **unit-test layer** by `src/commands/sync.fanout.test.ts`, which the publish workflow runs as a separate hard gate before the smoke. |
149
143
 
150
144
  If any assertion fails, the publish job fails. The smoke script exits non-zero
151
145
  on the first failure and prints a summary of every failed check.