用途:该技能面向代码架构决策的追溯与记录,帮助回答“为什么代码要这样实现”,并在进行架构改动(引入新模式、重构、方案取舍)前先了解已有决策。也用于发现可能已过时的决策、待确认的提案以及缺少决策记录的高变更热点文件。
主要能力:核心工具 get_why 有四种模式。get_why(query="why is auth using JWT?") 进行关键词与语义决策搜索;get_why(query="src/auth/service.py") 返回治理该文件的决策、其来源及一致性评分;get_why(query="why was caching added?", targets=["src/auth/cache.py"]) 做目标锚定搜索,涉及目标的决策会加权;get_why() 返回决策健康看板。决策从 ADR 文件、PR 与 squash 提交正文、行内标记、git 考古以及中心性受限的代码注释等五类来源挖掘,每条理由可追溯到逐字来源片段,并标注 exact / fuzzy / unverified。若某路径无决策,会回退到 git 考古,避免调用为空。
使用方式:用户问“为什么 X 是这样构建的”时调用 get_why(query="X");准备做架构改动时调用 get_why(query="要改动的具体区域");若找到决策,先呈现给用户再继续;若未找到,可继续但需说明该区域无已记录决策。无特定查询时调用 get_why() 获取健康看板。代码中见到 # WHY:、# DECISION:、# TRADEOFF:、# ADR: 注释时,调用 get_context(targets=["that_file.py"]) 查看完整决策记录、上下文与受影响模块。CLI 中可用 repowise decision health、/repowise:decision、repowise why、/repowise:why 查询,用 repowise decision confirm 确认自动提案,通过 repowise decision add 或添加 # DECISION: 注释记录新决策。
适用场景:架构改动前的决策核对、代码理解、决策健康巡检、决策记录补全。
限制:资料未提供价格、平台支持范围、性能或效果等细节。