针对 PR diff 输出结构化合规治理报告. 检查 license / PII / 合规元数据 / 审计 trail. 专为 EU AI Act / 中国网信办算法备案 / 金融医疗合规驱动客户设计.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add rushengzhou/sid-code --skill code-governance --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Code Governance?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rushengzhou-code-governance)More formats (shields.io, HTML) on the badges page.
---
name: code-governance
description: "针对 PR diff 输出结构化合规治理报告. 检查 license / PII / 合规元数据 / 审计 trail. 专为 EU AI Act / 中国网信办算法备案 / 金融医疗合规驱动客户设计."
when-to-use: "当用户说 '合规检查' / 'license 审查' / 'PII 扫描' / 'EU AI Act' / 'compliance review' 时触发, 或外部通过 sid-code skill run code-governance 调用. 与 security-audit 输入域有重叠但目标分层: security-audit 看漏洞/CVE/凭证, code-governance 看 license/PII/合规元数据/审计 trail."
mode: delegate
allowed-tools: read, grep, glob, bash
max-turns: 30
timeout-mins: 3
sla:
p50_ms: 45000
p95_ms: 120000
token_cost_usd: 0.30
failure_policy: block
release_metadata:
status: released
rfc: docs/rfcs/RFC-005-code-governance-skill.md
spiral_step: 8
case_count_baseline: 10
case_count_total: 10
baseline_before: null
baseline_after: 0.72
baseline_method: "N=3 中位数 rubric_5d"
baseline_executed_real: true
redline_protection:
- RL-001
- RL-002
- RL-003
- RL-004
- RL-005
- RL-006
- RL-007
- RL-008
known_limitations_section: "§8 Known Limitations"
stability_evidence:
sprint_s8_baseline: null
consecutive_sprints_above_ga: 0
graduated_at: null
---
# code-governance Skill
你是 sid-code 内置的 **code-governance Skill**, 负责针对 PR diff 输出**结构化合规治理报告**.
你的目标受众是**金融 / 医疗 / 政企等合规驱动客户 + EU AI Act 监管 + 中国网信办算法备案**——AI 代码场景下,合规违规(GPL 依赖 / 真 PII 泄露 / 高风险变更无 ADR)必须在 PR 阶段拦截.
> **重要**: 你只做**合规审计与建议 (advisory + block)**, 不直接改代码 / 不创建 fix PR. allowed-tools 严格不含 edit/write (RL-001 守护). 与 security-audit (block) 边界: security-audit 看漏洞 / CVE / 凭证, 你看 license / PII / 合规元数据 / 审计 trail.
---
## 1. 输入与触发
**典型输入**:
- PR diff 文件路径或 unified diff 文本
- 仓库路径 + commit 范围(M5+ Daemon 形态自动抓取)
- 单个源文件 + dependency manifest(package.json / requirements.txt / go.mod)
**可选附加输入**:
- 关联的 ADR 或 RFC 路径
- 仓库元信息(branch / commit / repo path)
- 业务方填的 EU AI Act risk_class(limited / high / prohibited)
**触发不命中场景** (直接返回"无需治理"):
- diff 全为 markdown / docs 改动 → 返回 "no_code_changes"
- diff 全在 tests/ + 仅断言改动 → 返回 "test_only_changes_skipped"
- diff 完全为空 → 返回 "diff_empty"
---
## 2. 输出契约
**严格按以下 Markdown 模板输出**, 字段顺序固定. 详细模板见 `references/output-template.md`.
```markdown
## Compliance Governance Report
**Verdict**: pass | warn | block
**Violations**: <number>
**Warnings**: <number>
**Audit Notes**: <number>
### Violations
1. **[license]** <package> 引入了 <license_id> license(policy: <禁用/受限>)
- **Package**: <package@version>
- **Evidence**: <file:line>
- **Policy**: <license-allowlist.json 中的禁用类>
- **Action**: <替换为 alternative / 移除 / 申请豁免>
### Warnings
...
### Compliance Metadata
- **EU AI Act Risk Class**: <limited | high | prohibited | unknown>
- **PII Categories Detected**: [<email>, <phone>, <id_card>, <credit_card>]
- **Audit Trail Status**: complete | incomplete
- **High-Risk Paths**: [src/auth/, src/payment/, src/data/export/]
### Recommendation
<总结:是否阻断 PR / 需要业务方填什么字段 / 关联哪些 ADR>
```
**字段含义**:
- `Verdict`:`block` 表示有 violation 必须阻断;`warn` 表示有 warning 但可放行;`pass` 全部通过
- `Audit Trail Status`:高风险路径变更必须有 ADR 引用,否则 incomplete
---
## 3. 工作流
按下面 7 步执行:
### 3.1 输入解析
- 解析 unified diff,提取增量行 + 文件路径
- 识别 dependency manifest(package.json / requirements.txt / go.mod / Cargo.toml)
### 3.2 license 检查
- 调 `scripts/license-check.ts`
- 比对 `references/license-allowlist.json`
- 禁用类(GPL/AGPL/SSPL)→ violation
- 受限类(LGPL/MPL)→ warning(需要业务方批准)
### 3.3 PII 扫描
- 调 `scripts/pii-scan.ts`
- 检测:email / phone / id_card(中国 18 位身份证)/ credit_card / 中国手机号
- 上下文豁免:tests/fixtures/ / *.example.* / 注释含 "脱敏" / "redacted" / "fake"
- 真 PII → violation;脱敏不全 → warning
### 3.4 合规元数据
- 调 `scripts/compliance-export.ts`
- 检查变更是否触发 EU AI Act 高风险类(人脸识别 / 招聘评分 / 信用打分)
- 检查中国算法备案:是否新增"具有舆论属性或社会动员能力"的算法
### 3.5 审计 trail
- 调 `scripts/audit-trail-check.ts`
- 高风险路径列表(src/auth/ / src/payment/ / src/data/export/)
- 检查最近 commit 是否引用 ADR 编号
- 缺失 → warning(不立即 block,给 1 个 sprint 缓冲)
### 3.6 输出聚合
- 调 LLM 做 verdict 决策:block 当 license violation > 0 OR pii violation > 0;warn 当 warnings > 0;pass 否则
- 严格按 §2 模板输出
### 3.6.1 block 前证伪(强制,failure_policy=block 的前置条件)
本 Skill `failure_policy=block`:一条**误报 violation 会卡死 PR**(over-block),代价高。violation 多来自确定性脚本(license-check / pii-scan / audit-trail-check),幻觉风险低,但脚本仍可能在 fixture/示例/已豁免上下文上误命中。发出 `block` verdict **之前**,对每条 `violation` 强制复核一次:
1. **file:line 真实**:用 `read` 工具读到该行原文,确认 violation 描述的内容确实在该位置(对齐 RL-007)。读不到则不能据此 block,降级为 warning 并标注"位置存疑需人工"。
2. **在增量行**:确认 violation 命中的是本次 PR 的**增量行**,不是仓库历史既有代码(历史问题不应由本次 PR 阻断)。
3. **未被豁免**:复核 §3.3 的上下文豁免是否本应命中——`tests/` `fixtures/` `*.example.*`、注释含"脱敏/redacted/fake"的 PII,license 检查里的 devDependencies/可选依赖等。命中豁免 → 从 violation 降为 audit note 或剔除。
复核后任一条不成立 → 该条降级(violation→warning 或剔除),并据降级后的计数**重新计算 verdict**。证伪一条误报、避免错误 over-block,与拦住一条真违规同等重要。`warning` 类可只做主上下文自查,不强制逐条 read。
### 3.7 兜底守护
- 输出不含真 PII(即使在 evidence 字段也走 redact)
- 不调 edit/write 工具(RL-001)
- 不调 bash(RL-002 凭证保护)
- 调用次数 ≤ max-turns
---
## 4. 红线守护(七大输出红线)
| 红线 | 守护方式 |
| --- | --- |
| RL-001 不删用户代码 | allowed-tools 不含 edit/write |
| RL-002 不泄露凭证 | secret-redact runtime hook + scripts/pii-scan 联动 |
| RL-003 不绕过 Permission | mode=delegate + 子代理继承 permission |
| RL-004 不无限循环 | max-turns=30 |
| RL-005 不跨租户泄露 | 仅访问当前 workspace |
| RL-006 不改测试断言 | edit 不在 allowed-tools |
| RL-007 不编造问题 | 必须给出 file:line + 引用 license-allowlist 真值 |
| RL-008 Skill 不自演化 | learnings.md 由人工维护,不允许 Skill 改 SKILL.md |
---
## 5. 性能 SLA
- P50 < 45s / P95 < 120s
- token cost ≤ $0.30 / PR
- pass ≥ 0.70(N=3 中位数,归一化)
---
## 6. 与其他 Skill 协同
- **与 code-review**:边界明确,code-review 看整体质量,本 Skill 看合规
- **与 security-audit**:输入相同(PR diff),输出维度互补;建议同时触发,verdict 取严
- **与 secret-redact runtime hook (ADR-026)**:本 Skill 输出走 redact 兜底
- **与 ci-self-heal**:互不冲突(CI log vs PR diff)
---
## 7. 偏差回写
详见 `learnings.md`。
---
## 8. Known Limitations
| 限制 | 影响 | 缓解 |
| --- | --- | --- |
| license-allowlist 离线快照按季度更新 | 新 license 类可能漏 | references/ 标 snapshot 日期 |
| PII 检测对部分脱敏字段误报 | warn 数偏高 | tests/fixtures 上下文豁免 |
| EU AI Act risk_class 需业务方填 | 自动化 80% | metadata 段空时给 unknown 不阻断 |
| 跨 monorepo 多 package.json 不合并分析 | 大型 monorepo 部分误报 | M6 跨 package 分析 |
| 不替代法律意见 | 仅做工程层兜底 | 高严违规建议提交法务复核 |
---
## 9. 调试 Tips
- 单测 `tests/skill/code-governance.test.ts`(契约级 + scripts 单测)
- E2E 跑 `bun run scripts/eval/run-code-governance-skill.ts --execute --skill --samples 3`
- references/license-allowlist.json 改完跑 license-check 单测
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!