Skip to content

Commit 09f7702

Browse files
committed
feat: add crawl archive skills
1 parent 3e9e1d6 commit 09f7702

9 files changed

Lines changed: 205 additions & 36 deletions

File tree

.agents/skills/discrawl/SKILL.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: discrawl
3+
description: "Discord archive: search, sync freshness, DMs, channel slices, SQL counts, and Discrawl repo work."
4+
metadata:
5+
openclaw:
6+
homepage: https://github.com/openclaw/discrawl
7+
requires:
8+
bins:
9+
- discrawl
10+
install:
11+
- kind: go
12+
module: github.com/openclaw/discrawl/cmd/discrawl@latest
13+
bins:
14+
- discrawl
15+
---
16+
17+
# Discrawl
18+
19+
Use local Discord archive data before live Discord APIs. Check freshness for recent/current questions:
20+
21+
```bash
22+
discrawl status --json
23+
discrawl doctor
24+
```
25+
26+
Refresh only when stale or asked:
27+
28+
```bash
29+
discrawl sync --source wiretap
30+
discrawl sync
31+
```
32+
33+
Query with bounded slices:
34+
35+
```bash
36+
DISCRAWL_NO_AUTO_UPDATE=1 discrawl search --limit 20 "query"
37+
discrawl messages --channel '#maintainers' --days 7 --all
38+
discrawl dms --last 20
39+
DISCRAWL_NO_AUTO_UPDATE=1 discrawl --json sql "select count(*) from messages;"
40+
```
41+
42+
Report absolute date spans, channel/DM names, counts, and known gaps. Use read-only SQL for exact counts/rankings. Never use `--unsafe --confirm` unless the user explicitly requests a reviewed DB mutation.
43+
44+
Boundaries: bot sync needs configured Discord bot credentials. Wiretap reads local Discord Desktop artifacts only; do not extract user tokens, call Discord as the user, or write to Discord storage. Git-share snapshots must not include secrets or `@me` DM rows.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Discrawl"
3+
short_description: "Search local Discord archives and freshness"
4+
default_prompt: "Use $discrawl to search local Discord archives, check freshness, inspect DMs or channel slices, and report exact date spans and source gaps."

.agents/skills/gitcrawl/SKILL.md

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,50 @@
11
---
22
name: gitcrawl
3-
description: Use gitcrawl for OpenClaw issue and PR archive search, duplicate discovery, related-thread clustering, and local GitHub mirror freshness checks.
3+
description: "GitHub archive: issue/PR search, sync freshness, duplicate clusters, gh-shim PR status, and Gitcrawl repo work."
44
metadata:
55
openclaw:
6+
homepage: https://github.com/openclaw/gitcrawl
67
requires:
78
bins:
89
- gitcrawl
10+
install:
11+
- kind: go
12+
module: github.com/openclaw/gitcrawl/cmd/gitcrawl@latest
13+
bins:
14+
- gitcrawl
915
---
1016

1117
# Gitcrawl
1218

13-
Use this skill before live GitHub search when triaging OpenClaw issues or PRs.
14-
15-
`gitcrawl` is the local candidate-discovery layer. It is fast, includes open and closed threads, and can surface duplicate attempts, related issues, and already-landed fixes. It is not the final source of truth for comments, labels, merges, closes, or current CI.
16-
17-
## Default Flow
18-
19-
1. Check local state:
19+
Use local GitHub issue/PR archives before live GitHub search. Check freshness first:
2020

2121
```bash
2222
gitcrawl doctor --json
2323
```
2424

25-
2. Read the target from the local archive:
25+
Find candidates:
2626

2727
```bash
2828
gitcrawl threads openclaw/openclaw --numbers <issue-or-pr-number> --include-closed --json
29-
```
30-
31-
3. Find related candidates:
32-
33-
```bash
3429
gitcrawl neighbors openclaw/openclaw --number <issue-or-pr-number> --limit 12 --json
35-
gitcrawl search openclaw/openclaw --query "<scope or title keywords>" --mode hybrid --limit 20 --json
30+
gitcrawl search issues "query" -R openclaw/openclaw --state open --json number,title,url
31+
gitcrawl clusters openclaw/openclaw --sort size --min-size 5
32+
gitcrawl cluster-detail openclaw/openclaw --id <cluster-id>
3633
```
3734

38-
4. Inspect relevant clusters:
35+
For PR triage, start cached and go live only before mutation/merge decisions:
3936

4037
```bash
41-
gitcrawl cluster-detail openclaw/openclaw --id <cluster-id> --member-limit 20 --body-chars 280 --json
38+
gitcrawl gh pr status <number-or-url> -R openclaw/openclaw --compact
39+
gitcrawl gh pr view <number-or-url> -R openclaw/openclaw --json number,title,state,url,isDraft,headRef,headSha
40+
gitcrawl gh --live pr status <number-or-url> -R openclaw/openclaw --compact
4241
```
4342

44-
5. Verify anything actionable with live GitHub and the checkout:
43+
Use live `gh` plus checkout proof before commenting, labeling, closing, reopening, merging, or filing a PR review:
4544

4645
```bash
4746
gh pr view <number> --json number,title,state,mergedAt,body,files,comments,reviews,statusCheckRollup
4847
gh issue view <number> --json number,title,state,body,comments,closedAt
4948
```
5049

51-
## Freshness Rules
52-
53-
- Treat `gitcrawl` as stale if `doctor` shows no target thread, an old `last_sync_at`, missing embeddings for neighbor/search commands, or a clearly wrong open/closed state.
54-
- If stale data blocks the decision, refresh the portable store first:
55-
56-
```bash
57-
gitcrawl init --portable-store git@github.com:openclaw/gitcrawl-store.git --json
58-
```
59-
60-
- Run expensive update commands such as `gitcrawl sync --include-comments` only when the user asked to update the local store or stale data is blocking the decision.
61-
- The sync default is all GitHub thread states; pass `--state open`, `--state closed`, or `--state all` only when a task requires a narrower or explicit scope.
62-
63-
## Boundaries
64-
65-
- Use `gitcrawl` for candidates, clusters, and historical context.
66-
- Use `gh`, `gh api`, and the current checkout for live state before commenting, labeling, closing, reopening, merging, or filing a PR review.
67-
- Do not close or label based only on `gitcrawl` similarity. Require matching problem intent plus live verification.
68-
- If `gitcrawl` is unavailable, say so and fall back to targeted `gh search` rather than blocking normal maintainer work.
50+
Report absolute dates, repo names, issue/PR numbers, cluster ids, and source gaps. Do not close/label from similarity alone; require matching intent plus live verification.

.agents/skills/graincrawl/SKILL.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: graincrawl
3+
description: "Granola archive: search, sync freshness, notes, transcripts, panels, SQL counts, and Graincrawl repo work."
4+
metadata:
5+
openclaw:
6+
homepage: https://github.com/vincentkoc/graincrawl
7+
requires:
8+
bins:
9+
- graincrawl
10+
install:
11+
- kind: go
12+
module: github.com/vincentkoc/graincrawl/cmd/graincrawl@latest
13+
bins:
14+
- graincrawl
15+
---
16+
17+
# Graincrawl
18+
19+
Use local Granola archive data first. Check freshness for recent/current questions:
20+
21+
```bash
22+
graincrawl doctor --json
23+
graincrawl status --json
24+
```
25+
26+
Refresh only when stale or asked:
27+
28+
```bash
29+
graincrawl sync --source private-api
30+
graincrawl sync --source desktop-cache
31+
```
32+
33+
Query with bounded reads:
34+
35+
```bash
36+
graincrawl search "query"
37+
graincrawl notes --json
38+
graincrawl note get <id>
39+
graincrawl transcripts get <id>
40+
graincrawl panels get <id>
41+
graincrawl --json sql "select count(*) as notes from notes;"
42+
```
43+
44+
Report absolute date spans, note titles, source gaps, and transcript/panel availability. Use read-only SQL for exact counts/rankings. Before encrypted source debugging, run explicit unlock/secrets checks; do not surprise-prompt Keychain.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Graincrawl"
3+
short_description: "Search local Granola notes and transcripts"
4+
default_prompt: "Use $graincrawl to search local Granola notes, transcripts, and panels, check freshness, and report exact date spans and source gaps."

.agents/skills/notcrawl/SKILL.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
name: notcrawl
3+
description: "Notion archive: search, sync freshness, pages/databases, Markdown exports, SQL counts, and Notcrawl repo work."
4+
metadata:
5+
openclaw:
6+
homepage: https://github.com/openclaw/notcrawl
7+
requires:
8+
bins:
9+
- notcrawl
10+
install:
11+
- kind: go
12+
module: github.com/vincentkoc/notcrawl/cmd/notcrawl@latest
13+
bins:
14+
- notcrawl
15+
---
16+
17+
# Notcrawl
18+
19+
Use local Notion archive data before browsing or live Notion API calls. Check freshness for recent/current questions:
20+
21+
```bash
22+
notcrawl doctor
23+
notcrawl status --json
24+
```
25+
26+
Refresh only when stale or asked:
27+
28+
```bash
29+
notcrawl sync --source desktop
30+
notcrawl sync --source api
31+
```
32+
33+
Query with bounded reads:
34+
35+
```bash
36+
notcrawl search "query"
37+
notcrawl databases
38+
notcrawl report
39+
notcrawl sql "select count(*) from pages;"
40+
```
41+
42+
Report workspace/teamspace, page/database titles, absolute date spans, counts, and known gaps. Use read-only SQL only; never mutate the archive. API mode requires `NOTION_TOKEN`; do not assume token availability.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Notcrawl"
3+
short_description: "Search local Notion archives and freshness"
4+
default_prompt: "Use $notcrawl to search local Notion pages and databases, check freshness, inspect exports, and report exact date spans and source gaps."

.agents/skills/slacrawl/SKILL.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: slacrawl
3+
description: "Slack archive: search, sync freshness, threads/DMs, SQL counts, and Slacrawl repo work."
4+
metadata:
5+
openclaw:
6+
homepage: https://github.com/vincentkoc/slacrawl
7+
requires:
8+
bins:
9+
- slacrawl
10+
install:
11+
- kind: go
12+
module: github.com/vincentkoc/slacrawl/cmd/slacrawl@latest
13+
bins:
14+
- slacrawl
15+
---
16+
17+
# Slacrawl
18+
19+
Use local Slack archive data first. Check freshness for recent/current questions:
20+
21+
```bash
22+
slacrawl doctor
23+
slacrawl status --json
24+
```
25+
26+
Refresh only when stale or asked:
27+
28+
```bash
29+
slacrawl sync --source desktop
30+
slacrawl sync --source api --latest-only
31+
```
32+
33+
Query with bounded slices:
34+
35+
```bash
36+
slacrawl search --limit 20 "query"
37+
slacrawl messages --since 7d --limit 50
38+
slacrawl sql "select count(*) from messages;"
39+
```
40+
41+
Report workspace/channel names, absolute date spans, counts, and token/source limits. Use read-only SQL for exact counts/rankings. API sync and full thread/DM hydration require Slack tokens; do not assume they exist.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "Slacrawl"
3+
short_description: "Search local Slack archives and freshness"
4+
default_prompt: "Use $slacrawl to search local Slack archives, check freshness, inspect channel or DM slices, and report exact date spans and token/source limits."

0 commit comments

Comments
 (0)