Aikodoc
工作台 (Workbench)

在开发 sidebar 跑 pipeline

写 spec + tasks,让 Aiko Chat 按流水线把代码 + 测试 + 证据全跑出来

如果你是开发,dev sidebar 是你的主战场。4 件 dev 文档 + 一条 aiko.pipeline 流水线,让 Aiko Chat 替你跑 §1-§5。

你要起草的 4 件 + 1 个 pipeline

文件写啥谁写
proposal.md这次工程 change 启动原因
specs/**/*.mdcapability 行为契约(EARS + Gherkin)
design.mdcapability 内部怎么实现
tasks.md实施步骤(按 pipeline 五段)
aiko.pipeline.yaml控制状态机推进脚本自动管

不同档位写多少

档位proposalspecs/designtasks
xs
s
tech
m / l

specs/ 怎么写:EARS + Gherkin

每个 capability 在 specs/<name>.md

## Requirement: 折扣计算引擎 [satisfies: REQ-FN-007]

When a 购物车包含可叠加优惠券, the system shall 按优先级矩阵计算
最终折扣金额, returning 折扣后的订单总价.

### Scenario: 单张满减券生效
  Given 购物车总价 200 元
  And 用户持有"满 100 减 20"券
  When 用户选中该券
  Then 订单总价显示 180 元
  And 折扣明细记录该券的 coupon_id

### Scenario: 满减券 + 折扣券叠加
  Given 购物车总价 300 元
  And 用户持有"满 100 减 20"券 + "9 折券"
  When 用户选中两张券
  Then 按优先级先满减再折扣
  And 订单总价显示 252 元

每个 Requirement 必须有 satisfies 指向 PD 的 REQ-FN-*scenario-quality Validator 守门:GWT 结构 / 名不重复。

tasks.md 怎么写:按 pipeline 五段分节

## §1 Implement capability [pipeline: impl]
- [ ] T-001 实现 DiscountEngine.calculate() 主流程
- [ ] T-002 接入 Redis 缓存层
- [ ] T-003 写规则编译器

## §2 TDD [pipeline: tdd]
- [ ] T-101 单测 DiscountEngine 所有规则
- [ ] T-102 单测 缓存命中 / 穿透 / 击穿

## §3 Generate E2E [pipeline: e2e_gen]
- [ ] T-201 按 test-cases TC-007 生成 tests/e2e/coupon_basic.spec.ts
- [ ] T-202 按 TC-008 生成叠加场景脚本

## §4 Run E2E [pipeline: e2e_run]
- [ ] T-301 跑通本 group L2 全部用例

## §5 Evidence [pipeline: evidence]
- [ ] T-401 截图 + 报告 → test-evidence.md

每段头部的 [pipeline: <node>] 标签必须有pipeline-gate Validator 守门:tasks 段勾完但 node 没推进 → ERROR。

让 Aiko Chat 全自动跑

最省事的姿势:调 /aiko-apply-dev,让 Aiko Chat 把 §1-§5 一口气跑完:

> /aiko-apply-dev add-coupon-discount

[pipeline: impl] 实现 DiscountEngine.calculate()...
 src/discount/engine.ts (+128 lines)

[pipeline: tdd] 写单测...
 tests/unit/engine.test.ts (12 cases passed)

[pipeline: e2e_gen] 按 TC-007 / TC-008 写 E2E 脚本...
 tests/e2e/coupon_basic.spec.ts

[pipeline: e2e_run] 跑 L2 全量...
 14/14 passed

[pipeline: evidence] 回填 test-evidence.md...

[pipeline: ready] pre-archive 校验通过 ✓

中间出错它停下来,你修完它接着跑。

也可以手动一步一步跑

# 初始化
./scripts/pipeline/init-pipeline.sh --change add-coupon-discount --demo coupon

# 顺次推进
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to impl
# Aiko Chat 写代码,你 diff approval...
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to tdd
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to e2e_gen
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to e2e_run
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to evidence
./scripts/pipeline/advance-node.sh --change add-coupon-discount --to ready

详细看 推进开发任务到 ready

开始前必须满足的 DoR

feature/* 分支拉出来之前,这 4 条全过才能开始写代码

#条件谁负责
1acceptance 可测(每条 ACC 有 GWT)PD
2每条 ACC 至少 1 条 TC 覆盖QA
3tasks.md 里 ACC ↔ TC ↔ §3/§4 映射齐全
4同 group 三包能 bundle resolve你跑 validate

没过 → dor 节点不让你推进到 impl

design.md 写啥(tech / m / l 才必填)

capability 内部实现细节:

  • 关键算法(不写 RFC 级伪代码,写关键路径)
  • 数据流(图 + 步骤)
  • 边界处理 / 异常分支
  • 性能 / 缓存 / 重试策略

不写系统级架构(归 architecture.md)。

写完之后

./scripts/aiko-validate.sh 全过 → 走合并流程。

合并门禁取决于 gitPath

合并默认要求
feature → developvalidate + L2 全过 + CI E2E
develop → releasevalidate + bundle + L3
release → mainL4 evidence + pre-archive

关联

On this page