Docs / design / README · Edit on GitHub

Feature design documents

Audience: contributors / maintainers — not the default agent reading path. Start at docs/README.md (For contributors).

Engineering designs for rgBuilder capabilities. Each doc follows the migration planner pattern: goals, architecture, implementation map, CLI, testing, and optional dashboard screenshots.

Index

FeatureDesign docDashboard tab
Semantic searchsemantic-search-design.mdSearch
Blast radiusblast-radius-design.mdBlast Radius
Program slicingprogram-slicing-design.mdProgram Slicing
Taint analysistaint-analysis-design.mdTaint Analysis
CFGcfg-design.mdCFG / PDG Analysis
PDGpdg-design.mdDataflow
Dominancedominance-design.mdDataflow → Dominator Tree
GQLgql-design.mdGraph Visualization (+ Query Guide)
Community query & namingcommunity-query-and-naming-plan.mdGraph Visualization (legend) + GQL
Hybrid CPG (two-resolution)hybrid-cpg-plan.mdCLI/HTTP agent-first (cpg); dashboard optional later
Graph metricsgraph-metrics-design.mdFunctions
Migration plannermigration-planner-design.mdMigration
CI policy checksci-policy-checks-design.mdCLI-first (blast scores in dashboard)

Screenshots

PNG assets live under docs/images/design/ per feature subdirectory.

Regenerate after UI changes:

cd dashboard && npm run build
cargo build --release
rg-build -r /path/to/gbuilder discover . --with-cfg --with-security --with-taint
rg-build -r /path/to/gbuilder serve --port 8080

DASHBOARD_URL=http://127.0.0.1:8080/ node dashboard/scripts/capture-design-screenshots.mjs

The capture script selects functions from the sidebar and triggers the right action per tab (Load CFG, Compute slice, dominator view, etc.). Override symbols for other repos:

CAPTURE_FN_BLAST=MyService \
CAPTURE_FN_CFG=MyService \
CAPTURE_FN_DATAFLOW=MyService \
CAPTURE_FN_SLICE=MyService \
CAPTURE_SLICE_LINE=42 \
CAPTURE_SLICE_VAR=orderId \
CAPTURE_FN_TAINT=handleRequest \
DASHBOARD_URL=http://127.0.0.1:8080/ node dashboard/scripts/capture-design-screenshots.mjs

Migration-only extras (preset/tooltip shots):

DASHBOARD_URL=http://127.0.0.1:8080/ node dashboard/scripts/capture-migration-screenshots.mjs

Set DESIGN_DOCS_SCREENSHOT_DIR or MIGRATION_DOCS_SCREENSHOT_DIR to override output paths.

User-facing companions

AudienceDoc
ConceptsIntroduction.md
Commandsuser-guide.md
Dashboard walkthroughdashboard-user-guide.md
Migration workflowbuilding-migration-plan.md