Token导航 LogoToken导航TokenDH.com
Trammel (Iron Adamant) logo
运维云端stdio官方级别未说明来源级核验

Trammel (Iron Adamant)

MCP Server

Trammel是一款为AI编码助手设计的任务规划工具,能够将复杂任务分解为有序步骤、验证每一步的正确性,并从失败中学习以提高未来任务的效率。

工具数

31

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude云端部署ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

IronAdamant

提供方

IronAdamant

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install trammel # core library (no dependencies beyond Python stdlib)

详细介绍

Trammel——用于编码助理的AI任务规划器

![License: MIT](LICENSE) ![Python 3.10+](https://www.python.org/downloads/) ![PyPI](https://pypi.org/project/trammel/)

Trammel帮助AI编码助手规划、验证和记忆多步骤任务。

Trammel没有让你的人工智能助手在复杂的变化中游刃有余,而是将目标分解为有序的步骤,验证每个步骤的有效性,从失败中学习,并保存成功的策略以供重用。它与 克劳德代码, 光标,以及任何与MCP兼容的编辑器,或通过Python和CLI独立使用。

Trammel是一种工具 为了 LLM,而不是调用LLM的工具。它提供了编码助理可靠地处理多步骤任务所需的规划规则。

Trammel Plan & Explore Demo

它的作用

  • 将目标分解为步骤 --分析项目的代码结构,找出什么取决于什么,并创建一个有序的计划
  • 尝试多种方法 --并行探索不同的策略(自下而上、自上而下、风险优先等),以找到最有效的方法
  • 在过程中进行验证 --在Python工具中,在独立副本中的每个步骤后运行测试,这样就不会出现糟糕的更改。在MCP模式下, verify_step 是一种静态/启发式检查——在步骤之间自己运行测试套件,或调用 plan_and_execute 来自Python,用于真正的隔离测试执行。
  • 从错误中学习 --记录失败的原因,然后阻止同样的错误再次发生
  • 记住什么有效 --将成功的策略保存为可重复使用的配方,以便下次更快地解决类似的任务
  • 协调多个代理 --为多代理工作流提供步骤声明、依赖性跟踪和DAG指标

支持15种语言: Python、TypeScript、JavaScript、Go、Rust、C/C++、Java/Kotlin、C#、Ruby、PHP、Swift、Dart、Zig

安装

pip install trammel            # core library (no dependencies beyond Python stdlib)
pip install trammel[mcp]       # with MCP server for Claude Code / Cursor

或来源:

git clone https://github.com/IronAdamant/Trammel.git
cd Trammel && pip install -e '.[mcp]'

快速开始

使用克劳德代码或光标(MCP)

添加到您的 .claude/.mcp.json (克劳德代码)或等效的MCP配置:

{
  "mcpServers": {
    "trammel": {
      "command": "trammel-mcp",
      "args": []
    }
  }
}

你的人工智能助手现在可以访问31个计划工具——分解目标、创建计划、声明步骤、验证工作、保存食谱和修剪过时的计划。看 SYSTEM_PROMPT.md 获取完整的编排指南。

从命令行

python -m trammel "refactor auth module" --root /path/to/project --beams 3
python -m trammel "fix tests" --test-cmd "pytest -x -q"
python -m trammel "explore auth" --dry-run          # explore strategies without verification
python -m trammel "fix auth" --root /monorepo --scope services/auth

来自Python

from trammel import plan_and_execute, explore, synthesize

# Full pipeline: decompose → plan → explore → verify → store recipe
result = plan_and_execute("your goal", "/path/to/project", num_beams=3)

# Explore only (no verification)
strategy = explore("refactor auth", "/path/to/project")

# Save a verified strategy as a reusable recipe
synthesize("refactor auth", verified_strategy)

运作原理

Trammel将规划视为一个结构化搜索问题:

  1. 分解 --分析导入并构建依赖关系图,然后生成具有基本原理的有序步骤。支持尚未存在的新文件的脚手架定义。
  2. 探索 --创建多种策略变体(自下而上、自上而下、风险优先、关键路径、凝聚力、最小变化等),并并行运行。
  3. 验证 --在独立的临时副本中应用编辑,并按步骤运行测试。当某物断裂时提取结构化故障分析。
  4. 限制 --将失败原因记录为持久约束,以防止会话之间出现相同的错误。
  5. 记住 --将成功的策略存储为食谱,稍后通过文本相似度+文件重叠+成功率进行检索。

所有州都存储在本地SQLite数据库中(trammel.db)--计划、步骤、约束、配方和遥测。

集成选项

特拉梅尔不需要MCP。通过多个曲面可以获得相同的功能:

表面最适合
MCP服务器 (trammel-mcp)Claude Code、Cursor和其他支持MCP的编辑器
Python API (plan_and_execute, explore等)脚本、CI管道、自定义编排器
命令行界面 (python -m trammel)壳牌自动化,快速一次性计划
SQLite (trammel.db)直接查询、外部仪表板、跨流程协调

多代理支持

当使用脚手架进行分解时,Trammel返回DAG指标,用于在多个代理之间分配工作:

度量它告诉你什么
max_parallelism您一次可以运行的代理的峰值数量
layer_widths每轮可以处理多少个文件(例如。 [7, 12, 6, 10, 3, 2])
critical_path_length最长的链条——你的最小轮数

代理人通过以下方式进行协调 claim_step / release_step / available_steps。声明将在10分钟后自动过期,以恢复过时的代理。

使用石碑和凿子工作

工具角色
石碑持久上下文检索和语义索引
凿子代码分析、流失、耦合、风险映射
束缚计划、验证、故障学习、配方记忆

计划保真度和配置

Trammel有控制措施来保持计划的准确性和子代理的一致性:

  • strict_greenfield --如果新的工作目标没有框架,则分解失败,从而防止模糊的临时计划
  • relevant_only --只过滤对目标重要的步骤
  • 相关性层次 --每一步都得到 high / medium / low 相关性,因此优先级是透明的

可选项目配置通过 pyproject.toml ([tool.trammel] 节)或 .trammel.json:

[tool.trammel]
default_scope = "src/"
focus_keywords = ["auth", "login"]
max_files = 50

项目布局

trammel/              Importable package
  __init__.py         Public API: plan_and_execute, explore, synthesize
  core.py             Planner: decomposition, constraints, step generation
  store.py            RecipeStore: SQLite persistence (8 tables), telemetry
  store_recipes.py    Recipe methods: save, retrieve, list, prune
  strategies.py       9 built-in beam strategies
  harness.py          Execution harness: temp copies, test runner
  analyzer_specs.py   Declarative regex specs for 13 regex-based analyzers
  analyzer_engine.py  RegexAnalyzerEngine + import resolvers + backward-compat shims
  analyzers.py        Python + TypeScript analyzers, language detection
  analyzers_ext.py    Backward-compat shim (re-exports from analyzer_engine)
  analyzers_ext2.py   Backward-compat shim (re-exports from analyzer_engine)
  project_config.py   Config merging (pyproject.toml + .trammel.json)
  utils.py            Trigrams, cosine, failure extraction, shared helpers
  cli.py              CLI entry point
  mcp_server.py       MCP tool schemas and dispatch
  mcp_stdio.py        MCP stdio server entry point
  plan_merge.py       Plan merging engine: conflict detection + 4 resolution strategies
  store_agents.py     Multi-agent coordination: step claiming, availability, proximity warnings
tests/                361 tests across 6 modules (stdlib unittest)
SYSTEM_PROMPT.md      Reference orchestration guide for LLM clients

SQLite架构(trammel.db)

目的
recipes具有模式、约束、成功/失败计数的成功策略
recipe_trigrams用于快速检索配方的倒三元组索引
recipe_files结构匹配的文件路径(Jaccard重叠)
plans目标+战略快照+逐步推进的脚手架
steps具有依赖关系、基本原理、验证结果的工作单元
constraints防止已知不良重复的故障记录
trajectories每个梁的运行日志:结果、完成的步骤、失败原因
failure_patterns具有解决历史的历史故障特征
usage_events遥测:工具调用、配方命中率、策略获胜率

贡献

欢迎捐款。请先打开一个问题来讨论更改。

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/your-feature)
  3. 进行更改(核心必须仅保留stdlib;测试使用 unittest 仅)
  4. 运行测试: python -m unittest discover -q -s tests -p 'test_*.py'
  5. 打开拉取请求

出版(维护者)

发布使用 可信发布 (GitHub OIDC→ PyPI)。不需要API令牌。

  1. 碰撞 versionpyproject.toml
  2. 运行测试、提交、推送 main
  3. 标签: git tag -a vX.Y.Z -m "Release X.Y.Z" && git push origin vX.Y.Z
  4. 创建GitHub发布(自动触发PyPI发布)

______________________________________________________________________

Full Changelog

v3.12.2--第15阶段发现结束:结构配方匹配、计划重复数据删除、故障恢复、目标文本框架推理

补丁发布弥补了针对TrammelConstraintFailureRecoveryEngine语料库的31/31工具测试所暴露的四个关键差距(26个对抗性几乎相同的结构支架,12个重复的“第15阶段”计划,13个约束,8个注入失败)。这 trammel_open.md 研究结果文档(RecipeLab_alt/MCP_findings)已重命名 trammel_open_closed.md.

  • 配方匹配现在可以区分结构模式。 满的 has_util +“util”/“utils”角色支持已添加到 goal_fingerprint_from_text, strategy_fingerprint, structural_similarity (余弦+奖金)、角色向量和 goal_scaffold_fingerprint_from_text. model+service+route+test vs model+service+util+test (以及1-2个令牌变体)现在产生有意义的不同分数,而不是最大值~0.19。通过以下方式保存几乎相同的目标 save_recipe/validate_recipes 现在被正确地首选 decompose 以及支架配方回退路径(0.15阈值)。 _W_STRUCTURAL 加权和拱MinHash的好处。
  • 防止创建重复的计划。 create_plan 现在,对现有的未决计划执行精确的(目标+策略JSON)匹配,并返回之前的ID,而不是插入重复的ID。消除了重复观测到的12个相同+49个待决计划污染 create_plan 呼吁实现相同的目标。 prune_plans, merge_plans, list_plans,以及 usage_stats 保持清洁。
  • resolve_failure 清除“运行”步骤/计划状态。 扩展的 resolve_failure_pattern、MCP处理程序,以及 tool_schemas.py 可选 plan_id/step_id 参数。如果提供,目标步骤将从“正在运行”/“挂起”移动→ “失败”,任何索赔都将被释放,决议说明将存储在步骤中 verification JSON。修复了2/8例注射失败导致台阶卡住的情况 resolve_failure + failure_history.
  • 目标文本→ 为新文件构建NLP推理框架。 添加了专用的“util”条目 _LAYER_PATTERNS (带测试层), src/utils + src/helpers_FALLBACK_ROLE_DIRS,以及“util”/“utils” _ROLE_DIR_SUBSTRINGS. _creation_hints, _detect_layered_architecture,以及 _fallback_directories 现在,为绿地目标发布现成的脚手架条目(带有依赖DAGs和成对的测试文件),其中提到“util”、“导入器/导出器/注册表”、“模型+服务+util+test”等。--即使在 existing_files 为空,目标中没有明确的路径。 explore 无脚手架 decompose 生成有用的新文件计划,而不是完整的仓库或空结果。
  • 工具和文件。 更新了中的描述 tool_schemas.py 对于新的可选解析参数。 scripts/release.sh 助手和可信发布流不变。所有413项测试(和子测试)继续通过,没有回归。

这些变化为大型重构(第16阶段活动)提供了“40-70步依赖感知计划”的能力和可靠的配方重用,而最初的第15阶段对抗语料库旨在验证这些能力。

v3.12.1--发现审查修复(事务嵌套+写入路径强化)

v3.12.0的Bug修复跟进。没有公共API更改。

  • SQLite事务嵌套已修复 (Python 3.14)。 db_connect 现在使用 isolation_level=Nonetransaction() SAVEPINT是否知道,所以 create_plan, add_constraint, save_recipe, validate_recipes,以及 log_event 不再命中 *“无法在事务中启动事务”*.同样的根本原因悄无声息地破灭了 usage_stats / list_strategies 遥测技术——现在两者都报告真实数字。
  • get_plan 在腐败战略中幸存.将JSON解析封装在 store_plans.py 所以 resumeavailable_steps 不再是一行500;相反,该计划会返回一个 _corrupted_fields 标记。
  • explore 荣誉范围_scaffold_matches_scope 拒绝所有文件都位于查询范围之外的脚手架配方匹配——修复了低阈值脚手架匹配覆盖的情况 scope=X 用其他地方存放的脚手架。
  • recipe_files 去重init上的一次性清理加上init上的唯一索引 (recipe_sig, file_path)INSERT OR IGNORE_insert_file_entries 防止在传统DB上看到320+个重复行。
  • prune_plans MCP工具,对称于 prune_recipes默认目标 pending 超过7天的计划;级联删除它们的步骤、轨迹和约束。MCP工具总数:31。
  • \*\*get_recipenear_match_recipes 平等. When 获取密码finds nothing above threshold, it now also returnsnear_match_recipesso it agrees with探索”。
  • trammel_blind_spots 举起 到顶级 decompose 而不是埋在里面 analysis_meta.implicit_dependency_analysis.
  • 413项测试通过 (406之前+7新 TestFindingsRegressions).

v3.12.0——模块拆分(500 LOC以下的每个文件)、外部化模式配置、MCP调度测试

没有公共API更改的结构重构。所有现有 from trammel... 进口继续发挥作用;再出口保留了传统路径。

  • 每个模块现在都在500 LOC以下。 在此版本之前,有9个文件超过了项目约定目标(最差为1223个);零之后。在拆分中创建的新模块:

- recipe_fingerprints.py, store_retrieval.py, store_scaffolds.py (摘录自 store_recipes.py,从1223下降→ 373). - store_plans.py, store_telemetry.py (摘录自 store.py). - tool_schemas.py (摘录自 mcp_server.py). - implicit_deps_engines.py, pattern_learner.py (摘录自 implicit_deps.py). - analyzer_resolvers.py (摘录自 analyzer_engine.py). - text_similarity.py, scaffold_validation.py (摘录自 utils.py). - language_detection.py (摘录自 analyzers.py). - scaffold_creation.py (摘录自 scaffold_logic.py). - planner_helpers.py (摘录自 core.py).

  • 模式表已外部化。 NAMING_CONVENTION_RULES, INFRASTRUCTURE_PATTERNS,文件角色模式和目标角色模式现在存在 trammel/data/patterns.json 并通过新的 pattern_config.py.编辑JSON以调整推理,而无需更改代码。
  • MCP调度集成测试。tests/test_mcp_dispatch.py 11个测试涵盖了模式↔分派奇偶校验、类别注册表同步、未知工具错误形状、以前未发现的处理程序(record_steps, claim/release/available_steps, merge_plans, usage_stats, list_strategies, resolve_failure),以及模式驱动的int强制转换。
  • 公共API文档字符串。 加上 Planner (类+每个方法), ExecutionHarness (类+ __init__), RecipeStore (类+上下文管理器生命周期),每个MCP _handle_*,存储上的约束/轨迹方法,以及所有11个语言分析器子类。
  • 文档对等。 README中澄清了“边验证边进行”(Python工具运行测试;MCP verify_step 是静态/启发式的)。 SYSTEM_PROMPT.md 获得明确的“decompose vs explore vs create_plan --我该怎么称呼?“决策块。 pyproject.toml 版本升级到3.12.0(结束了README已经记录了v3.11.3条目但包版本仍为3.11.2的漂移)。
  • 406项测试通过 (395个预重构+11个新的调度测试)。

v3.11.3--针对测试密集型项目、探索回退和策略轨迹数据的稳健性改进

  • over_constrained 不再致命: validate_scaffold 款待 >4 依赖关系是一个警告,而不是致命错误。具有许多依赖关系的测试文件和外观不再阻碍分解。
  • 部分计划恢复:当脚手架验证检测到问题(自引用、缺少依赖关系等)时, decompose 现在返回仍然可以从脚手架推断出的任何步骤,而不是空计划。
  • explore 后备模式:如果 explore 从接收空结果或错误结果 decompose,它会自动重试 suppress_creation_hints=trueexpand_repo=false 以制定一个可用的策略。
  • 自动持久化策略轨迹: complete_plan 现在自动记录轨迹条目,因此 list_strategies 随着时间的推移积累经验成功/失败数据。
  • 改进的MCP工具描述: strict_greenfieldsuppress_creation_hints 现在的描述明确提到了测试繁重的项目和重构目标。
  • 361项测试通过.

v3.11.2--主要鲁棒性改进:无支架分解、计划合并、配方匹配、验证步长

  • 无支架分解改进:

- 降低了支架配方查找阈值(0.15),并自动膨胀以重复使用历史支架。 - 使用CLI命令、中间件管道、事件驱动和身份验证系统模式扩展了架构模板注册表。 - 在创建提示中添加了兄弟约定克隆(例如。, UserService.jsRecipeService.js). - 当没有提供脚手架时,将回退完整仓库扩展限制为15个文件,防止了“176步”问题。

  • 计划合并系统:

- 新 merge_plans MCP工具有四种策略: sequential, interleave, priority, unified. - 冲突检测引擎可以识别文件重叠、动作冲突、依赖关系反转和循环引入。 - claim_step 现在,当其他活动计划有针对同一文件的未决步骤时,会返回邻近警告。

  • 配方匹配增强:

- 架构形状MinHash索引:配方通过其结构角色指纹进行索引,实现基于形状的检索(例如,模型→服务→route→测试)。 - 脚手架衍生结构匹配:当 decompose 称为支架,支架指纹用于配方比较。 - 成功加权预过滤:成功率为零的候选人被降级。 - 检索技术词库扩展(authauthentication, authorization, login, token等等)。

  • verify_step 深度改进:

- Python AST飞行前验证捕获 SyntaxError 以及在运行测试之前可能未定义的名称。 - 导入完整性检查验证相对导入是否解析为现有文件。 - 当编辑删除项目依赖项可能引用的符号时,符号引用验证会发出警告。 - 扩展的 static_analysis 启发式方法:混合缩进、TODO/FIXME密度、空文件、重复符号名称。 - 当测试运行器可执行文件丢失时,测试命令dry-run会很快失败。

  • 358项测试通过.

v3.11.1--审查结果:计划验证、歧义检测、验证步骤静态分析、MinHash配方检索

  • create_plan 飞行前验证:添加了拓扑循环检测 create_plan具有循环步骤依赖关系的计划将被明确拒绝 circular_dependency 错误而不是持续存在。
  • 模糊检测 decomposeambiguity 领域 analysis_meta 为含糊的措辞打分(real-time, AI-powered, conflict resolution等)、范围词和连词密度。帮助在计划之前标记未明确的目标。
  • verify_step 静态分析:步骤验证现在包括 static_analysis 对象具有文件路径约定检查和测试覆盖率启发式(例如,缺少匹配的测试文件),即使在测试通过时也会显示警告。
  • MinHash增强配方检索: retrieve_best_reciperetrieve_near_matches 现在,TF-IDF倒排词索引和MinHash LSH索引的联合候选,提高了同义词/重新排序目标的召回率。
  • 346项测试通过.

v3.11.0——核心模块化,配方词索引+MinHash,分析器场崩溃

  • core.py模块化:将巨石提取成 scoring.py, scaffold_logic.py, goal_nlp.py, constraints.py, scaffold_templates.py编排器从约1700 LOC减少到约570 LOC。
  • 配方索引迁移recipe_index.py 具有零dep倒排字索引(TF-IDF)和用于重复数据删除/近似最近邻的MinHash LSH。架构扩展为 recipe_termsrecipe_signatures;融入 store_recipes.py (为过渡安全而保留的三元组表)。
  • 分析器场崩溃:15个正则表达式分析器合并为声明式 analyzer_specs.py +单身 RegexAnalyzerEngineanalyzer_engine.py. analyzers_ext.py / analyzers_ext2.py 现在向后调整垫片。所有类名保持不变。
  • 358项测试通过.

v3.10.3--文档:用于多代理调度的脚手架DAG度量

  • 自述文件: 新的“多代理调度的脚手架DAG度量”部分记录 max_parallelism, layer_widths, critical_path_length,以及 max_dependency_depth 为并行代理工作流提供使用指南。
  • 规格: 在§5 Planner中添加了脚手架DAG指标文档。
  • RecipeLab复习十题结束: 未发现任何错误。通过6个特征树的正确拓扑排序验证了40步/59边脚手架分解。有史以来测试过的最大的支架和最复杂的DAG——完美无瑕。
  • API无变化 --仅更新文档。

v3.10.1--修复关键的create_plan脚手架迁移错误

  • 错误修复: create_plan 失败于 "table plans has no column named scaffold" 在现有数据库上。架构迁移针对的是错误的表(steps 而不是 plans).固定在 store.py.
  • 影响:解除阻止完整的计划执行工作流(create_planclaim_steprecord_stepscomplete_plan).

v3.9.4--RecipeLab发现:脚手架指标、跳过UX、重构提示、CI检查表

  • 规划师/MCP: suppress_creation_hints, scaffold_dag_metrics, skipped_existing_scaffold重构动词护句进行创造推理; summary_only 曲面DAG+跳过块。
  • 测验: tests/test_findings_checklist.py 对验证矩阵A-C进行编码(305次测试)。 核心仍然只支持stdlib (零第三方运行时deps)。

v3.9.1--文档:MCP可选集成、发布指南

  • 自述文件: 集成表面(API/CLI/SQLite vs MCP)、路线图说明、可信发布的发布清单。
  • 维基/规范: §1.1–1.2对齐; SYSTEM_PROMPT.md 在回购中跟踪(没有MCP的子代理)。
  • API无变化 --doc和打包元数据刷新,用于PyPI长描述。

v3.7.9--全面清理:死代码、bug修复、现代化、健壮性

  • 错误修复:CLI目标验证(str(None) bug),缺失 created step查询中的列,mixin存根现在引发 NotImplementedError, _sql_in 空输入保护。
  • 死代码:删除未使用的 _is_ignored_dir 导入自 analyzers_ext2.py.
  • 加固:替换所有位置 sqlite3.Row 使用命名列访问进行解包(8个站点)。在模块级别预编译Rust/Cargo/Maven正则表达式模式。
  • 简化:波束计数封顶,步骤描述助手,列表策略理解, _validate_registries() 包装。
  • 现代化:海象操作员 _extract_step_files, TYPE_CHECKING 进口,私人 _cosine 命名,MCP stdio中的键盘中断处理。
  • 248测试 (全部通过)。

v3.7.8--代码质量:DRY步骤字典、简化的助手、一致的实例

  • 干燥步骤指令:提取 _STEP_COLUMNS + _step_to_dict() 在store.py中--消除了中重复的step字典构造 get_plan()get_step().
  • 简化助手: word_jaccard, cosine, _strip_php_comments 在utils.py中浓缩(减少总LOC)。
  • 一致性:已修复 type() vs isinstance() 不一致 PythonAnalyzer.collect_typed_symbols.
  • 248测试 (全部通过)。

v3.7.4——代码质量:删除死代码、简化和现代化

  • Bug硬化:固定电位 ZeroDivisionErrorexplore_trajectories, ValueError 0根梁,更换为易碎梁 assert 随着 RuntimeError 在MCP服务器中。
  • 删除死代码:删除未使用的 _default_beam_count,死了 TYPE_CHECKING: pass 块。
  • 简化:将4个SQL COUNT查询合并为1个,提取 _sql_in() 助手(消除8个站点的重复),消除了冗余的字典副本,简化了令人困惑的列表解包理解。
  • 现代化: asyncio.to_thread 替换 run_in_executor,日志程序在模块级别配置,用于早期错误捕获,懒惰 _get_analyzer_registry() 取代后期内联导入。
  • 248测试 (全部通过)。

v3.7.3--代码质量:重复数据删除、现代化和强化

  • 去重:提取了中的共享三元组/文件助手 store_recipes.py,消除了Swift SPM扫描的重复。
  • 现代化: _count_importers 用途 Counter,基于集合的符号重复数据删除,f字符串连续。
  • 加固:遥测异常范围缩小 sqlite3.Error,固定类型注释,为幻数命名常量。
  • 清理:标记未使用的MCP处理程序参数,固定Dart导入互斥性。
  • 248测试 (全部通过)。

v3.7.2--代码库审核和清理

  • 错误修复:已修复 _inject_orderings 无关键格言理解,食谱突变 decompose(),硬编码数据库路径 synthesize(),失踪 claimed_by/claimed_atget_step().
  • 跨平台:规范化的Swift分析器路径分隔符处理。
  • 248测试 (全部通过)。

v3.7.1--混合型安全性、稳健性和性能

  • 类型安全性:将类型化属性存根添加到 RecipeStoreMixinAgentStoreMixin 为了确保类型检查器的兼容性。
  • 鲁棒性: claim_step 拒绝非未决步骤;平行波束回退变窄至 OSError 仅使用调试日志记录。
  • 演出: run_incremental 通过持久基拷贝从O(K^2)优化到O(K)。
  • 测试覆盖率:9个新 collect_typed_symbols 测试(Rust、C++、Java、C#、Ruby、PHP、Swift、Dart、Zig)。
  • 248测试 (全部通过)。

v3.7.0--全面审计、错误修复和现代化

  • 8个bug修复:关键路径循环泄漏, log_event 裸提交、基于广泛捕获的模式迁移、不一致的获胜率公式, trigram_signature 指纹类型错误、Rust cargo relpath错误、Java导入注释剥离、PHP分组使用别名剥离。
  • 死代码:已删除 ExecutionHarness.run() 别名。
  • 简化:配方检索中的N+1查询修复,SQL端配方修剪, _walk_project_sources 共享发电机, DEFAULT_DB_PATH 不断巩固。
  • 现代化: _SUPPORTED_LANGUAGES 从注册表派生,语言/分析器同步断言,中间文件导入移到顶部,过早的Python 3.14分类器被删除。
  • 239测试 (全部通过)。

v3.6.0--代码库审计、错误修复和现代化

  • 错误修复:修复了TOCTU比赛 record_failure_patternresolve_failure_pattern (包含在交易中)。固定的 JavaAnalyzer.pick_test_cmd 回退到使用系统 gradle 而不是不存在 ./gradlew.
  • 消除重复:提取 _count_importers(), _is_claimed_by_other(), _try_resolve() 助手。 run() 现在代表 verify_step().删除冗余 _collect_files 包装纸。合并了两笔交易 validate_recipes.
  • 删除死代码:始终保持警惕,不必要 or "",冗余分配,无效的延迟导入。
  • 现代化: collections.abc.Callable/Generator 进口,PEP 561 py.typed 标记, get_analyzer 添加到 __all__, .mypy_cache/.ruff_cache.gitignore.
  • 简化:单程 _split_active_skipped,防御性 .get() 对于约束描述,简化了测试断言。
  • 239测试 (全部通过)。

v3.5.2--代码库清理和现代化

  • 综合评论脱衣舞:删除重复项 _strip_js_comments_strip_cpp_comments,所有分析器现在都使用共享 _strip_c_comments 来自utils
  • 一致的进口分析:所有基于正则表达式的分析器现在都会在提取导入之前删除注释(修复了Ruby、Dart、Zig、C#、PHP中注释掉的导入的误报)
  • 修复了PHP方法模式重叠问题:方法模式现在需要至少一个访问修饰符(已更改 *+),使用函数模式防止重复的符号条目
  • 修复Dart函数误报:添加了负面前瞻以排除控制流关键字(if, for, while等等)
  • 改进 max() 型式安全: detect_language 扩展计数现在使用 lambda k: counts[k] 而不是 counts.get
  • 现代化 str.endswith:始终使用本机元组形式 _collect_* 助手
  • 删除冗余 store 参数Planner.explore_trajectories (使用 self.store)
  • MCP状态处理程序重构:现在代表 RecipeStore.get_status_summary() 而不是原始SQL
  • 架构/调度同步断言:模块负载断言确保 _TOOL_SCHEMAS_DISPATCH 按键保持同步
  • 店铺改进:已删除不可靠 __del__,将架构迁移异常缩小到 sqlite3.OperationalError,固定 list_plans 状态过滤器,固定 get_strategy_stats 返回类型,批量获取配方文件 list_recipes (N+1次修复)
  • 固定浮动相等:配方文本相似性早期退出现在使用 >= 0.9999 而不是 == 1.0
  • 日志设置修复: mcp_stdio.py 现在呼叫 logging.basicConfig 服务器构建前
  • CLI硬化:为stdin输入添加了JSON解析错误处理
  • 与语言无关的消息:“没有Python符号”回退消息现在显示“没有找到符号”
  • __main__.py 守卫:添加 if __name__ == "__main__" 保护

3.5.1

  • 多智能体步骤协调claim_step, release_step,以及 available_steps MCP工具(共27个工具)。代理在处理步骤之前会先声明步骤——其他代理会看到声明的步骤并跳过它们。声明在10分钟后自动过期(过时代理恢复)。 available_steps 仅返回满足依赖关系且未被其他代理声明的步骤。
  • store_agents.py 混入: AgentStoreMixin 随着 claim_step(), release_step(), get_available_steps(). RecipeStore 继承两者 RecipeStoreMixinAgentStoreMixin.
  • 架构迁移:步数表增益 claimed_byclaimed_at 列(现有数据库的安全迁移)。
  • 242测试 (全部通过)。

3.5.0

  • 故障模式学习failure_patterns SQLite表(共9个表)跨会话累积结构化故障特征。当验证数据的步骤失败时,会自动记录文件+错误类型+消息。模式跟踪发生计数、首次/最后一次看到的时间戳和分辨率历史。
  • failure_history MCP工具:按文件或项目范围查询历史故障模式。显示哪些文件经常失败,发生了哪些错误类型,以及哪些解决方案有效。在修改文件之前使用,以避免已知的陷阱。
  • resolve_failure MCP工具:记录修复已知故障模式的方法。在特定文件上建立对特定错误类型有效的机构记忆。总共24个MCP工具。
  • 自动录制: update_step 随着 status="failed" 自动提取故障分析并记录模式,无需手动检测。
  • 242测试 (全部通过)。

3.4.1

  • C++嵌套模板解析:模板图案现在可以处理2级嵌套(template>)而不是一开始就打破 >.也固定在Rust中 impl<> 和Java/Kotlin通用 fun<> 模式。
  • Rust工作空间+相对导入: analyze_imports 现在解决 use super::, use self::,以及工作区crate导入(读取 Cargo.toml [workspace] members 以及成员机箱名称)。以前只有 use crate:: 已处理。
  • PHP分组使用语句: use Foo\{Bar, Baz, Qux}; (PHP 7.0+)现在已正确扩展和解析。以前只是简单 use Foo\Bar; 被解析。
  • Swift SPM感知模块映射:检测 Sources//Tests// Swift包管理器项目的目录结构。对于非SPM项目,回退到父目录映射。
  • TypeScript单仓库工作区支持:阅读 package.json workspaces field(npm、yarn、pnpm模式),发现工作区包,解析裸导入(import { x } from '@scope/pkg')到工作空间包入口点。
  • 242测试 (全部通过)。

3.4.0

  • 使用遥测usage_events SQLite表(共8个表) log_event()get_usage_stats() 方法论 RecipeStore。自动跟踪工具调用、配方命中率/未命中率和策略获胜率。新 usage_stats MCP工具(共22个工具)在可配置的时间窗口内返回聚合遥测数据。
  • 调度重构:替换153行 match/casemcp_server.py 采用调度字典模式。每个工具都有一个专用的处理函数,通过以下方式查找 _DISPATCH 添加新工具现在只需要:处理程序函数+模式+字典条目。
  • 分析仪改进:现在检测到PHP类方法(是主要差距)。Java 16+ record 支持关键字。检测到飞镖工厂/命名构造函数。
  • 7种语言的评论删除:已添加 _strip_c_comments (Go、Rust、Java、C#、Swift、Dart、Zig共享), _strip_hash_comments (Ruby),以及 _strip_php_comments (PHP)。以前只有Python(AST)、TypeScript和C/C++在符号检测之前剥离了注释。
  • 5个新样本仓库:Jekyll(Ruby)、Flame(Dart)、ZLS(Zig)、Laravel(PHP)、Ktor(Kotlin)克隆到 sample_file_test/ 用于所有15种支持语言的分析器验证。
  • 242测试 (全部通过)。

3.3.1

  • 策略模块提取:梁策略注册表和从中提取的9个内置排序 core.py 进入新 strategies.py (约280 LOC)。 core.py 从595 LOC降至324 LOC,远低于500 LOC的限制。
  • 消除了循环依赖的解决方法:移动共享 _collect_symbols_regex_collect_typed_symbols_regex 助手来自 analyzers.pyutils.py.已删除 functools.cache 懒惰地从导入包装 analyzers_ext.pyanalyzers_ext2.py (每条12行),改为直接进口。
  • DRY正则表达式模式:衍生 _*_SYMBOL_PATTERNS_*_TYPED_PATTERNS 通过 [p for p, _ in _*_TYPED_PATTERNS] 用于TypeScript、Rust、Java、C#、Ruby、PHP、Swift和Dart(8种语言)。消除了约70行重复的正则表达式定义。
  • DRY Python AST行走:提取 PythonAnalyzer._iter_ast() 发电机,两者共享 collect_symbolscollect_typed_symbols,消除了重复的文件遍历和AST解析代码。
  • 进口订购修复:修复了stdlib导入顺序 store_recipes.py (import os 在本地进口之前移动)。
  • 500 LOC以下的所有文件: analyzers.py 从559个LOC减少到463个LOC。总来源:3876至3771个LOC(通过重复数据删除净减少105行)。
  • 242测试 (不变,全部通过)。

3.3.0

  • 类型符号分析collect_typed_symbols() 所有15个分析器上的方法都返回具有类型分类(函数、类、接口、枚举、结构、trait等)的符号。
  • 3种新的波束策略 (共9个): leaf_first (首先零导入文件), hub_first (网络集线器文件按输入\*输出程度), test_adjacent (首先是具有匹配测试文件的文件)。
  • 分析器修复Ruby基名覆盖,Swift目录映射过于宽泛,Java无包文件间隙。
  • 商店重构: _init_schema() 分解为类级SQL常量。
  • 242测试 (12个新)。

3.2.1

  • 错误修复: retrieve_best_recipe 评分错误在哪里 best_score 在JSON验证之前进行了更新——损坏的条目可能会影响有效的配方。
  • 已删除死代码:未使用 total_files 变量in estimate 冗余工具 get_analyzer 再进口。
  • 代码简化: detect_language 用数据驱动循环替换了8个扩展别名常量和12个分支if/elif。Lambda替换为 def_detect_from_config.冗余 DartAnalyzer.pick_test_cmd 树枝被移除。
  • 演出:消除了C#/PHP分析器中的双文件读取;Go分析器从两次步行减少到一次;PHP命名空间查找从O(n)优化到O(1)。
  • 现代化:向添加了返回类型注释 _get_collect_symbols_regex.已移动 _SUPPORTED 到模块级别 _SUPPORTED_LANGUAGES 冷冻集。简体 __main__.py.
  • 230次测试 (不变)。

3.2.0

  • 六个新的语言分析器: CSharpAnalyzer (.cs), RubyAnalyzer (.rb), PhpAnalyzer (.php), SwiftAnalyzer (.swift), DartAnalyzer (.dart), ZigAnalyzer (.zig)in new analyzers_ext2.py (约480 LOC)。总共:支持15种语言(Python、TypeScript、JavaScript、Go、Rust、C/C++、Java/Kotlin、C#、Ruby、PHP、Swift、Dart、Zig)。
  • 配置文件检测功能已扩展:Package.swift(swift)、build.zip(zig)、pubspec.yaml(dart)、.csproj/.sln(csharp)、Gemfile(ruby)、composer.json(php)。
  • 扩展计数已扩大: .cs, .rb, .php, .swift, .dart, .zig 全部计入 detect_language 退路。
  • 注册表已扩展:15种语言 _ANALYZER_REGISTRY.MCP _LANGUAGES 列表已更新以匹配。
  • 出口扩大: CSharpAnalyzer, DartAnalyzer, PhpAnalyzer, RubyAnalyzer, SwiftAnalyzer, ZigAnalyzer 出口自 __init__.py.
  • 所有21个样本仓库均已重新测试:所有语言和范围内均无错误。
  • 230次测试 (新增15个:用于C#、Ruby、PHP、Swift、Dart、Zig+6配置检测的符号/导入)。

3.1.0

  • 配方匹配中的缩写处理_ABBREVIATIONS dict in utils.py 有大约40个常见的编码缩写(gc、db、auth、api等)。 normalize_goal 在应用动词同义词之前展开缩写。之前失败的配方匹配(例如,“优化GC”与“优化垃圾收集器”)现在的相似度为0.86+。
  • 分析时间元数据: decompose 现在回来了 analysis_meta 在回复中 language, scope, files_analyzed, dep_files, dep_edges, timing_s (符号、进口、总计),可选 warning 对于不受支持的语言回退。
  • estimate MCP工具:无需运行完整分析,即可快速计算项目或范围的文件数。退货 language, matching_files, recommendation (如果>5000个文件,则“使用范围”,否则“完全分析正常”)。帮助LLM在分析大型仓库之前决定是否进行范围分析。总共21个MCP工具。
  • 迭代临界路径策略:转换为递归 _longest 基于迭代堆栈的DFS深度计算与循环检测 in_stack 集。修复了深度依赖图上的堆栈溢出问题(Guava的1.66Medge Java导入图崩溃)。
  • 215测试 (5个新:3个缩写,1个分析元,1个估计工具)。

3.0.0

  • Monorepo范围支持scope 参数打开 decompose, explore, plan_and_execute,CLI(--scope),以及MCP工具。将分析限制在子目录中,同时保持整个项目可用于测试执行。例子: --scope services/auth 仅分析 services/auth/.
  • 并发写入安全:通过线程测试验证(4个线程x 5个操作)。计划、配方和约束都能在并发访问中无差错地生存。
  • 206测试 (6个新:3个并发,3个范围)。

2.9.0

  • 计划恢复get_plan_progress(plan_id) 累计回报 prior_edits 从过去的步骤和 remaining_steps 继续失败的计划。新 resume MCP工具。
  • 配方验证validate_recipes(project_root) 根据当前项目检查配方文件条目,删除过时条目,修剪完全过时的配方。新 validate_recipes MCP工具。
  • 配置文件语言检测: detect_language() 现在先检查配置文件(Cargo.toml、go.mod、tsconfig.json、package.json、build.gradle、CMakeLists.txt、pyproject.toml),然后再回到扩展名计数。配置检测优先。
  • 共享文件收集助手_collect_project_files(root, extensions)utils.py 替换重复项 os.walk TypeScriptAnalyzer、CppAnalyzer、RustAnalyzer中的模式。
  • verify_step 语言支持:MCP工具增益 language 用于自动检测测试命令和错误模式的参数。
  • explore_trajectories 现在使用现有 _split_active_skipped 而不是重新实现内联。
  • MCP调度测试全覆盖:所有20个工具现在都有明确的调度测试。
  • 200次测试 (新增25个)。

2.8.0

  • 代码库清理:删除了未使用的导入(Anyanalyzers.py, jsonanalyzers_ext.py, ExecutionHarness/dumps_jsontest_strategies.py).在全球范围内取代了脆弱的懒惰进口 analyzers_ext.py 随着 functools.cache (线程安全,更简单)。修复了过于宽泛的问题 BaseExceptionException 事务回滚(utils.py).现代化 conn.commit()/conn.rollback().优化 _order_cohesion 设置创建。更新 SYSTEM_PROMPT.md (工具数量17→18,将C/C++/Java/Kotlin添加到多语言部分)。
  • 175测试 (不变)。

2.7.0

  • 存储模块拆分:提取配方方法(save_recipe, retrieve_best_recipe, list_recipes, prune_recipes, _rebuild_trigram_index, _backfill_files)进入 store_recipes.py 作为 RecipeStoreMixin (约210 LOC)。 RecipeStorestore.py 现在继承自它(约342 LOC,低于540)。
  • 扩展的C++符号检测:替换了中的单功能模式 CppAnalyzer 有5种目标模式:模板函数、限定函数(静态/内联/constexpr)、运算符重载、构造函数/析构函数检测、宏预混合函数(EXPORT_API等)。
  • Java/Kotlin源代码根检测JavaAnalyzer._detect_source_roots(project_root) 读取 build.gradle/build.gradle.ktspom.xml 查找标准源目录(src/main/java, src/main/kotlin等等)。回到项目根。 analyze_imports 现在遍历检测到的源根而不是项目根。
  • MCP工具 prune_recipes:暴露配方修剪作为MCP工具 max_age_daysmin_success_ratio 参数。总共18个MCP工具。
  • 175测试 (新增9个:5个C++扩展,3个Java源代码根,2个MCP修剪,减1个重命名)。

2.6.0

  • 平行光束执行: plan_and_execute 通过以下方式同时运行光束 concurrent.futures.ProcessPoolExecutor (stdlib)。在进程生成失败的系统上,回到顺序模式。
  • C/C++和Java/Kotlin分析器CppAnalyzer (.c/.cpp/.cc/.cxx/.h/.hpp/.hxx,类/结构/命名空间/枚举/类型定义/函数符号, #include "..." 决议)和 JavaAnalyzer (.java/.kt/.kts,类/接口/枚举/乐趣/对象/@接口符号,基于包的导入解析) analyzers_ext.py.MCP语言枚举扩展到9个条目。
  • 分析仪模块拆分: analyzers.py 分成 analyzers.py (约370 LOC)+ analyzers_ext.py (~400 LOC)每个文件保持在500 LOC以下。所有通过再出口保留的现有进口。
  • 食谱修剪RecipeStore.prune_recipes(max_age_days=90, min_success_ratio=0.1) 通过级联删除来删除陈旧、低质量的食谱 recipe_trigramsrecipe_files.
  • 利用基础副本缓存prepare_base(project_root)run_from_base(edits, base_dir) 创建一个过滤后的基本副本;光束从中复制,而不是对每个光束进行重新过滤。
  • --dry-run--language CLI标志: --dry-runexplore() 而不是 plan_and_execute().
  • 分解 _apply_constraints:85行功能 core.py 分成 _parse_constraints, _mark_avoided, _inject_orderings, _mark_incompatible, _add_prerequisites.
  • 166测试 (新增20个)。

2.5.0

  • 代码清理:删除未使用的 import sysharness.py.消除重复 set(symbols) | set(dep_graph) 计算在 Planner.decompose (core.py).增加了防御 json.loads 错误处理 retrieve_best_recipe (store.py).在中明确设置失败默认值 get_strategy_stats (store.py).固定的 register_strategy 参数顺序 spec-project.md 文档。
  • 146测试 (不变)。

2.4.0

  • Go和Rust支持GoAnalyzer (基于正则表达式,读取 go.mod 对于模块路径,解析内部导入)以及 RustAnalyzer (基于正则表达式,解析 use crate::mod 声明)。共享 _collect_symbols_regex 基于正则表达式的分析器的助手。 detect_language 扩展到计数 .go/.rs 文件夹。注册表现在支持5种语言。
  • TypeScript增强功能: _strip_c_comments 用于在符号/导入检测之前删除注释。命名空间模式已添加到 _TS_SYMBOL_PATTERNS.
  • 改进的波束策略: _order_bottom_up 按依赖项计数递增进行稳定排序(首先是deps较少的文件)。 _order_top_down 按依赖关系数量递减进行稳定排序(大多数面向消费者的文件优先)。现在两者都真正使用 dep_graph 参数。
  • 更好的食谱匹配word_substring_score(a, b) 用于部分单词匹配。 goal_similarity 重新加权:0.3个三元组余弦+0.4个单词Jaccard+0.3个子字符串(0.4/0.6)。
  • 店铺改进:合并了中的重复SQL分支 save_recipe, list_plans, get_active_constraints综合评分获得近因加权(30天半衰期)。新权重:文本0.4,文件0.25,成功0.15,最近0.2。文件从534行修剪到516行。
  • MCP服务器重构: _schema()_prop() 助手从507行减少到255行。在语言枚举中添加了“go”和“rust”。
  • 146测试 (17个新:4个Go,3个Rust,2个TS增强,2个检测,2个策略,4个匹配)。

2.3.0

  • 代码清理:提取 _split_active_skipped 助手在 core.py,由所有6个波束策略功能共享(消除了重复的活动/跳过的分割模式)。现代化 _VERB_SYNONYMSutils.py 从命令式循环到字典理解(消除泄漏的模块级变量 _canonical, _variants, _v).
  • 文档修复:更正了术语表和规范中的规范动词形式示例(“重构”,现在正确地“重构”)。固定的 register_strategy 术语表中的参数顺序((name, description, fn)(name, fn, description)).
  • 129测试 (不变)。

2.2.0

  • 改进配方匹配_VERB_SYNONYMS (40+个动词变体到9个规范形式), normalize_goal, word_jaccard,以及 goal_similarity (标准化文本上0.4个三元余弦+0.6个单词Jaccard) utils.py. save_recipe 在三元组索引之前进行归一化。 retrieve_best_recipe 用途 goal_similarity. _backfill_trigrams 命名至 _rebuild_trigram_index (在init上使用规范化文本进行重建)。
  • 新的波束策略 (共6个,3个新): critical_path (最长依赖链优先——瓶颈反馈), cohesion (洪水填充连接的组件,最大的组件,内部拓扑排序), minimal_change (最少的符号优先——速赢)。
  • TypeScript分析器的改进: _TS_SYMBOL_PATTERNS 列表替换单个正则表达式(接口、枚举、常量枚举、类型别名、抽象类、装饰类、函数表达式)。扩大进口检测(转口、桶装出口、类型转口、动态进口)。新 _TS_ALIAS_IMPORT_RE, _read_ts_path_aliases, _resolve_alias.已添加 .mts/.mjs 扩展。
  • 129测试 (34个新:10个配方匹配,9个策略,15个TypeScript)。

2.1.0

  • 代码清理:删除死 json 导入自 core.py消除了之间的重复错误模式 utils.pyPythonAnalyzer.删除重复项 _pick_test_cmdharness.py (回到 PythonAnalyzer).移除 analyze_imports 向后兼容包装器 utils.py.
  • 95次测试 (删除了1个过时的向后兼容性测试)。

2.0.0

  • 参考LLM集成SYSTEM_PROMPT.md 为LLM客户端提供参考编排指南(计划-验证-存储循环)。
  • 新的MCP工具: update_plan_status (暴露现有的存储方法), deactivate_constraint (公开现有的存储方法)。 status 工具现在包括 tools 计数作为回应。工具数量16→ 17.
  • 96次测试 (4个新)。

1.9.0

  • 结构配方匹配recipe_files SQLite模式中的表(共7个表),两列都有索引。 save_recipe 填充 recipe_files 使用策略步骤中的文件路径。 _backfill_files() 自动迁移现有数据库。
  • 综合评分: retrieve_best_recipe 接受可选 context_files 对于综合评分——文本相似度(0.5),通过Jaccard的文件重叠(0.3),成功率(0.2)。没有 context_files,评分向后兼容(仅限文本)。
  • 计划集成: Planner.decompose 将项目文件上下文传递给配方检索(两阶段:仅文本快速路径,然后是结构化)。
  • 新的MCP工具: list_recipes (极限=20), get_recipe 收益 context_files 参数。工具数量14→ 16.
  • 92测试 (9个新配方测试)。

1.8.0

  • 多语言支持trammel/analyzers.py 随着 LanguageAnalyzer 协议, PythonAnalyzer, TypeScriptAnalyzer (基于正则表达式,仅限stdlib), detect_language(), get_analyzer().
  • 计划集成: Planner 接受可选 analyzer 参数,自动检测语言。 ExecutionHarness 接受可选 analyzer 用于特定语言的测试命令和错误模式。
  • 重构分析: _collect_python_symbols 从...中移除 core.py (移到 PythonAnalyzer). analyze_importsutils.py 现在是一个向后兼容的包装器,委托给 PythonAnalyzer. ast 导入已从中删除 utils.py.
  • analyze_failure 接受可选 error_patterns 参数。
  • _IGNORED_DIRS 扩展的: .next, .nuxt, coverage, .turbo, .parcel-cache.
  • language 参数 添加到 plan_and_execute, explore,以及MCP decompose/explore 工具。
  • 新出口: PythonAnalyzer, TypeScriptAnalyzer, detect_languagetrammel.__init__.
  • 83次测试 (13新 tests/test_analyzers.py).

1.7.0

  • 可插拔策略注册表register_strategy()get_strategies() API在 core.py 随着 StrategyFnStrategyEntry 类型。三种内置策略(bottom_up, top_down, risk_first)在模块加载时自动注册。策略函数使用统一签名 (steps, dep_graph) -> steps.
  • 战略学习: explore_trajectories 接受可选 store 用于学习反馈。如果提供,则根据轨迹数据中的历史成功率对策略进行排序。 plan_and_executeexplore 通过商店进行学习。
  • 战略统计: RecipeStore.get_strategy_stats() 按变量汇总轨迹结果(每个策略的成功/失败计数)。
  • 新MCP工具: list_strategies 返回带有成功/失败统计信息的注册策略名称。工具数量13→ 14.
  • 新出口: register_strategyget_strategies 出口自 trammel.__init__.
  • 测试重组tests/test_strategies.py 有8个以策略为重点的测试。 TestBeamStrategies 从...移出 test_trammel_extra.py.测试计数62→ 70.

1.6.0

  • 简化的符号集合: _collect_python_symbols 返回符号名称字符串,而不是冗余的字典;未使用的 file, type, line 字段已删除(仅 name 在下游被消耗)。
  • 已删除死参数: _step_rationale 不再接受未使用的 filepath 争论。
  • 内联梁说明:已删除 _BEAM_STRATEGIES 模块级常数;在使用站点内联描述,消除了基于脆弱索引的耦合。
  • 文档修复:删除了中重复的延伸点线 spec-project.md.

1.5.0

  • 并发写保护:全部变异 RecipeStore 显式包装的方法 BEGIN IMMEDIATE 具有指数回退重试的事务 SQLITE_BUSY多语句操作,如 create_plan 现在是原子。 db_connecttimeout=5.0.
  • 大规模配方检索:倒三角指数(recipe_trigrams 具有B树索引的表)。 retrieve_best_recipe 现在,在计算精确余弦之前,通过共享三元组查询候选食谱,避免了全表扫描。现有数据库在模式初始化时自动回填。
  • 约束传播_apply_constraints 在分解过程中强制执行主动约束-- avoid 跳过文件, dependency 注入排序, incompatible 标记冲突元数据, requires 添加了先决条件步骤。战略产出现在包括 constraints_applied.
  • 约束感知梁策略: _order_bottom_up_order_top_down 这个地方跳过了最后几步。 _order_risk_first 按包目录隔离不兼容的步骤和批次。 explore_trajectories 从梁编辑中排除跳过的步骤。
  • RecipeStore上下文管理器:已添加 close(), __enter__/__exit__,以及 __del__ 安全网。所有公共API函数和MCP服务器使用 with RecipeStore(...).

1.4.0

  • 导入一致性:换算后的绝对进口额 mcp_stdio.py 相对进口,与包装的其余部分相匹配。
  • 死异常处理:已删除无法访问 UnicodeDecodeError_collect_python_symbols 除外条款(core.py).文件是通过以下方式打开的 errors="replace",因此永远不会引发异常。
  • 忽略的目录:已添加 .chisel_IGNORED_DIRSutils.py (工具缓存目录,与 .mypy_cache, .ruff_cache).

1.3.0

  • 删除死代码:删除了未使用的测试导入(explore, synthesize, analyze_imports, cosine, trigram_bag_cosine, trigram_signature).移除死者 goal_slice 参数来自 _collect_python_symbols --按符号计算,但从未在下游消耗。
  • 简化拓扑排序:删除冗余 rev.setdefault() 调用,其中保证密钥从预初始化开始就存在。
  • 文档修复: plan_and_execute 规范中的API签名现在包括 test_cmd 参数。

1.2.0

  • 元数据版本: __version__ 现在衍生自 importlib.metadata 在运行时,消除两者之间的版本重复 pyproject.toml 以及源代码。
  • 比赛/案件调度: dispatch_toolmcp_server.py 从13分支if/elif链转换为Python 3.10+ match/case.
  • 可配置的测试命令: ExecutionHarness 接受 test_cmd 自定义测试运行器的参数(例如pytest)。通过传播 plan_and_execute,CLI(--test-cmd),以及MCP verify_step 工具。
  • 配方检索优化: retrieve_best_recipe 精确匹配短路(相似性1.0)。
  • 测试包:已添加 tests/__init__.py.

1.1.0

  • 删除死代码:删除未使用的 advance_plan_step 方法从 RecipeStore,未使用 json/os 进口自 mcp_server.py,未使用 json 从测试中导入。
  • 合并忽略的dirs:中的统一硬编码目录跳过列表 harness.py 随着 _IGNORED_DIRSutils.py 通过新 _is_ignored_dir 帮手。固定的 egg-info 永远无法与实际相符的模式 *.egg-info 目录。
  • 演出: topological_sort 用途 collections.deque 而不是 list.pop(0) 用于O(1)队列操作。
  • 简化核心:替换了中的详细循环 Planner.decompose 与set union合作 all_files 建筑。

1.0.0

  • 依赖意识规划:通过AST、拓扑排序、具有排序原理和依赖关系的步骤导入分析。
  • 实际波束分支:三项战略-- bottom_up, top_down, risk_first --而不是标签变化。
  • 增量验证:每步带 verify_step()run_incremental().
  • 失效分析:结构化错误提取(类型、消息、文件、行、建议)。
  • 约束传播:阻止会话间重复的持续故障约束。
  • MCP服务器:13个工具通过stdio传输暴露,与Stele/Chiel模式匹配(v2.0.0扩展到17个)。
  • 丰富的架构:食谱商店策略+约束+失败计数。计划跟踪步骤级别状态。新 stepsconstraints 桌子。

0.3.0

  • 配方检索需要最小相似性阈值(0.3)。
  • _collect_python_symbols 收集 async def 并跳过忽略的目录。
  • 三元组计算重复;删除死代码。

0.2.0

  • 纠正配方检索中的三元组相似性;决胜局取决于储存的成功次数。
  • 测试子流程使用 sys.executable;SQLite foreign_keys=ON.
  • 光束 edits 包含 path;JSON序列化通过以下方式集中 dumps_json.
  • __version__ 和CLI --version.

目录标签

目录标签

PythonClaude云端部署AI编码辅助本地部署任务分解多步骤验证学习优化多语言支持

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

31

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP