@xulthekl/team-flow 0.23.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/always/phase-guard.md +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/marketplace.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/.github/plugin/marketplace.json +2 -2
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +121 -0
- package/GEMINI.md +1 -1
- package/INSTALL.md +1 -1
- package/README.md +1 -1
- package/docs/README_en.md +1 -1
- package/docs/solutions/INDEX.md +6 -0
- package/docs/solutions/cross-phase/2026-07-28-no-summary.md +17 -0
- package/docs/solutions/cross-phase/2026-07-29-no-summary.md +17 -0
- package/gemini-extension.json +1 -1
- package/hooks/pre-tool-use-guard +9 -9
- package/hooks/session-start +2 -2
- package/llms.txt +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/guard/checks/compound-captured.mjs +70 -0
- package/scripts/guard/guard.mjs +3 -1
- package/scripts/lib/cmd-state.mjs +2 -0
- package/scripts/lib/config-loader.mjs +3 -0
- package/scripts/lib/solutions-promote.mjs +1 -1
- package/scripts/lib/state-loader.mjs +5 -0
- package/skills/bug-investigator/SKILL.md +1 -1
- package/skills/build-executor/SKILL.md +19 -19
- package/skills/build-executor/implementer-prompt.md +1 -1
- package/skills/build-executor/references/execution-modes.md +6 -6
- package/skills/build-executor/task-reviewer-prompt.md +1 -1
- package/skills/ce-brainstorm/SKILL.md +49 -348
- package/skills/ce-brainstorm/references/brainstorm-sections.md +11 -0
- package/skills/ce-brainstorm/references/grounding.md +47 -0
- package/skills/ce-brainstorm/references/output-format.md +25 -0
- package/skills/ce-brainstorm/references/phase0-routing.md +96 -0
- package/skills/ce-brainstorm/references/prd-mapping.md +37 -0
- package/skills/ce-brainstorm/references/prototype-loop.md +55 -0
- package/skills/ce-ideate/SKILL.md +31 -348
- package/skills/ce-ideate/references/grounding.md +107 -0
- package/skills/ce-ideate/references/phase0-scope.md +134 -0
- package/skills/ce-ideate/references/topic-surface.md +37 -0
- package/skills/ce-proof/SKILL.md +8 -266
- package/skills/ce-proof/references/api-recipes.md +145 -0
- package/skills/ce-proof/references/workflows.md +124 -0
- package/skills/code-reviewer/SKILL.md +2 -2
- package/skills/code-reviewer/code-reviewer-prompt.md +1 -1
- package/skills/contract-builder/SKILL.md +6 -6
- package/skills/need-explorer/SKILL.md +2 -2
- package/skills/prototype/SKILL.md +16 -2
- package/skills/prototype/references/agents/design-system-architect.md +11 -122
- package/skills/prototype/references/interactive-prototype.md +110 -0
- package/skills/prototype/references/layouts.md +188 -2
- package/skills/prototype/references/orchestration-flow.md +8 -1
- package/skills/prototype/references/template.html +32 -0
- package/skills/prototype/references/wireframe.md +117 -0
- package/skills/release-archivist/SKILL.md +14 -12
- package/skills/release-archivist/references/closing-procedures.md +11 -9
- package/skills/spec-merger/SKILL.md +2 -2
- package/skills/spec-writer/SKILL.md +3 -3
- package/skills/workflow-bootstrap/SKILL.md +13 -2
- package/skills/workflow-bootstrap/references/b1-reconnaissance.md +13 -7
- package/skills/workflow-bootstrap/scripts/recon-probe.sh +122 -1
- package/skills/workflow-orchestrator/references/s2-prd-prototype-loop.md +1 -1
- package/skills/workflow-orchestrator/references/s4-split-validate.md +1 -1
- package/skills/workflow-orchestrator/references/s5-monitoring.md +1 -1
- package/skills/workflow-start/SKILL.md +16 -16
- package/skills/workflow-start/references/routing-rules.md +17 -17
- package/templates/prd-brainstorm-profile.md +69 -0
- package/tests/lib/guard-compound-captured.test.mjs +92 -0
- package/tests/lib/guard-specs-merged.test.mjs +2 -0
- package/tests/lib/guard-tests-passing.test.mjs +2 -0
- package/tests/lib/guard.test.mjs +2 -0
- package/tests/lib/solutions-capture.test.mjs +108 -0
- package/tests/lib/solutions-index-gen.test.mjs +147 -0
- package/tests/lib/solutions-inject.test.mjs +115 -0
- package/tests/lib/solutions-promote.test.mjs +200 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
{
|
|
10
10
|
"name": "team-flow",
|
|
11
11
|
"description": "8-state spec workflow + compound global compounding + architecture-design (4A/DDD) + local HTML prototype + product-level orchestration + bootstrap + e2e + session handoff + workflow feedback. 23 skills + 8 agents with embedded TDD, SDD, code review, debugging, delta spec sync, and design-system-driven prototyping.",
|
|
12
|
-
"version": "0.
|
|
12
|
+
"version": "0.25.1",
|
|
13
13
|
"source": "./",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "LT",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "team-flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"description": "Unified workflow plugin: team-flow (spec-driven dev: TDD/SDD/code-review/debugging) + compound-engineering core subset (brainstorm/plan/compound/strategy/ideate/proof, global compounding) + architecture-design (4A+DDD incremental design & global compounding) + prototype (local HTML prototype, zero external deps) + e2e (Playwright E2E, AC-driven) + workflow-orchestrator (product-level workflow orchestration) + workflow-bootstrap (existing project onboarding) + session-handoff (context transfer) + workflow-feedback (issue tracking). 23 skills + 8 agents, one install.",
|
|
5
5
|
"source": "./",
|
|
6
6
|
"author": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "team-flow",
|
|
3
3
|
"displayName": "team-flow",
|
|
4
4
|
"description": "Unified workflow plugin: team-flow (spec-driven dev: TDD/SDD/code-review/debugging) + compound-engineering core subset (brainstorm/plan/compound/strategy/ideate/proof, global compounding) + architecture-design (4A+DDD incremental design & global compounding) + prototype (local HTML prototype, zero external deps) + e2e (Playwright E2E, AC-driven) + workflow-orchestrator (product-level workflow orchestration) + workflow-bootstrap (existing project onboarding) + session-handoff (context transfer) + workflow-feedback (issue tracking). 23 skills + 8 agents, one install.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.25.1",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "LT",
|
|
8
8
|
"url": "https://github.com/LT"
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Unified workflow plugins and skills for AI coding agents (team-flow: team-flow + compound + architecture-design + prototype).",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.25.1"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "team-flow",
|
|
14
14
|
"description": "Unified workflow with planning artifacts, execution contracts, TDD, review gates, systematic debugging, delta spec sync, architecture-design, and local HTML prototyping.",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.25.1",
|
|
16
16
|
"source": ".",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "LT",
|
package/AGENTS.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
- 零运行时依赖(team-flow 底座)
|
|
10
10
|
- prototype 额外 **零外部依赖、可离线**(自包含 HTML + 页面内 Tweaks 控件,无 CDN)
|
|
11
|
-
- 插件保持通用,所有风格由项目 `design-system.md` / `prd.template`
|
|
11
|
+
- 插件保持通用,所有风格由项目 `design-system.md` / `prd.template`(含配套 `prd-brainstorm-profile.md`)注入,不固化任何公司/产品风格
|
|
12
12
|
|
|
13
13
|
### 身份与依赖关系
|
|
14
14
|
|
|
@@ -253,11 +253,11 @@ docs/solutions/
|
|
|
253
253
|
|
|
254
254
|
项目 `team-flow.config.json` 可注入(**插件层扩展字段,非 team-flow 原生 schema**;原生仅 `artifacts.order` / `artifacts.skip`):
|
|
255
255
|
|
|
256
|
-
- `prd.template`:PRD
|
|
256
|
+
- `prd.template`:PRD 模板路径(默认 `templates/prd.md`,GTMC D7 业务要件 11 章结构)。ce-brainstorm Phase 0.0 首次运行时若未配置,会交互式询问用户选择默认模板或自定义路径,并自动写入配置。自定义模板应配套 brainstorm profile(`<模板名>-brainstorm-profile.md`),否则回退使用内置默认的 GTMC D7 profile
|
|
257
257
|
- `prototype.designSystem`:项目 `design-system.md` 路径
|
|
258
258
|
- `prototype.entry`:原型入口(默认 `prototype/index.html`)
|
|
259
259
|
|
|
260
|
-
读取方式:`tf runtime config --get <key>`(插件层自读,字段命名避开原生 key
|
|
260
|
+
读取方式:`tf runtime config --get <key>`(插件层自读,字段命名避开原生 key 冲突)。`prd.template` 已纳入 DEFAULTS(`config-loader.mjs`),未配置时返回默认值而非报错。
|
|
261
261
|
|
|
262
262
|
## Architecture(team-flow 底座,TypeScript)
|
|
263
263
|
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,127 @@ The format loosely follows Keep a Changelog.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.25.1] - 2026-07-29
|
|
10
|
+
|
|
11
|
+
### Changed(SKILL.md 渐进式披露拆分,P1-9,3 项)
|
|
12
|
+
|
|
13
|
+
#### ce-proof (346→88 行)
|
|
14
|
+
- **skills/ce-proof/SKILL.md**:保留核心决策逻辑(Identity/Credentials/Publish Mode/Edit Strategy/Safety),curl 示例和工作流移入 references
|
|
15
|
+
- **skills/ce-proof/references/api-recipes.md**(新增):Create/Read/Edit/Presence/Title/Delete 的完整 curl 示例 + 错误码表 + Marks & Privacy + When the loop breaks
|
|
16
|
+
- **skills/ce-proof/references/workflows.md**(新增):Review/Create/Pull 三个完整工作流
|
|
17
|
+
|
|
18
|
+
#### ce-brainstorm (458→122 行)
|
|
19
|
+
- **skills/ce-brainstorm/SKILL.md**:保留核心原则 + 每个 Phase 摘要 + reference 引用指针
|
|
20
|
+
- **skills/ce-brainstorm/references/output-format.md**(新增):OUTPUT_FORMAT 5 级优先级解析逻辑
|
|
21
|
+
- **skills/ce-brainstorm/references/phase0-routing.md**(新增):Phase 0 的 Resume/Classify/Verdict/Assess/Scope/Spine/Iteration 详细路由
|
|
22
|
+
- **skills/ce-brainstorm/references/prototype-loop.md**(新增):Phase 3.5 原型内循环完整流程
|
|
23
|
+
- **skills/ce-brainstorm/references/grounding.md**(新增):Phase 1.1 上下文扫描 + grounding scout 提示词 + Slack 路由
|
|
24
|
+
|
|
25
|
+
#### ce-ideate (402→85 行)
|
|
26
|
+
- **skills/ce-ideate/SKILL.md**:保留核心原则 + Phase 摘要 + reference 引用指针
|
|
27
|
+
- **skills/ce-ideate/references/phase0-scope.md**(新增):Phase 0 完整路由逻辑(输出模式/主题门/模式分类/上下文门/聚焦与容量/成本透明)
|
|
28
|
+
- **skills/ce-ideate/references/grounding.md**(新增):Phase 1 模式感知 Grounding(仓库/非仓库调度 + Web 研究 + 用户研究工件 + 综合摘要)
|
|
29
|
+
- **skills/ce-ideate/references/topic-surface.md**(新增):Phase 1.5 主题表面分解(轴标准 + 证据侦察)
|
|
30
|
+
|
|
31
|
+
## [0.25.0] - 2026-07-29
|
|
32
|
+
|
|
33
|
+
### Added(brainstorm profile 机制,3 项)
|
|
34
|
+
|
|
35
|
+
#### Brainstorm Profile 机制
|
|
36
|
+
- **templates/prd-brainstorm-profile.md**(新增):GTMC D7 模板的 brainstorm profile,定义核心思考维度(7 项:业务流程/状态模型/权限模型/用户角色/数据关系/业务规则/系统功能)、扩展维度(6 项:画面设计/业务术语/报表需求/交互机制/非功能性需求/编码规则)、反例边界(7 项:禁止后端模块划分/前端页面结构/数据库表设计/API 接口定义/技术选型/部署架构/代码结构)和正向示例
|
|
37
|
+
- **skills/ce-brainstorm/references/prd-mapping.md**:新增"Brainstorm Profile 机制"完整说明(文件命名规则、查找优先级、三段结构、自定义 Profile 指南)
|
|
38
|
+
- **skills/ce-brainstorm/references/brainstorm-sections.md**:新增"Brainstorm profile coverage check"段落,确保核心维度在 PRD 中被覆盖
|
|
39
|
+
|
|
40
|
+
### Changed(Phase 0 模板选择 + Phase 2 profile 驱动,4 项)
|
|
41
|
+
|
|
42
|
+
#### PRD 模板交互式选择
|
|
43
|
+
- **skills/ce-brainstorm/SKILL.md Phase 0.0**:PRD 模板解析改为 MANDATORY STEP——必须执行 bash 命令检查配置,未配置自定义模板时强制使用 AskUserQuestion 询问用户选择默认或自定义路径,并自动写入 `team-flow.config.json`
|
|
44
|
+
- **skills/ce-brainstorm/SKILL.md Phase 2**:新增"Load brainstorm profile"步骤,按 profile 维度约束方案探索;"Approach granularity"从"mechanism/product shape"改为"profile-driven product thinking, not architecture"
|
|
45
|
+
- **skills/ce-brainstorm/SKILL.md 调用模式**:明确声明 `orchestrated` 模式仅跳过 Phase 3.5,Phase 0-3 均正常执行不可跳过
|
|
46
|
+
|
|
47
|
+
#### Config 默认值
|
|
48
|
+
- **scripts/lib/config-loader.mjs**:DEFAULTS 增加 `prd.template: 'templates/prd.md'`,`tf runtime config --get prd.template` 未配置时返回默认值而非报错
|
|
49
|
+
|
|
50
|
+
### Documentation(1 项)
|
|
51
|
+
|
|
52
|
+
- **AGENTS.md**:`prd.template` 配置字段说明扩充(含 brainstorm profile 关联说明);通用性描述补充 profile 注入机制
|
|
53
|
+
|
|
54
|
+
## [0.24.1] - 2026-07-28
|
|
55
|
+
|
|
56
|
+
### Fixed(prototype skill 体系补强,5 项)
|
|
57
|
+
|
|
58
|
+
#### P0: design-system-architect.md 重复维护
|
|
59
|
+
- **prototype/references/agents/design-system-architect.md**: 替换为迁移指针,指向 `design-system skill` 下的权威版本,消除两份文件内容漂移风险
|
|
60
|
+
|
|
61
|
+
#### P0: Open Design 命名歧义
|
|
62
|
+
- **prototype/SKILL.md**: description 中明确标注 "Open Design 桌面应用"(GUI 工具,互斥项)与 "nexu-io/open-design 开源设计方法论"(craft 规则借鉴源)同名不同义;新增「方法论参考与归因」段
|
|
63
|
+
|
|
64
|
+
#### P1: prototype-sync 自动触发
|
|
65
|
+
- **prototype/SKILL.md**: prototype-sync 段从 "SOP" 升级为 "release-archivist 自动触发",明确标准路径是 closing 流程自动触发
|
|
66
|
+
- **release-archivist/SKILL.md**: 新增 prototype-sync 执行校验段,要求检查 stdout 输出,禁止在未执行时标注为已完成
|
|
67
|
+
- **release-archivist/references/closing-procedures.md**: 同步执行校验段和 write-back order 约束
|
|
68
|
+
|
|
69
|
+
### Added(原型设计能力扩展,2 项)
|
|
70
|
+
|
|
71
|
+
#### P2-1: 交互原型 + 线框图方法论
|
|
72
|
+
- **prototype/references/interactive-prototype.md**: 新增交互原型方法论(零依赖状态管理、表单验证、多步导航、动态列表)
|
|
73
|
+
- **prototype/references/wireframe.md**: 新增线框图方法论(低保真快速探索、3-5 差异化方案、并排对比)
|
|
74
|
+
- **prototype/references/orchestration-flow.md**: prompt 组装顺序契约新增原型类型注入策略(wireframe / interactive / static)
|
|
75
|
+
|
|
76
|
+
#### P2-2: C 端骨架扩展
|
|
77
|
+
- **prototype/references/layouts.md**: 新增 §9-§14 C 端骨架(hero-xl / marketing-features / social-proof / pricing-c / faq / cta-c),新增 C 端页面节奏表
|
|
78
|
+
- **prototype/references/template.html**: 新增 C 端扩展 CSS(hero-xl / pricing-card / faq-item / urgency 等)
|
|
79
|
+
|
|
80
|
+
## [0.24.0] - 2026-07-28
|
|
81
|
+
|
|
82
|
+
### Fixed(复利工程强制化补强,5 项)
|
|
83
|
+
|
|
84
|
+
#### P0: Hook 旧名修复
|
|
85
|
+
- **hooks/pre-tool-use-guard**: 修复 `.spec-superflow.yaml` → `.team-flow.yaml` 的硬编码旧名(5 处),恢复状态机编辑守卫
|
|
86
|
+
- **hooks/session-start**: 修复 `spec-superflow` → `team-flow` 的硬编码旧名(3 处),恢复会话启动提示
|
|
87
|
+
|
|
88
|
+
#### P1: 复利维度 guard
|
|
89
|
+
- **guard/checks/compound-captured.mjs**: 新增复利捕获检查维度(learnings.md 存在性或显式 compound_skipped)
|
|
90
|
+
- **guard/guard.mjs**: 将 `compound-captured` 维度挂到 `executing:closing` 转换(full 和 hotfix workflow)
|
|
91
|
+
- **state-loader.mjs**: BUILTIN_DEFAULTS 新增 `compound_skipped` 字段
|
|
92
|
+
- **cmd-state.mjs**: SETTABLE_FIELDS 新增 `compound_skipped` 字段,支持 `tf state set` 写入
|
|
93
|
+
|
|
94
|
+
#### P1: Bootstrap DDL 提取
|
|
95
|
+
- **workflow-bootstrap/scripts/recon-probe.sh**: 新增 DDL 提取能力(策略优先级:SQL 文件 > Java Entity 注解 > 占位兜底)
|
|
96
|
+
- 策略 1: 扫描 `db/migration/` 等目录的 `.sql` 文件,提取 CREATE TABLE 语句
|
|
97
|
+
- 策略 2: 扫描 `@Entity`/`@Table` 注解的 Java 类,提取表名和字段定义
|
|
98
|
+
- 策略 3: 无 DDL 源时生成占位文件,提示手动补充
|
|
99
|
+
- 新增 `--ddl-out` 参数,支持独立输出 DDL 文件
|
|
100
|
+
- JSON 输出新增 `ddl_extraction` 字段(source/table_count/tables/ddl_statements)
|
|
101
|
+
|
|
102
|
+
#### P1: Bootstrap 模板引用
|
|
103
|
+
- **workflow-bootstrap/SKILL.md**: B2 阶段新增 Step 0(模板初始化),从 `architecture-design/templates/` 复制 5 个模板到 `docs/architecture/`
|
|
104
|
+
- **workflow-bootstrap/references/b1-reconnaissance.md**: 更新 B1.1a 章节,标注 DDL 提取已实现(v0.24.0),补充 CLI 用法和 JSON 输出字段说明
|
|
105
|
+
|
|
106
|
+
#### P2: solutions 脚本测试
|
|
107
|
+
- **tests/lib/solutions-capture.test.mjs**: 新增 6 个测试用例(文件创建、INDEX 追加、中文 slugify、默认 phase、无效 phase 拒绝)
|
|
108
|
+
- **tests/lib/solutions-inject.test.mjs**: 新增 8 个测试用例(空索引、phase 过滤、cross-phase 包含、domain 匹配、severity 排序、top-5 截断)
|
|
109
|
+
- **tests/lib/solutions-promote.test.mjs**: 新增 8 个测试用例(无 learnings、高/中/低 severity 晋升、insight 类型跳过、重复检测、多条晋升、INDEX 追加)
|
|
110
|
+
- **tests/lib/solutions-index-gen.test.mjs**: 新增 7 个测试用例(全量重建、severity 排序、date 排序、7 phase 扫描、非 .md 跳过、150 条截断、空目录处理)
|
|
111
|
+
- **scripts/lib/solutions-promote.mjs**: CLI 守卫增加 `NODE_ENV !== 'test'` 条件,避免 import 时触发 process.exit
|
|
112
|
+
|
|
113
|
+
#### 测试修复
|
|
114
|
+
- **tests/lib/guard.test.mjs**: `recordPassingClosingPrerequisites()` 新增 learnings.md 创建,满足 compound-captured 维度
|
|
115
|
+
- **tests/lib/guard-specs-merged.test.mjs**: `makeChangeDir()` 新增 learnings.md 创建
|
|
116
|
+
- **tests/lib/guard-tests-passing.test.mjs**: `makeChangeDir()` 新增 learnings.md 创建
|
|
117
|
+
|
|
118
|
+
### Verified
|
|
119
|
+
|
|
120
|
+
- check-version-consistency: ✅ PASS(全部 0.24.0,自动修复 6 处版本号)
|
|
121
|
+
- npm test: ✅ 457/457 通过(428 既有 + 29 新增)
|
|
122
|
+
|
|
123
|
+
### Statistics
|
|
124
|
+
|
|
125
|
+
- 新增代码: ~350 行(guard 检查器 + DDL 提取 + 测试用例)
|
|
126
|
+
- 修改文件: 52 个
|
|
127
|
+
- 测试覆盖: solutions 四个脚本从 0% → 100%(29 个测试用例)
|
|
128
|
+
- 复利强制化: executing:closing 转换新增 compound-captured 维度(learnings.md 或显式 skip)
|
|
129
|
+
|
|
9
130
|
## [0.22.5] - 2026-07-28
|
|
10
131
|
|
|
11
132
|
### Fixed(制品链评审与修复,设计 v0.9 §28)
|
package/GEMINI.md
CHANGED
|
@@ -8,7 +8,7 @@ The workflow is self-contained and does not require OpenSpec or Superpowers at r
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
<!-- team-flow-phase-guard-start -->
|
|
11
|
-
# team-flow v0.
|
|
11
|
+
# team-flow v0.25.1 | 阶段: {{state}} | 工作流: {{workflow}}
|
|
12
12
|
当前阶段允许的操作由 workflow-start 路由规则定义。
|
|
13
13
|
禁止跨越 DP gate 进入下一阶段。变更范围以 execution-contract.md 的 Intent Lock 为准。
|
|
14
14
|
<!-- team-flow-phase-guard-end -->
|
package/INSTALL.md
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# team-flow
|
|
2
2
|
|
|
3
|
-
> 当前版本:`v0.
|
|
3
|
+
> 当前版本:`v0.25.1`
|
|
4
4
|
|
|
5
5
|
> 统一插件:**team-flow**(spec 驱动开发)+ **compound-engineering 核心子集**(全局复利)+ **architecture-design**(4A+DDD 增量设计)+ **prototype**(本地 HTML 原型)+ **e2e**(AC 驱动 E2E)+ **workflow-orchestrator**(产品级编排)+ **workflow-bootstrap**(既有项目接入)。一次安装,七套能力协同。
|
|
6
6
|
|
package/docs/README_en.md
CHANGED
|
@@ -126,7 +126,7 @@ npm install -g team-flow
|
|
|
126
126
|
|
|
127
127
|
### Version
|
|
128
128
|
|
|
129
|
-
- Current: `v0.
|
|
129
|
+
- Current: `v0.25.1`
|
|
130
130
|
- v0.9.1 highlights: DP-4 execution-mode recommendations, a portable runtime across 17 platforms, and a raw-package smoke with no plugin-root variable.
|
|
131
131
|
- Self-contained — no OpenSpec or Superpowers runtime required
|
|
132
132
|
- Upstream: [Fission-AI/OpenSpec](https://github.com/Fission-AI/OpenSpec), [obra/superpowers](https://github.com/obra/superpowers)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Solutions Index
|
|
2
|
+
<!-- 每条一行,按 severity 降序,≤150 行硬上限 -->
|
|
3
|
+
| date | phase | domain | type | severity | summary | file |
|
|
4
|
+
|------|-------|--------|------|----------|---------|------|
|
|
5
|
+
| 2026-07-29 | cross-phase | general | insight | medium | (no summary) | cross-phase/2026-07-29-no-summary.md |
|
|
6
|
+
| 2026-07-28 | cross-phase | general | insight | medium | (no summary) | cross-phase/2026-07-28-no-summary.md |
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "team-flow",
|
|
3
3
|
"description": "Unified workflow plugin: team-flow (spec-driven dev) + compound-engineering core subset + architecture-design (4A/DDD) + prototype (local HTML). 17 skills, one install.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.25.1",
|
|
5
5
|
"contextFileName": "GEMINI.md"
|
|
6
6
|
}
|
package/hooks/pre-tool-use-guard
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
#
|
|
3
|
-
# pre-tool-use-guard —
|
|
3
|
+
# pre-tool-use-guard — team-flow implementation-edit state guard (PreToolUse)
|
|
4
4
|
#
|
|
5
5
|
# ----------------------------------------------------------------------------
|
|
6
6
|
# Purpose
|
|
7
7
|
# ----------------------------------------------------------------------------
|
|
8
8
|
# Blocks Write/Edit/MultiEdit implementation edits unless the active
|
|
9
|
-
#
|
|
9
|
+
# team-flow change is in a state that permits building. This enforces the
|
|
10
10
|
# state-machine rule that "no implementation is allowed" outside the
|
|
11
11
|
# build-permitted states (exploring / specifying / bridging must finish and be
|
|
12
12
|
# approved before any code is written).
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
# Guard logic
|
|
16
16
|
# ----------------------------------------------------------------------------
|
|
17
17
|
# 1. Walk up from $PWD (current dir + max 3 parent levels) looking for
|
|
18
|
-
# `.
|
|
19
|
-
# - Not found -> ALLOW (no active
|
|
18
|
+
# `.team-flow.yaml`.
|
|
19
|
+
# - Not found -> ALLOW (no active team-flow change in scope).
|
|
20
20
|
# 2. Read the current workflow state from the `state:` line of the yaml.
|
|
21
21
|
# 3. For Write/Edit/MultiEdit only:
|
|
22
22
|
# - state in {approved-for-build, executing, debugging} -> ALLOW
|
|
@@ -73,13 +73,13 @@ case "$TOOL_NAME" in
|
|
|
73
73
|
*) allow ;; # anything else — allow
|
|
74
74
|
esac
|
|
75
75
|
|
|
76
|
-
# --- locate .
|
|
76
|
+
# --- locate .team-flow.yaml (cwd + max 3 parent levels) ---------------
|
|
77
77
|
dir="$PWD"
|
|
78
78
|
yaml=""
|
|
79
79
|
i=0
|
|
80
80
|
while [ "$i" -le 3 ]; do
|
|
81
|
-
if [ -f "$dir/.
|
|
82
|
-
yaml="$dir/.
|
|
81
|
+
if [ -f "$dir/.team-flow.yaml" ]; then
|
|
82
|
+
yaml="$dir/.team-flow.yaml"
|
|
83
83
|
break
|
|
84
84
|
fi
|
|
85
85
|
[ "$dir" = "/" ] && break # reached filesystem root
|
|
@@ -87,7 +87,7 @@ while [ "$i" -le 3 ]; do
|
|
|
87
87
|
i=$((i + 1))
|
|
88
88
|
done
|
|
89
89
|
|
|
90
|
-
# No active
|
|
90
|
+
# No active team-flow change in scope -> allow.
|
|
91
91
|
[ -n "$yaml" ] || allow
|
|
92
92
|
[ -r "$yaml" ] || allow
|
|
93
93
|
|
|
@@ -107,7 +107,7 @@ case "$state" in
|
|
|
107
107
|
allow
|
|
108
108
|
;;
|
|
109
109
|
*)
|
|
110
|
-
reason="
|
|
110
|
+
reason="team-flow guard: implementation edits (Write/Edit/MultiEdit) are blocked while the change is in state '$state'. Edits are only allowed in states: approved-for-build, executing, debugging. Advance the workflow to an approved build state first (see docs/state-machine.md or /team-flow:workflow-start). If no change is actually active, remove or fix the stray .team-flow.yaml."
|
|
111
111
|
# Escape backslashes and double quotes for safe JSON string embedding.
|
|
112
112
|
reason_esc="$(printf '%s' "$reason" | sed 's/\\/\\\\/g; s/"/\\"/g')"
|
|
113
113
|
printf '{"decision":"block","reason":"%s"}\n' "$reason_esc"
|
package/hooks/session-start
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# v0.
|
|
3
|
-
msg="<EXTREMELY_IMPORTANT>\nYou have
|
|
2
|
+
# v0.25.1: conditional injection — detects artifacts, injects workflow-start pointer
|
|
3
|
+
msg="<EXTREMELY_IMPORTANT>\nYou have team-flow installed. Use /team-flow:workflow-start ONLY when you detect an active team-flow change in the workspace (look for \`.team-flow.yaml\`, \`proposal.md\`, \`execution-contract.md\`, or \`specs/\` directories), OR when the user explicitly invokes it by name. For ordinary coding tasks without team-flow artifacts, do NOT invoke workflow-start — just handle the request directly.\n</EXTREMELY_IMPORTANT>"
|
|
4
4
|
|
|
5
5
|
# Three platforms share the same message, only output format differs.
|
|
6
6
|
if [ -n "${CURSOR_PLUGIN_ROOT:-}" ]; then
|
package/llms.txt
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Overview
|
|
4
4
|
spec-superflow is a self-contained workflow integration plugin for Claude Code, Cursor, OpenAI Codex CLI/App, GitHub Copilot CLI, Gemini CLI, OpenCode, WorkBuddy, and Trae. It merges spec-driven planning artifacts (proposal, specs, design, tasks) with disciplined execution guardrails (TDD, review gates, controlled handoff) into one unified workflow.
|
|
5
5
|
|
|
6
|
-
Current version: v0.
|
|
6
|
+
Current version: v0.25.1.
|
|
7
7
|
|
|
8
8
|
## Key Documents
|
|
9
9
|
- README.md: Chinese homepage with full usage guide and FAQ
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xulthekl/team-flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"description": "Unified plugin (23 skills + 8 agents) integrating team-flow, compound-engineering, architecture-design, prototype, design-system, workflow-orchestrator, workflow-bootstrap, e2e, session-handoff, workflow-feedback for multi-agent coding tools.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
package/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "team-flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"description": "Unified workflow plugin: team-flow (spec-driven dev: TDD/SDD/code-review/debugging) + compound-engineering core subset (brainstorm/plan/compound/strategy/ideate/proof, global compounding) + architecture-design (4A+DDD incremental design & global compounding) + prototype (local HTML prototype, zero external deps) + e2e (Playwright E2E, AC-driven) + workflow-orchestrator (product-level workflow orchestration) + workflow-bootstrap (existing project onboarding) + session-handoff (context transfer) + workflow-feedback (issue tracking). 23 skills + 8 agents, one install.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "LT"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// scripts/guard/checks/compound-captured.mjs — compound engineering capture guard
|
|
2
|
+
// v0.24.0: 复利贯穿强制化——executing:closing 增加 compound-captured 维度
|
|
3
|
+
//
|
|
4
|
+
// 规则:
|
|
5
|
+
// - learnings.md 存在且非空 → pass(已记录经验)
|
|
6
|
+
// - compound_skipped === true → pass(显式豁免,用户主动跳过)
|
|
7
|
+
// - workflow === 'tweak' → 不进入本检查器(由 WORKFLOW_TRANSITION_CHECKS 豁免)
|
|
8
|
+
// - 其他情况 → fail(提示用户执行 tf solutions capture 或显式 skip)
|
|
9
|
+
//
|
|
10
|
+
// 设计原则:
|
|
11
|
+
// - 与 arch-design 检查器同属"产物存在性"维度,不涉及内容质量评审
|
|
12
|
+
// - 只检查 learnings.md 存在,不验证 frontmatter 格式(advisory 由 ce-compound 保证)
|
|
13
|
+
// - 显式 skip 必须通过 state 字段(`tf state set compound_skipped true`),防止遗忘
|
|
14
|
+
|
|
15
|
+
import fs from 'node:fs';
|
|
16
|
+
import path from 'node:path';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 从 .team-flow.yaml 提取顶层字段值(与 arch-design.mjs 同源模式)
|
|
20
|
+
*/
|
|
21
|
+
function extractYamlField(content, field) {
|
|
22
|
+
for (const line of content.split('\n')) {
|
|
23
|
+
const match = line.match(new RegExp(`^${field}:\\s*(.*)`));
|
|
24
|
+
if (match) {
|
|
25
|
+
const val = match[1].trim();
|
|
26
|
+
return val === 'null' || val === '' ? null : val;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Check compound engineering capture for the executing:closing transition.
|
|
34
|
+
*
|
|
35
|
+
* @param {string} changeDir - change directory path
|
|
36
|
+
* @returns {{ pass: boolean, failures: string[] }}
|
|
37
|
+
*/
|
|
38
|
+
export function checkCompoundCaptured(changeDir) {
|
|
39
|
+
const failures = [];
|
|
40
|
+
|
|
41
|
+
// 1. 检查 learnings.md 存在且非空
|
|
42
|
+
const learningsPath = path.join(changeDir, 'learnings.md');
|
|
43
|
+
if (fs.existsSync(learningsPath)) {
|
|
44
|
+
const content = fs.readFileSync(learningsPath, 'utf-8').trim();
|
|
45
|
+
if (content.length > 0) {
|
|
46
|
+
return { pass: true, failures: [] };
|
|
47
|
+
}
|
|
48
|
+
// 文件存在但为空,视为未捕获
|
|
49
|
+
failures.push('learnings.md exists but is empty — run `tf solutions capture` or populate with session learnings');
|
|
50
|
+
return { pass: false, failures };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// 2. 检查显式豁免(compound_skipped === true)
|
|
54
|
+
const stateFile = path.join(changeDir, '.team-flow.yaml');
|
|
55
|
+
if (fs.existsSync(stateFile)) {
|
|
56
|
+
const raw = fs.readFileSync(stateFile, 'utf-8');
|
|
57
|
+
const skipped = extractYamlField(raw, 'compound_skipped');
|
|
58
|
+
if (skipped === 'true') {
|
|
59
|
+
return { pass: true, failures: [] };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// 3. 未捕获且未豁免 → fail
|
|
64
|
+
failures.push(
|
|
65
|
+
'Compound capture missing: no learnings.md found in change directory. ' +
|
|
66
|
+
'Run `tf solutions capture --phase review --domain <d> --type insight --severity medium --summary "..."` ' +
|
|
67
|
+
'to document session learnings, or `tf state set compound_skipped true` to explicitly skip.'
|
|
68
|
+
);
|
|
69
|
+
return { pass: false, failures };
|
|
70
|
+
}
|
package/scripts/guard/guard.mjs
CHANGED
|
@@ -13,6 +13,7 @@ import { checkContractCurrent } from './checks/contract-current.mjs';
|
|
|
13
13
|
import { checkDp3Approved } from './checks/dp3-approved.mjs';
|
|
14
14
|
import { checkExecutionPlanReady } from './checks/execution-plan-ready.mjs';
|
|
15
15
|
import { checkExecutionReviewsPassed } from './checks/execution-reviews-passed.mjs';
|
|
16
|
+
import { checkCompoundCaptured } from './checks/compound-captured.mjs';
|
|
16
17
|
|
|
17
18
|
// Transition matrix: <from>:<to> → required check dimensions
|
|
18
19
|
const TRANSITION_CHECKS = {
|
|
@@ -21,7 +22,7 @@ const TRANSITION_CHECKS = {
|
|
|
21
22
|
'specifying:bridging': ['artifacts-exist', 'schema-valid'],
|
|
22
23
|
'bridging:approved-for-build': ['artifacts-exist', 'schema-valid', 'contract-fresh', 'dp-gate-passed'],
|
|
23
24
|
'approved-for-build:executing': ['artifacts-exist', 'contract-fresh', 'dp-gate-passed', 'execution-plan-ready'],
|
|
24
|
-
'executing:closing': ['tasks-complete', 'tests-passing', 'specs-merged', 'execution-plan-ready', 'execution-reviews-passed'],
|
|
25
|
+
'executing:closing': ['tasks-complete', 'tests-passing', 'specs-merged', 'execution-plan-ready', 'execution-reviews-passed', 'compound-captured'],
|
|
25
26
|
|
|
26
27
|
// Debugging side-path
|
|
27
28
|
'executing:debugging': [],
|
|
@@ -165,6 +166,7 @@ async function main() {
|
|
|
165
166
|
'execution-plan-ready': (dir) => checkExecutionPlanReady(dir),
|
|
166
167
|
'execution-reviews-passed': (dir) => checkExecutionReviewsPassed(dir),
|
|
167
168
|
'arch-design': (dir) => checkArchDesign(dir),
|
|
169
|
+
'compound-captured': (dir) => checkCompoundCaptured(dir),
|
|
168
170
|
};
|
|
169
171
|
|
|
170
172
|
const checks = [];
|
|
@@ -26,6 +26,8 @@ const SETTABLE_FIELDS = [
|
|
|
26
26
|
// Architecture design gate (v0.9 §26, v0.22.5 评审修复 F02)
|
|
27
27
|
'arch_design_decision', 'arch_design_reason',
|
|
28
28
|
'arch_design_timestamp', 'arch_design_artifacts',
|
|
29
|
+
// Compound engineering capture gate (v0.24.0 复利贯穿强制化)
|
|
30
|
+
'compound_skipped',
|
|
29
31
|
];
|
|
30
32
|
|
|
31
33
|
export async function run(args) {
|
|
@@ -130,7 +130,7 @@ ${learning.body}
|
|
|
130
130
|
return { promoted, updated };
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
if (process.argv[1]?.includes('solutions-promote')) {
|
|
133
|
+
if (process.env.NODE_ENV !== 'test' && process.argv[1]?.includes('solutions-promote')) {
|
|
134
134
|
const args = { _: [] };
|
|
135
135
|
for (let i = 2; i < process.argv.length; i++) {
|
|
136
136
|
if (process.argv[i].startsWith('--')) {
|
|
@@ -43,6 +43,8 @@ const BUILTIN_DEFAULTS = {
|
|
|
43
43
|
arch_design_reason: null,
|
|
44
44
|
arch_design_timestamp: null,
|
|
45
45
|
arch_design_artifacts: null,
|
|
46
|
+
// Compound engineering capture gate (v0.24.0 复利贯穿强制化)
|
|
47
|
+
compound_skipped: null,
|
|
46
48
|
};
|
|
47
49
|
|
|
48
50
|
/**
|
|
@@ -117,6 +119,9 @@ export function writeState(changeDir, state) {
|
|
|
117
119
|
lines.push(`arch_design_reason: ${state.arch_design_reason ?? 'null'}`);
|
|
118
120
|
lines.push(`arch_design_timestamp: ${state.arch_design_timestamp ?? 'null'}`);
|
|
119
121
|
lines.push(`arch_design_artifacts: ${state.arch_design_artifacts ?? 'null'}`);
|
|
122
|
+
lines.push('');
|
|
123
|
+
lines.push('# === Compound engineering capture gate (v0.24.0) ===');
|
|
124
|
+
lines.push(`compound_skipped: ${state.compound_skipped ?? 'null'}`);
|
|
120
125
|
|
|
121
126
|
fs.writeFileSync(filePath, lines.join('\n') + '\n', 'utf-8');
|
|
122
127
|
}
|
|
@@ -49,7 +49,7 @@ Scientific method: form a single hypothesis ("I think X is the root cause becaus
|
|
|
49
49
|
|
|
50
50
|
### DP-5: Debug Escalation (3+ Failures)
|
|
51
51
|
|
|
52
|
-
3+ failed fixes = architectural problem. Each fix revealing new problems elsewhere = wrong architecture. Record: `npx --yes --package @xulthekl/team-flow@0.
|
|
52
|
+
3+ failed fixes = architectural problem. Each fix revealing new problems elsewhere = wrong architecture. Record: `npx --yes --package @xulthekl/team-flow@0.25.1 tf state set <change-dir> dp_5_result <decision>`. Discuss with user before attempting more fixes.
|
|
53
53
|
|
|
54
54
|
## Red Flags — Return to Phase 1
|
|
55
55
|
|