Skip to content

v1.4.0 -- repo_context 开工简报增强 + plan_from_context workType 支持

Choose a tag to compare

@SakuraCianna SakuraCianna released this 08 Jul 15:12
7ce26dd

概览

本次发布完成 docs/ROADMAP.md v1.4「通用 Agent 可用性与上下文增强」的全部三项,是 repo_contextplan_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.jsonpackageManager 字段(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 子智能体审查。审查发现一个高优先级 buginferWorkType 最初实现用裸子串匹配(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