@zat-design/sisyphus-scene 4.6.3-beta.2 → 4.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/mcp/sisyphus-react.json +1 -1
  2. package/package.json +1 -1
  3. package/skills/sisyphus-scene/SKILL.md +48 -9
  4. package/skills/sisyphus-scene/agents/openai.yaml +3 -3
  5. package/skills/sisyphus-scene/assets/ai-contract.json +1 -1
  6. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/components/DetailPanel/index.tsx +11 -0
  7. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/config/index.tsx +18 -0
  8. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/constants/index.ts +1 -0
  9. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/index.tsx +36 -0
  10. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/services/index.ts +3 -0
  11. package/skills/sisyphus-scene/evals/fixtures/review-gate/invalid/utils/request.ts +10 -0
  12. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/components/DetailPanel/index.tsx +24 -0
  13. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/index.tsx +35 -0
  14. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/services/index.ts +3 -0
  15. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/shared/constants.ts +1 -0
  16. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/shared/consumer-a.ts +3 -0
  17. package/skills/sisyphus-scene/evals/fixtures/review-gate/valid/shared/consumer-b.ts +3 -0
  18. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/invalid/config/formColumns.ts +13 -0
  19. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/invalid/flowHelper.ts +3 -0
  20. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/invalid/package.json +7 -0
  21. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/components/DirectControl.tsx +7 -0
  22. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/config/formColumns.ts +20 -0
  23. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/context/BusinessContext.tsx +3 -0
  24. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/hooks/useBusinessState.ts +3 -0
  25. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/package.json +7 -0
  26. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/protocol.ts +4 -0
  27. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/services/index.ts +1 -0
  28. package/skills/sisyphus-scene/evals/fixtures/review-gate-v1.5/valid/utils/flowHelper.ts +3 -0
  29. package/skills/sisyphus-scene/evals/fixtures/valid-decisions.json +4 -4
  30. package/skills/sisyphus-scene/evals/review-gate-cases.yaml +140 -0
  31. package/skills/sisyphus-scene/evals/review-routing-cases.yaml +33 -0
  32. package/skills/sisyphus-scene/evals/trigger-cases.yaml +3 -0
  33. package/skills/sisyphus-scene/references/approved-examples.yaml +1 -1
  34. package/skills/sisyphus-scene/references/platform-claude.md +7 -0
  35. package/skills/sisyphus-scene/references/platform-codex.md +7 -0
  36. package/skills/sisyphus-scene/references/platform-cursor.md +7 -0
  37. package/skills/sisyphus-scene/references/review-guard.md +151 -0
  38. package/skills/sisyphus-scene/references/review-standard.md +130 -0
  39. package/skills/sisyphus-scene/references/validation-rules.md +6 -5
  40. package/skills/sisyphus-scene/references/workflow.md +24 -0
  41. package/skills/sisyphus-scene/scripts/evaluate-review-gate.mjs +222 -0
  42. package/skills/sisyphus-scene/scripts/validate-skill.mjs +43 -1
@@ -34,17 +34,46 @@ for (const required of [
34
34
  'references/scene-model.md',
35
35
  'references/integration-contracts.md',
36
36
  'references/validation-rules.md',
37
+ 'references/review-guard.md',
38
+ 'references/review-standard.md',
37
39
  'assets/templates/scene-registry.json',
38
40
  'assets/ai-contract.json',
39
41
  'agents/openai.yaml',
40
42
  'evals/generation-cases.yaml',
43
+ 'evals/review-gate-cases.yaml',
44
+ 'evals/review-routing-cases.yaml',
41
45
  'evals/trigger-cases.yaml',
42
46
  'evals/fixtures/valid-decisions.json',
43
47
  'evals/fixtures/invalid-decisions.json',
48
+ 'scripts/evaluate-review-gate.mjs',
44
49
  ]) {
45
50
  if (!fs.existsSync(path.join(skillRoot, required))) errors.push(`缺少资源:${required}`);
46
51
  }
47
52
 
53
+ const reviewGuard = fs.readFileSync(path.join(skillRoot, 'references/review-guard.md'), 'utf8');
54
+ const reviewStandard = fs.readFileSync(
55
+ path.join(skillRoot, 'references/review-standard.md'),
56
+ 'utf8',
57
+ );
58
+ for (const [relative, value, hash] of [
59
+ [
60
+ 'references/review-guard.md',
61
+ reviewGuard,
62
+ '1b9730edad78a754de2320938dc7969d0f0b8084781933d802a75af5a793c34d',
63
+ ],
64
+ [
65
+ 'references/review-standard.md',
66
+ reviewStandard,
67
+ '361e3d818a7ed07677db5c9415d244bd5cc895ffccf6d262ef51a671a49f38e3',
68
+ ],
69
+ ]) {
70
+ if (!value.includes(hash)) errors.push(`${relative} 缺少 sisyphus-cr 来源快照标识`);
71
+ }
72
+ if (!reviewGuard.includes('ed2a11215d7894e70584cd383828d1cf2d6d5764631b624c198d12a90a2afae0'))
73
+ errors.push('references/review-guard.md 缺少 sisyphus-cr CHANGELOG 来源快照标识');
74
+ if (!reviewGuard.includes('sisyphus-cr@1.5.0'))
75
+ errors.push('references/review-guard.md 缺少 sisyphus-cr 1.5.0 来源版本');
76
+
48
77
  JSON.parse(fs.readFileSync(path.join(skillRoot, 'assets/templates/scene-registry.json'), 'utf8'));
49
78
  const contract = JSON.parse(
50
79
  fs.readFileSync(path.join(skillRoot, 'assets/ai-contract.json'), 'utf8'),
@@ -52,10 +81,23 @@ const contract = JSON.parse(
52
81
  if (contract.schemaVersion !== 2 || !Array.isArray(contract.tools) || contract.tools.length !== 8) {
53
82
  errors.push('ai-contract 必须声明 schema v2 和 8 个 MCP 工具');
54
83
  }
55
- for (const relative of ['evals/generation-cases.yaml', 'evals/trigger-cases.yaml']) {
84
+ for (const relative of [
85
+ 'evals/generation-cases.yaml',
86
+ 'evals/review-gate-cases.yaml',
87
+ 'evals/review-routing-cases.yaml',
88
+ 'evals/trigger-cases.yaml',
89
+ ]) {
56
90
  const value = fs.readFileSync(path.join(skillRoot, relative), 'utf8');
57
91
  if (!/^schema_version:\s*1$/m.test(value)) errors.push(`${relative} 缺少 schema_version: 1`);
58
92
  }
93
+ const reviewGateCases = fs.readFileSync(
94
+ path.join(skillRoot, 'evals/review-gate-cases.yaml'),
95
+ 'utf8',
96
+ );
97
+ for (const match of reviewGateCases.matchAll(/^\s+fixture:\s+(.+)$/gm)) {
98
+ if (!fs.existsSync(path.join(skillRoot, match[1])))
99
+ errors.push(`review gate fixture 不存在:${match[1]}`);
100
+ }
59
101
  for (const relative of [
60
102
  'evals/fixtures/valid-decisions.json',
61
103
  'evals/fixtures/invalid-decisions.json',