Ryan-AI-Studios/Ledgerful

GitHub: Ryan-AI-Studios/Ledgerful

Ledgerful 是一款基于 Rust 的本地优先 CLI 工具,通过确定性的变更影响分析、事务性溯源和 Gemini 辅助推理,帮助开发团队实现精细化的代码库治理和风险控制。

Stars: 0 | Forks: 0

# Ledgerful Ledgerful 是一个本地优先的 Rust CLI,用于变更智能和 Gemini 辅助开发。它将仓库的编辑转换为确定性的影响数据包、风险摘要、热点排名、有针对性的验证计划以及有界的 Gemini 上下文。 该工具旨在保持本地化并解释其工作原理。它不会作为自主编程 agent 运行。 Ledgerful:现有的 `ledgerful` 命令、hooks 和 `.ledgerful/` 状态目录将保持不变,继续工作。新安装的版本也会提供 `ledgerful` 及其短别名 `ldg`。 ## 安装说明 **Windows** (PowerShell): ``` iwr https://raw.githubusercontent.com/Ryan-AI-Studios/Ledgerful/main/install/install.ps1 -UseB | iex ``` **macOS 和 Linux**: ``` curl -fsSL https://raw.githubusercontent.com/Ryan-AI-Studios/Ledgerful/main/install/install.sh | sh ``` *(Homebrew 和 Apt 包即将推出)。* 从检出的代码库手动安装: ``` cargo install --path . ``` LSP daemon 位于一个可选功能之后: ``` cargo install --path . --features daemon ``` 有关安装程序选项、发布资产和 agent 引导说明,请参阅 [docs/installation.md](docs/installation.md)。 ## 快速入门 ``` ledgerful init ledgerful doctor ledgerful index ledgerful scan ledgerful impact ledgerful verify ledgerful hotspots ledgerful ask "What should I verify next?" ``` ## 命令 - `init`:创建 `.ledgerful/`、启动配置、启动规则以及 `.gitignore` 配置。 - `doctor`:报告平台、shell、path 和工具的健康状况。 - `index`:解析源代码以构建结构、entrypoint、call-graph、data-model、可观测性和语义向量索引。支持 SCIP 摄取。 - `scan`:总结暂存和未暂存的 git 变更。 - `watch`:将文件系统事件防抖处理为持久化的批次。 - `impact`:生成 `latest-impact.json`,包含符号、imports、runtime 使用情况、复杂度、时间耦合、热点、CI 预测和联邦影响。 - `verify`:使用结构影响、时间耦合、CI 预测和 Bayesian 失败概率排序来构建并运行确定性的验证计划。包含 `--explain` 用于 LLM 失败原因分析。 - `ask`:将经过清理的影响上下文发送给 Gemini 或本地 LLM。支持自然语言 `--semantic` 代码库搜索。 - `search`:通过 Tantivy trigrams 和排名 BM25 代码库查询进行亚毫秒级的正则表达式搜索。 - `hotspots`:按时间变更频率乘以复杂度对文件进行排名。 - `mcp`:运行 Model Context Protocol stdio 服务器以进行 AI agent 集成。 - `viz`:导出交互式 HTML Knowledge Graph 可视化,展示代码库依赖关系和风险热力图。 - `federate`:导出公共接口、扫描同级仓库,并显示已知的联邦链接。 - `ledger`:事务性架构内存(start、commit、rollback、audit、search、adr)。 - `daemon`:可选的 LSP 服务器,提供 diagnostics、Hover、CodeLens、陈旧数据处理和生命周期管理。 - `reset`:删除派生的本地状态。默认保留 `ledger.db`;使用 `--include-ledger` 删除出处数据。 - `demo`:生成一个包含真实签名 ledger 条目和 SOC2 证据导出的合成 invoice-service 仓库。完全离线运行,耗时约 15-30 秒;默认运行后清理(使用 `--keep` 进行检查)。 - `export evidence`:从 CLI 导出 SOC2 证据压缩包(与仪表板按钮导出的产物相同)。`--profile soc2 --out [--force]`。 ## 常见工作流 使用 first-parent git 历史记录生成影响报告: ``` ledgerful impact ``` 对于包含大量合并的仓库,包含所有父节点遍历: ``` ledgerful impact --all-parents ``` 运行预测性验证: ``` ledgerful verify ``` 禁用预测并使用仅限规则的验证: ``` ledgerful verify --no-predict ``` 检查风险热点: ``` ledgerful hotspots --limit 20 --commits 500 --dir src --lang rs ledgerful hotspots --json ``` 使用 Gemini 叙事报告: ``` ledgerful ask --narrative ``` 在首次标记的发布和 npm 发布之后,通过 兼容 MCP 的编程 agent 使用 Ledgerful: ``` npx @ledgerful/mcp-server ``` npm 包装器会下载带有校验和的 GitHub 发布二进制文件,并启动 `ledgerful mcp`。设置 `LEDGERFUL_MCP_BIN_OVERRIDE` 为本地二进制文件,以便在 开发或 CI 冒烟测试时使用。 在同级仓库之间使用联邦智能: ``` ledgerful federate export ledgerful federate scan ledgerful federate status ledgerful impact ``` 通过事务性出处跟踪变更: ``` # 在编辑前启动 transaction ledgerful ledger start src/main.rs --category FEATURE --message "Add auth module" # 在编辑和验证之后 ledgerful ledger commit --tx-id --summary "Added auth" --reason "API needs authentication" # 快速单文件更改 ledgerful ledger atomic src/config.rs --category REFACTOR --summary "Extract config validation" --reason "SRP" # 针对 docs 更改的轻量级 note ledgerful ledger note docs/api.md "Update endpoint docs" # 检查状态并调和 drift ledgerful ledger status ledgerful ledger reconcile --all --reason "Intentional local changes" # 搜索和审计 ledgerful ledger search "auth logic" --category FEATURE --days 30 ledgerful ledger audit --include-unaudited ledgerful ledger adr --output-dir docs/adr ``` ``` cargo run --features daemon -- daemon ``` ## 配置 Ledgerful 将仓库本地状态存储在 `.ledgerful/` 中。 - `.ledgerful/config.toml`:runtime 配置、watch 防抖、Gemini 超时/上下文、时间遍历、热点默认值以及 ledger 设置(强制执行、自动核对、验证门控)。 - `.ledgerful/rules.toml`:策略规则、受保护路径和所需的验证命令。 示例位于 [docs/examples/config.toml](docs/examples/config.toml)、[docs/examples/rules.toml](docs/examples/rules.toml) 和 [docs/examples/LEDGERFUL.md](docs/examples/LEDGERFUL.md) 中。 ## 报告和状态 生成的状态可重新构建,并始终保留在 `.ledgerful/` 内部。 - `.ledgerful/reports/latest-scan.json` - `.ledgerful/reports/latest-impact.json` - `.ledgerful/reports/latest-verify.json` - `.ledgerful/reports/fallback-impact.json` - `.ledgerful/state/ledger.db` - `.ledgerful/state/schema.json` - `.ledgerful/state/current-batch.json` 影响数据包在 SQLite 持久化之前会进行脱敏处理。Gemini prompts 在执行子进程之前会进行清理和截断。 ## Gemini Ledgerful 通过 shell 调用 `gemini` CLI。在使用 `ledgerful ask` 之前,请确保它已添加到 `PATH` 中。 - `GEMINI_API_KEY` 可以从进程环境或仓库本地的 `.env` 文件中提供。`.env` 会被 git 忽略;请使用 `.env.example` 作为模板。 - 默认情况下,日常的 `analyze`、`suggest` 和叙事请求使用 `gemini-3.1-flash-lite`,以降低延迟和成本。 - 高风险数据包和 `review-patch` 请求使用 `gemini-3.1-pro`,以获得更深度的推理和代码审查。 - 仅当您希望每个 ask 模式都使用同一个明确指定的模型时,才在 `.ledgerful/config.toml` 中设置 `gemini.model`。 - `--mode analyze`:爆炸半径和风险推理 - `--mode suggest`:针对性的验证建议 - `--mode review-patch`:带有实时 diff 上下文的补丁审查 - `--narrative`:由单个结构化 prompt 生成的资深架构师风险叙述 如果 Gemini 在影响数据包可用后失败,Ledgerful 将写入回退影响产物,或报告其失败的原因。 ## Windows / WSL - Windows 11 + PowerShell 是主要环境。 - 混合的 Windows/WSL 文件系统设置可能会更慢,并可能产生不同的工具可用性。 - 请在运行 Ledgerful 的环境中保持安装 `git` 和 `gemini`。 ## 架构 有关模块边界和当前数据流,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 贡献 - 问题和设置帮助:[GitHub Discussions](https://github.com/Ryan-AI-Studios/Ledgerful/discussions)。 - Bug 报告:[GitHub Issues](https://github.com/Ryan-AI-Studios/Ledgerful/issues)。 - 安全报告:请参阅 [SECURITY.md](SECURITY.md) — 不要为安全漏洞提交公开的 issue。 - 保持变更在阶段内有界且确定。 - 在推送之前运行 `cargo fmt --check`、`cargo clippy --all-targets --all-features -- -D warnings` 和 `cargo test --all-features -j 1 -- --test-threads=1`。 ## 许可证 Ledgerful 是在 [PolyForm Noncommercial License 1.0.0](LICENSE) 下提供的源码可用软件,并在 [COMMERCIAL-EXCEPTION.md](COMMERCIAL-EXCEPTION.md) 中为符合条件的小型实体提供了额外许可。 必需声明:版权所有 2026 Ledgerful, LLC;额外许可已在 COMMERCIAL-EXCEPTION.md 中说明。
标签:可视化界面, 通知系统