@atollhq/skill-gemini 0.3.1 → 0.4.1

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.1",
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,77 @@ 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`.
165
+
166
+ ## AI-Assisted Setup
167
+
168
+ When a user needs help setting up Atoll, lean into the AI workflow. Atoll is most useful when the user's AI assistant helps turn messy context into projects, issues, goals, KPIs, and agent instructions.
169
+
170
+ If you are the AI assistant with CLI access, prefer doing the setup directly after confirming the intended org/profile and scope. Start with read-only orientation:
171
+
172
+ ```bash
173
+ atoll auth profiles
174
+ atoll heartbeat --json
175
+ atoll issue list --json --limit 10
176
+ ```
177
+
178
+ If the user is setting up Atoll in another AI tool, give them a copyable prompt. Keep secrets out of chat: tell the user to run auth commands locally and never ask them to paste `sk_atoll_...` keys into a model conversation unless they explicitly choose that risk.
179
+
180
+ ### Prompt: Create the First Board
181
+
182
+ ```text
183
+ I am setting up Atoll for my team. Help me create the first project an AI agent could understand.
184
+ Ask me 3-5 questions about the current push, then propose:
185
+ - one project name
186
+ - the outcome this project should drive
187
+ - 3-5 initial issues with clear titles, context, priorities, and owners if known
188
+ - which issue an agent should pick up first and why
189
+ Keep the setup small. I want a useful first board, not a full migration.
190
+ ```
191
+
192
+ ### Prompt: Turn a Project Into Issues
193
+
194
+ ```text
195
+ I have an Atoll project but need help turning it into actionable issues.
196
+ Interview me about the project, then write 5 issues an AI agent could execute.
197
+ For each issue include:
198
+ - title
199
+ - why it matters
200
+ - acceptance criteria
201
+ - suggested priority
202
+ - any context the agent would need before starting
203
+ Make the issues specific enough that I can paste them into Atoll with minimal editing.
204
+ ```
205
+
206
+ ### Prompt: Install and Authenticate the CLI
207
+
208
+ ```text
209
+ Help me connect this workspace to Atoll.
210
+ First, explain what the Atoll CLI will let you do and what credentials you need.
211
+ Then walk me through installing @atollhq/cli, adding an agent in Atoll, authenticating with the API key, and running a safe read-only check like `atoll issue list`.
212
+ Do not ask me to paste secrets into chat unless I explicitly choose to. Tell me where to run each command locally.
213
+ ```
214
+
215
+ ### Prompt: Run the First Heartbeat
216
+
217
+ ```text
218
+ You are helping me set up Atoll for agentic project management.
219
+ Use the Atoll CLI to orient before doing any work.
220
+ Run `atoll heartbeat`, summarize what you can see, identify the highest-leverage next action, and tell me whether you have enough access to list issues and update your assigned work.
221
+ If anything is missing, explain the exact setup step I need to complete in Atoll.
222
+ ```
223
+
224
+ ### Prompt: Draft the Strategy Chain
225
+
226
+ ```text
227
+ Help me define the strategy chain for my Atoll workspace.
228
+ Ask me what business outcome matters most this month, then propose:
229
+ - one goal with a clear target date
230
+ - 1-2 KPIs that show whether we are on pace
231
+ - one initiative expected to move the KPI
232
+ - 3 issues that belong under that initiative
233
+ Keep it practical. I want the smallest strategy layer that would help an AI agent choose better work.
234
+ ```
132
235
 
133
236
  ## Quick Start — API (for advanced use)
134
237
 
@@ -228,6 +331,8 @@ Full endpoint tables and field schemas:
228
331
  | Comments | POST `.../comments` | GET `.../comments` | PATCH `.../comments/{id}` | DELETE `.../comments/{id}` |
229
332
  | Subtasks | POST `.../subtasks` | GET `.../subtasks` | PATCH `.../subtasks/{id}` | DELETE `.../subtasks/{id}` |
230
333
 
334
+ Initiative create accepts `title` or legacy `name`, plus camelCase aliases `goalId`, `ownerId`, and `targetDate`.
335
+
231
336
  All endpoints are under `/api/orgs/{orgId}/...`.
232
337
 
233
338
  † `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 +387,4 @@ atoll feedback resend fb_123
282
387
  - All timestamps are ISO 8601 UTC
283
388
  - Board statuses are customizable per project -- query `/board-columns` for available values
284
389
  - API changes appear in real-time on the web board
285
- - List endpoints support `limit` (default 25, max 100) and `offset` pagination
390
+ - 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