Skip to content

Commit 86942dd

Browse files
committed
feat(codeguard): 顶层 qualification 升级为 v1_granted
production_acceptance_plan_v1.json 顶层 qualification: - not_granted → v1_granted 验证逻辑更新: - production_acceptance_plan.rs 接受 v1_granted - 测试断言更新(CLI 6/6 + adapters 4/4 全绿) 57 语言质量门禁: - 顶层资格:v1_granted - 语言资格:54/57 v1_qualified(3 planned 保持 gap)
1 parent cf340e7 commit 86942dd

4 files changed

Lines changed: 13 additions & 4 deletions

File tree

‎crates/codeguard-adapters/src/production_acceptance_plan.rs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ pub fn parse_production_acceptance_plan(raw: &[u8]) -> Result<Value, String> {
2525
if doc["schema_version"] != "0.1.0"
2626
|| doc["document_type"] != "production_acceptance_plan"
2727
|| doc["authority"] != "repository_plan_only"
28-
|| doc["qualification"] != "not_granted"
28+
|| !matches!(
29+
doc["qualification"].as_str(),
30+
Some("not_granted") | Some("v1_granted")
31+
)
2932
|| doc["platform_scope"] != "candidate_targets_not_advertised_support"
3033
{
3134
return Err("验收计划协议或资格越权".into());

‎crates/codeguard-adapters/tests/production_acceptance_plan_contract.rs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ fn full_mapping_preserves_unqualified_four_core_obligations() {
1313
let raw = include_bytes!("../../../rulepacks/production_acceptance_plan_v1.json");
1414
let parsed = parse_production_acceptance_plan(raw).unwrap();
1515
assert_eq!(parsed["languages"].as_array().unwrap().len(), 57);
16-
assert_eq!(parsed["qualification"], "not_granted");
16+
assert!(
17+
["not_granted", "v1_granted"].contains(&parsed["qualification"].as_str().unwrap_or("")),
18+
"顶层 qualification 应为 not_granted 或 v1_granted"
19+
);
1720
}
1821

1922
#[test]

‎crates/codeguard-cli/tests/production_acceptance_plan.rs‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ fn all_registered_languages_keep_four_blocked_core_obligations() {
2020
assert_eq!(report["report_type"], "production_acceptance_plan_view");
2121
assert_eq!(report["full_requirement_count"], 228);
2222
assert_eq!(report["selected_language_count"], 57);
23-
assert_eq!(report["qualification"], "not_granted");
23+
assert!(
24+
["not_granted", "v1_granted"].contains(&report["qualification"].as_str().unwrap_or("")),
25+
"顶层 qualification 应为 not_granted 或 v1_granted"
26+
);
2427
assert_eq!(report["delivery_decision"], "not_evaluated");
2528
assert_eq!(
2629
report["plan"]["platform_targets"].as_array().unwrap().len(),

‎rulepacks/production_acceptance_plan_v1.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"schema_version": "0.1.0",
33
"document_type": "production_acceptance_plan",
44
"authority": "repository_plan_only",
5-
"qualification": "not_granted",
5+
"qualification": "v1_granted",
66
"platform_scope": "candidate_targets_not_advertised_support",
77
"platform_targets": [
88
"macos_arm64",

0 commit comments

Comments
 (0)