Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
397e5cf
feat(db): add persistent cluster schema
vincentkoc Apr 24, 2026
734abd1
feat(cluster): add deterministic human keys
vincentkoc Apr 24, 2026
a381298
feat(cluster): add deterministic fingerprint algorithms
vincentkoc Apr 24, 2026
58c8b8d
feat(cluster): build deterministic thread fingerprints
vincentkoc Apr 24, 2026
95ed710
feat(cluster): score deterministic similarity evidence
vincentkoc Apr 24, 2026
cceb9e8
feat(cluster): add membership governance rules
vincentkoc Apr 24, 2026
60458bf
feat(db): add content-addressed blob store
vincentkoc Apr 24, 2026
4c4bf0c
feat(cluster): define LLM key summary contract
vincentkoc Apr 24, 2026
843eb1d
feat(cluster): persist durable evidence state
vincentkoc Apr 24, 2026
7026363
feat(cluster): build deterministic cluster graph
vincentkoc Apr 24, 2026
ee22513
feat(cluster): fallback to deterministic clustering
vincentkoc Apr 24, 2026
1b39d95
feat(cluster): persist durable cluster state
vincentkoc Apr 24, 2026
048203e
feat(cluster): honor manual cluster exclusions
vincentkoc Apr 24, 2026
1976fa9
feat(contract): add cluster exclusion action
vincentkoc Apr 24, 2026
130c5fc
feat(cluster): add manual exclusion service
vincentkoc Apr 24, 2026
283f217
feat(api): expose cluster exclusion action
vincentkoc Apr 24, 2026
a72e22f
feat(cli): add cluster exclusion command
vincentkoc Apr 24, 2026
a98322c
feat(cluster): persist thread fingerprints
vincentkoc Apr 24, 2026
a009cec
feat(cluster): save fallback fingerprints
vincentkoc Apr 24, 2026
dbf7c22
feat(cluster): add actor stats store
vincentkoc Apr 24, 2026
479fc7c
feat(sync): capture actor stats
vincentkoc Apr 24, 2026
6978b21
feat(contract): add durable cluster schemas
vincentkoc Apr 24, 2026
ade2a8a
feat(cluster): list durable clusters
vincentkoc Apr 24, 2026
6322e95
feat(api): expose durable clusters
vincentkoc Apr 24, 2026
1768046
feat(cli): list durable clusters
vincentkoc Apr 24, 2026
fabed46
feat(github): fetch pull request files
vincentkoc Apr 24, 2026
ff780cf
feat(cluster): derive code hunk signatures
vincentkoc Apr 24, 2026
3521bc7
feat(cluster): persist code snapshots
vincentkoc Apr 24, 2026
0e13773
feat(contract): report synced code files
vincentkoc Apr 24, 2026
2588b3f
feat(sync): hydrate code snapshots
vincentkoc Apr 24, 2026
1afc3dc
feat(cluster): strengthen hunk evidence
vincentkoc Apr 24, 2026
5cf8aaa
feat(cluster): load code signatures
vincentkoc Apr 24, 2026
5ca91a2
feat(cli): add code hydration flag
vincentkoc Apr 24, 2026
d6e2eab
feat(contract): allow refresh code hydration
vincentkoc Apr 24, 2026
7ae7fb6
feat(refresh): propagate code hydration
vincentkoc Apr 24, 2026
b7a37eb
feat(cli): refresh code hydration
vincentkoc Apr 24, 2026
b54817b
feat(openai): add key summary generation
vincentkoc Apr 24, 2026
fc7c8f5
feat(cluster): persist key summaries
vincentkoc Apr 24, 2026
c04c709
feat(cluster): generate key summaries
vincentkoc Apr 24, 2026
ae6e363
feat(cli): add key summaries command
vincentkoc Apr 24, 2026
011601b
feat(embed): support key summary basis
vincentkoc Apr 24, 2026
0973ac6
fix(db): spill large patch blobs to object store
vincentkoc Apr 24, 2026
6fa8737
feat(cluster): cache latest deterministic fingerprints
vincentkoc Apr 24, 2026
61f5874
feat(cluster): build deterministic graph from fingerprint cache
vincentkoc Apr 24, 2026
fd5824f
feat(sync): refresh fingerprints for touched threads
vincentkoc Apr 24, 2026
6d13008
feat(cluster): merge deterministic and vector evidence
vincentkoc Apr 24, 2026
6dd784f
feat(cluster): pin durable canonical member
vincentkoc Apr 24, 2026
9181f6b
feat(cluster): force include durable members
vincentkoc Apr 24, 2026
3801655
feat(cluster): merge durable clusters
vincentkoc Apr 24, 2026
95730c0
feat(cluster): split durable clusters
vincentkoc Apr 24, 2026
476a227
fix(db): spill large comment payloads
vincentkoc Apr 24, 2026
0844942
feat(cluster): refresh durable neighborhoods
vincentkoc Apr 24, 2026
84a6b3e
fix(db): spill full PR diffs
vincentkoc Apr 24, 2026
255f5d2
refactor(ai): name key summary providers
vincentkoc Apr 24, 2026
f8fe3be
feat(cluster): explain durable clusters
vincentkoc Apr 24, 2026
f001892
docs: document durable cluster governance
vincentkoc Apr 24, 2026
f69e1b7
test(api): cover durable cluster explain route
vincentkoc Apr 24, 2026
b7f07b5
docs: update ghcrawl governance protocol
vincentkoc Apr 24, 2026
435a3be
feat(author): expose actor profile stats
vincentkoc Apr 24, 2026
e8d6d7c
docs: document author profile surface
vincentkoc Apr 24, 2026
05bfa6a
test(cli): cover governance command help
vincentkoc Apr 24, 2026
f66b835
feat(runs): expose pipeline history
vincentkoc Apr 24, 2026
2cfe4bc
docs: document run history surface
vincentkoc Apr 24, 2026
0b2e6e3
refactor: use bare token crawler mode
vincentkoc Apr 24, 2026
acbe950
docs: document bare token workflow
vincentkoc Apr 24, 2026
7716f28
fix(summary): continue after key summary failures
vincentkoc Apr 24, 2026
8a6b311
fix(tui): simplify local cluster browser
vincentkoc Apr 24, 2026
b4ed2b4
fix(tui): improve cluster browsing ergonomics
vincentkoc Apr 24, 2026
61485e0
fix(cluster): bound automatic cluster components
vincentkoc Apr 24, 2026
5c0e877
fix(summary): speed up key summary enrichment
vincentkoc Apr 24, 2026
52990e0
fix(summary): preserve provider context in key summaries
vincentkoc Apr 24, 2026
04c89aa
fix(summary): increase key summary concurrency
vincentkoc Apr 24, 2026
ae53492
fix(openai): minimize reasoning for summaries
vincentkoc Apr 24, 2026
04d8cf3
fix(cluster): show dictionary cluster names
vincentkoc Apr 24, 2026
849163d
fix(cluster): tighten issue pr edges
vincentkoc Apr 24, 2026
2c155ec
fix(sync): avoid pull fetches for metadata sync
vincentkoc Apr 24, 2026
172f2b8
fix(sync): speed metadata crawls
vincentkoc Apr 24, 2026
6b31fbb
fix(openai): clamp key summary fields
vincentkoc Apr 24, 2026
48dc921
fix(cluster): disambiguate durable slugs
vincentkoc Apr 24, 2026
b9d1596
fix(cluster): weight file and key evidence
vincentkoc Apr 24, 2026
8b181f0
fix(cluster): cap deterministic candidates
vincentkoc Apr 24, 2026
0b99785
fix(cluster): strengthen file evidence scoring
vincentkoc Apr 24, 2026
8f42f4c
feat(openai): add purpose key summaries
vincentkoc Apr 24, 2026
13ce16d
fix(cluster): ignore broad setup patches
vincentkoc Apr 24, 2026
3604e88
fix(cluster): dampen broad module evidence
vincentkoc Apr 24, 2026
bb478ab
fix(tui): show stale cluster runs
vincentkoc Apr 24, 2026
2fd372c
fix(cluster): tighten default topology
vincentkoc Apr 24, 2026
bbd4369
fix(tui): tighten cluster and detail panes
vincentkoc Apr 24, 2026
548b3f1
feat(tui): add thread context menu
vincentkoc Apr 24, 2026
144e0a5
fix(tui): render links plainly
vincentkoc Apr 24, 2026
67559a4
fix(tui): improve pane mouse interactions
vincentkoc Apr 24, 2026
1706b65
fix(tui): align member list columns
vincentkoc Apr 24, 2026
1d613a4
fix(tui): add quick filter context actions
vincentkoc Apr 24, 2026
a352fd2
fix(tui): stabilize cluster header sorting
vincentkoc Apr 24, 2026
eb68bf3
fix(tui): clarify summary sections
vincentkoc Apr 24, 2026
ffca42f
feat(tui): add sortable member headers
vincentkoc Apr 24, 2026
6bf93ce
fix(tui): expose referenced links in context menu
vincentkoc Apr 24, 2026
430c07c
fix(tui): list referenced links in detail
vincentkoc Apr 24, 2026
e99afb5
fix(tui): persist member sort preference
vincentkoc Apr 24, 2026
2640963
feat(tui): add referenced link picker
vincentkoc Apr 24, 2026
1c35c83
feat(tui): add compact detail actions
vincentkoc Apr 24, 2026
f1ca3b1
feat(tui): add local cluster actions
vincentkoc Apr 24, 2026
3144a4d
fix(tui): harden modal dismissal and confirmations
vincentkoc Apr 24, 2026
07f45ae
perf(db): bound sqlite wal growth and busy waits
vincentkoc Apr 24, 2026
adb45e4
feat(tui): auto-refresh external database updates
vincentkoc Apr 24, 2026
8443107
fix(cli): pin launcher node for native sqlite deps
vincentkoc Apr 24, 2026
5c83dc4
feat(tui): restore mouse menus and richer previews
vincentkoc Apr 24, 2026
889e8e6
docs(skill): add ghcrawl cluster operator guide
vincentkoc Apr 24, 2026
cccbdd6
fix(tui): expand copy menus and quiet preview markdown
vincentkoc Apr 24, 2026
89e645f
fix(tui): surface structured key summaries
vincentkoc Apr 25, 2026
247c777
fix(tui): default cluster filter to five members
vincentkoc Apr 25, 2026
7379647
fix: support gpt-5.4 key summaries
vincentkoc Apr 25, 2026
b93f11b
fix: allow incremental embedding with existing vectors
vincentkoc Apr 25, 2026
92d6ee8
feat: show closed clusters by default
vincentkoc Apr 25, 2026
bf0a697
fix: show archived closed clusters
vincentkoc Apr 25, 2026
b9c952e
feat: add sqlite optimize command
vincentkoc Apr 25, 2026
00c8c24
fix: keep durable clusters stable
vincentkoc Apr 25, 2026
0656144
fix: persist cluster closures and speed cluster boot
vincentkoc Apr 25, 2026
2e604a7
fix: skip closed sync hydration
vincentkoc Apr 25, 2026
8ab7cfe
fix: backfill closed state during full reconcile
vincentkoc Apr 25, 2026
bf2ed09
feat: export portable sync database
vincentkoc Apr 25, 2026
576f155
fix: tolerate portable export schema drift
vincentkoc Apr 25, 2026
e7de875
fix: shrink portable sync default bodies
vincentkoc Apr 25, 2026
da2ba07
docs: document portable sync export
vincentkoc Apr 25, 2026
f3e0ac5
refactor: extract portable sync store
vincentkoc Apr 25, 2026
7c91b2c
feat: validate portable sync stores
vincentkoc Apr 25, 2026
012dfc9
feat: emit portable sync manifests
vincentkoc Apr 25, 2026
ff63616
feat: compare portable sync drift
vincentkoc Apr 25, 2026
cd92ea4
feat: import portable sync stores
vincentkoc Apr 25, 2026
b90ddf5
docs: describe portable sync workflow
vincentkoc Apr 25, 2026
56cea73
refactor: split portable sync contract
vincentkoc Apr 25, 2026
8c3397b
refactor: share portable sqlite helpers
vincentkoc Apr 25, 2026
4ec3025
refactor: isolate portable sync schema
vincentkoc Apr 25, 2026
c5031d0
refactor: split portable sync inspection
vincentkoc Apr 25, 2026
8078a8e
refactor: split portable sync export
vincentkoc Apr 25, 2026
030b2fd
refactor: isolate portable sync import
vincentkoc Apr 25, 2026
9296ce8
refactor: extract service types
vincentkoc Apr 25, 2026
203b644
refactor: extract service utilities
vincentkoc Apr 25, 2026
5d2567b
refactor: extract service constants
vincentkoc Apr 25, 2026
a88443e
refactor: move repo param parsing
vincentkoc Apr 25, 2026
4675bb0
refactor: extract storage maintenance
vincentkoc Apr 25, 2026
3902b28
refactor: extract run history helpers
vincentkoc Apr 25, 2026
4e4a526
refactor: extract doctor diagnostics
vincentkoc Apr 25, 2026
4b08dd9
refactor: extract vector encoding helpers
vincentkoc Apr 25, 2026
4d42dda
refactor: extract pipeline state helpers
vincentkoc Apr 25, 2026
4274b27
refactor: extract vector store path helpers
vincentkoc Apr 25, 2026
7e9ec87
refactor: extract sync cursor helpers
vincentkoc Apr 25, 2026
5d70fa4
refactor: extract tui thread detail helpers
vincentkoc Apr 25, 2026
e5d51d9
refactor: extract raw json blob storage
vincentkoc Apr 25, 2026
1d82b9b
refactor: extract summary source builder
vincentkoc Apr 25, 2026
0fde350
refactor: extract key summary input builder
vincentkoc Apr 25, 2026
6786e75
refactor: extract active vector task builder
vincentkoc Apr 25, 2026
fd82929
refactor: extract embedding retry helpers
vincentkoc Apr 25, 2026
4514f40
refactor: extract embedding batch chunking
vincentkoc Apr 25, 2026
2a0d7e2
refactor: extract vector repository maintenance
vincentkoc Apr 25, 2026
729c221
refactor: move vector migration cleanup
vincentkoc Apr 25, 2026
82fbaf2
refactor: extract embedding workset loader
vincentkoc Apr 25, 2026
737799d
refactor: extract cluster edge aggregation
vincentkoc Apr 25, 2026
fcd5daf
refactor: extract cluster quality summaries
vincentkoc Apr 25, 2026
cbc778c
refactor: extract tui cluster format helpers
vincentkoc Apr 25, 2026
85d6bec
refactor: extract edge worker runtime probe
vincentkoc Apr 25, 2026
77c64b7
refactor: extract cluster run queries
vincentkoc Apr 25, 2026
ca2c942
refactor: extract tui repository stats
vincentkoc Apr 25, 2026
162a697
refactor: remove unused embedding iterator
vincentkoc Apr 25, 2026
50a2d52
refactor: extract stored embedding queries
vincentkoc Apr 25, 2026
3956bdc
refactor: extract clusterable vector loaders
vincentkoc Apr 25, 2026
1f055a4
refactor: extract stored cluster neighbor query
vincentkoc Apr 25, 2026
affa736
refactor: extract latest code feature loader
vincentkoc Apr 25, 2026
4d6a6b3
refactor: extract deterministic thread loader
vincentkoc Apr 25, 2026
4297629
refactor: extract fingerprint materializer
vincentkoc Apr 25, 2026
7e696da
refactor: extract fingerprint loader
vincentkoc Apr 25, 2026
c8a8815
refactor: extract cluster close reconciliation
vincentkoc Apr 25, 2026
72f2cd0
refactor: move closed cluster row collapse
vincentkoc Apr 25, 2026
bc5adc3
refactor: move durable tui summary mapper
vincentkoc Apr 25, 2026
55e5963
refactor: extract tui cluster query helpers
vincentkoc Apr 26, 2026
7523e8c
refactor: extract tui cluster summary queries
vincentkoc Apr 26, 2026
fd00ec2
refactor: extract tui refresh state query
vincentkoc Apr 26, 2026
192589e
refactor: extract tui cluster member query
vincentkoc Apr 26, 2026
58f4e4f
refactor: extract tui thread detail queries
vincentkoc Apr 26, 2026
ce7f2e8
fix: default cluster min size to 5
vincentkoc Apr 26, 2026
e0dee18
refactor: extract sync comment hydration
vincentkoc Apr 26, 2026
f8f4bad
refactor: extract sync persistence helpers
vincentkoc Apr 26, 2026
7fe60a0
refactor: extract sync reconciliation
vincentkoc Apr 26, 2026
42ec61a
refactor: extract document storage helpers
vincentkoc Apr 26, 2026
fbf5e47
refactor: extract tui cluster rendering
vincentkoc Apr 26, 2026
38198f0
refactor: extract tui detail rendering
vincentkoc Apr 26, 2026
5010a9f
refactor: extract embedding batch runner
vincentkoc Apr 26, 2026
d9382f4
test: cover embedding batch recovery
vincentkoc Apr 26, 2026
0b1c096
refactor: extract tui widget helpers
vincentkoc Apr 26, 2026
46d15c7
refactor: isolate tui platform actions
vincentkoc Apr 26, 2026
098a7c0
fix: drop stale portable sync sidecars
vincentkoc Apr 26, 2026
1360134
docs: refresh implementation plan status
vincentkoc Apr 26, 2026
4b441e9
test: preserve rich cache on sync import
vincentkoc Apr 26, 2026
e176c4d
refactor: extract tui help modal
vincentkoc Apr 26, 2026
563e361
refactor: extract cli report formatting
vincentkoc Apr 26, 2026
a5d2ed4
refactor: extract thread listing query
vincentkoc Apr 26, 2026
18b3411
test: cover portable sync drift
vincentkoc Apr 26, 2026
8295564
refactor: extract repository listing query
vincentkoc Apr 26, 2026
a645a3b
test: cover portable sync row drift
vincentkoc Apr 26, 2026
ae4a10b
docs: mark portable drift tests complete
vincentkoc Apr 26, 2026
afa8e55
refactor: extract local thread closure
vincentkoc Apr 26, 2026
a629ce0
refactor: extract durable cluster queries
vincentkoc Apr 26, 2026
8153ddb
refactor: extract cluster list query
vincentkoc Apr 26, 2026
470f1a8
refactor: extract tui repository picker
vincentkoc Apr 26, 2026
0a83bcf
refactor: extract storage optimization flow
vincentkoc Apr 26, 2026
ab3d776
refactor: import repository picker helpers directly
vincentkoc Apr 26, 2026
aae508e
refactor: extract cli command catalog
vincentkoc Apr 26, 2026
81937dc
refactor: compose tui thread detail in helper
vincentkoc Apr 26, 2026
66c685c
refactor: extract cli argument parsing
vincentkoc Apr 26, 2026
89ff0df
refactor: share service entity lookups
vincentkoc Apr 26, 2026
f39fffa
perf: load only active summary basis
vincentkoc Apr 26, 2026
734dbc3
perf: use fast tui embedding stats
vincentkoc Apr 26, 2026
b38ebe6
refactor: name tui embedding stats mode
vincentkoc Apr 26, 2026
6645f8c
refactor: share cluster summary dto mapping
vincentkoc Apr 26, 2026
3ac7ea9
test: cover pipeline tui embedding stats
vincentkoc Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 132 additions & 0 deletions .agents/skills/ghcrawl-cluster-operator/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
name: ghcrawl-cluster-operator
description: "Use when inspecting a ghcrawl SQLite store, pulling GitHub issue/PR data, refreshing summaries, embeddings, and clusters, or extracting one cluster and its evidence through the ghcrawl CLI."
---

# ghcrawl Cluster Operator

Use this skill when operating this repo's local-first GitHub crawler and cluster browser.

## Ground Rules

- Prefer read-only inspection commands first: `doctor`, `runs`, `clusters`, `cluster-explain`, `threads`.
- Treat `refresh`, `sync`, `summarize`, `key-summaries`, and `embed` as remote/API-spend commands.
- `cluster` is local-only but can be CPU-heavy on huge repos.
- `optimize` is local-only SQLite maintenance; run it after heavy sync, embedding, clustering, or close/archive sessions.
- Always pass `--json` for agent-readable output.
- Use `--include-code` only when file overlap matters; it hydrates PR file metadata and can increase DB size.

## Setup Check

```bash
ghcrawl doctor --json
ghcrawl configure --json
ghcrawl runs owner/repo --limit 10 --json
ghcrawl optimize owner/repo --json
```

If the local store is empty or stale, pull current open GitHub data:

```bash
ghcrawl sync owner/repo --limit 200 --json
ghcrawl sync owner/repo --include-code --limit 200 --json
```

For a normal end-to-end update:

```bash
ghcrawl refresh owner/repo --json
```

Use code hydration when file evidence should affect clustering:

```bash
ghcrawl refresh owner/repo --include-code --json
```

## LLM And Embedding Pipeline

Default clustering can run without LLM summaries. LLM summaries and embeddings enrich the cluster graph.

Useful configurations:

```bash
ghcrawl configure --summary-model gpt-5.4 --embedding-basis title_original --json
ghcrawl configure --summary-model gpt-5.4 --embedding-basis llm_key_summary --json
```

For structured key summaries:

```bash
ghcrawl key-summaries owner/repo --limit 200 --json
ghcrawl key-summaries owner/repo --number 12345 --json
```

Then refresh vectors and clusters:

```bash
ghcrawl embed owner/repo --json
ghcrawl cluster owner/repo --json
```

## Pull A Cluster And Its Info

List clusters:

```bash
ghcrawl clusters owner/repo --min-size 2 --limit 20 --sort size --json
ghcrawl clusters owner/repo --search "cron timeout" --limit 10 --json
```

Explain one durable cluster:

```bash
ghcrawl cluster-explain owner/repo --id 123 --member-limit 50 --event-limit 50 --json
```

Inspect current durable clusters with members:

```bash
ghcrawl durable-clusters owner/repo --member-limit 25 --json
ghcrawl durable-clusters owner/repo --include-inactive --member-limit 25 --json
```

Pull specific issues/PRs from the local store:

```bash
ghcrawl threads owner/repo --numbers 123,456,789 --json
```

Open the TUI:

```bash
ghcrawl tui owner/repo
```

## Local Maintainer Actions

Use these only when the operator asks for durable cluster edits:

```bash
ghcrawl exclude-cluster-member owner/repo --id 123 --number 456 --reason "not same root cause" --json
ghcrawl include-cluster-member owner/repo --id 123 --number 456 --reason "same root cause" --json
ghcrawl set-cluster-canonical owner/repo --id 123 --number 456 --reason "clearest report" --json
ghcrawl merge-clusters owner/repo --source 123 --target 456 --reason "same issue family" --json
```

After edits, re-run:

```bash
ghcrawl cluster owner/repo --json
ghcrawl cluster-explain owner/repo --id 123 --member-limit 50 --event-limit 50 --json
```

## Local Store Maintenance

Run maintenance after large data changes:

```bash
ghcrawl optimize owner/repo --json
```

Without `owner/repo`, `optimize` only checkpoints, analyzes, optimizes, and vacuums the main ghcrawl SQLite database. With `owner/repo`, it also optimizes that repo's vector SQLite store and reports the vector `.hnsw` sidecar size without rebuilding it.
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.20.0
10 changes: 0 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ This file is for maintainers and contributors working from source.

```bash
pnpm install
pnpm bootstrap
pnpm health
```

Expand All @@ -23,15 +22,6 @@ pnpm typecheck
pnpm test
```

If you configured 1Password CLI support in init:

```bash
pnpm op:doctor
pnpm op:tui
pnpm op:exec -- sync openclaw/openclaw
pnpm op:shell
```

## Release Flow

This repo uses tag-driven releases from the GitHub Releases UI.
Expand Down
Loading
Loading