Token导航 LogoToken导航TokenDH.com
codebugs (Faxik) logo
数据服务stdio官方级别未说明来源级核验

codebugs (Faxik)

MCP Server

一个为AI助手设计的持久化代码缺陷、需求和发布追踪工具,通过SQLite数据库提供高效的内存管理和并行协调功能。

工具数

59

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude数据分析Claude

安装说明

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

作者 / 组织

faxik

提供方

faxik

最后核验

2026/5/17 20:21

快速接入

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

命令预览

pip install codebugs

详细介绍

代码错误

AI助手的持久代码查找、需求和发布跟踪器。 SQLite支持,通过MCP服务器+CLI公开。

AI助手在会话之间失去上下文。代码bug为代码审查结果、需求、依赖阻断器、并行代理协调和发布里程碑提供了持久的内存,并且令牌开销最小。

Session 1:  Review code → log 50 findings → forget them
Session 2:  summary → instant orientation → fix 20 → update status
Session 3:  pull_next → claim work → mark integrated → next agent picks up

没有上下文丢失。无需重新读取文件。没有象征性的重提。平行代理人不参加比赛。

为什么是代码bug

用人工智能助手构建一个真正的代码库会产生四个问题,随着时间的推移,这些问题会变得更加复杂:

  1. 结果丢失了。 你花了2万个代币来审查一个文件,在聊天中记录了12个bug,而下一个会话根本不知道它们的存在。
  2. 需求漂移。 REQUIREMENTS.md被手动编辑,被遗忘,与代码相矛盾,没有人抓住它。
  3. 平行代理竞争。 两个代理都选择了相同的bug,都编辑了相同的文件,都认为自己已经发布了它。
  4. 释放失去了对其中内容的跟踪。 工作被困在特色树枝上长达9天。“我们在1.1上的位置在哪里?”没有单一的答案。

codebugs是一个SQLite数据库(.codebugs/findings.db)这就解决了这四个问题。8个独立模块、59个MCP工具、1个CLI。

安装

# Global install (recommended)
pipx install codebugs

# Or with pip/uv
pip install codebugs

设置

克劳德代码(MCP)

添加 ~/.claude.json (全球)或 .mcp.json (每个项目):

{
  "mcpServers": {
    "codebugs": {
      "command": "codebugs-mcp"
    }
  }
}

数据库位于 .codebugs/findings.db 在当前工作目录中,每个项目都有自己的。添加 .codebugs/ 致你的 .gitignore.

独立运行模块

使用 --mode 只加载您需要的工具:

{
  "mcpServers": {
    "codebugs": {
      "command": "codebugs-mcp",
      "args": ["--mode", "findings"]
    }
  }
}
模式工具使用它时
findings8仅代码审查/错误跟踪
reqs11仅规范跟踪
sweep9批量迭代/状态机任务
bench4性能基准
merge5多代理合并协调
blockers4跨实体依赖关系跟踪
milestones18发布+流媒体+容量感知拉取
all59默认值--全部

CLI采用相同的标志: codebugs --mode findings summary.

其他MCP客户端

任何兼容MCP的客户端都可以连接到 codebugs-mcp 通过stdio传输。

八个模块

模块标题工具
发现漏洞、技术债务、审查结果summary, add, query, categories
需求功能要求(FR-N)reqs_summary, reqs_add, reqs_verify, reqs_search_similar
阻碍因素“X被Y阻塞”依赖图blockers_add, blockers_check
打扫使用状态机进行批量迭代codesweep_create, codesweep_next, codesweep_mark
长凳性能基准快照codebench_import, codebench_query
合并并行代理合并序列化codemerge_start, codemerge_claim
里程碑发布、流媒体、容量感知拉取pull_next, milestone_status, milestone_close

模块是自注册的——添加新模块是在其自己的文件本地进行的。看 docs/superpowers/specs/ 建筑史。

快速浏览

发现——记录下来,永远不要重新发现

MCP工具:

工具目的
summary仪表板概述-- 从这里开始 用于定向
add记录发现的严重性、类别、文件、描述
batch_add一次记录多个发现
update更改状态、添加注释、更新标签或元数据
query使用分页和分组进行搜索/筛选
stats交叉表计数(严重性x类别/文件/状态)
categories列出现有类别-- 之前打电话 add 为了保持一致性
staleness_check与git历史进行比较;标记过时的发现

CLI:

codebugs add -s high -c n_plus_one -f src/api.py -d "Query in loop at line 42"
codebugs summary
codebugs query --status open --severity critical
codebugs update CB-1 --status fixed --notes "Fixed in PR #42"
codebugs categories

当添加新发现时 里程碑自动路由器 自动将其附加到 stream/triage (或 stream/securityseverity=criticalcategory 以...开始 security:).该发现及其分诊条目属于同一交易。

要求——核实发货内容,表面矛盾

MCP工具:

工具目的
reqs_summary需求仪表板-- 从这里开始
reqs_add添加要求(FR-001、优先级、状态、测试覆盖率)
reqs_update更改状态、描述、优先级、测试覆盖率
reqs_query按状态、优先级、部分、自由文本搜索/筛选
reqs_stats交叉表计数(状态x优先级)
reqs_verify自动检查:重影测试文件、重复ID、状态矛盾
reqs_import从REQUIMENTS.md导入(解析markdown表)
reqs_embed / reqs_batch_embed存储嵌入向量
reqs_search_similar跨需求的语义搜索
reqs_embedding_stats嵌入覆盖率报告

CLI:

codebugs reqs-import REQUIREMENTS.md
codebugs reqs-summary
codebugs reqs-verify
codebugs reqs-query --status Implemented --priority Must
codebugs reqs-update FR-090 --status Superseded --notes "Replaced by vault architecture"
codebugs reqs-export REQUIREMENTS.md

阻止程序——“X被Y阻止”,自动解除阻止

MCP工具:

工具目的
blockers_add推迟一个项目,直到另一个项目解决、日期过去或手动信号发出
blockers_query按项目、依赖关系、触发器类型筛选的列表阻止程序
blockers_check查找当前可操作的项目(所有拦截程序均已满足)
blockers_resolve取消或手动解决阻止程序

触发器有三种类型: entity_resolved (等待另一个发现/要求达到终端状态), date (在特定日期时间解除阻塞),以及 manual (操作员信号)。当你标记一个发现时 fixed,每一个等待它的阻断器都会自动解除阻断,并在下一个阻断器中浮出水面 blockers_check.

里程碑——释放容器+固定流+容量感知拉取

MCP工具:

工具目的
milestone_status一个里程碑的汇总(按状态/大小、仅分支机构、已阻止、距离目标天数计数)
milestone_list列出里程碑,按种类/状态筛选
milestone_create创建发布或流
milestone_update突变 description, target_date, state
milestone_add_item将错误/需求/外部参考附加到里程碑
milestone_move_item在里程碑之间移动项目
milestone_set_status打开/正在进行/已完成/已解除/推迟
milestone_defer移动到 stream/maintenance 状态=“已发送”
milestone_close如果仍有打开/仅分支/被阻止的项目,则拒绝(强制覆盖,流除外)
milestone_audit_query完整的状态转换历史
triage_inbox等待分拣的物品
triage_dismiss拒绝分诊项目;传播到基础实体
triage_promote将分流项目移动到目标里程碑
pull_next原子性地为调用代理声明下一个符合条件的项目
release_item自由球员容量(status='done''abandoned')
wip_status快照 agent_capacity 每个代理人
mark_branch_only将项目标记为仅存在于功能分支上
mark_integratedMark与提交SHA合并到main;仅清除分支

自动创建四个种子里程碑:

  • stream/triage --未排序结果的收件箱(默认目的地)
  • stream/maintenance --延期/童子军工作
  • stream/security --紧急修复(抢先发布工作)
  • release/1.1 --1.0之后的首次发布

pull_next 优先级顺序: stream/security > release/* (最早 target_date 第一)> stream/triage > stream/maintenance在一个里程碑内:优先ASC,然后 created_at ASC。

资格: 项目是 open,无活性阻断剂(跳过 item_kind='external'),需要验收 size='large',并且必须声明发布里程碑中的一个大错误 linked_frs 其id解析为中的行 requirements来自多个代理的并发调用是原子性的——声明通过以下方式序列化 BEGIN IMMEDIATE.

CLI:

codebugs milestone-list
codebugs milestone-status release/1.1
codebugs triage-inbox
codebugs wip-status
codebugs milestone-audit --milestone release/1.1

一个典型的自主代理循环:

# 1. Agent claims the next eligible item.
item = pull_next(agent_id="agent-A", capacity={"large": 1, "small": 2, "triage": 5})

# 2. (Optional) flag a feature branch.
mark_branch_only(item_ref=item["item_ref"], branch_name="feat/CB-1234")

# 3. After integration, mark it done with the commit SHA.
mark_integrated(item_ref=item["item_ref"], commit="abc123…")

# 4. Free the agent's capacity slot.
release_item(item_ref=item["item_ref"], status="done")

关闭释放运行关闭门:未完成、仅分支和阻断门项目拒绝让里程碑发货。 force=True (有记录的原因)覆盖——但是 stream/* 里程碑 不能 即使用力,也要关闭。

扫描——具有递归感知生命周期的批量迭代

MCP工具:

工具目的
codesweep_create创建新扫掠(可选 lifecycle=[...], terminal_states=[...], transitions={...} 对于状态机)
codesweep_add添加项目。 原子扰乱:现有项目碰撞 recurrence_count,刷新 last_seen,取消存档
codesweep_next下一批未处理(非终端、非归档)项目
codesweep_mark过渡状态(遗留 processed=True 仍然有效)
codesweep_status进度概述
codesweep_archive / codesweep_archive_items软删除
codesweep_list_items / codesweep_list检查
codebugs sweep-create --name lint-pass --batch-size 5
codebugs sweep-add lint-pass src/*.py --tags critical
codebugs sweep-next lint-pass
codebugs sweep-mark lint-pass src/api.py
codebugs sweep-status lint-pass

具有自定义生命周期(例如用于追溯发现):

codebugs sweep-create --name retro-findings \
    --lifecycle DETECTED,CONFIRMED,ESCALATED,RESOLVED,DROPPED \
    --terminal-states RESOLVED,DROPPED
codebugs sweep-add retro-findings finding-2026-04-todo-bypassed --tags silent_abandonment
codebugs sweep-mark retro-findings finding-2026-04-todo-bypassed --state CONFIRMED
codebugs sweep-archive-items retro-findings --state RESOLVED --older-than 30d

工作台--随时间变化的性能快照

MCP工具:

工具目的
codebench_import导入基准测试结果(文件或内联)
codebench_query跨运行筛选和趋势指标
codebench_list列出记录的跑步记录
codebench_delete删除跑步记录

Merge--并行代理合并序列化

MCP工具:

工具目的
codemerge_start打开合并会话
codemerge_claim会话的索赔文件(咨询文件级索赔)
codemerge_check检查是否存在重叠索赔 main
codemerge_merge标记正在进行的合并(获取TTL全局合并锁)
codemerge_finish松开锁

运作原理

问题

人工智能代码审查会议产生的结果会丢失。多个代理并行进行双索赔工作。需求文件漂移。释放失去了对其中内容的跟踪。

解决方案

codebug将所有内容存储在一个本地SQLite数据库中。人工智能助手在发现结果、需求和里程碑项目时将其写入,然后在未来的会话中查询数据库以进行即时上下文恢复。并发代理通过同一数据库进行协调——没有竞争条件,原子声明。

代币节省A. summary 调用返回约200个令牌的结构化JSON概述。如果没有代码错误,重建相同的上下文需要花费2K-10K+的文件读取和对话历史令牌。

典型工作流程

代码审查循环:

  1. AI审查代码,调用 categories 为了命名的一致性,那么 add 对于每一个发现。
  2. add 自动将发现路由到 stream/triage.
  3. 下一节:人工智能通话 summary → 50 公开调查结果→ query --severity critical → 修复最坏的情况→ update CB-N --status fixed.
  4. 随着时间的推移, categories 揭示系统性问题——“12 tz_naive_datetime 已修复9个文件→ 是时候制定皮棉规则了。"

释放循环:

  1. 分类:人工智能呼叫 triage_inboxtriage_dismiss 无缺陷, triage_promote 真实物品 release/1.1 (与 linked_frs 对于需要FR行的那些)。
  2. 执行:每个并行代理调用 pull_next(agent_id=..., capacity=...) → 领取下一个符合条件的物品。
  3. 着陆后: mark_integrated(item, commit)release_item(item, status='done').
  4. 关闭: milestone_close("release/1.1").如果树枝上有东西搁浅,拒绝;列出违规者及其分支机构名称。

模式(突出显示)

所有桌子共享 .codebugs/findings.db 具有灵活的JSON列。模式是累加的——每个模块都拥有自己的表,声明依赖关系,并以累加的方式迁移。

研究结果

字段类型描述
idtext自动生成(CB-1, CB-2, ...)或用户提供
severity文本critical, high, medium, low
categorytext用户定义(例如。 n_plus_one, missing_validation, security:xss)
filetext相对于项目根目录的文件路径
status文本open, in_progress, fixed, not_a_bug, wont_fix, stale
descriptiontext怎么了
source文本claude, ruff, human, mypy, ...
tagsjson用于特殊分组的字符串数组
metajsonlines, module, rule_code, cwe_id, ...
reported_at_commit, reported_at_reftext过期检查的来源

需求

字段类型描述
idtext用户提供(FR-001, NFR-001, ...)
section, description, priority, status, source, test_coverage文本每行元数据
embeddingblob用于语义搜索的可选float32向量
tags, metajson

里程碑

目的
milestones蛞蝓(release/1.1, stream/triage)、种类、状态、目标日期、描述
milestone_items(milestone_id, item_kind, item_ref) 链接、大小、优先级、状态、接受、仅分支、完成提交
milestone_audit仅附加日志:actor、action、from_state→ to_state、原因、时间戳
agent_capacity根据代理人WIP(large_held, small_held, triage_held,最后一次拉动/释放)

项目种类有 bug (根据验证 findings), requirement (根据验证 requirements),或 external (自由形式,跳过拦截器)。这 (milestone_id, item_kind, item_ref) 独特的约束可防止双重附着。

阻塞器

字段类型描述
item_id, item_typetext被阻止的实体(例如。 CB-5 / finding)
blocked_by, blocked_by_typetext依赖关系(日期/手动触发器为空)
trigger_type文本entity_resolved, date, manual
trigger_attext日期触发器的UTC日期时间
reasontext人类解释

清扫

目的
codesweepssweep_id、名称、描述、生命周期、终端状态、转换DAG
codesweep_items(sweep_id, item) 唯一密钥; state, recurrence_count, first_seen, last_seen, archived_at

杀手级功能

随时间变化的模式检测

$ codebugs categories
category                        total  open  fixed
tz_naive_datetime                  15     3     12
n_plus_one                          8     2      6
missing_input_validation            6     4      2

如果你一直固定同一个类别→ 是时候制定皮棉规则了。代码bug将被动的bug修复转化为主动的预防。

需求验证

reqs_verify 在文档发货前发现其腐烂:

$ codebugs reqs-verify
Verified 683 requirements.

12 issue(s) found:
check   sev       id      message
tests   high      FR-350  Test file not found: test_entity_graph.py
status  high      FR-090  Description mentions 'superseded' but status is 'Planned'
status  medium    FR-006  Must-priority requirement implemented without test coverage
ids     medium    --      Numbering gaps (5+): FR-025..FR-029, FR-316..FR-329

语义需求搜索

存储嵌入(调用方通过任何嵌入API生成向量),并从语义上查找相关需求:

reqs_embed(req_id="FR-001", embedding=[0.1, 0.2, ...])
reqs_search_similar(query_embedding=[...], limit=5, min_similarity=0.3)

SQLite中的Float32-BLOB存储;强力余弦相似性——快速满足数千种需求。

关门执法

milestone_close("release/1.1") 不会让你发布一个工作滞留在分支上的版本:

$ codebugs milestone-status release/1.1
release/1.1  (release, state=open)
  target: 2026-06-15 (35 days)

Items: 12 total (3 open/in_progress, 9 done)
  Branch-only: CB-1234
  Blocked: CB-1240

当您尝试关闭它时:

ValueError: cannot close release/1.1: unfinished items (3): CB-1234, CB-1240, CB-1242;
            branch-only items (1): CB-1234@feat/CB-1234;
            items with active blockers (1): CB-1240
            (use force=True with reason to override)

溪流(stream/*)根本拒绝关闭——它们是永久性的桶。

需求

  • Python 3.11+
  • 除此之外没有外部运行时依赖关系 mcp>=1.0.0 (对于服务器)
  • SQLite(与Python捆绑在一起)

发展

# Run tests
uv run python -m pytest tests/ -v

# Lint
uv run ruff check src/ tests/

# Format
uv run ruff format src/ tests/

CLAUDE.md 建筑规则和惯例。

许可证

麻省理工学院

目录标签

目录标签

PythonClaude数据分析代码缺陷追踪本地部署需求管理发布追踪并行协调SQLite数据库

支持客户端

Claude

接入字段

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

stdio

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

session

工具数量(toolCount,工具数)

59

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP