contextos-agents 2.3.0 → 2.3.2

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 (129) hide show
  1. package/.agents/adapters/cursor/export.js +3 -27
  2. package/.agents/adapters/gemini/export.js +5 -7
  3. package/.agents/adapters/shared.js +14 -1
  4. package/.agents/adapters/zed/export.js +4 -16
  5. package/.agents/compiled/registry.v2.json +33 -33
  6. package/.agents/compiled/registry.v2.sha256 +1 -1
  7. package/.agents/compiler/manifest-compiler.js +8 -5
  8. package/.agents/core/skills/context-manager/EXAMPLES.md +5 -17
  9. package/.agents/core/skills/context-manager/SKILL.md +10 -100
  10. package/.agents/core/skills/context-manager/TROUBLESHOOTING.md +6 -6
  11. package/.agents/core/skills/context-manager/VALIDATION.json +115 -4
  12. package/.agents/core/skills/context-manager/references/context-rules.md +3 -57
  13. package/.agents/core/skills/context-manager/skill.yaml +1 -3
  14. package/.agents/core/skills/context-os/EXAMPLES.md +25 -15
  15. package/.agents/core/skills/context-os/SKILL.md +12 -135
  16. package/.agents/core/skills/context-os/TROUBLESHOOTING.md +11 -6
  17. package/.agents/core/skills/context-os/VALIDATION.json +115 -4
  18. package/.agents/core/skills/context-os/packs.yaml +10 -59
  19. package/.agents/core/skills/context-os/references/context-rules.md +27 -59
  20. package/.agents/core/skills/context-os/references/pipeline.md +14 -119
  21. package/.agents/core/skills/context-os/references/project-graph.md +11 -100
  22. package/.agents/core/skills/context-os/rules.yaml +8 -135
  23. package/.agents/core/skills/engineering-workflow/EXAMPLES.md +15 -50
  24. package/.agents/core/skills/engineering-workflow/SKILL.md +10 -10
  25. package/.agents/core/skills/engineering-workflow/TROUBLESHOOTING.md +11 -19
  26. package/.agents/core/skills/engineering-workflow/VALIDATION.json +115 -4
  27. package/.agents/core/skills/engineering-workflow/references/workflow.md +55 -317
  28. package/.agents/core/skills/gemini-precision/EXAMPLES.md +33 -53
  29. package/.agents/core/skills/gemini-precision/SKILL.md +11 -147
  30. package/.agents/core/skills/gemini-precision/TROUBLESHOOTING.md +12 -25
  31. package/.agents/core/skills/gemini-precision/VALIDATION.json +115 -4
  32. package/.agents/core/skills/gemini-precision/skill.yaml +1 -1
  33. package/.agents/core/skills/gstack-roles/EXAMPLES.md +5 -21
  34. package/.agents/core/skills/gstack-roles/SKILL.md +10 -12
  35. package/.agents/core/skills/gstack-roles/TROUBLESHOOTING.md +6 -12
  36. package/.agents/core/skills/gstack-roles/VALIDATION.json +115 -4
  37. package/.agents/core/skills/gstack-roles/references/roles.md +3 -147
  38. package/.agents/core/skills/ponytail-mindset/EXAMPLES.md +12 -45
  39. package/.agents/core/skills/ponytail-mindset/SKILL.md +10 -13
  40. package/.agents/core/skills/ponytail-mindset/TROUBLESHOOTING.md +10 -19
  41. package/.agents/core/skills/ponytail-mindset/VALIDATION.json +115 -4
  42. package/.agents/core/skills/ponytail-mindset/references/minimalism.md +58 -174
  43. package/.agents/core/skills/security/EXAMPLES.md +19 -55
  44. package/.agents/core/skills/security/SKILL.md +61 -137
  45. package/.agents/core/skills/security/TROUBLESHOOTING.md +13 -19
  46. package/.agents/core/skills/security/VALIDATION.json +115 -4
  47. package/.agents/core/skills/security/skill.yaml +1 -1
  48. package/.agents/generated/claude/skills/context-manager/EXAMPLES.md +5 -17
  49. package/.agents/generated/claude/skills/context-manager/SKILL.md +9 -96
  50. package/.agents/generated/claude/skills/context-manager/TROUBLESHOOTING.md +6 -6
  51. package/.agents/generated/claude/skills/context-manager/VALIDATION.json +115 -4
  52. package/.agents/generated/claude/skills/context-manager/references/context-rules.md +3 -57
  53. package/.agents/generated/claude/skills/context-os/EXAMPLES.md +25 -15
  54. package/.agents/generated/claude/skills/context-os/SKILL.md +11 -133
  55. package/.agents/generated/claude/skills/context-os/TROUBLESHOOTING.md +11 -6
  56. package/.agents/generated/claude/skills/context-os/VALIDATION.json +115 -4
  57. package/.agents/generated/claude/skills/context-os/packs.yaml +10 -59
  58. package/.agents/generated/claude/skills/context-os/references/context-rules.md +27 -59
  59. package/.agents/generated/claude/skills/context-os/references/pipeline.md +14 -119
  60. package/.agents/generated/claude/skills/context-os/references/project-graph.md +11 -100
  61. package/.agents/generated/claude/skills/context-os/rules.yaml +8 -135
  62. package/.agents/generated/claude/skills/engineering-workflow/EXAMPLES.md +15 -50
  63. package/.agents/generated/claude/skills/engineering-workflow/SKILL.md +9 -9
  64. package/.agents/generated/claude/skills/engineering-workflow/TROUBLESHOOTING.md +11 -19
  65. package/.agents/generated/claude/skills/engineering-workflow/VALIDATION.json +115 -4
  66. package/.agents/generated/claude/skills/engineering-workflow/references/workflow.md +55 -317
  67. package/.agents/generated/claude/skills/gemini-precision/EXAMPLES.md +33 -53
  68. package/.agents/generated/claude/skills/gemini-precision/SKILL.md +10 -143
  69. package/.agents/generated/claude/skills/gemini-precision/TROUBLESHOOTING.md +12 -25
  70. package/.agents/generated/claude/skills/gemini-precision/VALIDATION.json +115 -4
  71. package/.agents/generated/claude/skills/gstack-roles/EXAMPLES.md +5 -21
  72. package/.agents/generated/claude/skills/gstack-roles/SKILL.md +9 -11
  73. package/.agents/generated/claude/skills/gstack-roles/TROUBLESHOOTING.md +6 -12
  74. package/.agents/generated/claude/skills/gstack-roles/VALIDATION.json +115 -4
  75. package/.agents/generated/claude/skills/gstack-roles/references/roles.md +3 -147
  76. package/.agents/generated/claude/skills/ponytail-mindset/EXAMPLES.md +12 -45
  77. package/.agents/generated/claude/skills/ponytail-mindset/SKILL.md +9 -12
  78. package/.agents/generated/claude/skills/ponytail-mindset/TROUBLESHOOTING.md +10 -19
  79. package/.agents/generated/claude/skills/ponytail-mindset/VALIDATION.json +115 -4
  80. package/.agents/generated/claude/skills/ponytail-mindset/references/minimalism.md +58 -174
  81. package/.agents/generated/claude/skills/security/EXAMPLES.md +19 -55
  82. package/.agents/generated/claude/skills/security/SKILL.md +60 -134
  83. package/.agents/generated/claude/skills/security/TROUBLESHOOTING.md +13 -19
  84. package/.agents/generated/claude/skills/security/VALIDATION.json +115 -4
  85. package/.agents/generated/gemini/skills/context-manager/EXAMPLES.md +5 -17
  86. package/.agents/generated/gemini/skills/context-manager/SKILL.md +10 -99
  87. package/.agents/generated/gemini/skills/context-manager/TROUBLESHOOTING.md +6 -6
  88. package/.agents/generated/gemini/skills/context-manager/VALIDATION.json +115 -4
  89. package/.agents/generated/gemini/skills/context-manager/references/context-rules.md +3 -57
  90. package/.agents/generated/gemini/skills/context-os/EXAMPLES.md +25 -15
  91. package/.agents/generated/gemini/skills/context-os/SKILL.md +12 -135
  92. package/.agents/generated/gemini/skills/context-os/TROUBLESHOOTING.md +11 -6
  93. package/.agents/generated/gemini/skills/context-os/VALIDATION.json +115 -4
  94. package/.agents/generated/gemini/skills/context-os/packs.yaml +10 -59
  95. package/.agents/generated/gemini/skills/context-os/references/context-rules.md +27 -59
  96. package/.agents/generated/gemini/skills/context-os/references/pipeline.md +14 -119
  97. package/.agents/generated/gemini/skills/context-os/references/project-graph.md +11 -100
  98. package/.agents/generated/gemini/skills/context-os/rules.yaml +8 -135
  99. package/.agents/generated/gemini/skills/engineering-workflow/EXAMPLES.md +15 -50
  100. package/.agents/generated/gemini/skills/engineering-workflow/SKILL.md +10 -11
  101. package/.agents/generated/gemini/skills/engineering-workflow/TROUBLESHOOTING.md +11 -19
  102. package/.agents/generated/gemini/skills/engineering-workflow/VALIDATION.json +115 -4
  103. package/.agents/generated/gemini/skills/engineering-workflow/references/workflow.md +55 -317
  104. package/.agents/generated/gemini/skills/gemini-precision/EXAMPLES.md +33 -53
  105. package/.agents/generated/gemini/skills/gemini-precision/SKILL.md +11 -145
  106. package/.agents/generated/gemini/skills/gemini-precision/TROUBLESHOOTING.md +12 -25
  107. package/.agents/generated/gemini/skills/gemini-precision/VALIDATION.json +115 -4
  108. package/.agents/generated/gemini/skills/gstack-roles/EXAMPLES.md +5 -21
  109. package/.agents/generated/gemini/skills/gstack-roles/SKILL.md +10 -13
  110. package/.agents/generated/gemini/skills/gstack-roles/TROUBLESHOOTING.md +6 -12
  111. package/.agents/generated/gemini/skills/gstack-roles/VALIDATION.json +115 -4
  112. package/.agents/generated/gemini/skills/gstack-roles/references/roles.md +3 -147
  113. package/.agents/generated/gemini/skills/ponytail-mindset/EXAMPLES.md +12 -45
  114. package/.agents/generated/gemini/skills/ponytail-mindset/SKILL.md +10 -14
  115. package/.agents/generated/gemini/skills/ponytail-mindset/TROUBLESHOOTING.md +10 -19
  116. package/.agents/generated/gemini/skills/ponytail-mindset/VALIDATION.json +115 -4
  117. package/.agents/generated/gemini/skills/ponytail-mindset/references/minimalism.md +58 -174
  118. package/.agents/generated/gemini/skills/security/EXAMPLES.md +19 -55
  119. package/.agents/generated/gemini/skills/security/SKILL.md +61 -136
  120. package/.agents/generated/gemini/skills/security/TROUBLESHOOTING.md +13 -19
  121. package/.agents/generated/gemini/skills/security/VALIDATION.json +115 -4
  122. package/.agents/resolver/canonical-resolver.js +34 -21
  123. package/.agents/rules/rule-catalog.js +5 -5
  124. package/.agents/validate.js +9 -2
  125. package/.agents/validation-evidence.js +89 -0
  126. package/README.md +132 -197
  127. package/bin/index.js +1 -1
  128. package/catalog/skills/typescript/SKILL.md +16 -2
  129. package/package.json +90 -89
@@ -1,135 +1,8 @@
1
- # Rule Engine
2
- # Conditional logic for context compilation based on project profile and task type
3
-
4
- rules:
5
- # ═══════════════════════════════════════
6
- # Profile-based rules
7
- # ═══════════════════════════════════════
8
-
9
- - name: mvp-minimal
10
- description: MVP projects skip heavy infrastructure
11
- if:
12
- profile: mvp
13
- then:
14
- exclude_skills: [microservices, ddd, kubernetes, monitoring, cicd]
15
- exclude_docs: [DEPLOYMENT.md]
16
- prefer_skills: [sqlite, simple-auth, minimal-architecture]
17
- max_doc_depth: 2 # Only Level 1 + Level 2
18
-
19
- - name: enterprise-strict
20
- description: Enterprise projects require full documentation and rigor
21
- if:
22
- profile: enterprise
23
- then:
24
- require_skills: [ddd, security, testing, cicd]
25
- require_docs: [ARCHITECTURE.md, DATABASE.md, API.md, DECISIONS]
26
- enforce_adr: true # Every architectural decision must be recorded
27
- enforce_testing: true
28
- min_doc_depth: 3 # All levels required
29
-
30
- - name: hackathon-speed
31
- description: Hackathon mode — maximum speed, minimum ceremony
32
- if:
33
- profile: hackathon
34
- then:
35
- exclude_skills: [kubernetes, monitoring, cicd, ddd, microservices]
36
- exclude_docs: [DEPLOYMENT.md, ROADMAP.md]
37
- prefer_skills: [sqlite, simple-auth]
38
- skip_review: true
39
- max_doc_depth: 1 # Vision only
40
-
41
- - name: startup-balanced
42
- description: Startup balance between speed and quality
43
- if:
44
- profile: startup
45
- then:
46
- exclude_skills: [kubernetes, ddd]
47
- prefer_skills: [postgres, jwt-auth, docker]
48
- enforce_adr: false
49
- max_doc_depth: 2
50
-
51
- # ═══════════════════════════════════════
52
- # Task-based rules
53
- # ═══════════════════════════════════════
54
-
55
- - name: frontend-task
56
- description: Frontend tasks don't need database or deployment docs
57
- if:
58
- task_type: frontend
59
- then:
60
- load_docs: [UI.md, ARCHITECTURE.md, API.md]
61
- skip_docs: [DATABASE.md, DEPLOYMENT.md]
62
- load_skill_categories: [frontend, design]
63
- skip_skill_categories: [backend, infrastructure]
64
-
65
- - name: backend-task
66
- description: Backend tasks don't need UI docs
67
- if:
68
- task_type: backend
69
- then:
70
- load_docs: [ARCHITECTURE.md, DATABASE.md, API.md]
71
- skip_docs: [UI.md]
72
- load_skill_categories: [backend, architecture]
73
- skip_skill_categories: [design]
74
-
75
- - name: architecture-task
76
- description: Architecture tasks load everything at high level
77
- if:
78
- task_type: architecture
79
- then:
80
- load_docs: [PRD.md, ARCHITECTURE.md, DATABASE.md, API.md, PROJECT_GRAPH.md]
81
- load_skill_categories: [architecture]
82
- skip_skill_categories: [design]
83
-
84
- - name: bugfix-task
85
- description: Bugfixes need minimal context — focus on affected module
86
- if:
87
- task_type: bugfix
88
- then:
89
- load_docs: [PROJECT_GRAPH.md] # Find affected module
90
- max_doc_depth: 1
91
- skip_docs: [PRD.md, ROADMAP.md]
92
-
93
- - name: refactor-task
94
- description: Refactoring needs architecture context
95
- if:
96
- task_type: refactor
97
- then:
98
- load_docs: [ARCHITECTURE.md, PROJECT_GRAPH.md]
99
- load_skill_categories: [architecture]
100
-
101
- # ═══════════════════════════════════════
102
- # Stack-based rules
103
- # ═══════════════════════════════════════
104
-
105
- - name: react-ecosystem
106
- description: React projects auto-load TypeScript
107
- if:
108
- skill_loaded: react
109
- then:
110
- auto_load: [typescript]
111
- suggest: [tailwind, react-query]
112
-
113
- - name: nextjs-ecosystem
114
- description: Next.js implies React + TypeScript + SSR patterns
115
- if:
116
- skill_loaded: nextjs
117
- then:
118
- auto_load: [react, typescript]
119
- suggest: [prisma, next-auth, tailwind]
120
-
121
- - name: fastapi-ecosystem
122
- description: FastAPI implies Python + Pydantic
123
- if:
124
- skill_loaded: fastapi
125
- then:
126
- auto_load: [python, pydantic]
127
- suggest: [postgres, docker, testing]
128
-
129
- - name: no-conflicts
130
- description: Prevent incompatible frameworks
131
- if:
132
- any_loaded: [react, vue, angular, svelte]
133
- then:
134
- conflict_check: true
135
- max_frontend_frameworks: 1
1
+ # Reference-only illustration. The CLI does not interpret this file as policy.
2
+ status: reference-only
3
+ purpose: Document proportional context selection; use supported profile commands.
4
+ principles:
5
+ - select relevant installed skills
6
+ - preserve mandatory safety guidance
7
+ - inspect missing-skill and budget warnings
8
+ - verify behavior separately from document structure
@@ -1,57 +1,22 @@
1
- # engineering-workflow Examples — Anti-patterns vs ContextOS Standard
1
+ # Workflow examples
2
2
 
3
- ## Example 1: Handling a New Feature Request
3
+ ## Routine change
4
4
 
5
- ### Anti-pattern: Jumping Straight to Code
5
+ Correct a README typo, inspect the diff, and run the relevant Markdown check.
6
+ A spec, role banner, synthetic unit test, or repeated approval adds no evidence.
6
7
 
7
- ```text
8
- User: "Add a user referral system."
9
- Agent: Immediately creates src/referral.js, starts writing database queries, guesses schema,
10
- and misses requirements like rate limiting, expiry dates, and fraud prevention.
11
- ```
8
+ ## Feature slices
12
9
 
13
- ### Best practice: ContextOS Standard (DEFINE -> PLAN -> BUILD)
10
+ 1. Create a minimal referral claim path through storage, service, API, and UI.
11
+ Verify one valid claim and one rejected claim.
12
+ 2. Add expiry and repeated-claim handling through the same path. Verify both.
13
+ 3. Add the required abuse controls and relevant integration checks.
14
14
 
15
- ```markdown
16
- [DOMAIN: Full-Stack] [PHASE: Define] [ROLE: Product Manager]
17
- Skills loaded: engineering-workflow, interview-me
15
+ Do not split every feature into all storage first, all routes second, and all UI
16
+ last unless the architecture or dependencies actually require that order.
18
17
 
19
- ## Feature Spec: User Referral System
20
- ### Why (Problem)
21
- Increase user acquisition through organic word-of-mouth incentives.
18
+ ## Review request
22
19
 
23
- ### Scope
24
- In-Scope:
25
- - Unique referral code generation per registered user
26
- - Referral code attribution on signup
27
- - Credit reward trigger after first completed purchase
28
- Out-of-Scope:
29
- - Multi-tier MLM rewards
30
- - Cash payout integrations
31
-
32
- ### Acceptance Criteria
33
- - [ ] Given a registered user, when visiting /referrals, then unique code is displayed.
34
- - [ ] Given a new user with code, when signing up, then referrer_id is stored with status 'pending'.
35
- ```
36
-
37
- ---
38
-
39
- ## Example 2: Atomic Task Execution in PLAN Phase
40
-
41
- ### Anti-pattern: Monolithic Mega-Task
42
-
43
- ```text
44
- Task: "Implement entire referral system end-to-end in one shot."
45
- Result: 15 files modified simultaneously, uncompilable intermediate state, untestable diff.
46
- ```
47
-
48
- ### Best practice: ContextOS Standard (Atomic Tasks with Test Gate)
49
-
50
- ```markdown
51
- [DOMAIN: Full-Stack] [PHASE: Plan] [ROLE: Architect]
52
- Atomic Tasks:
53
- 1. Database migration: referrals and referral_rewards tables + indexes. (Test: Migration rollback & apply)
54
- 2. Domain service: ReferralService.createCode() and ReferralService.claimCode(). (Test: Unit tests)
55
- 3. API route: POST /api/referrals/claim with Zod validation. (Test: Supertest integration)
56
- 4. UI component: <ReferralCard /> with copy button. (Test: RTL component test)
57
- ```
20
+ Inspect the code and callers, reproduce a failure when feasible, report an
21
+ exploit or incorrect-result scenario and its scope. A review request by itself
22
+ is not a request to publish, message others, or rewrite the feature.
@@ -6,28 +6,28 @@ Define the outcome, plan substantial changes, implement, verify, review, and rep
6
6
 
7
7
  ## When to Use
8
8
 
9
- Implementation, debugging, reviews, and release preparation. Routine maintenance and diagnostics can proceed directly with relevant checks.
9
+ Implementation, debugging, reviews, and release preparation. Routine maintenance and diagnostics use targeted checks.
10
10
 
11
11
  ## Rules & Patterns
12
12
 
13
- Establish acceptance criteria for substantial or ambiguous features. Ask only for missing decisions that affect scope or safety. An explicit implementation request authorizes ordinary reversible work. Preserve unrelated changes. Verify behavior before reporting completion. Publishing and external messages need authorization for that action.
13
+ Establish acceptance criteria for substantial or ambiguous work. Ask only for missing decisions affecting scope, safety, or external actions. An implementation request authorizes ordinary reversible work. Inspect affected code and callers, preserve unrelated changes, and verify behavior before reporting completion. Roles are optional.
14
14
 
15
- Read [references/workflow.md](references/workflow.md) for detailed procedures and examples only when needed.
15
+ Read [references/workflow.md](references/workflow.md) for procedures when needed.
16
16
 
17
17
  ## Code Examples
18
18
 
19
- A README typo needs an edit and relevant formatting check. An authentication feature needs access boundaries, failure cases, implementation, and behavioral verification.
19
+ A README typo needs a small edit and formatting check. An authorization fix needs an allowed-user case and a denied-user regression.
20
20
 
21
21
  ## Validation Checklist
22
22
 
23
- - [ ] The requested outcome is handled.
24
- - [ ] Relevant verification and safety boundaries are preserved.
25
- - [ ] Limitations are stated.
23
+ - [ ] The requested outcome and applicable failure cases are checked.
24
+ - [ ] Evidence names commands, results, scope, and limitations.
25
+ - [ ] Unrelated changes and existing authorization are preserved.
26
26
 
27
27
  ## Common Mistakes
28
28
 
29
- Repeated approval after authorization; unnecessary ceremonies for routine edits; treating role labels or string checks as behavioral proof.
29
+ Repeated approval after authorization; full ceremonies for routine edits; treating headings, role labels, or schema checks as behavioral proof.
30
30
 
31
31
  ## Integration Notes
32
32
 
33
- Load relevant domain skills and supporting resources on demand. Compatibility identifiers remain available.
33
+ Use security for sensitive boundaries, ponytail-mindset for implementation complexity, and context-os for compiler/configuration work. gstack-roles is a compatibility alias.
@@ -1,19 +1,11 @@
1
- # engineering-workflow Troubleshooting & Common Mistakes
2
-
3
- ## 1. Premature Code Generation
4
-
5
- - **Symptom**: Agent starts spitting out code blocks while the user is still clarifying requirements.
6
- - **Root Cause**: Failure to enforce the IRON RULE of Phase 1 (DEFINE) and Phase 2 (PLAN).
7
- - **Fix**: Halt code output immediately. Announce `[PHASE: Define]` or `[PHASE: Plan]` and provide the structured spec or task breakdown for user sign-off.
8
-
9
- ## 2. Blast Radius Creep
10
-
11
- - **Symptom**: A simple bugfix in one module modifies 8 unrelated configuration and styling files.
12
- - **Root Cause**: Missing isolation boundaries and speculative cleanup.
13
- - **Fix**: Restrict edits strictly to files explicitly declared in the current atomic task's plan.
14
-
15
- ## 3. Unverified Claims of Completion
16
-
17
- - **Symptom**: Agent reports "Task complete! Everything is working" without running tests or builds.
18
- - **Root Cause**: Skipping Phase 4 (VERIFY).
19
- - **Fix**: Always execute tests (`npm test`, validator, compiler) and quote actual terminal exit codes and outputs before declaring completion.
1
+ # Workflow troubleshooting
2
+
3
+ - Missing material requirement: inspect existing conventions, then ask for the
4
+ remaining decision. Existing implementation authorization remains valid.
5
+ - Scope growth: inspect why the caller must change, update the scoped plan, and
6
+ preserve unrelated edits. Do not restrict a necessary fix to an obsolete list.
7
+ - Unverified completion: run relevant behavior checks or report what remains
8
+ unverified. A passing document validator is not implementation evidence.
9
+ - Excess ceremony: use the routine fast track for a typo, formatter, or diagnostic.
10
+ - Failed gate: read the actual failure; distinguish introduced regressions from
11
+ pre-existing failures instead of silently dropping the gate.
@@ -1,12 +1,123 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "x-contextos-evidence-contract": 1,
4
+ "title": "Scoped verification evidence",
5
+ "description": "Report shape and outcome consistency only; command execution and agent behavior require separate evidence.",
3
6
  "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "status",
10
+ "checks",
11
+ "limitations"
12
+ ],
4
13
  "properties": {
5
- "rules_followed": {
6
- "type": "boolean"
14
+ "status": {
15
+ "enum": [
16
+ "verified",
17
+ "partial",
18
+ "not_run"
19
+ ]
20
+ },
21
+ "checks": {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": [
27
+ "command",
28
+ "exitCode",
29
+ "scope"
30
+ ],
31
+ "properties": {
32
+ "command": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "exitCode": {
37
+ "type": [
38
+ "integer",
39
+ "null"
40
+ ]
41
+ },
42
+ "scope": {
43
+ "type": "string",
44
+ "minLength": 1
45
+ }
46
+ }
47
+ }
48
+ },
49
+ "limitations": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ }
7
55
  }
8
56
  },
9
- "required": [
10
- "rules_followed"
57
+ "allOf": [
58
+ {
59
+ "if": {
60
+ "properties": {
61
+ "status": {
62
+ "const": "verified"
63
+ }
64
+ }
65
+ },
66
+ "then": {
67
+ "properties": {
68
+ "checks": {
69
+ "minItems": 1,
70
+ "items": {
71
+ "properties": {
72
+ "exitCode": {
73
+ "const": 0
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "if": {
83
+ "properties": {
84
+ "status": {
85
+ "enum": [
86
+ "partial",
87
+ "not_run"
88
+ ]
89
+ }
90
+ }
91
+ },
92
+ "then": {
93
+ "properties": {
94
+ "limitations": {
95
+ "minItems": 1
96
+ }
97
+ }
98
+ }
99
+ },
100
+ {
101
+ "if": {
102
+ "properties": {
103
+ "status": {
104
+ "const": "not_run"
105
+ }
106
+ }
107
+ },
108
+ "then": {
109
+ "properties": {
110
+ "checks": {
111
+ "items": {
112
+ "properties": {
113
+ "exitCode": {
114
+ "type": "null"
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
11
122
  ]
12
123
  }