claudeassets

package module
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2026 License: MIT Imports: 1 Imported by: 0

README

codegraph

A pre-indexed code knowledge graph for coding agents. One static binary — no Node runtime, no node_modules, no install-time network fetch.

Coding agents burn most of their context rediscovering the same thing: where a symbol is defined, what calls it, and what breaks if it changes. codegraph answers those from a local graph it maintains incrementally, so an agent can ask one question instead of grepping its way to an answer.

$ codegraph explore "release verification"

Returns the relevant symbols' verbatim source plus the call paths between them — ranked by graph relevance, not string similarity.


Supported platforms

Platform Architectures Status
Linux amd64, arm64 Supported
macOS amd64, arm64 Supported
Windows Not supported natively — use WSL2

On Windows, run codegraph inside WSL2 and install the linux binary for your architecture. Everything works there, including codegraph upgrade, because WSL2 is Linux.

One caveat worth knowing: if your project lives on a /mnt/<drive> Windows mount rather than inside the WSL2 filesystem, codegraph turns the file watcher off automatically — recursive watching across that mount is too slow to be reliable. Keep repositories on the WSL2 side (~/..., not /mnt/c/...) for full functionality, or pass --watch to force it on anyway.

Install

Download a binary from Releases:

TAG=v0.2.0
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')

curl -fLo codegraph \
  "https://github.com/seanb4t/codegraph-go/releases/download/${TAG}/codegraph_${TAG}_${OS}_${ARCH}"
chmod +x codegraph

Every binary is signed. Verify before you run it — the full walkthrough is in docs/RELEASE.md:

cosign verify-blob \
  --bundle "codegraph_${TAG}_${OS}_${ARCH}.sigstore.json" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp \
    '^https://github\.com/seanb4t/codegraph-go/\.github/workflows/release\.ya?ml@refs/tags/v[0-9][^[:space:]]*$' \
  "codegraph_${TAG}_${OS}_${ARCH}"

Subsequent upgrades are self-service: codegraph upgrade resolves the latest release, verifies the signature against the identity compiled into the binary, and swaps itself.

Homebrew (macOS)
brew tap seanb4t/tap && brew install codegraph

Installs the binary, shell completions, and man pages in one step — see docs/RELEASE.md for exactly what the cask guarantees, a man-path caveat worth knowing before you run man codegraph, a bash-completion prerequisite for bash completion specifically, what to do if brew install refuses with "untrusted tap" on its first run, and how upgrades work under a brew-managed install. Upgrade with brew upgrade codegraph, not codegraph upgrade — running codegraph upgrade against a brew-managed install refuses with a pointer to that command and exits non-zero, rather than mutating the install behind Homebrew's bookkeeping; codegraph upgrade --check reports the same pointer and exits zero.

Quick start

cd your-project
codegraph init          # build the graph
codegraph explore "authentication middleware"
codegraph callers ParseToken
codegraph impact internal/store/pebble.go

init indexes the repo and writes to .codegraph/. From then on the graph is kept fresh automatically — by an in-process watcher, or by git hooks (codegraph githooks install) where a watcher isn't viable.

Use it from an agent

codegraph serve --mcp speaks MCP over stdio, with auto-sync on by default:

codegraph install       # register with detected agents
codegraph serve --mcp   # or run it directly

Eight tools are exposed: codegraph_explore, codegraph_node, codegraph_search, codegraph_callers, codegraph_callees, codegraph_impact, codegraph_files, codegraph_status.

codegraph_explore answers most questions in one call.

To expose fewer — a smaller tool surface leaves more of an agent's context for the work — set CODEGRAPH_MCP_TOOLS to the companions you want. It is a narrowing filter, not an allowlist: leaving it unset gives you all eight.

CODEGRAPH_MCP_TOOLS=node,status codegraph serve --mcp   # explore + node + status
CODEGRAPH_MCP_TOOLS= codegraph serve --mcp              # explore alone

codegraph_explore is always present and cannot be filtered out. An empty tool list means something else entirely: this repo has no index yet, so run codegraph init.

Commands

init · index · sync · uninit build and maintain the graph
explore · search · node find code
callers · callees · impact · affected · files traverse it
serve --mcp MCP server for agents
install · uninstall · githooks agent and git integration
daemon · status · unlock lifecycle
upgrade · version self-update

Every command has --help. Output is colorized on a TTY and byte-identical plain when piped — agents and pipelines never see escape codes.

Language support

Fourteen languages are registered. They are not equally supported, and the differences are documented rather than averaged away — see docs/LANGUAGE-CAPABILITY-MATRIX.md.

Tier Languages Extraction Cross-file resolution
Full Go, Java, C#, TypeScript, TSX full full
Full extraction, no interface dispatch Python, JavaScript full full
Partial Rust, Ruby, PHP, C, C++, Swift, Kotlin full partial

Performance

Median-of-3, on three real repositories, on the same machine:

Repo Indexing Query latency Peak RSS Cold start
weft (~84 files) 8.1× faster 12.9× lower 2.8× lighter 8.4× faster
codegraph (TypeScript) 4.3× faster 11.5× lower 4.5× lighter 7.6× faster
cockroachdb/pebble (largest) 21.2× faster 7.9× lower 3.0× lighter 8.2× faster

All three repos, every metric. Indexing spread is wide — 4.3×–21.2× — and depends heavily on the language mix, so treat any single number with suspicion. Full methodology, pinned corpus commits, and raw per-run figures are in docs/BENCHMARKS.md.

Supply chain

The reason this is one static binary rather than a bundled runtime:

  • Signed — cosign keyless, per binary, with the signing identity anchored to this repository's release workflow and a tag ref. The identity is compiled into the binary, so codegraph upgrade refuses anything signed elsewhere.
  • Provenance — GitHub-native build provenance via actions/attest-build-provenance, published through GitHub's Attestations API, verifiable with gh attestation verify.
  • SBOM — SPDX per platform, published as a release asset.
  • Reproducible — CI rebuilds every release binary and fails on a hash diff.
  • Scannedgovulncheck gates every merge.

Status

v0.2.0 — pre-1.0. The core is in daily use and the release pipeline is signed and attested end to end, but the API and CLI surface may still move before 1.0. Behavioral regression coverage is provided by the golden corpus suite — named property assertions over the in-repo behavioral corpus, re-frozen from codegraph-go's own output.

Contributing

Building from source requires a C toolchain — tree-sitter is CGo, and the reasoning behind that choice is in PARSER-DECISION.md.

CGO_ENABLED=1 go build ./cmd/codegraph
CGO_ENABLED=1 go test ./...

Issues and pull requests are welcome. Please read SECURITY.md before reporting anything security-related — don't open a public issue for a vulnerability.

License

MIT — see LICENSE. This project began as a Go rewrite of CodeGraph; see NOTICE for the original copyright.

Documentation

Overview

Package claudeassets embeds this repository's own canonical .claude/ package — the Claude Code skill, hooks fragment, and SessionStart nudge script authored and dogfooded in Phase 6 — so the running codegraph binary can install a byte-identical copy into any user's Claude Code read locations (Phase 7, AGENT-01).

This file MUST live at the repository root, not under internal/. Go's //go:embed patterns may not contain ".." path elements (golang/go#46056) and are resolved only relative to, or below, the directory containing the source file that carries the directive. .claude/ and internal/ are sibling directories at the repository root, so no file under internal/agents/ (or any other package directory) can embed anything under .claude/ — the repository root is the only directory that is an ancestor of both. A later refactor that tries to relocate this file into internal/ will fail to compile, which is the intended guardrail (07-RESEARCH.md Critical Finding 2, empirically verified this repo's own session).

Because the declared package name ("claudeassets") does not match the module path's last element ("codegraph-go"), every importer must use a named import: claudeassets "github.com/seanb4t/codegraph-go".

Index

Constants

View Source
const (
	// SkillMarkdownPath is FS's path to the Claude Code skill's SKILL.md.
	SkillMarkdownPath = ".claude/skills/codegraph/SKILL.md"
	// HooksFragmentPath is FS's path to the versioned go:embed source for
	// the SessionStart hooks fragment (Phase 7 D-04) — not itself read by
	// Claude Code in this repository (internal/agents/hookpackage_test.go);
	// internal/agents derives the install-time hooks.SessionStart blocks
	// from it.
	HooksFragmentPath = ".claude/hooks/hooks.json"
	// SessionNudgeScriptPath is FS's path to the SessionStart nudge script.
	SessionNudgeScriptPath = ".claude/hooks/session-nudge.sh"
)

Variables

FS embeds exactly three files, named explicitly rather than as a directory pattern over .claude/skills/codegraph/ — embed's default dot/underscore filtering does not exclude .claude/skills/codegraph/verification/, so a directory pattern would also ship Phase 6's rehearsal-transcript evidence to every install target (07-RESEARCH.md Pitfall 2).

Functions

func HooksFragment

func HooksFragment() ([]byte, error)

HooksFragment returns the embedded hooks.json fragment content.

func SessionNudgeScript

func SessionNudgeScript() ([]byte, error)

SessionNudgeScript returns the embedded session-nudge.sh content.

func SkillMarkdown

func SkillMarkdown() ([]byte, error)

SkillMarkdown returns the embedded SKILL.md content.

Types

This section is empty.

Directories

Path Synopsis
cmd
codegraph command
Command codegraph is the codegraph CLI binary entrypoint.
Command codegraph is the codegraph CLI binary entrypoint.
internal
agents
Package agents (this file): the sidecar manifest written next to SKILL.md at install time (D-03, D-04).
Package agents (this file): the sidecar manifest written next to SKILL.md at install time (D-03, D-04).
bench
Package bench holds the pure-logic measurement core for the codegraph benchmark harness (PERF-01, INDX-06).
Package bench holds the pure-logic measurement core for the codegraph benchmark harness (PERF-01, INDX-06).
cli
Package cli implements the codegraph command-line interface: the Cobra root command "codegraph" and its init/index/uninit subcommands, wired directly to the internal/indexer pipeline (D-01).
Package cli implements the codegraph command-line interface: the Cobra root command "codegraph" and its init/index/uninit subcommands, wired directly to the internal/indexer pipeline (D-01).
cli/present
Package present is the sole home for charm.land/lipgloss/v2 styling (D-01).
Package present is the sole home for charm.land/lipgloss/v2 styling (D-01).
cli/tui
Package tui hosts the ONLY code in this module that imports charm.land/bubbletea/v2 and charm.land/bubbles/v2 (D-09/D-11).
Package tui hosts the ONLY code in this module that imports charm.land/bubbletea/v2 and charm.land/bubbles/v2 (D-09/D-11).
corpora
coverage.go is the FIXT-01 coverage guard: it DERIVES the coverage claim from three committed documents rather than validating a precomputed summary.
coverage.go is the FIXT-01 coverage guard: it DERIVES the coverage claim from three committed documents rather than validating a precomputed summary.
daemon
Package daemon implements SYNC-04/SYNC-05/D-05: the long-lived local process (or in-process fallback) that owns a repo's watcher plus the single GraphStore.Writer so multiple agent sessions share one indexer.
Package daemon implements SYNC-04/SYNC-05/D-05: the long-lived local process (or in-process fallback) that owns a repo's watcher plus the single GraphStore.Writer so multiple agent sessions share one indexer.
fsatomic
Package fsatomic provides a single crash-safe file-write primitive shared by internal/agents (external agent configs) and internal/githooks (git hook scripts).
Package fsatomic provides a single crash-safe file-write primitive shared by internal/agents (external agent configs) and internal/githooks (git hook scripts).
githooks
Package githooks manages CodeGraph's marker-fenced git sync hooks (post-commit/post-merge/post-checkout) — it implements the hooking contract (D-01/D-02).
Package githooks manages CodeGraph's marker-fenced git sync hooks (post-commit/post-merge/post-checkout) — it implements the hooking contract (D-01/D-02).
gitmeta
Package gitmeta is the stdlib-only, best-effort git introspection layer that detects when a resolved CodeGraph index belongs to a different git working tree than the caller (WORK-01/02/03).
Package gitmeta is the stdlib-only, best-effort git introspection layer that detects when a resolved CodeGraph index belongs to a different git working tree than the caller (WORK-01/02/03).
graphstore
Package graphstore is the sole legal caller of the embedded key-value storage engine; all graph reads and writes flow through the boundary this package defines.
Package graphstore is the sole legal caller of the embedded key-value storage engine; all graph reads and writes flow through the boundary this package defines.
indexer
Package indexer implements the two-pass Go indexing pipeline: Pass 0 (deterministic file discovery, this file's neighbor discover.go), Pass 1 (parallel per-file extraction), and Pass 2 (sequential cross-file resolution), writing through internal/graphstore.
Package indexer implements the two-pass Go indexing pipeline: Pass 0 (deterministic file discovery, this file's neighbor discover.go), Pass 1 (parallel per-file extraction), and Pass 2 (sequential cross-file resolution), writing through internal/graphstore.
indexer/capability
Package capability is the D-11 language capability descriptor: the machine-readable half of the "language capability matrix" (the other half is the human-readable docs/LANGUAGE-CAPABILITY-MATRIX.md, which this package's own consistency test — matrix_test.go — keeps mirrored to this file exactly, coverage value for coverage value, gap for gap).
Package capability is the D-11 language capability descriptor: the machine-readable half of the "language capability matrix" (the other half is the human-readable docs/LANGUAGE-CAPABILITY-MATRIX.md, which this package's own consistency test — matrix_test.go — keeps mirrored to this file exactly, coverage value for coverage value, gap for gap).
indexer/csharpextract
Package csharpextract walks a C# file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/javaextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package csharpextract walks a C# file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/javaextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/dispatch
Package dispatch synthesizes Go's implicit structural interface satisfaction into explicit "implements" edges (RES-02, Phase 5 Pattern 3): a struct whose method set (by name+arity, D-06's bounded-matching discipline) is a superset of an interface's own method-spec set is synthesized as implementing that interface.
Package dispatch synthesizes Go's implicit structural interface satisfaction into explicit "implements" edges (RES-02, Phase 5 Pattern 3): a struct whose method set (by name+arity, D-06's bounded-matching discipline) is a superset of an interface's own method-spec set is synthesized as implementing that interface.
indexer/goextract
Package goextract implements Pass 1's Go-specific tree-walk (LANG-01): mapping a parsed Go file's tree-sitter concrete syntax tree onto the codegraph node/edge vocabulary (D-06) — function/method/struct/ interface/type_alias/constant/variable nodes, intra-file contains edges, and unresolved cross-file references (calls, imports, struct/ interface embedding) for Pass 2 (resolve, a later plan) to settle.
Package goextract implements Pass 1's Go-specific tree-walk (LANG-01): mapping a parsed Go file's tree-sitter concrete syntax tree onto the codegraph node/edge vocabulary (D-06) — function/method/struct/ interface/type_alias/constant/variable nodes, intra-file contains edges, and unresolved cross-file references (calls, imports, struct/ interface embedding) for Pass 2 (resolve, a later plan) to settle.
indexer/javaextract
Package javaextract walks a Java file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package javaextract walks a Java file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/cextract
Package cextract walks a C or C++ file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package cextract walks a C or C++ file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/kotlinextract
Package kotlinextract walks a Kotlin file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/ IntraEdge/UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package kotlinextract walks a Kotlin file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/ IntraEdge/UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/phpextract
Package phpextract walks a PHP file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package phpextract walks a PHP file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/rubyextract
Package rubyextract walks a Ruby file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package rubyextract walks a Ruby file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/rustextract
Package rustextract walks a Rust file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package rustextract walks a Rust file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/mainstream/swiftextract
Package swiftextract walks a Swift file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
Package swiftextract walks a Swift file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary.
indexer/nodeid
Package nodeid computes the deterministic content-hashed identifier assigned to every extracted symbol (D-02/D-02a).
Package nodeid computes the deterministic content-hashed identifier assigned to every extracted symbol (D-02/D-02a).
indexer/pyextract
Package pyextract walks a Python file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary — the same discipline javaextract/csharpextract already follow.
Package pyextract walks a Python file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/ UnresolvedRef, goextract.Kind*/RefKind*), mirroring internal/indexer/goextract's shape (D-01) rather than redefining its own copy of that vocabulary — the same discipline javaextract/csharpextract already follow.
indexer/routes
Package routes implements LANG-07's per-framework route-detector registry (D-08): a small, opt-in-per-detected-dependency (D-09) set of AST-based detectors — Gin (Go), Spring (Java), ASP.NET (C#), Django/Flask/FastAPI (Python), Express/NestJS (TypeScript/JavaScript) — each scanning one already-parsed file's syntax tree for that framework's route-declaration shape and resolving the route's handler to an already-known function/method node id.
Package routes implements LANG-07's per-framework route-detector registry (D-08): a small, opt-in-per-detected-dependency (D-09) set of AST-based detectors — Gin (Go), Spring (Java), ASP.NET (C#), Django/Flask/FastAPI (Python), Express/NestJS (TypeScript/JavaScript) — each scanning one already-parsed file's syntax tree for that framework's route-declaration shape and resolving the route's handler to an already-known function/method node id.
indexer/tsextract
Package tsextract walks a TypeScript, TSX, or JavaScript file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/UnresolvedRef, goextract.Kind*/RefKind*) — ONE extractor serving all three grammars registered by languages_typescript.go ("typescript" .ts, "tsx" .tsx, "javascript" .js/.jsx/.mjs/.cjs), mirroring javaextract's/csharpextract's/ pyextract's shape (D-01) rather than defining three near-duplicate packages.
Package tsextract walks a TypeScript, TSX, or JavaScript file's tree-sitter syntax tree into the shared codegraph vocabulary (goextract.FileResult/ExtractedNode/IntraEdge/UnresolvedRef, goextract.Kind*/RefKind*) — ONE extractor serving all three grammars registered by languages_typescript.go ("typescript" .ts, "tsx" .tsx, "javascript" .js/.jsx/.mjs/.cjs), mirroring javaextract's/csharpextract's/ pyextract's shape (D-01) rather than defining three near-duplicate packages.
mcp
Package mcp implements the codegraph stdio MCP server (D-08): a startup-time conditional tool registration surface.
Package mcp implements the codegraph stdio MCP server (D-08): a startup-time conditional tool registration surface.
parser
Package parser defines a narrow, backend-swappable boundary for turning source bytes into a syntax tree, independent of storage concerns.
Package parser defines a narrow, backend-swappable boundary for turning source bytes into a syntax tree, independent of storage concerns.
parser/cgo
Package cgo implements the production CGo tree-sitter backend (Option A) for the parser.Parser interface, covering the two spike-partner languages (D-05): Go (LANG-01) and Python (carries a real external C scanner).
Package cgo implements the production CGo tree-sitter backend (Option A) for the parser.Parser interface, covering the two spike-partner languages (D-05): Go (LANG-01) and Python (carries a real external C scanner).
query
Package query — internal/query/expand.go implements the subgraph-construction heuristics H10-H12 (RESEARCH §C.2, D-10): the DoS-bounding stage (T-01-18) that turns explore's gathered candidate set (H3-H6, gather.go) into the bounded subgraph computeGraphRelevance (rwr.go) later ranks over.
Package query — internal/query/expand.go implements the subgraph-construction heuristics H10-H12 (RESEARCH §C.2, D-10): the DoS-bounding stage (T-01-18) that turns explore's gathered candidate set (H3-H6, gather.go) into the bounded subgraph computeGraphRelevance (rwr.go) later ranks over.
schema
Package schema owns the record serialization layer and its schema-versioned message definitions used by the graph store.
Package schema owns the record serialization layer and its schema-versioned message definitions used by the graph store.
upgrade
Package upgrade implements `codegraph upgrade` (CLI-02, D-11..D-14): resolve the target release version from GitHub Releases, download and verify its sigstore-go signature bundle IN-PROCESS (D-12 — never shell out to a cosign CLI), and only on successful verification atomically replace the running binary (D-13).
Package upgrade implements `codegraph upgrade` (CLI-02, D-11..D-14): resolve the target release version from GitHub Releases, download and verify its sigstore-go signature bundle IN-PROCESS (D-12 — never shell out to a cosign CLI), and only on successful verification atomically replace the running binary (D-13).
version
Package version holds the codegraph binary's build-identity metadata (D-09).
Package version holds the codegraph binary's build-identity metadata (D-09).
watch
Package watch implements SYNC-01: a native, debounced filesystem watcher built on github.com/fsnotify/fsnotify (D-04) — the mandated cross-platform primitive; no polling default.
Package watch implements SYNC-01: a native, debounced filesystem watcher built on github.com/fsnotify/fsnotify (D-04) — the mandated cross-platform primitive; no polling default.
test
wireoracle
Package wireoracle is the phase's wire-level regression oracle (D-01, VRFY-01): it spawns the REAL codegraph binary via os/exec, drives a scripted JSON-RPC session over real stdio, and returns the raw captured bytes.
Package wireoracle is the phase's wire-level regression oracle (D-01, VRFY-01): it spawns the REAL codegraph binary via os/exec, drives a scripted JSON-RPC session over real stdio, and returns the raw captured bytes.
wireoracle/cmd/wireoracle command
Command wireoracle is the human-redirect capture entrypoint (D-03): it spawns one scenario against a caller-supplied binary and fixture, prints ONLY the normalized transcript to stdout, and prints the per-rule hit ledger to stderr.
Command wireoracle is the human-redirect capture entrypoint (D-03): it spawns one scenario against a caller-supplied binary and fixture, prints ONLY the normalized transcript to stdout, and prints the per-rule hit ledger to stderr.
tools
bench/cpudiag command
Command cpudiag is a one-shot CPU-topology diagnostic (10-04-PLAN, Rule 2 deviation): it prints what a Go process on this host believes about its own parallelism, for comparison against the host's REAL CPU allotment.
Command cpudiag is a one-shot CPU-topology diagnostic (10-04-PLAN, Rule 2 deviation): it prints what a Go process on this host believes about its own parallelism, for comparison against the host's REAL CPU allotment.
bench/gencorpus command
Command gencorpus generates a deterministic, network-free synthetic source-code corpus for the PERF-02 CI regression gate and the INDX-06 bounded-memory / peak-RSS assertion (see 08-RESEARCH.md Pattern 2).
Command gencorpus generates a deterministic, network-free synthetic source-code corpus for the PERF-02 CI regression gate and the INDX-06 bounded-memory / peak-RSS assertion (see 08-RESEARCH.md Pattern 2).
bench/publishcheck command
Command publishcheck is a pure-Go verifier for tools/bench/runner's `-mode publish` JSON output.
Command publishcheck is a pure-Go verifier for tools/bench/runner's `-mode publish` JSON output.
bench/realcorpus
Package realcorpus is the pinned real-repo manifest for the `publish` benchmark mode: the freshly-built Go `codegraph` binary, run over real, publicly available source trees rather than the synthetic PERF-02/INDX-06 corpus (tools/bench/gencorpus), to produce absolute throughput / query-latency / peak-RSS numbers for publication.
Package realcorpus is the pinned real-repo manifest for the `publish` benchmark mode: the freshly-built Go `codegraph` binary, run over real, publicly available source trees rather than the synthetic PERF-02/INDX-06 corpus (tools/bench/gencorpus), to produce absolute throughput / query-latency / peak-RSS numbers for publication.
bench/runner command
Command runner is the codegraph benchmark harness: it drives the freshly-built Go `codegraph` binary through a shared, external measurement path and reports internal/bench.Metrics.
Command runner is the codegraph benchmark harness: it drives the freshly-built Go `codegraph` binary through a shared, external measurement path and reports internal/bench.Metrics.
corpora command
Command corpora is the single resolution path both the Taskfile fetch targets and (in a later plan) CI read for the corpora manifest, plus the measurement instrument Plan 01-05 builds: given -mode, it prints the resolved out-of-tree corpus root (root), a pre-validated JSON array of fetchable entries (entries), the sorted query.RankEdges members (kinds), the deterministic threshold/locked-set proposal derived from an observations file (select), or drives this repository's own indexer + query engine in-process to produce a measured Observation per corpus and upsert it into corpora/observations.json (measure).
Command corpora is the single resolution path both the Taskfile fetch targets and (in a later plan) CI read for the corpora manifest, plus the measurement instrument Plan 01-05 builds: given -mode, it prints the resolved out-of-tree corpus root (root), a pre-validated JSON array of fetchable entries (entries), the sorted query.RankEdges members (kinds), the deterministic threshold/locked-set proposal derived from an observations file (select), or drives this repository's own indexer + query engine in-process to produce a measured Observation per corpus and upsert it into corpora/observations.json (measure).
mcpaudit command
Command mcpaudit is the entrypoint for the VRFY-05 proxying MCP capture shim.
Command mcpaudit is the entrypoint for the VRFY-05 proxying MCP capture shim.
transcriptfreeze command
Command transcriptfreeze implements CONTEXT.md D-03's anti-regeneration cross-change rule as a CI-invokable guard: a pull request must never both change a frozen wire-oracle transcript AND change something that could have caused the diff (internal/mcp/*.go, or the MCP dependency line in go.mod).
Command transcriptfreeze implements CONTEXT.md D-03's anti-regeneration cross-change rule as a CI-invokable guard: a pull request must never both change a frozen wire-oracle transcript AND change something that could have caused the diff (internal/mcp/*.go, or the MCP dependency line in go.mod).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL