2.4 KiB
2.4 KiB
gitcrawl Spec
Product Contract
gitcrawl is a Go implementation of ghcrawl for local-first GitHub maintainer triage.
The target is functional parity with ghcrawl except that gitcrawl does not expose a local HTTP API.
In Scope
- local SQLite storage
- metadata-first GitHub sync for open issues and pull requests
- optional comment, review, review-comment, and PR code hydration
- canonical thread document building
- FTS search
- OpenAI summaries and embeddings
- deterministic fingerprints
- vector search
- clustering and durable cluster governance
- portable sync export/import
- CLI JSON surfaces for automation and agents
- TUI browsing after core JSON contracts settle
Out Of Scope
- local HTTP API
- hosted service runtime
- browser web UI
- GitHub write-back actions
Architecture
cmd/gitcrawl: executable entrypointinternal/cli: command parsing and outputinternal/config: config and env resolutioninternal/store: SQLite schema and persistenceinternal/github: GitHub API clientinternal/syncer: repository sync workflowsinternal/documents: canonical document generationinternal/openai: OpenAI summaries and embeddingsinternal/vector: vector search abstractioninternal/cluster: similarity and durable cluster governanceinternal/search: keyword, semantic, and hybrid searchinternal/portable: compact sync export/importinternal/tui: terminal UI
Command Surface
No serve command.
Planned public commands:
initdoctorconfigureversionsyncrefreshsummarizekey-summariesembedclusterthreadsrunsclustersdurable-clusterscluster-detailcluster-explainneighborssearchclose-threadclose-clusterexclude-cluster-memberinclude-cluster-memberset-cluster-canonicalmerge-clusterssplit-clusterexport-syncimport-syncvalidate-syncportable-sizesync-statusoptimizetuicompletion
Config
Default config path:
~/.config/gitcrawl/config.toml
Default database path:
~/.config/gitcrawl/gitcrawl.db
Primary environment variables:
GITCRAWL_CONFIGGITHUB_TOKENOPENAI_API_KEYGITCRAWL_DB_PATHGITCRAWL_SUMMARY_MODELGITCRAWL_EMBED_MODEL
Legacy GHCRAWL_* aliases should be supported where the compatibility cost is low.