.claude/skills/ac-coverage-assistant/SKILL.md
[UDS] 分析 AC 與測試的追蹤關係及覆蓋率
npx skillsauth add asiaostrich/universal-dev-standards ac-coverageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
語言: English | 繁體中文
分析驗收條件(AC)與測試之間的追蹤關係,並產生覆蓋率報告。
/coverage 的區別| 面向 | /coverage | /ac-coverage |
|------|-------------|----------------|
| 範圍 | 程式碼層級(行/分支/函式) | 需求層級(AC 對測試) |
| 輸入 | 原始碼 + 測試執行器 | SPEC 檔案 + 測試標註 |
| 問題 | 「有多少程式碼被測試?」 | 「哪些 AC 有測試?」 |
| 輸出 | 覆蓋率百分比 | 追蹤矩陣 + 缺口報告 |
@AC 和 @SPEC 標註覆蓋率 % = (已覆蓋 + 部分 × 0.5) / 總計 × 100測試必須使用標準標註來參考其來源 AC:
// TypeScript/JavaScript
describe('AC-1: 使用有效憑證登入', () => {
// @AC AC-1
// @SPEC SPEC-001
it('成功登入後應重導至儀表板', () => { ... });
});
# Python
class TestAC1_UserLogin:
"""AC-1: 使用有效憑證登入
@AC AC-1
@SPEC SPEC-001
"""
def test_redirect_to_dashboard(self): ...
# BDD Feature
@SPEC-001 @AC-1
Scenario: 使用有效憑證登入
| 門檻 | 預設值 | 強制執行 | |------|--------|----------| | 提交時 | 80% | 功能分支合併必要條件 | | 發布時 | 100% | 正式發布必要條件 | | 警告 | 60% | 觸發覆蓋率警告 |
門檻可透過 --threshold 參數或專案設定進行配置。
--full 模式)使用 --full 標記將追溯從 2 層(AC→Test)擴展為 4 層。
第 0 層:需求 / 使用者故事(REQ)
↓ (定義)
第 1 層:驗收條件(AC)
↓ (@AC 標註)
第 2 層:測試案例
↓ (覆蓋)
第 3 層:原始碼(@implements)
// 第 3→1 層:程式碼參考 AC
// @implements AC-1, AC-2
function authenticate(user: string, pass: string) { ... }
<!-- 第 0→1 層:SPEC 中的需求 -->
## 需求
### REQ-1: 使用者驗證
- AC-1: 給定有效憑證,當登入時,則通過驗證
- AC-2: 給定無效憑證,當登入時,則拒絕登入
## 四層追溯矩陣
| 需求 | AC | 測試 | 程式碼 | 狀態 |
|------|-----|------|--------|------|
| REQ-1 | AC-1 | auth.test.ts:15 | auth.ts:42 | ✅ 完整 |
| REQ-1 | AC-2 | auth.test.ts:30 | auth.ts:58 | ✅ 完整 |
| REQ-2 | AC-3 | — | dashboard.ts:10 | ⚠️ 無測試 |
| REQ-3 | AC-4 | export.test.ts:5 | — | ⚠️ 無程式碼 |
### 缺口摘要
- 第 0→1 層:2 個需求缺少 AC
- 第 1→2 層:1 個 AC 缺少測試
- 第 2→3 層:0 個測試缺少程式碼對應
- 第 3→1 層:3 個程式碼檔案缺少 AC 對應
使用 --trace-code <path> 從程式碼反向追溯到需求。
/ac-coverage --trace-code src/auth.ts
# 輸出:
# src/auth.ts:42 → @implements AC-1 → REQ-1 (SPEC-AUTH-001)
# src/auth.ts:58 → @implements AC-2 → REQ-1 (SPEC-AUTH-001)
產生的報告遵循 core/acceptance-criteria-traceability.md 中的標準格式:
# AC 覆蓋率報告
**規格**: SPEC-001 — 功能名稱
**產生日期**: 2026-03-26
**覆蓋率**: 75% (6/8 AC)
## 摘要
| 狀態 | 數量 | 百分比 |
|------|------|--------|
| ✅ 已覆蓋 | 5 | 62.5% |
| ⚠️ 部分覆蓋 | 2 | 25.0% |
| ❌ 未覆蓋 | 1 | 12.5% |
## 追蹤矩陣
| AC-ID | 描述 | 狀態 | 測試參考 |
|-------|------|------|----------|
| AC-1 | 使用有效憑證登入 | ✅ | auth.test.ts:15 |
| AC-2 | 拒絕無效憑證 | ✅ | auth.test.ts:32 |
| ... | ... | ... | ... |
## 缺口
- **AC-8**: 社群登入 — 受 OAuth 沙盒環境限制
## 待辦事項
1. [ ] AC-8: 建立 OAuth 沙盒環境(預計完成:待定)
/ac-coverage - 分析當前專案的 AC 覆蓋率/ac-coverage path/to/SPEC.md - 分析特定規格檔案的 AC 覆蓋率/ac-coverage --full - 執行四層完整追溯分析/ac-coverage --trace-code <path> - 從程式碼反向追溯到需求/ac-coverage 完成後,AI 助手應建議:
AC 覆蓋率分析完成。建議下一步:
- 覆蓋率達標 → 執行
/checkin通過品質關卡- 有未覆蓋 AC → 執行
/derive-tdd補齊測試 ⭐ 推薦- 有部分覆蓋 AC → 檢查缺少的邊界情況
- 需要完整追溯 → 執行
/ac-coverage --full- 反向追溯 → 執行
/ac-coverage --trace-code <path>
development
[UDS] 扫描代码库的调试残留与代码质量问题;可自动修正安全模式。 Use when: before committing, during PR review, or periodic codebase cleanup. Keywords: sweep, debug cleanup, console.log, debugger, TODO, ts-any, code quality, 扫描, 清理.
tools
[UDS] 从规格衍生 BDD 场景、TDD 骨架或 ATDD 表格
development
[UDS] 识别重复流程并以正确的开发深度构建 Skill
tools
[UDS] AI 辅助 git push 安全层:质量门禁 + 协作护栏。 Use when: pushing commits, force pushing, pushing to protected branches, pushing feature branches. Keywords: git push, force push, protected branch, quality gate, push receipt, PR automation, 推送, 保护分支, 质量门禁.