pllan 2026.3.43 → 2026.3.44
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 +1 -1
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +5 -5
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +3 -3
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +15 -15
- package/skills/clawhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +7 -7
- package/skills/discord/SKILL.md +1 -1
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gh-issues/SKILL.md +13 -13
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/healthcheck/SKILL.md +36 -36
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +2 -2
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/node-connect/SKILL.md +22 -22
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +2 -2
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +7 -7
- package/skills/sherpa-onnx-tts/SKILL.md +6 -6
- package/skills/skill-creator/scripts/test_quick_validate.py +1 -1
- package/skills/slack/SKILL.md +4 -4
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +1 -1
- package/skills/tmux/scripts/find-sessions.sh +2 -2
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/skills/xurl/SKILL.md +1 -1
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ description: Set up and use 1Password CLI (op). Use when installing the CLI, ena
|
|
|
4
4
|
homepage: https://developer.1password.com/docs/cli/get-started/
|
|
5
5
|
metadata:
|
|
6
6
|
{
|
|
7
|
-
"
|
|
7
|
+
"pllan":
|
|
8
8
|
{
|
|
9
9
|
"emoji": "🔐",
|
|
10
10
|
"requires": { "bins": ["op"] },
|
|
@@ -48,9 +48,9 @@ The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, a
|
|
|
48
48
|
Example (see `tmux` skill for socket conventions, do not reuse old session names):
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
SOCKET_DIR="${
|
|
51
|
+
SOCKET_DIR="${PLLAN_TMUX_SOCKET_DIR:-${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/pllan-tmux-sockets}}"
|
|
52
52
|
mkdir -p "$SOCKET_DIR"
|
|
53
|
-
SOCKET="$SOCKET_DIR/
|
|
53
|
+
SOCKET="$SOCKET_DIR/pllan-op.sock"
|
|
54
54
|
SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
|
|
55
55
|
|
|
56
56
|
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: apple-notes
|
|
3
|
-
description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks
|
|
3
|
+
description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Pllan to add a note, list notes, search notes, or manage note folders.
|
|
4
4
|
homepage: https://github.com/antoniorodr/memo
|
|
5
5
|
metadata:
|
|
6
6
|
{
|
|
7
|
-
"
|
|
7
|
+
"pllan":
|
|
8
8
|
{
|
|
9
9
|
"emoji": "📝",
|
|
10
10
|
"os": ["darwin"],
|
|
@@ -4,7 +4,7 @@ description: Manage Apple Reminders via remindctl CLI (list, add, edit, complete
|
|
|
4
4
|
homepage: https://github.com/steipete/remindctl
|
|
5
5
|
metadata:
|
|
6
6
|
{
|
|
7
|
-
"
|
|
7
|
+
"pllan":
|
|
8
8
|
{
|
|
9
9
|
"emoji": "⏰",
|
|
10
10
|
"os": ["darwin"],
|
|
@@ -40,11 +40,11 @@ Use `remindctl` to manage Apple Reminders directly from the terminal.
|
|
|
40
40
|
|
|
41
41
|
❌ **DON'T use this skill when:**
|
|
42
42
|
|
|
43
|
-
- Scheduling
|
|
43
|
+
- Scheduling Pllan tasks or alerts → use `cron` tool with systemEvent instead
|
|
44
44
|
- Calendar events or appointments → use Apple Calendar
|
|
45
45
|
- Project/work task management → use Notion, GitHub Issues, or task queue
|
|
46
46
|
- One-time notifications → use `cron` tool for timed alerts
|
|
47
|
-
- User says "remind me" but means an
|
|
47
|
+
- User says "remind me" but means an Pllan alert → clarify first
|
|
48
48
|
|
|
49
49
|
## Setup
|
|
50
50
|
|
|
@@ -112,7 +112,7 @@ Accepted by `--due` and date filters:
|
|
|
112
112
|
|
|
113
113
|
User: "Remind me to check on the deploy in 2 hours"
|
|
114
114
|
|
|
115
|
-
**Ask:** "Do you want this in Apple Reminders (syncs to your phone) or as an
|
|
115
|
+
**Ask:** "Do you want this in Apple Reminders (syncs to your phone) or as an Pllan alert (I'll message you here)?"
|
|
116
116
|
|
|
117
117
|
- Apple Reminders → use this skill
|
|
118
|
-
-
|
|
118
|
+
- Pllan alert → use `cron` tool with systemEvent
|
package/skills/blucli/SKILL.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bluebubbles
|
|
3
3
|
description: Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
|
|
4
|
-
metadata: { "
|
|
4
|
+
metadata: { "pllan": { "emoji": "🫧", "requires": { "config": ["channels.bluebubbles"] } } }
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# BlueBubbles Actions
|
|
8
8
|
|
|
9
9
|
## Overview
|
|
10
10
|
|
|
11
|
-
BlueBubbles is
|
|
11
|
+
BlueBubbles is Pllan’s recommended iMessage integration. Use the `message` tool with `channel: "bluebubbles"` to send messages and manage iMessage conversations: send texts and attachments, react (tapbacks), edit/unsend, reply in threads, and manage group participants/names/icons.
|
|
12
12
|
|
|
13
13
|
## Inputs to collect
|
|
14
14
|
|
|
@@ -28,7 +28,7 @@ If the user is vague ("text my mom"), ask for the recipient handle or chat guid
|
|
|
28
28
|
"action": "send",
|
|
29
29
|
"channel": "bluebubbles",
|
|
30
30
|
"target": "+15551234567",
|
|
31
|
-
"message": "hello from
|
|
31
|
+
"message": "hello from Pllan"
|
|
32
32
|
}
|
|
33
33
|
```
|
|
34
34
|
|
package/skills/camsnap/SKILL.md
CHANGED
package/skills/canvas/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Canvas Skill
|
|
2
2
|
|
|
3
|
-
Display HTML content on connected
|
|
3
|
+
Display HTML content on connected Pllan nodes (Mac app, iOS, Android).
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
@@ -40,7 +40,7 @@ The canvas host server binds based on `gateway.bind` setting:
|
|
|
40
40
|
**Key insight:** The `canvasHostHostForBridge` is derived from `bridgeHost`. When bound to Tailscale, nodes receive URLs like:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
http://<tailscale-hostname>:18793/
|
|
43
|
+
http://<tailscale-hostname>:18793/__pllan__/canvas/<file>.html
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
This is why localhost URLs don't work - the node receives the Tailscale hostname from the bridge!
|
|
@@ -57,7 +57,7 @@ This is why localhost URLs don't work - the node receives the Tailscale hostname
|
|
|
57
57
|
|
|
58
58
|
## Configuration
|
|
59
59
|
|
|
60
|
-
In `~/.
|
|
60
|
+
In `~/.pllan/pllan.json`:
|
|
61
61
|
|
|
62
62
|
```json
|
|
63
63
|
{
|
|
@@ -106,13 +106,13 @@ HTML
|
|
|
106
106
|
Check how your gateway is bound:
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
cat ~/.
|
|
109
|
+
cat ~/.pllan/pllan.json | jq '.gateway.bind'
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
Then construct the URL:
|
|
113
113
|
|
|
114
|
-
- **loopback**: `http://127.0.0.1:18793/
|
|
115
|
-
- **lan/tailnet/auto**: `http://<hostname>:18793/
|
|
114
|
+
- **loopback**: `http://127.0.0.1:18793/__pllan__/canvas/<file>.html`
|
|
115
|
+
- **lan/tailnet/auto**: `http://<hostname>:18793/__pllan__/canvas/<file>.html`
|
|
116
116
|
|
|
117
117
|
Find your Tailscale hostname:
|
|
118
118
|
|
|
@@ -123,7 +123,7 @@ tailscale status --json | jq -r '.Self.DNSName' | sed 's/\.$//'
|
|
|
123
123
|
### 3. Find connected nodes
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
|
-
|
|
126
|
+
pllan nodes list
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
Look for Mac/iOS/Android nodes with canvas capability.
|
|
@@ -137,7 +137,7 @@ canvas action:present node:<node-id> target:<full-url>
|
|
|
137
137
|
**Example:**
|
|
138
138
|
|
|
139
139
|
```
|
|
140
|
-
canvas action:present node:mac-63599bc4-b54d-4392-9048-b97abd58343a target:http://peters-mac-studio-1.sheep-coho.ts.net:18793/
|
|
140
|
+
canvas action:present node:mac-63599bc4-b54d-4392-9048-b97abd58343a target:http://peters-mac-studio-1.sheep-coho.ts.net:18793/__pllan__/canvas/snake.html
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
### 5. Navigate, snapshot, or hide
|
|
@@ -156,9 +156,9 @@ canvas action:hide node:<node-id>
|
|
|
156
156
|
|
|
157
157
|
**Debug steps:**
|
|
158
158
|
|
|
159
|
-
1. Check server bind: `cat ~/.
|
|
159
|
+
1. Check server bind: `cat ~/.pllan/pllan.json | jq '.gateway.bind'`
|
|
160
160
|
2. Check what port canvas is on: `lsof -i :18793`
|
|
161
|
-
3. Test URL directly: `curl http://<hostname>:18793/
|
|
161
|
+
3. Test URL directly: `curl http://<hostname>:18793/__pllan__/canvas/<file>.html`
|
|
162
162
|
|
|
163
163
|
**Solution:** Use the full hostname matching your bind mode, not localhost.
|
|
164
164
|
|
|
@@ -168,7 +168,7 @@ Always specify `node:<node-id>` parameter.
|
|
|
168
168
|
|
|
169
169
|
### "node not connected" error
|
|
170
170
|
|
|
171
|
-
Node is offline. Use `
|
|
171
|
+
Node is offline. Use `pllan nodes list` to find online nodes.
|
|
172
172
|
|
|
173
173
|
### Content not updating
|
|
174
174
|
|
|
@@ -180,14 +180,14 @@ If live reload isn't working:
|
|
|
180
180
|
|
|
181
181
|
## URL Path Structure
|
|
182
182
|
|
|
183
|
-
The canvas host serves from `/
|
|
183
|
+
The canvas host serves from `/__pllan__/canvas/` prefix:
|
|
184
184
|
|
|
185
185
|
```
|
|
186
|
-
http://<host>:18793/
|
|
187
|
-
http://<host>:18793/
|
|
186
|
+
http://<host>:18793/__pllan__/canvas/index.html → ~/clawd/canvas/index.html
|
|
187
|
+
http://<host>:18793/__pllan__/canvas/games/snake.html → ~/clawd/canvas/games/snake.html
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
-
The `/
|
|
190
|
+
The `/__pllan__/canvas/` prefix is defined by `CANVAS_HOST_PATH` constant.
|
|
191
191
|
|
|
192
192
|
## Tips
|
|
193
193
|
|
package/skills/clawhub/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: clawhub
|
|
|
3
3
|
description: Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
|
-
"
|
|
6
|
+
"pllan":
|
|
7
7
|
{
|
|
8
8
|
"requires": { "bins": ["clawhub"] },
|
|
9
9
|
"install":
|
|
@@ -73,5 +73,5 @@ clawhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.2.0 --c
|
|
|
73
73
|
Notes
|
|
74
74
|
|
|
75
75
|
- Default registry: https://clawhub.com (override with CLAWHUB_REGISTRY or --registry)
|
|
76
|
-
- Default workdir: cwd (falls back to
|
|
76
|
+
- Default workdir: cwd (falls back to Pllan workspace); install dir: ./skills (override with --workdir / --dir / CLAWHUB_WORKDIR)
|
|
77
77
|
- Update command hashes local files, resolves matching version, and upgrades to latest unless --version is set
|
|
@@ -3,7 +3,7 @@ name: coding-agent
|
|
|
3
3
|
description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.'
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
|
-
"
|
|
6
|
+
"pllan": { "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
|
|
7
7
|
}
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -129,7 +129,7 @@ bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor
|
|
|
129
129
|
|
|
130
130
|
### Reviewing PRs
|
|
131
131
|
|
|
132
|
-
**⚠️ CRITICAL: Never review PRs in
|
|
132
|
+
**⚠️ CRITICAL: Never review PRs in Pllan's own project folder!**
|
|
133
133
|
Clone to temp folder or use git worktree.
|
|
134
134
|
|
|
135
135
|
```bash
|
|
@@ -242,8 +242,8 @@ git worktree remove /tmp/issue-99
|
|
|
242
242
|
5. **--full-auto for building** - auto-approves changes
|
|
243
243
|
6. **vanilla for reviewing** - no special flags needed
|
|
244
244
|
7. **Parallel is OK** - run many Codex processes at once for batch work
|
|
245
|
-
8. **NEVER start Codex in ~/.
|
|
246
|
-
9. **NEVER checkout branches in ~/Projects/
|
|
245
|
+
8. **NEVER start Codex in ~/.pllan/** - it'll read your soul docs and get weird ideas about the org chart!
|
|
246
|
+
9. **NEVER checkout branches in ~/Projects/pllan/** - that's the LIVE Pllan instance!
|
|
247
247
|
|
|
248
248
|
---
|
|
249
249
|
|
|
@@ -265,13 +265,13 @@ This prevents the user from seeing only "Agent failed before reply" and having n
|
|
|
265
265
|
|
|
266
266
|
## Auto-Notify on Completion
|
|
267
267
|
|
|
268
|
-
For long-running background tasks, append a wake trigger to your prompt so
|
|
268
|
+
For long-running background tasks, append a wake trigger to your prompt so Pllan gets notified immediately when the agent finishes (instead of waiting for the next heartbeat):
|
|
269
269
|
|
|
270
270
|
```
|
|
271
271
|
... your task here.
|
|
272
272
|
|
|
273
273
|
When completely finished, run this command to notify me:
|
|
274
|
-
|
|
274
|
+
pllan system event --text "Done: [brief summary of what was built]" --mode now
|
|
275
275
|
```
|
|
276
276
|
|
|
277
277
|
**Example:**
|
|
@@ -279,7 +279,7 @@ openclaw system event --text "Done: [brief summary of what was built]" --mode no
|
|
|
279
279
|
```bash
|
|
280
280
|
bash pty:true workdir:~/project background:true command:"codex --yolo exec 'Build a REST API for todos.
|
|
281
281
|
|
|
282
|
-
When completely finished, run:
|
|
282
|
+
When completely finished, run: pllan system event --text \"Done: Built todos REST API with CRUD endpoints\" --mode now'"
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
This triggers an immediate wake event — Skippy gets pinged in seconds, not 10 minutes.
|
package/skills/discord/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: discord
|
|
3
3
|
description: "Discord ops via the message tool (channel=discord)."
|
|
4
|
-
metadata: { "
|
|
4
|
+
metadata: { "pllan": { "emoji": "🎮", "requires": { "config": ["channels.discord.token"] } } }
|
|
5
5
|
allowed-tools: ["message"]
|
|
6
6
|
---
|
|
7
7
|
|
package/skills/eightctl/SKILL.md
CHANGED
package/skills/gemini/SKILL.md
CHANGED
|
@@ -3,14 +3,14 @@ name: gh-issues
|
|
|
3
3
|
description: "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
|
-
{ "
|
|
6
|
+
{ "pllan": { "requires": { "bins": ["curl", "git", "gh"] }, "primaryEnv": "GH_TOKEN" } }
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# gh-issues — Auto-fix GitHub Issues with Parallel Sub-agents
|
|
10
10
|
|
|
11
11
|
You are an orchestrator. Follow these 6 phases exactly. Do not skip phases.
|
|
12
12
|
|
|
13
|
-
IMPORTANT — No `gh` CLI dependency. This skill uses curl + the GitHub REST API exclusively. The GH_TOKEN env var is already injected by
|
|
13
|
+
IMPORTANT — No `gh` CLI dependency. This skill uses curl + the GitHub REST API exclusively. The GH_TOKEN env var is already injected by Pllan. Pass it as a Bearer token in all API calls:
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" ...
|
|
@@ -79,13 +79,13 @@ echo $GH_TOKEN
|
|
|
79
79
|
If empty, read from config:
|
|
80
80
|
|
|
81
81
|
```
|
|
82
|
-
cat ~/.
|
|
82
|
+
cat ~/.pllan/pllan.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
If still empty, check `/data/.clawdbot/
|
|
85
|
+
If still empty, check `/data/.clawdbot/pllan.json`:
|
|
86
86
|
|
|
87
87
|
```
|
|
88
|
-
cat /data/.clawdbot/
|
|
88
|
+
cat /data/.clawdbot/pllan.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
Export as GH_TOKEN for subsequent commands:
|
|
@@ -114,7 +114,7 @@ If in watch mode: Also filter out any issue numbers already in the PROCESSED_ISS
|
|
|
114
114
|
Error handling:
|
|
115
115
|
|
|
116
116
|
- If curl returns an HTTP 401 or 403 → stop and tell the user:
|
|
117
|
-
> "GitHub authentication failed. Please check your apiKey in the
|
|
117
|
+
> "GitHub authentication failed. Please check your apiKey in the Pllan dashboard or in ~/.pllan/pllan.json under skills.entries.gh-issues."
|
|
118
118
|
- If the response is an empty array (after filtering) → report "No issues found matching filters" and stop (or loop back if in watch mode).
|
|
119
119
|
- If curl fails or returns any other error → report the error verbatim and stop.
|
|
120
120
|
|
|
@@ -212,7 +212,7 @@ Run these checks sequentially via exec:
|
|
|
212
212
|
|
|
213
213
|
If HTTP status is not 200, stop with:
|
|
214
214
|
|
|
215
|
-
> "GitHub authentication failed. Please check your apiKey in the
|
|
215
|
+
> "GitHub authentication failed. Please check your apiKey in the Pllan dashboard or in ~/.pllan/pllan.json under skills.entries.gh-issues."
|
|
216
216
|
|
|
217
217
|
5. **Check for existing PRs:**
|
|
218
218
|
For each confirmed issue number N, run:
|
|
@@ -288,7 +288,7 @@ Run these checks sequentially via exec:
|
|
|
288
288
|
|
|
289
289
|
```
|
|
290
290
|
CURSOR_FILE="/data/.clawdbot/gh-issues-cursor-{SOURCE_REPO_SLUG}.json"
|
|
291
|
-
# SOURCE_REPO_SLUG = owner-repo with slashes replaced by hyphens (e.g.,
|
|
291
|
+
# SOURCE_REPO_SLUG = owner-repo with slashes replaced by hyphens (e.g., pllan-pllan)
|
|
292
292
|
```
|
|
293
293
|
|
|
294
294
|
Read the cursor file (create if missing):
|
|
@@ -346,7 +346,7 @@ You are a focused code-fix agent. Your task is to fix a single GitHub issue and
|
|
|
346
346
|
IMPORTANT: Do NOT use the gh CLI — it is not installed. Use curl with the GitHub REST API for all GitHub operations.
|
|
347
347
|
|
|
348
348
|
First, ensure GH_TOKEN is set. Check: `echo $GH_TOKEN`. If empty, read from config:
|
|
349
|
-
GH_TOKEN=$(cat ~/.
|
|
349
|
+
GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
|
|
350
350
|
|
|
351
351
|
Use the token in all GitHub API calls:
|
|
352
352
|
curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" ...
|
|
@@ -375,13 +375,13 @@ Follow these steps in order. If any step fails, report the failure and stop.
|
|
|
375
375
|
0. SETUP — Ensure GH_TOKEN is available:
|
|
376
376
|
```
|
|
377
377
|
|
|
378
|
-
export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/
|
|
378
|
+
export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/pllan.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
|
|
379
379
|
|
|
380
380
|
```
|
|
381
381
|
If that fails, also try:
|
|
382
382
|
```
|
|
383
383
|
|
|
384
|
-
export GH_TOKEN=$(cat ~/.
|
|
384
|
+
export GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync(0,'utf8'));console.log(d.skills?.entries?.['gh-issues']?.apiKey||'')")
|
|
385
385
|
|
|
386
386
|
```
|
|
387
387
|
Verify: echo "Token: ${GH_TOKEN:0:10}..."
|
|
@@ -714,7 +714,7 @@ You are a PR review handler agent. Your task is to address review comments on a
|
|
|
714
714
|
IMPORTANT: Do NOT use the gh CLI — it is not installed. Use curl with the GitHub REST API for all GitHub operations.
|
|
715
715
|
|
|
716
716
|
First, ensure GH_TOKEN is set. Check: echo $GH_TOKEN. If empty, read from config:
|
|
717
|
-
GH_TOKEN=$(cat ~/.
|
|
717
|
+
GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
|
|
718
718
|
|
|
719
719
|
<config>
|
|
720
720
|
Repository: {SOURCE_REPO}
|
|
@@ -745,7 +745,7 @@ Follow these steps in order:
|
|
|
745
745
|
0. SETUP — Ensure GH_TOKEN is available:
|
|
746
746
|
```
|
|
747
747
|
|
|
748
|
-
export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/
|
|
748
|
+
export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/pllan.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
|
|
749
749
|
|
|
750
750
|
```
|
|
751
751
|
Verify: echo "Token: ${GH_TOKEN:0:10}..."
|
package/skills/gifgrep/SKILL.md
CHANGED
package/skills/github/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: github
|
|
|
3
3
|
description: "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured."
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
|
-
"
|
|
6
|
+
"pllan":
|
|
7
7
|
{
|
|
8
8
|
"emoji": "🐙",
|
|
9
9
|
"requires": { "bins": ["gh"] },
|
package/skills/gog/SKILL.md
CHANGED
package/skills/goplaces/SKILL.md
CHANGED