v1.4.0 -- repo_context 开工简报增强 + plan_from_context workType 支持
概览
本次发布完成 docs/ROADMAP.md v1.4「通用 Agent 可用性与上下文增强」的全部三项,是 repo_context 和 plan_from_context 两个核心工具自发布以来最大的一次能力升级。
repo_context从"仓库基础信息读取器"升级为完整的开工简报包(repository briefing packet)plan_from_context从"千篇一律的 SDLC 模板"升级为按任务类型定制的计划生成器- 重建了此前缺失的通用 AI Coding Agent 冒烟测试指南
全部改动向后兼容:所有新增字段均为可选,默认关闭,不影响现有集成的调用行为和 API 调用量。
✨ repo_context:开工简报包
新增 4 个可选上下文维度,agent 现在可以一次调用就了解"这个仓库怎么建、怎么测、谁在把关":
| 新参数 | 作用 |
|---|---|
includePackageJson(增强) |
除了原有摘要外,新增包管理器探测(npm/pnpm/yarn/bun)、技术栈识别(依赖名映射为 TypeScript/Vitest/Express 等可读标签)、常用验证脚本摘要 |
includeWorkflows |
列出 .github/workflows/*.yml 文件名(仅文件名,权限细节由 workflow_permissions_audit 负责) |
includeGovernance |
报告 CODEOWNERS 是否存在 |
includeAgentInstructions |
探测并截断摘要 AGENTS.md / CLAUDE.md(跨工具通用的 agent 规则文件) |
另新增 maxReadmeChars / maxInstructionChars 控制截断长度。
包管理器识别采用混合策略:优先读 package.json 的 packageManager 字段(0 次额外 API 调用);缺失时才依次探测 4 种 lock 文件,命中即停。includeGovernance 有意不重复探测分支保护——那需要 admin 权限、默认请求容易 403,这个职责继续交给专门的 branch_protection_status 工具,避免功能重叠和不必要的失败率。
✨ plan_from_context:按任务类型定制计划
新增 workType 参数:docs / feature / bugfix / refactor / security / release / infra。
- 显式传入:直接采用,
confidence: "high" - 未传入:由关键词启发式(支持中英文)保守推断,推断依据通过
reasoning/confidence/needsClarification透明返回——不做静默假设,置信度低时会明确提示需要人工确认
每种类型拥有独立的 Plan → Create → Test → Review → Optimize → Secure 六阶段任务模板,直接对应 ROADMAP 的验收标准:
docs任务的 Test 阶段验证示例可执行、检查链接,不再默认要求代码单元测试bugfix任务的 Plan 阶段强制要求复现根因,Create 阶段强制要求回归测试security任务强制要求威胁模型、最小权限实现、攻击场景测试release任务强制要求 CHANGELOG、版本号、CI 验证、回滚计划infra任务强制要求最小权限、workflow_permissions_audit复核
buildPlan() 新增的 workType 参数默认值为 "feature",纯函数签名向后兼容。
📖 新增冒烟测试文档
docs/ai-coding-agent-smoke-test.md:客户端无关的 5 分钟验收指南,覆盖最小配置、repo_context 只读验证路径、create_issue_set dry-run 预览路径、常见失败排查表。
🔍 独立代码审查发现并修复的问题
按项目规则,本次改动完成后创建了独立 reviewer 子智能体审查。审查发现一个高优先级 bug:inferWorkType 最初实现用裸子串匹配(text.includes(keyword)),导致 "fix" 会误命中 "prefix" / "suffix" / "fixed-price","secret" 会误命中 "secret santa" 等常见 feature 描述,被静默误判为 bugfix/security。
修复为词边界匹配(英文关键词要求完整单词匹配,同时补充 fixes/permissions/secrets 等常见词形变体避免漏判;中文关键词维持子串匹配,因为中文文本没有空格分词,多字关键词本身特异性已经足够),并补充了 4 个词边界回归测试、1 个平局(tie-break)测试用例,以及 repo_context 在 include 开关关闭时"确实不发起额外 API 调用"的调用计数断言。
📊 测试与验证
npm run typecheck # 通过
npm run build # 通过
npm run test # 214/214 通过(本次新增 49 个测试用例,上一版本 165 个)
npm run smoke # 通过
npm run test:coverage # 82.9% statements / 80.19% branches
🔒 安全说明
- 未修改任何工具的
dryRun默认值 - 新增的 GitHub API 调用均复用已有
GITHUB_TOKEN权限范围内的仓库内容读取,风险等级与现有includeReadme/includePackageJson一致 - 所有新增
include*开关默认false,不影响现有调用方的默认行为 - 冒烟测试文档示例统一使用
REPLACE_WITH_GITHUB_TOKEN占位符
📋 完整变更
查看完整 diff:v1.3.1...v1.4.0
详见 PR #21。
🗺️ 下一步
ROADMAP v1.5「Plan 与 Issue 创建闭环」——plan_from_context 输出 issueDrafts 并打通 create_issue_set,让计划可以直接 dry-run 创建对应的 GitHub issue 草稿。
🤖 Generated with Claude Code