@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 +10 -2
- package/bin/install.mjs +4 -4
- package/package.json +3 -3
- package/skill/SKILL.md +18 -0
- package/skill/references/api-endpoints.md +13 -0
- package/skill/references/api-fields.md +19 -1
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-
|
|
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 `
|
|
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-
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Install the Atoll project management skill for Claude Code",
|
|
5
5
|
"bin": {
|
|
6
|
-
"skill-claude": "
|
|
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
|
|