<一句话说清『这个 skill 做什么 + 何时调用』。把最关键的触发场景放最前面。结尾给 2-3 个用户会说的关键词。>
The English summary is being prepared. Showing the original description.
生成芯片/IP 产品需求文档(PRD),从市场需求和技术约束输出专业 PRD 规范。
Generate Product Requirements Document for chip/IP design projects. Trigger: /bb-prd, PRD生成, 产品需求文档, 芯片立项, IP需求, chiplet specification
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
从市场需求和技术约束生成专业的 PRD(Product Requirements Document),为后续架构设计提供规范输入。
初始化目录结构 .skills_local/bb-prd/,收集项目上下文,解析路径。
<HARD-GATE>
在任何 PRD 生成操作前,必须完成以下步骤:
1. Self-Adaptive 初始化 + 项目上下文收集
```bash
SCRIPT_DIR=~/.claude/scripts
python3 "$SCRIPT_DIR/adaptive/adaptive_init.py" \
--skill "bb-prd" \
--project-dir "{{ PROJECT_DIR }}"
成功标志:
.skills_local/bb-prd/local.json 存在.skills_local/bb-prd/project_context.json 存在.skills_local/bb-prd/paths.json 存在加载配置文件
import json
with open(".skills_local/bb-prd/project_context.json") as f:
CONTEXT = json.load(f)
SCOPE = CONTEXT.get("config", {}).get("scope", "chip")
INPUT_DIR = CONTEXT["resolved_paths"]["INPUT_DIR"]
OUTPUT_DIR = CONTEXT["resolved_paths"]["OUTPUT_DIR"]
创建执行日志目录
mkdir -p "${LOG_DIR}"
LOG_FILE="${LOG_DIR}/prd-$(date -u +%Y%m%dT%H%M%S).log"
echo "[$(date -u +%Y%m%dT%H%M%SZ)] [INFO] HARD-GATE: 初始化完成" >> "${LOG_FILE}"
禁止行为(在完成初始化前):
---
## Pipeline Position
市场需求/idea ──→ [bb-prd] ──→ prd/ ──→ bb-arch ──→ spec_arch/ ──→ bb-mas ──→ spec_mas/ OUTPUT_DIR
PRD 是芯片设计流程的第一个正式文档,定义产品目标、功能需求、性能指标、成本约束。
---
## 铁律(违反即停止)
> 以下规则不受 auto_approve 影响,任何模式下均不得绕过。
1. **输入先行铁律**:`INPUT_DIR` 无有效 `.md` 文件 → 拒绝执行,提示用户提供需求文档
2. **SMART 铁律**:需求含"大约/适当/较好/尽量"等模糊词 → 停止,要求澄清为可量化指标
3. **Margin 铁律**:Power/Area budget 未预留 ≥10% margin → 不输出 PRD(PVT corner + IR drop + aging 通常消耗 15%+)
4. **REQ ID 铁律**:需求 ID 重复或缺失 → 不进入 Phase 14 对抗评审
5. **追溯完整铁律**:每条 REQ 无后续文档追溯列 → 不声明 PRD 完成,追溯矩阵事后补必然漏项
---
## 设计范围分类
| Scope | 适用场景 | 文档重点 |
|-------|---------|---------|
| **chip** | Chiplet、SoC、ASIC、FPGA | 系统级需求、Chiplet组合、D2D互连 |
| **ip** | IP模块(CPU、Memory、Interconnect) | IP级功能、接口规范、集成要求 |
---
## Global Paths
PROJECT_DIR = {{ project_dir 参数 或 auto-detect }} INPUT_DIR = {{ input_dir 参数 }} OUTPUT_DIR = {{ PROJECT_DIR }}/prd TEMPLATE_DIR = ~/.claude/skills/bb-prd/templates REFERENCE_DIR = ~/.claude/skills/bb-prd/references SCRIPT_DIR = ~/.claude/scripts SKILL_FILE = ~/.claude/skills/bb-prd/SKILL.md LOG_DIR = {{ OUTPUT_DIR }}/.logs
---
## 知识库引用
以下文件按需加载,用于特定章节生成:
| 文件 | 加载时机 | 用途 |
|------|----------|------|
| `references/ic-terminology.md` | 全流程 | IC 专业术语参考 |
| `references/chiplet-standards.md` | Phase 5 | UCIe、IEEE 1838 等标准 |
| `references/functional-safety.md` | Phase 9 | ISO 26262 功能安全 |
| `references/security-requirements.md` | Phase 10 | 安全需求模板 |
---
## 输入
- `INPUT_DIR/*.md`:市场需求文档、产品定义、技术备忘录
- 支持格式:
- 市场分析报告(目标市场、竞争分析)
- 技术可行性分析(性能目标、成本预算)
- 初步 idea 描述(功能构想、应用场景)
---
## 输出目录结构
### scope=chip(芯片级)
prd/ ├── PRD.md # 主 PRD 文档 ├── market_analysis.md # 市场分析附录(可选) ├── competitor_matrix.md # 竞品对比矩阵(可选) ├── cost_model.md # 成本模型(可选) ├── timeline.md # 项目时间线 ├── traceability_matrix.md # 需求追溯矩阵 └── .logs/ # 执行日志
### scope=ip(IP模块级)
prd/ ├── IP_PRD.md # IP 级 PRD 文档 ├── interface_requirements.md # 接口需求详解 ├── integration_spec.md # 集成规范 ├── verification_requirements.md # 验证需求 └── .logs/ # 执行日志
---
# 执行流程
## 增量更新机制
每次成功完成后,将输入文件哈希写入 `<output_dir>/.archive/input_snapshot.json`。下次执行时在 Phase 0 之前自动比对。
### 输入快照格式
```json
{
"snapshot_time": "<ISO8601+08:00>",
"skill": "bb-prd",
"input_files": {
"<relative-path>": "<sha256>"
}
}
IF update=full → 跳过检测,走 MAJOR 路径
IF update=patch → 跳过检测,走 MINOR 路径
ELSE (auto):
IF input_snapshot.json 不存在
→ FULL RUN(首次执行,不归档)
ELSE
sha256sum 所有 input_dir/*.md 及 parsed_idea.json(若存在)
与 snapshot 对比
IF 哈希全部一致 → 输出 "输入未变更,跳过生成" 并退出
IF 哈希有差异 → 按下表分类
| 条件(满足任意一条) | 分类 |
|---|---|
design_name 变更 | MAJOR |
protocols[] 增删或重命名 | MAJOR |
target_pdk 变更 | MAJOR |
target_freq_mhz 变化 > 20% | MAJOR |
scope 变更(chip ↔ ip) | MAJOR |
| 输入总字符数变化 > 30% | MAJOR |
| 其他所有变更(描述文字、预算调整等) | MINOR |
TIMESTAMP=$(date -u +%Y%m%dT%H%M%S)
ARCHIVE="{{ OUTPUT_DIR }}/.archive/$TIMESTAMP"
mkdir -p "$ARCHIVE"
# 移入归档(mv,可恢复)
for f in "{{ OUTPUT_DIR }}"/*.md "{{ OUTPUT_DIR }}"/*.json; do
[ -f "$f" ] && mv "$f" "$ARCHIVE/"
done
echo "{\"reason\":\"MAJOR\",\"timestamp\":\"$TIMESTAMP\"}" > "$ARCHIVE/CHANGE_REASON.json"
归档完成后执行 FULL RUN(从 Phase 0 正常继续)。
根据变更字段决定重跑的最早 Phase:
| 变更内容 | 从此 Phase 重跑 |
|---|---|
| 核心技术指标(freq、协议、面积/功耗预算) | Phase 3(Executive Summary)起 |
| 描述/上下文文字修改 | Phase 3(Executive Summary)起 |
| 安全/合规要求变更 | Phase 9 起 |
| 里程碑/时间表变更 | Phase 11 起 |
未受影响的 Phase 输出保持不变。完成后更新 {{ OUTPUT_DIR }}/.archive/input_snapshot.json。
INPUT_DIR 目录内容.md 文件提取关键需求输出产物:parsed_requirements.json(暂存上下文)
auto_approve 模式:基于文档推断需求,不使用 AskUserQuestion。
澄清重点:
输出产物:
clarified_requirements:
product_positioning: [...]
performance_targets: [...]
technology_node: [...]
cost_budget: [...]
timeline_constraints: [...]
safety_level: [...]
open_questions: [...]
并行启动多个 Agents:
Agent_1:
name: "Market-Search"
subagent_type: "Explore"
prompt: |
Search for market data and industry trends:
- Query: "{{芯片类型}} market size {{年份}}"
- Query: "{{应用场景}} semiconductor demand forecast"
Report:
1. Market size and growth rate
2. Key players and market share
3. Emerging trends
Thoroughness: medium
Agent_2:
name: "Competitor-Analysis"
subagent_type: "general-purpose"
prompt: |
Search for competing products:
- "{{芯片类型}} competing products"
- "{{目标市场}} alternative solutions"
Summarize:
1. Feature comparison matrix
2. Performance benchmarks
3. Price points
Agent_3:
name: "Tech-Trends"
subagent_type: "docs-lookup"
prompt: |
Fetch documentation for:
- Latest chiplet standards (UCIe 2.0/3.0)
- Packaging technologies (CoWoS, EMIB, Foveros)
- Memory technologies (HBM3e, DDR5)
Return: key specifications, trends
整合调研结果到 ${OUTPUT_DIR}/market_analysis.md(可选)。
根据 scope 选择模板:
scope=chip:
templates/chip_prd_template.mdscope=ip:
templates/ip_prd_template.md输出产物:PRD.md §1 Executive Summary
设计内容:
格式:
| UC ID | Use Case | Target Workload | KPI |
|-------|----------|-----------------|-----|
| UC-01 | {{场景}} | {{benchmark}} | {{定量目标}} |
输出产物:PRD.md §2
根据 scope 分章节:
Compute Requirements (REQ-COMPUTE-xxx)
Memory Requirements (REQ-MEM-xxx)
Connectivity Requirements (REQ-IO-xxx)
Function Requirements (REQ-FUNC-xxx)
Interface Requirements (REQ-INTF-xxx)
输出产物:PRD.md §3
设计内容:
Performance (REQ-PERF-xxx)
Power & Thermal (REQ-PWR-xxx, REQ-THERM-xxx)
Cost & Area (REQ-COST-xxx, REQ-AREA-xxx)
Reliability (REQ-REL-xxx)
输出产物:PRD.md §4
加载知识库:references/chiplet-standards.md
设计内容:
输出产物:PRD.md §5-7
设计内容:
输出产物:PRD.md §10
当需求包含汽车/工业安全等级时启用。
加载知识库:references/functional-safety.md
设计内容:
输出产物:PRD.md §11
当需求包含安全场景时启用。
加载知识库:references/security-requirements.md
设计内容:
输出产物:PRD.md §12
设计内容:
输出产物:PRD.md §13-14
自动检查 PRD 质量:
- [ ] 所有 REQ-xxx 有唯一 ID
- [ ] 每条需求符合 SMART
- [ ] 性能指标有 min/typ/max
- [ ] Chiplet/IP 需求分层清晰
- [ ] UCIe 合规等级明确
- [ ] Power budget ≤ TDP(含 ≥10% margin)
- [ ] Area budget ≤ target
- [ ] Variability 已标注(corner/temp/voltage)
输出产物:PRD.md §16
生成需求追溯矩阵(RTM),关联 REQ ID 与后续文档:
| REQ ID | ARCH Ref | MAS Ref | VPlan Ref |
|--------|----------|---------|-----------|
| REQ-COMPUTE-001 | §3.1 | M01-MAS | VP-COMP-01 |
输出产物:traceability_matrix.md
调用评审:
Skill(skill="it.spec-review", args="--spec-path {{ OUTPUT_DIR }} --output-dir {{ OUTPUT_DIR }}/.review")
评审维度:
| Agent 的借口 | 为什么错 |
|---|---|
| "需求文档不完整,但可以先生成 PRD 框架" | PRD 空框架比没有更危险——下游 bb-arch 会基于错误假设展开,修正成本以人月计 |
| "这个产品定位很明显,不需要澄清" | IC 设计 Tape-out 返工成本百万级,澄清成本为零;明显的定位往往隐藏分歧 |
| "Margin 预留 5% 应该够用了" | PVT corner + IR drop + aging + 制造偏差通常吃掉 15%+;5% 在 silicon 验证时必然爆 |
| "追溯矩阵可以事后补" | 事后补的追溯矩阵几乎必然漏项,而漏项在 silicon debug 时才暴露,成本以周计 |
| "性能指标暂时用 TBD,后续再定" | TBD 指标会传播到 bb-arch 的 timing budget,导致整个设计基础不稳 |
| "竞品调研花时间,可以跳过" | 不看竞品等于主动重复已知错误;IC 领域竞品失败案例是最宝贵的免费学习资源 |
| 工具 / 资源缺失 | 降级方案 |
|---|---|
| WebSearch 不可用 | 使用 parallel_search CLI:uv run parallel-search "{{query}}" |
| parallel_search CLI 不可用 | 跳过 Phase 2 竞品调研,在 PRD 中标注 "⚠️ 竞品分析待补充" |
| it.spec-review 不可用 | 使用 Phase 12 内置 Quality Checklist 代替对抗评审,结果内联到 PRD §16 |
| 市场数据不完整 | 使用保守估计,在 PRD 明确标注数据来源和置信度等级(High/Medium/Low) |
| 安全等级未定义 | 根据应用场景推断(汽车→ASIL-D,工业→SIL-2,消费→无),标注 "⚠️ 推断值待确认" |
详见 templates/ 目录:
chip_prd_template.md — Chiplet/SoC PRD 模板ip_prd_template.md — IP 模块 PRD 模板详见 references/ 目录:
ic-terminology.md — IC 专业术语chiplet-standards.md — Chiplet 相关标准functional-safety.md — 功能安全规范security-requirements.md — 安全需求模板以下条件全部满足才可声明 PRD 完成,并触发 bb-arch handoff。缺一不可。
prd/PRD.md 存在且所有章节非空(无 "TODO" 占位)traceability_matrix.md 存在且覆盖全部 REQ(覆盖率 100%)禁止在上述条件未满足时声明 PRD 完成或触发 bb-arch。
When any Phase fails:
{{ OUTPUT_DIR }}/execution.logbash {{ EVOLUTION_FRAMEWORK }}/evolve.sh \
--skill "{{ SKILL_FILE }}" \
--output "{{ OUTPUT_DIR }}" \
--failure-phase "{{ FAILED_PHASE }}"
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
<一句话说清『这个 skill 做什么 + 何时调用』。把最关键的触发场景放最前面。结尾给 2-3 个用户会说的关键词。>
The English summary is being prepared. Showing the original description.
从粗略 idea 设计芯片或功能模块架构,输出专业架构文档到 spec_arch 目录。Trigger: 芯片架构设计, IC架构, 电路模块设计, 硬件架构. Generate IC/Chip architecture specification from rough ideas.
The English summary is being prepared. Showing the original description.
基于 AST 检查 CDC/RDC 违例:对比 MAS clock_domains 找跨域信号,检查是否被 2ff-sync CBB 保护。触发场景:(1) bba-guru-synthesis 综合前;(2) 显式 /bb-check-cdc。
The English summary is being prepared. Showing the original description.
调用 babel-lsp / verible-verilog-lint 检查 SV 源码。src 必须可综合(零 syntax error),tb 允许 verification constructs。发现 src error 时自动修复重检(max 3 iter)。触发:(1) bba-guru-rtl 生成后;(2) RTL 修复重检;(3) 显式 /bb-check-lint。
The English summary is being prepared. Showing the original description.
Babel internal issue protocol — close a handoff after downstream agent picked it up or user signed off. Moves designs/<name>/.handoff/<label>.md to .handoff/closed/ (using mv per CLAUDE.md), appends to handoff_log.jsonl.
The English summary is being prepared. Showing the original description.
对抗性代码评审:代码质量 / 可维护性 / 时序风险 / 综合友好度 / MAS 对齐度。默认 ruthless 模式,找 EVERY flaw。触发场景:(1) RTL lint 后;(2) 显式 /bb-code-review。
The English summary is being prepared. Showing the original description.