<一句话说清『这个 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.
See how to installReview the instructions the agent will receive before you install.
从粗略 idea 设计芯片或 IP 模块的架构规范文档。
初始化目录结构 .skills_local/bb-arch/,收集项目上下文,解析路径。
<HARD-GATE>
在任何架构设计操作前,必须完成以下步骤:
1. Self-Adaptive 初始化 + 项目上下文收集
```bash
SCRIPT_DIR=~/.claude/scripts
python3 "$SCRIPT_DIR/adaptive/adaptive_init.py" \
--skill "bb-arch" \
--project-dir "{{ PROJECT_DIR }}"
成功标志:
.skills_local/bb-arch/local.json 存在.skills_local/bb-arch/project_context.json 存在.skills_local/bb-arch/paths.json 存在加载配置文件
import json
with open(".skills_local/bb-arch/project_context.json") as f:
CONTEXT = json.load(f)
DESIGN_TYPE = CONTEXT.get("design_type", "asic") # asic, fpga, analog
TECHNOLOGY = CONTEXT.get("technology", "unknown") # 28nm, 40nm, etc.
with open(".skills_local/bb-arch/paths.json") as f:
PATHS = json.load(f)
OUTPUT_DIR = PATHS["resolved_paths"]["OUTPUT_DIR"]
INPUT_DIR = PATHS["resolved_paths"]["INPUT_DIR"]
LOG_DIR = PATHS["resolved_paths"]["LOG_DIR"]
创建执行日志目录
mkdir -p "${LOG_DIR}"
LOG_FILE="${LOG_DIR}/bb-arch-$(date -u +%Y%m%dT%H%M%S).log"
echo "[$(date -u +%Y%m%dT%H%M%SZ)] [INFO] HARD-GATE: 初始化完成" >> "${LOG_FILE}"
禁止行为(在完成初始化前):
---
## 铁律(违反即停止)
> 以下规则不受 auto_approve 影响,任何模式下均不得绕过。
1. **PRD 先行铁律**:无 `prd/PRD.md` 或 `prd/IP_PRD.md` → 拒绝执行,架构设计必须有 PRD 作为约束边界
2. **CDC 完整铁律**:时钟域边界未定义同步策略 → Phase 4 不通过;留白 CDC 方案等同于硅片缺陷
3. **电源域边界铁律**:跨域信号缺少 isolation cell 定义 → Phase 5 不通过
4. **DFT 早期铁律**:DFT 策略必须在 Phase 8 完成,禁止推迟到 RTL 阶段(后期插入成本极高)
5. **范围锁定铁律**:PRD 未明确提及的功能不纳入架构设计,即使技术上可行
---
## Global Paths
PROJECT_DIR = {{ --project_dir 或 auto-detect }} INPUT_DIR = {{ idea_dir 参数 }} OUTPUT_DIR = {{ PROJECT_DIR }}/spec_arch SCRIPT_DIR = ~/.claude/scripts PROJECT_SCRIPTS = {{ PROJECT_DIR }}/scripts SKILL_FILE = ~/.claude/skills/bb-arch/SKILL.md KNOWLEDGE_DIR = ~/.claude/skills/bb-arch/knowledge TEMPLATE_DIR = ~/.claude/skills/bb-arch/templates
---
## 知识库引用
以下文件按需加载,用于特定设计阶段:
| 文件 | 加载时机 | 用途 |
|------|----------|------|
| `knowledge/clock_reset_design.md` | Phase 4 | 时钟域划分、复位策略 |
| `knowledge/power_design.md` | Phase 5 | 电源域划分、功耗估算 |
| `knowledge/dft_strategy.md` | Phase 6 | 可测试性设计 |
| `knowledge/verification_strategy.md` | Phase 7 | 验证计划 |
| `references/ic-terminology.md` | 全流程 | IC 专业术语参考 |
**项目级 Coding Style 参考**(RTL 设计阶段):
- `wiki/codingstyle/systemverilog_styleguide.md` — SystemVerilog Style Guide (systemverilog.io)
- `wiki/codingstyle/freescale_verilog_standard.md` — Freescale Verilog HDL Coding Standard SRS V3.2
---
## 输入
- `INPUT_DIR/*.md`:idea 文本描述
- `INPUT_DIR/*.drawio`:架构草图(可选)
---
## 输出目录结构
### scope=chip(芯片级)
spec_arch/ ├── chip_overview.md # 芯片概述与特性表 ├── block_diagram.md # 系统框图(Mermaid) ├── clock_reset_spec.md # 时钟复位架构 ├── memory_map.md # 存储架构与地址映射 ├── power_spec.md # 电源架构 ├── io_pinout.md # IO与引脚定义 ├── security_spec.md # 安全架构(可选) ├── dft_spec.md # 可测试性设计 ├── verification_plan.md # 验证策略 ├── ip_blocks/ # 各IP模块详细设计 │ ├── cpu_core.md │ ├── memory_ctrl.md │ ├── peripheral_x.md │ └── ... └── design_notes.md # 设计说明与约束
### scope=block(IP模块级)
spec_arch/ ├── block_overview.md # 模块概述 ├── theory_of_operation.md # 工作原理 ├── block_diagram.md # 模块框图 ├── interface_spec.md # 接口规范 ├── register_map.md # 寄存器映射 ├── design_details.md # 设计细节 ├── programmer_guide.md # 编程指南 └── verification_checklist.md # 验证清单
---
# 执行流程
## 增量更新机制
每次成功完成后,将输入文件哈希写入 `<output_dir>/.archive/input_snapshot.json`。下次执行时在 Phase 0 之前自动比对。
### 输入快照格式
```json
{
"snapshot_time": "<ISO8601+08:00>",
"skill": "bb-arch",
"input_files": {
"<relative-path>": "<sha256>"
}
}
IF update=full → 跳过检测,走 MAJOR 路径
IF update=patch → 跳过检测,走 MINOR 路径
ELSE (auto):
IF input_snapshot.json 不存在
→ FULL RUN(首次执行,不归档)
ELSE
sha256sum PRD.md 及 idea_dir/ 下所有文件
与 snapshot 对比
IF 哈希全部一致 → 输出 "输入未变更,跳过生成" 并退出
IF 哈希有差异 → 按下表分类
| 条件(满足任意一条) | 分类 |
|---|---|
| PRD 中协议列表变更(增删/重命名) | MAJOR |
| PRD 中模块/IP 组成变更(增删) | MAJOR |
| scope 变更(chip ↔ ip) | MAJOR |
| PRD 内容字符数变化 > 30% | MAJOR |
| PRD 中主要章节(## 级)数量变化 | MAJOR |
| 其他所有变更(描述细化、指标小幅调整等) | MINOR |
TIMESTAMP=$(date -u +%Y%m%dT%H%M%S)
ARCHIVE="{{ OUTPUT_DIR }}/.archive/$TIMESTAMP"
mkdir -p "$ARCHIVE"
for f in "{{ OUTPUT_DIR }}"/*.md "{{ OUTPUT_DIR }}"/*.json; do
[ -f "$f" ] && mv "$f" "$ARCHIVE/"
done
[ -d "{{ OUTPUT_DIR }}/ADR" ] && mv "{{ OUTPUT_DIR }}/ADR" "$ARCHIVE/"
echo "{\"reason\":\"MAJOR\",\"timestamp\":\"$TIMESTAMP\"}" > "$ARCHIVE/CHANGE_REASON.json"
归档完成后执行 FULL RUN(从 Phase 0 正常继续)。
根据变更内容决定重跑的最早 Phase:
| 变更内容 | 从此 Phase 重跑 |
|---|---|
| 时钟/复位/电源域调整 | Phase 4 起 |
| IO/存储架构调整 | Phase 6 起 |
| DFT 策略调整 | Phase 8 起 |
| 验证策略调整 | Phase 11 起 |
| 其他 MINOR 变更 | Phase 3(系统概述)起 |
未受影响的 Phase 输出保持不变。完成后更新 {{ OUTPUT_DIR }}/.archive/input_snapshot.json。
INPUT_DIR 目录内容.md 文件提取关键需求.drawio 文件提取架构草图(如有)scope=chip:整体芯片架构scope=block:单个 IP 模块架构输出产物:parsed_requirements.json(暂存上下文)
auto_approve 模式:基于文档推断需求,不使用 AskUserQuestion。
澄清重点:
输出产物:
clarified_requirements:
application: [...]
performance_targets: [...]
technology_node: [...]
security_level: [...]
interfaces: [...]
open_questions: [...]
并行启动多个 Agents:
Agent_1:
name: "Chip-Search"
subagent_type: "Explore"
prompt: |
Search GitHub for similar chip/IC designs:
- Query: "{{芯片类型}} {{技术栈}} stars:>50"
- Focus: OpenTitan, Chipyard, OpenROAD, caravel
Report:
1. Repository list with architecture docs
2. Block diagrams observed
3. Clock/reset strategies used
4. Memory architectures
Thoroughness: medium
Agent_2:
name: "Docs-Lookup"
subagent_type: "docs-lookup"
prompt: |
Fetch documentation for:
- RISC-V processor architecture
- TileLink bus protocol
- ASIC design flow
Return: key patterns, interface standards
Agent_3:
name: "WebSearch"
subagent_type: "general-purpose"
prompt: |
Search for:
- "{{芯片类型}} architecture design patterns"
- "{{技术节点}} low power techniques"
- "SoC security architecture best practices"
Summarize: proven approaches, common pitfalls
整合调研结果到 ${OUTPUT_DIR}/research_report.md。
根据 scope 选择模板:
scope=chip:
templates/chip_arch_template.mdscope=block:
templates/ip_block_template.md输出产物:
chip_overview.md 或 block_overview.mdblock_diagram.md加载知识库:knowledge/clock_reset_design.md
设计内容:
输出产物:clock_reset_spec.md
验收标准:
加载知识库:knowledge/power_design.md
设计内容:
输出产物:power_spec.md
验收标准:
设计内容:
输出产物:
memory_map.mdio_pinout.md当需求包含安全等级时启用。
设计内容:
输出产物:security_spec.md
加载知识库:knowledge/dft_strategy.md
设计内容:
输出产物:dft_spec.md
验收标准:
对每个主要 IP 模块,使用 IP Block 模板生成详细设计文档:
设计内容:
输出产物:ip_blocks/*.md
目的:将系统级需求分解到模块级 REQ_ID,建立 traceability 基础。
REQ-SYS-## (PRD) → REQ-M##-F## (模块级功能)
REQ-ARCH-## (ARCH) → REQ-M##-F## (模块级功能)
REQ-NFR-## (PRD) → 贯穿全 pipeline(PPA/功耗/时序约束)
spec/PRD/PRD.md 中的 REQ-SYS-## 列表spec/ARCH/ 中的 REQ-ARCH-## 列表$PROJECT_SCRIPTS/allocate_req_id.py 自动分配编号:
uv run $PROJECT_SCRIPTS/allocate_req_id.py 01 # → REQ-M01-F01
traceability/requirements_matrix.prd.csv(从 PRD 生成)traceability/requirements_matrix.arch.csv(从 ARCH 生成)uv run $PROJECT_SCRIPTS/babel_traceability.py prd
uv run $PROJECT_SCRIPTS/babel_traceability.py arch
加载知识库:knowledge/verification_strategy.md
设计内容:
输出产物:verification_plan.md
调用评审:
Skill(skill="it.spec-review", args="--spec-path {{ OUTPUT_DIR }} --output-dir {{ OUTPUT_DIR }}/.review")
评审维度映射:
| 文档 | 评审维度 |
|---|---|
| clock_reset_spec.md | CDC 完整性、复位覆盖 |
| power_spec.md | 功耗预算合理性、低功耗策略可行性 |
| memory_map.md | 地址冲突、访问权限 |
| dft_spec.md | Coverage 目标可达性 |
| ip_blocks/*.md | 接口一致性、状态机完整性 |
自动修复循环:最多 5 次迭代。
design_notes.md 总结报告uv run $PROJECT_SCRIPTS/check_req_uniqueness.py
clk_sys, rst_main_n, data_in[31:0])| Agent 的借口 | 为什么错 |
|---|---|
| "PRD 还没完成,但可以先做架构框架" | 无 PRD 的架构设计必然返工——PRD 是架构的约束边界,先做等于在沙上建房 |
| "CDC 问题可以在 RTL 阶段再处理" | CDC bug 是 silicon 缺陷第一大来源;架构阶段未定则 RTL 无规范可循,整批缺陷合理化 |
| "这是简单模块,不需要 DFT 规划" | 没有 DFT 的模块在量产测试中必成瓶颈;再简单也需要扫描链,早规划成本为零 |
| "安全需求不明确,先跳过安全架构" | 硬件 Root-of-Trust 不能事后追加;错过架构阶段则整个安全基础需要推倒重来 |
| "电源域可以先用单一统一域" | 单域设计无法支持低功耗模式;后期改造需要重新布局布线,是架构级返工 |
| "调研结果差不多,可以跳过 Phase 2" | 跳过竞品调研等于主动放弃对已有设计的学习;IC 领域重复发明轮子的代价是以季度计 |
| 工具 / 资源缺失 | 降级方案 |
|---|---|
| WebSearch / Agent 超时 | 使用本地 knowledge/ 目录材料继续;在输出文档标注 "⚠️ 竞品调研受限" |
| drawio 文件无法解析 | 要求用户提供文字描述,或从 .md 重建架构意图 |
| it.spec-review 不可用 | 使用 Phase 12 内置评审维度表手动检查,结果写入 .review/manual_review.md |
| 知识库文件缺失(knowledge/) | 降级为模型领域知识;输出中标注 "⚠️ 未加载知识库:{文件名}" |
| 并行 Agent 配额不足 | 顺序执行 Phase 2 的三个 Agent,总时间增加但结果等价 |
以下条件全部满足才可声明 bb-arch 完成,并移交 bb-spec-review(对抗性评审)。缺一不可。
spec_arch/ 中所有 Phase 产物文件均存在且非空clock_reset_spec.md:所有时钟域已定义频率 + CDC 同步策略power_spec.md:所有电源域边界已定义,含 isolation cell 声明dft_spec.md:Scan coverage target ≥ 95% 已声明design_notes.md:包含全部开放问题和架构决策依据(ADR)禁止在上述条件未满足时触发 bb-spec-review handoff。
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.
基于 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.
解析 Verilator coverage.dat + sim log,输出 functional + code coverage 数值,判断是否 100% 达标。触发场景:(1) bb-invoke-verilator 后;(2) 每次回归后;(3) 显式 /bb-collect-coverage。
The English summary is being prepared. Showing the original description.