@atollhq/skill-gemini 0.3.1 → 0.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atollhq/skill-gemini",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Install the Atoll project management integration for Gemini CLI",
5
5
  "bin": {
6
6
  "skill-gemini": "bin/install.mjs"
package/skill/SKILL.md CHANGED
@@ -33,6 +33,26 @@ export ATOLL_API_KEY="sk_atoll_..."
33
33
  export ATOLL_ORG_ID="..." # UUID of the org the key belongs to
34
34
  ```
35
35
 
36
+ For OpenClaw / ClawHub, prefer skill-scoped config in `~/.openclaw/openclaw.json` instead of global shell exports:
37
+
38
+ ```json5
39
+ {
40
+ skills: {
41
+ entries: {
42
+ "atoll-api": {
43
+ enabled: true,
44
+ apiKey: "sk_atoll_...",
45
+ env: {
46
+ ATOLL_ORG_ID: "..."
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ `apiKey` maps to `ATOLL_API_KEY`; optional defaults such as `ATOLL_PROJECT`, `ATOLL_TEAM`, and `ATOLL_BASE_URL` belong under `env`.
55
+
36
56
  **Sanity check** — exercises the org-scoped issues endpoint, not just `/api/auth/me`:
37
57
 
38
58
  ```bash
@@ -96,9 +116,13 @@ atoll issue view ATOLL-42 # alias kept for humans
96
116
 
97
117
  # Create a task
98
118
  atoll issue create --title "Fix login bug" --status todo --priority 1
119
+ atoll issue upsert --match-title --project <project-id> --title "Fix login bug" --status todo
120
+ atoll issue bulk-create --file ./issues.json --continue-on-error
99
121
 
100
122
  # Update a task
101
123
  atoll issue update ATOLL-42 --status in_progress
124
+ atoll issue upsert ATOLL-42 --status in_progress
125
+ atoll issue bulk-update --file ./updates.json --dry-run
102
126
 
103
127
  # Assign a task
104
128
  atoll issue assign ATOLL-42 --to <user-id>
@@ -107,6 +131,13 @@ atoll issue assign ATOLL-42 --to self
107
131
  # Comments
108
132
  atoll comment add ATOLL-42 --body "Working on this now"
109
133
 
134
+ # Dependencies
135
+ atoll dependency bulk-add --file ./dependencies.json --continue-on-error
136
+
137
+ # Graph plans
138
+ atoll plan validate --file ./plan.json
139
+ atoll plan apply --file ./plan.json --dry-run
140
+
110
141
  # Safe removal
111
142
  atoll issue archive ATOLL-42
112
143
  atoll issue unarchive ATOLL-42
@@ -119,6 +150,7 @@ atoll feedback "The status error should list custom board statuses"
119
150
  # Projects & milestones
120
151
  atoll project list
121
152
  atoll milestone list --project <project-id>
153
+ atoll milestone upsert --project <project-id> --name "v1.0" --date 2026-06-01
122
154
  ```
123
155
 
124
156
  Prefer the CLI for routine task operations, heartbeat checks, comments, and feedback. Use direct API calls when the CLI does not expose the needed endpoint yet.
@@ -129,6 +161,7 @@ CLI JSON conventions:
129
161
  - List commands return `{ resource, items, total, limit, offset, nextOffset, truncated, hint }`.
130
162
  - Diagnostics and errors go to stderr.
131
163
  - `atoll agent-context` returns a versioned command/flag manifest and available profile context.
164
+ - `atoll plan validate/apply` consumes `schemaVersion: "atoll.plan.v1"` files with `milestones`, `issues`, `dependencies`, `initiativeLinks`, and `milestoneLinks`; local `key` values can be referenced by `milestoneKey`, `issueKey`, `dependsOn`, `blockedBy`, or `blocks`.
132
165
 
133
166
  ## Quick Start — API (for advanced use)
134
167
 
@@ -228,6 +261,8 @@ Full endpoint tables and field schemas:
228
261
  | Comments | POST `.../comments` | GET `.../comments` | PATCH `.../comments/{id}` | DELETE `.../comments/{id}` |
229
262
  | Subtasks | POST `.../subtasks` | GET `.../subtasks` | PATCH `.../subtasks/{id}` | DELETE `.../subtasks/{id}` |
230
263
 
264
+ Initiative create accepts `title` or legacy `name`, plus camelCase aliases `goalId`, `ownerId`, and `targetDate`.
265
+
231
266
  All endpoints are under `/api/orgs/{orgId}/...`.
232
267
 
233
268
  † `DELETE /issues/{id}` requires `owner` or `admin` role — any caller without that role (including member-role agents) gets `403`. If you just need to remove a task, use `POST /api/orgs/{orgId}/issues/{issueId}/archive` (soft delete, no role gate); reverse with `DELETE` on the same path (unarchive). In the CLI, prefer `atoll issue archive <id>`. Permanent `atoll issue delete <id>` requires `--force` and supports `--dry-run`.
@@ -282,4 +317,4 @@ atoll feedback resend fb_123
282
317
  - All timestamps are ISO 8601 UTC
283
318
  - Board statuses are customizable per project -- query `/board-columns` for available values
284
319
  - API changes appear in real-time on the web board
285
- - List endpoints support `limit` (default 25, max 100) and `offset` pagination
320
+ - List endpoints support `limit` (default 25, max 100), `offset` pagination, and optional `shape=envelope` / `response_shape=cli` for `{ resource, items, total, limit, offset, nextOffset, truncated, hint }`
@@ -120,6 +120,7 @@ Plan limits are enforced when creating projects, human members, agents/integrati
120
120
  - `orderDir` -- `asc` or `desc` (default)
121
121
  - `limit` -- max results (default 25, max 100)
122
122
  - `offset` -- pagination offset
123
+ - `shape=envelope` or `response_shape=cli` -- opt into CLI-compatible list responses: `{ resource, items, total, limit, offset, nextOffset, truncated, hint }`
123
124
 
124
125
  **GET task detail** returns enriched data: `milestone`, `assignee`, `assignees`, `sub_tasks`, `issue_labels`, and `isBlocked`.
125
126
 
@@ -207,6 +208,8 @@ Roles: `owner`, `admin`, `member`, `guest`.
207
208
  | POST | `/api/orgs/{id}/initiatives/{initiativeId}/projects` | Add project to initiative |
208
209
  | DELETE | `/api/orgs/{id}/initiatives/{initiativeId}/projects` | Remove project from initiative |
209
210
 
211
+ Create accepts `title` or legacy `name`, plus camelCase aliases `goalId`, `ownerId`, and `targetDate`.
212
+
210
213
  ## Initiative Links
211
214
 
212
215
  | Method | Endpoint | Description |
@@ -328,8 +331,9 @@ Custom statuses per project. Each column defines a valid status value.
328
331
  | Method | Endpoint | Description |
329
332
  |--------|----------|-------------|
330
333
  | GET | `/api/orgs/{id}/issues/{issueId}/pr-links` | List linked pull requests |
334
+ | POST | `/api/orgs/{id}/issues/{issueId}/pr-links` | Attach a GitHub PR URL (`{ url }`) |
331
335
 
332
- PR links are created automatically via the GitHub webhook integration.
336
+ Attach PRs manually with a canonical GitHub pull request URL such as `https://github.com/owner/repo/pull/123`; malformed or non-PR URLs return `400`. PR links can also be created automatically via the GitHub webhook integration.
333
337
 
334
338
  ## Project Status Updates
335
339
 
@@ -137,7 +137,7 @@ For portfolio-style initiatives (grouping projects):
137
137
  }
138
138
  ```
139
139
 
140
- Use `title` for create/update requests; Atoll keeps the legacy `name` field in sync for compatibility.
140
+ Use `title` for create/update requests; create also accepts legacy `name`. Atoll keeps the legacy `name` field in sync for compatibility. Create accepts `goalId`, `ownerId`, and `targetDate` aliases for `goal_id`, `owner_id`, and `target_date`.
141
141
 
142
142
  Add/remove projects with `{ "project_id": "uuid" }`.
143
143
 
@@ -256,7 +256,7 @@ URL must be HTTPS. Response includes `secret` for HMAC signature verification.
256
256
 
257
257
  All endpoints return JSON. Successful: `200` or `201`. Errors: `{ "error": "message" }` with `400`, `401`, `402`, `403`, `404`, `409`, or `500`.
258
258
 
259
- List responses include `total`, `limit`, `offset` for pagination.
259
+ REST list responses use resource-specific keys by default. Main list endpoints support `?shape=envelope` or `?response_shape=cli` to return `{ resource, items, total, limit, offset, nextOffset, truncated, hint }`.
260
260
 
261
261
  ## Notes
262
262