@atollhq/skill-claude 0.1.5 → 0.1.7

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
@@ -7,7 +7,7 @@ Gives your Claude Code agent the ability to manage tasks, goals, KPIs, initiativ
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npx @atollhq/skill-claude --key sk_atoll_... --org your-org-slug
10
+ npx @atollhq/skill-claude --key sk_atoll_... --org your-org-id
11
11
  ```
12
12
 
13
13
  Get an API key from **Settings > Members > Add Agent** (or **Create API Key** for integrations) in the Atoll app.
@@ -15,7 +15,7 @@ Get an API key from **Settings > Members > Add Agent** (or **Create API Key** fo
15
15
  This does two things:
16
16
 
17
17
  1. Copies the skill into `~/.claude/skills/atoll-api/`
18
- 2. Writes `ATOLL_API_KEY` and `ATOLL_ORG_SLUG` into `~/.claude/settings.json` under `env`
18
+ 2. Writes `ATOLL_API_KEY` and `ATOLL_ORG_ID` into `~/.claude/settings.json` under `env`
19
19
 
20
20
  Restart Claude Code and the `atoll-api` skill is available.
21
21
 
@@ -43,6 +43,14 @@ atoll config set-org your-org-slug
43
43
  atoll issue list
44
44
  ```
45
45
 
46
+ For multiple agents or orgs, use CLI auth profiles:
47
+
48
+ ```bash
49
+ atoll auth login --profile agent-a --key sk_atoll_... --org acme
50
+ atoll auth login --profile agent-b --key sk_atoll_... --org client
51
+ atoll --profile agent-b issue list
52
+ ```
53
+
46
54
  ## License
47
55
 
48
56
  MIT
package/bin/install.mjs CHANGED
@@ -23,11 +23,11 @@ function parseArgs(argv) {
23
23
 
24
24
  function printUsage() {
25
25
  console.log(`
26
- Usage: npx @atollhq/skill-claude --key <api-key> --org <org-slug>
26
+ Usage: npx @atollhq/skill-claude --key <api-key> --org <org-id>
27
27
 
28
28
  Options:
29
29
  --key Atoll API key (sk_atoll_...)
30
- --org Organization slug
30
+ --org Organization ID
31
31
  --help Show this help message
32
32
 
33
33
  This installs the Atoll skill for Claude Code, giving your agent
@@ -75,10 +75,10 @@ if (existsSync(settingsPath)) {
75
75
 
76
76
  if (!settings.env) settings.env = {}
77
77
  settings.env.ATOLL_API_KEY = args.key
78
- settings.env.ATOLL_ORG_SLUG = args.org
78
+ settings.env.ATOLL_ORG_ID = args.org
79
79
 
80
80
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n')
81
- console.log(`Configured ATOLL_API_KEY and ATOLL_ORG_SLUG in ${settingsPath}`)
81
+ console.log(`Configured ATOLL_API_KEY and ATOLL_ORG_ID in ${settingsPath}`)
82
82
 
83
83
  console.log(`\nDone! Start Claude Code and the atoll-api skill will be available.`)
84
84
  console.log(`Try: "List my Atoll tasks" or "Check my heartbeat"`)
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@atollhq/skill-claude",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Install the Atoll project management skill for Claude Code",
5
5
  "bin": {
6
- "skill-claude": "./bin/install.mjs"
6
+ "skill-claude": "bin/install.mjs"
7
7
  },
8
8
  "files": [
9
9
  "bin/",
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "repository": {
21
21
  "type": "git",
22
- "url": "https://github.com/atollhq/atoll",
22
+ "url": "git+https://github.com/atollhq/atoll.git",
23
23
  "directory": "packages/skill-claude"
24
24
  },
25
25
  "license": "MIT",
package/skill/SKILL.md CHANGED
@@ -60,6 +60,18 @@ atoll auth login --key sk_atoll_...
60
60
  atoll config set-org my-org
61
61
  ```
62
62
 
63
+ For machines or agents that need multiple credentials, use auth profiles:
64
+
65
+ ```bash
66
+ atoll auth login --profile agent-a --key sk_atoll_... --org acme
67
+ atoll auth login --profile agent-b --key sk_atoll_... --org client
68
+ atoll auth profiles
69
+ atoll auth use agent-a
70
+
71
+ # Run one command as a specific profile
72
+ atoll --profile agent-b issue list
73
+ ```
74
+
63
75
  Common commands:
64
76
 
65
77
  ```bash
@@ -150,6 +162,12 @@ Every KPI snapshot can be attributed to an initiative or issue, building a recor
150
162
 
151
163
  `POST /api/orgs/{id}/issues/bulk` with `{ "issues": [{...}, ...] }` (max 50).
152
164
 
165
+ ### Billing and plan limits
166
+
167
+ Owners/admins can read billing state with `GET /api/orgs/{id}/billing` and start Stripe checkout with `POST /api/orgs/{id}/billing/checkout` using `{ "plan": "starter" }` or `{ "plan": "team" }`.
168
+
169
+ Creation endpoints can return `402` with `code: "PLAN_LIMIT_REACHED"` when an org reaches limits for humans, agents/integrations, active projects, or active issues.
170
+
153
171
  ## API Reference
154
172
 
155
173
  Full endpoint tables and field schemas:
@@ -10,6 +10,7 @@ All endpoints require `Authorization: Bearer sk_atoll_...` header.
10
10
  - [Projects](#projects)
11
11
  - [Project Members](#project-members)
12
12
  - [Project Teams](#project-teams)
13
+ - [Billing](#billing)
13
14
  - [Tasks (Issues)](#tasks-issues)
14
15
  - [Dependencies](#dependencies)
15
16
  - [Comments](#comments)
@@ -85,6 +86,18 @@ Access levels: `view`, `edit`, `admin` (default: `view`).
85
86
  | POST | `/api/orgs/{id}/projects/{projectId}/teams` | Add team (`{ teamId }`) |
86
87
  | DELETE | `/api/orgs/{id}/projects/{projectId}/teams?teamId=...` | Remove team |
87
88
 
89
+ ## Billing
90
+
91
+ Org billing is managed through Stripe. Owners/admins can create checkout and billing portal sessions.
92
+
93
+ | Method | Endpoint | Description |
94
+ |--------|----------|-------------|
95
+ | GET | `/api/orgs/{id}/billing` | Get plan, status, usage, limits, and subscription summary |
96
+ | POST | `/api/orgs/{id}/billing/checkout` | Create Stripe Checkout Session (`{ plan: "starter" \| "team" }`) |
97
+ | POST | `/api/orgs/{id}/billing/portal` | Create Stripe Billing Portal Session |
98
+
99
+ Plan limits are enforced when creating projects, human members, agents/integrations, and active tasks. Limit errors return `402` with `code: "PLAN_LIMIT_REACHED"`.
100
+
88
101
  ## Tasks (Issues)
89
102
 
90
103
  | Method | Endpoint | Description |
@@ -12,6 +12,7 @@
12
12
  - [Webhook Fields](#webhook-fields)
13
13
  - [Heartbeat Response](#heartbeat-response)
14
14
  - [Analytics Response](#analytics-response)
15
+ - [Plan Limit Errors](#plan-limit-errors)
15
16
  - [Enums](#enums)
16
17
 
17
18
  ---
@@ -53,6 +54,23 @@ All fields work on both POST (create) and PATCH (update).
53
54
  ```
54
55
  Returns `{ issues: [...], count: N }` (201). Max 50 per request.
55
56
 
57
+ ## Plan Limit Errors
58
+
59
+ Creation endpoints may return `402` when an org reaches its billing plan limit:
60
+
61
+ ```json
62
+ {
63
+ "error": "Plan limit reached",
64
+ "code": "PLAN_LIMIT_REACHED",
65
+ "resource": "activeProjects",
66
+ "plan": "free",
67
+ "limit": 2,
68
+ "usage": 2
69
+ }
70
+ ```
71
+
72
+ `resource` is one of `humans`, `agents`, `activeProjects`, or `activeIssues`.
73
+
56
74
  ## Goal Fields
57
75
 
58
76
  ```json
@@ -234,7 +252,7 @@ URL must be HTTPS. Response includes `secret` for HMAC signature verification.
234
252
 
235
253
  ## Response Format
236
254
 
237
- All endpoints return JSON. Successful: `200` or `201`. Errors: `{ "error": "message" }` with `400`, `401`, `403`, `404`, `409`, or `500`.
255
+ All endpoints return JSON. Successful: `200` or `201`. Errors: `{ "error": "message" }` with `400`, `401`, `402`, `403`, `404`, `409`, or `500`.
238
256
 
239
257
  List responses include `total`, `limit`, `offset` for pagination.
240
258