agent-spec 0.3.0

AI-native BDD/Spec verification tool for contract-driven agent coding
spec: task
name: "正式化场景到测试的绑定"
inherits: project
tags: [bootstrap, verify, parser, contract]
---

## 意图

把任务合约里的完成条件与 Rust 测试之间的绑定,
从临时的 `// @spec:` 注释约定升级为 spec 内可声明的正式机制。

## 已定决策

- 场景可用 `测试:` / `Test:` 显式声明 Rust test selector
- `TestVerifier` 优先使用场景内显式 selector
- 旧的 `// @spec:` 注释继续保留为兼容 fallback

## 边界

### 允许修改
- src/spec_core/**
- src/spec_parser/**
- src/spec_verify/**
- src/**
- specs/**

### 禁止做
- 不要移除现有 `// @spec:` 兼容能力
- 不要要求所有旧 spec 一次性迁移
- 不要把测试绑定继续留在只靠源码注释的状态

## 完成条件

场景: 场景可显式声明测试选择器
  测试: test_parse_scenario_with_explicit_test_selector
  假设 某个场景块包含 `测试:` 行
  当 parser 解析该场景
  那么 AST 中保留 `test_selector`
  并且 JSON 输出中也包含该 selector

场景: 显式测试选择器优先于旧注释映射
  测试: test_explicit_scenario_selector_takes_precedence_over_legacy_comment_binding
  假设 同一个场景同时存在显式 selector 和旧注释映射
  当 TestVerifier 解析绑定关系
  那么 显式 selector 优先
  并且 不再依赖场景名去匹配测试函数

场景: 旧版注释绑定继续兼容
  测试: test_legacy_comment_binding_is_used_when_no_explicit_selector_exists
  假设 某个场景没有显式 selector
  当 TestVerifier 解析绑定关系
  那么 旧版 `// @spec:` 映射仍然可用
  并且 现有自举规格不需要一次性全部迁移