@probelabs/visor 0.1.124 → 0.1.126

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 (195) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/docs/DEPLOYMENT.md +117 -11
  3. package/dist/docs/GITHUB_CHECKS.md +18 -4
  4. package/dist/docs/NPM_USAGE.md +112 -39
  5. package/dist/docs/action-reference.md +63 -9
  6. package/dist/docs/advanced-ai.md +58 -51
  7. package/dist/docs/ai-configuration.md +99 -11
  8. package/dist/docs/ai-custom-tools-usage.md +70 -33
  9. package/dist/docs/ai-custom-tools.md +50 -27
  10. package/dist/docs/architecture.md +1232 -0
  11. package/dist/docs/bot-transports-rfc.md +13 -3
  12. package/dist/docs/ci-cli-mode.md +116 -8
  13. package/dist/docs/claude-code.md +111 -41
  14. package/dist/docs/command-provider.md +37 -15
  15. package/dist/docs/commands.md +252 -6
  16. package/dist/docs/configuration.md +138 -4
  17. package/dist/docs/contributing.md +737 -0
  18. package/dist/docs/custom-tools.md +39 -8
  19. package/dist/docs/dashboards/README.md +33 -19
  20. package/dist/docs/debug-visualizer-progress.md +14 -13
  21. package/dist/docs/debug-visualizer-rfc.md +14 -13
  22. package/dist/docs/debug-visualizer.md +30 -5
  23. package/dist/docs/debugging.md +73 -8
  24. package/dist/docs/default-output-schema.md +24 -20
  25. package/dist/docs/dependencies.md +75 -21
  26. package/dist/docs/dev-playbook.md +85 -9
  27. package/dist/docs/engine-pause-resume-rfc.md +11 -11
  28. package/dist/docs/engine-state-machine-plan.md +10 -3
  29. package/dist/docs/event-driven-github-integration-rfc.md +20 -11
  30. package/dist/docs/event-triggers.md +95 -6
  31. package/dist/docs/execution-statistics-rfc.md +16 -4
  32. package/dist/docs/fact-validator-gap-analysis.md +12 -1
  33. package/dist/docs/fact-validator-implementation-plan.md +19 -11
  34. package/dist/docs/fail-if.md +116 -11
  35. package/dist/docs/failure-conditions-implementation.md +40 -6
  36. package/dist/docs/failure-conditions-schema.md +243 -87
  37. package/dist/docs/failure-routing-rfc.md +43 -18
  38. package/dist/docs/failure-routing.md +80 -23
  39. package/dist/docs/faq.md +836 -0
  40. package/dist/docs/foreach-dependency-propagation.md +32 -15
  41. package/dist/docs/github-ops.md +6 -5
  42. package/dist/docs/glossary.md +322 -0
  43. package/dist/docs/goto-forward-run-plan.md +23 -10
  44. package/dist/docs/guides/criticality-modes.md +15 -13
  45. package/dist/docs/guides/fault-management-and-contracts.md +8 -5
  46. package/dist/docs/guides/workflow-style-guide.md +17 -8
  47. package/dist/docs/http.md +102 -3
  48. package/dist/docs/human-input-provider.md +20 -36
  49. package/dist/docs/index.md +206 -0
  50. package/dist/docs/lifecycle-hooks.md +322 -2
  51. package/dist/docs/limits.md +20 -5
  52. package/dist/docs/liquid-templates.md +86 -14
  53. package/dist/docs/loop-routing-refactor.md +4 -2
  54. package/dist/docs/mcp-provider.md +53 -19
  55. package/dist/docs/mcp.md +27 -1
  56. package/dist/docs/memory.md +7 -2
  57. package/dist/docs/migration.md +596 -0
  58. package/dist/docs/observability.md +227 -6
  59. package/dist/docs/output-formats.md +388 -9
  60. package/dist/docs/output-history.md +36 -6
  61. package/dist/docs/performance.md +510 -4
  62. package/dist/docs/pluggable.md +95 -4
  63. package/dist/docs/proposals/snapshot-scope-execution.md +6 -5
  64. package/dist/docs/providers/git-checkout.md +16 -14
  65. package/dist/docs/providers/noop.md +696 -0
  66. package/dist/docs/recipes.md +8 -9
  67. package/dist/docs/rfc/git-checkout-step.md +3 -1
  68. package/dist/docs/rfc/on_init-hook.md +18 -5
  69. package/dist/docs/rfc/workspace-isolation.md +16 -0
  70. package/dist/docs/roadmap/criticality-implementation-tasks.md +27 -27
  71. package/dist/docs/router-patterns.md +155 -43
  72. package/dist/docs/schema-templates.md +51 -15
  73. package/dist/docs/script.md +162 -13
  74. package/dist/docs/sdk.md +46 -12
  75. package/dist/docs/security.md +464 -5
  76. package/dist/docs/slack-integration.md +481 -0
  77. package/dist/docs/tag-filtering.md +60 -20
  78. package/dist/docs/telemetry-setup.md +157 -46
  79. package/dist/docs/test-framework-rfc.md +37 -36
  80. package/dist/docs/testing/assertions.md +92 -4
  81. package/dist/docs/testing/ci.md +56 -7
  82. package/dist/docs/testing/cli.md +57 -15
  83. package/dist/docs/testing/cookbook.md +53 -20
  84. package/dist/docs/testing/dsl-reference.md +110 -9
  85. package/dist/docs/testing/fixtures-and-mocks.md +28 -3
  86. package/dist/docs/testing/flows.md +59 -4
  87. package/dist/docs/testing/getting-started.md +14 -13
  88. package/dist/docs/testing/troubleshooting.md +39 -2
  89. package/dist/docs/timeouts.md +174 -18
  90. package/dist/docs/troubleshooting.md +176 -6
  91. package/dist/docs/workflow-creation-guide.md +101 -3
  92. package/dist/docs/workflows.md +138 -41
  93. package/dist/examples/README.md +169 -4
  94. package/dist/examples/ai-custom-tools-simple.yaml +2 -3
  95. package/dist/examples/cron-webhook-config.yaml +15 -0
  96. package/dist/examples/forEach-example.yaml +6 -0
  97. package/dist/examples/git-checkout-basic.yaml +4 -0
  98. package/dist/examples/git-checkout-compare.yaml +6 -0
  99. package/dist/examples/git-checkout-cross-repo.yaml +7 -0
  100. package/dist/examples/http-integration-config.yaml +30 -0
  101. package/dist/examples/https-server-config.yaml +15 -0
  102. package/dist/examples/mcp-provider-example.yaml +10 -10
  103. package/dist/examples/transform-example.yaml +3 -0
  104. package/dist/examples/webhook-pipeline-config.yaml +18 -0
  105. package/dist/examples/workflows/workflow-composition-example.yaml +4 -0
  106. package/dist/frontends/slack-frontend.d.ts +2 -0
  107. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  108. package/dist/generated/config-schema.d.ts +11 -7
  109. package/dist/generated/config-schema.d.ts.map +1 -1
  110. package/dist/generated/config-schema.json +11 -7
  111. package/dist/index.js +3127 -974
  112. package/dist/output/traces/{run-2026-01-28T16-15-24-569Z.ndjson → run-2026-01-31T16-37-22-321Z.ndjson} +84 -84
  113. package/dist/output/traces/{run-2026-01-28T16-16-09-757Z.ndjson → run-2026-01-31T16-38-06-031Z.ndjson} +1013 -1013
  114. package/dist/providers/ai-check-provider.d.ts +9 -2
  115. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  116. package/dist/providers/command-check-provider.d.ts.map +1 -1
  117. package/dist/providers/mcp-custom-sse-server.d.ts +17 -1
  118. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  119. package/dist/providers/workflow-check-provider.d.ts.map +1 -1
  120. package/dist/providers/workflow-tool-executor.d.ts +68 -0
  121. package/dist/providers/workflow-tool-executor.d.ts.map +1 -0
  122. package/dist/sdk/{check-provider-registry-AQ3JETBG.mjs → check-provider-registry-3KI5RKXT.mjs} +6 -5
  123. package/dist/sdk/check-provider-registry-IYILYY35.mjs +28 -0
  124. package/dist/sdk/chunk-2CPMMNIX.mjs +1459 -0
  125. package/dist/sdk/chunk-2CPMMNIX.mjs.map +1 -0
  126. package/dist/sdk/chunk-5LI6T4O3.mjs +3600 -0
  127. package/dist/sdk/chunk-5LI6T4O3.mjs.map +1 -0
  128. package/dist/sdk/{chunk-YLQ4UN62.mjs → chunk-A4PGHURG.mjs} +6838 -6257
  129. package/dist/sdk/chunk-A4PGHURG.mjs.map +1 -0
  130. package/dist/sdk/chunk-EXFGO4FX.mjs +147 -0
  131. package/dist/sdk/chunk-EXFGO4FX.mjs.map +1 -0
  132. package/dist/sdk/chunk-PJ7K5UFC.mjs +17732 -0
  133. package/dist/sdk/chunk-PJ7K5UFC.mjs.map +1 -0
  134. package/dist/sdk/{chunk-BHZ4CKUS.mjs → chunk-PXFIALUH.mjs} +77 -8
  135. package/dist/sdk/chunk-PXFIALUH.mjs.map +1 -0
  136. package/dist/sdk/{chunk-PVITVJ6J.mjs → chunk-RTKJXNZS.mjs} +32 -9
  137. package/dist/sdk/chunk-RTKJXNZS.mjs.map +1 -0
  138. package/dist/sdk/chunk-VW2GBXQT.mjs +606 -0
  139. package/dist/sdk/chunk-VW2GBXQT.mjs.map +1 -0
  140. package/dist/sdk/{config-RQQPMLRD.mjs → config-5AUYQFHE.mjs} +2 -2
  141. package/dist/sdk/config-6CUVEH7H.mjs +16 -0
  142. package/dist/sdk/config-6CUVEH7H.mjs.map +1 -0
  143. package/dist/sdk/{github-frontend-6Q4BISZX.mjs → github-frontend-BZ4N3BFZ.mjs} +7 -3
  144. package/dist/sdk/github-frontend-BZ4N3BFZ.mjs.map +1 -0
  145. package/dist/sdk/host-4MT3EW2I.mjs +52 -0
  146. package/dist/sdk/{host-P5NQICP7.mjs → host-NYWXLIFC.mjs} +2 -2
  147. package/dist/sdk/host-NYWXLIFC.mjs.map +1 -0
  148. package/dist/sdk/{routing-DEY2AIXM.mjs → routing-6R42GXUO.mjs} +2 -2
  149. package/dist/sdk/routing-6R42GXUO.mjs.map +1 -0
  150. package/dist/sdk/routing-7FXPULTO.mjs +24 -0
  151. package/dist/sdk/routing-7FXPULTO.mjs.map +1 -0
  152. package/dist/sdk/sdk.d.mts +3 -1
  153. package/dist/sdk/sdk.d.ts +3 -1
  154. package/dist/sdk/sdk.js +12163 -11204
  155. package/dist/sdk/sdk.js.map +1 -1
  156. package/dist/sdk/sdk.mjs +14 -10
  157. package/dist/sdk/sdk.mjs.map +1 -1
  158. package/dist/sdk/slack-frontend-JUT3TYVC.mjs +821 -0
  159. package/dist/sdk/slack-frontend-JUT3TYVC.mjs.map +1 -0
  160. package/dist/sdk/workflow-check-provider-H3CUOLUD.mjs +28 -0
  161. package/dist/sdk/workflow-check-provider-H3CUOLUD.mjs.map +1 -0
  162. package/dist/sdk/workflow-check-provider-YUNNF4KC.mjs +28 -0
  163. package/dist/sdk/workflow-check-provider-YUNNF4KC.mjs.map +1 -0
  164. package/dist/sdk/workflow-registry-KFWSDSLM.mjs +12 -0
  165. package/dist/sdk/workflow-registry-KFWSDSLM.mjs.map +1 -0
  166. package/dist/slack/socket-runner.d.ts +2 -0
  167. package/dist/slack/socket-runner.d.ts.map +1 -1
  168. package/dist/state-machine/context/workflow-inputs.d.ts +20 -0
  169. package/dist/state-machine/context/workflow-inputs.d.ts.map +1 -0
  170. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
  171. package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -1
  172. package/dist/state-machine/dispatch/stats-manager.d.ts.map +1 -1
  173. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
  174. package/dist/state-machine/states/routing.d.ts +2 -1
  175. package/dist/state-machine/states/routing.d.ts.map +1 -1
  176. package/dist/traces/{run-2026-01-28T16-15-24-569Z.ndjson → run-2026-01-31T16-37-22-321Z.ndjson} +84 -84
  177. package/dist/traces/{run-2026-01-28T16-16-09-757Z.ndjson → run-2026-01-31T16-38-06-031Z.ndjson} +1013 -1013
  178. package/dist/types/config.d.ts +3 -1
  179. package/dist/types/config.d.ts.map +1 -1
  180. package/dist/utils/human-id.d.ts +12 -0
  181. package/dist/utils/human-id.d.ts.map +1 -0
  182. package/dist/utils/worktree-manager.d.ts +3 -0
  183. package/dist/utils/worktree-manager.d.ts.map +1 -1
  184. package/dist/workflow-executor.d.ts.map +1 -1
  185. package/dist/workflow-registry.d.ts +1 -0
  186. package/dist/workflow-registry.d.ts.map +1 -1
  187. package/package.json +2 -2
  188. package/dist/sdk/chunk-BHZ4CKUS.mjs.map +0 -1
  189. package/dist/sdk/chunk-PVITVJ6J.mjs.map +0 -1
  190. package/dist/sdk/chunk-YLQ4UN62.mjs.map +0 -1
  191. package/dist/sdk/github-frontend-6Q4BISZX.mjs.map +0 -1
  192. /package/dist/sdk/{check-provider-registry-AQ3JETBG.mjs.map → check-provider-registry-3KI5RKXT.mjs.map} +0 -0
  193. /package/dist/sdk/{config-RQQPMLRD.mjs.map → check-provider-registry-IYILYY35.mjs.map} +0 -0
  194. /package/dist/sdk/{routing-DEY2AIXM.mjs.map → config-5AUYQFHE.mjs.map} +0 -0
  195. /package/dist/sdk/{host-P5NQICP7.mjs.map → host-4MT3EW2I.mjs.map} +0 -0
@@ -1,8 +1,254 @@
1
- ## 💬 PR Comment Commands
1
+ # Visor Commands
2
2
 
3
- - `/review` Rerun all configured checks on the pull request
4
- - `/review --check security` – Run only security checks
5
- - `/review --check performance` – Run only performance checks
6
- - `/visor …` – Ask the assistant a question about the code or context
7
- - `/review --help` – Show available review commands
3
+ This document covers both the CLI commands and PR comment commands available in Visor.
8
4
 
5
+ ## CLI Commands
6
+
7
+ The main entry point is the `visor` command. Run `visor --help` to see all available options.
8
+
9
+ ### Main Command
10
+
11
+ ```bash
12
+ visor [options]
13
+ ```
14
+
15
+ Run configured checks against the current repository. Without any options, Visor will discover and load configuration from `.visor.yaml` in the project root.
16
+
17
+ ### Subcommands
18
+
19
+ #### `visor validate` / `visor lint`
20
+
21
+ Validate a Visor configuration file without running checks.
22
+
23
+ ```bash
24
+ visor validate --config path/to/config.yaml
25
+ visor lint --config .visor.yaml
26
+ ```
27
+
28
+ #### `visor test`
29
+
30
+ Run the Visor test framework for testing workflows.
31
+
32
+ ```bash
33
+ visor test [path] [options]
34
+ ```
35
+
36
+ **Options:**
37
+ - `--config <path>` - Path to test suite file, directory, or glob pattern
38
+ - `--only <name>` - Run only tests matching this name (supports `CASE` or `CASE#STAGE`)
39
+ - `--bail` - Stop on first failure
40
+ - `--list` - List discovered tests without running them
41
+ - `--validate` - Validate test files without running them
42
+ - `--json <path>` - Write JSON report to path (use `-` for stdout)
43
+ - `--report junit:<path>` - Write JUnit XML report
44
+ - `--summary md:<path>` - Write Markdown summary
45
+ - `--max-parallel <n>` - Maximum parallel test cases per suite
46
+ - `--max-suites <n>` - Maximum parallel test suites
47
+ - `--no-mocks` - Disable mocks
48
+
49
+ **Examples:**
50
+ ```bash
51
+ visor test tests/ # Run all tests in directory
52
+ visor test --config tests/my-suite.yaml # Run specific test suite
53
+ visor test --only "my test case" # Run specific test
54
+ visor test --bail --json results.json # Stop on failure, save JSON report
55
+ ```
56
+
57
+ #### `visor code-review` / `visor review`
58
+
59
+ Run the built-in code review workflow against the current repository.
60
+
61
+ ```bash
62
+ visor code-review [options]
63
+ visor review [options]
64
+ ```
65
+
66
+ This uses the default code-review configuration from `defaults/code-review.yaml`.
67
+
68
+ #### `visor build`
69
+
70
+ Run the agent builder workflow to create or modify Visor agents.
71
+
72
+ ```bash
73
+ visor build <path/to/agent.yaml> [options]
74
+ ```
75
+
76
+ **Example:**
77
+ ```bash
78
+ visor build agents/my-agent.yaml --message "Add error handling"
79
+ ```
80
+
81
+ #### `visor mcp-server`
82
+
83
+ Start Visor as an MCP (Model Context Protocol) server.
84
+
85
+ ```bash
86
+ visor mcp-server [options]
87
+ ```
88
+
89
+ **Options:**
90
+ - `--config <path>` - Configuration file path
91
+ - `--mcp-tool-name <name>` - Custom tool name for the MCP server
92
+ - `--mcp-tool-description <desc>` - Custom tool description
93
+
94
+ ### Common CLI Options
95
+
96
+ #### Check Selection
97
+ - `-c, --check <type>` - Specify check type (can be used multiple times)
98
+
99
+ #### Output Options
100
+ - `-o, --output <format>` - Output format: `table` (default), `json`, `markdown`, `sarif`
101
+ - `--output-file <path>` - Write output to file instead of stdout
102
+
103
+ #### Configuration
104
+ - `--config <path>` - Path to configuration file
105
+
106
+ #### Execution Control
107
+ - `--timeout <ms>` - Timeout for operations (default: 1200000ms / 20 minutes)
108
+ - `--max-parallelism <count>` - Maximum parallel checks (default: 3)
109
+ - `--fail-fast` - Stop execution on first failure
110
+
111
+ #### Tag Filtering
112
+ - `--tags <tags>` - Include checks with these tags (comma-separated)
113
+ - `--exclude-tags <tags>` - Exclude checks with these tags (comma-separated)
114
+
115
+ See [Tag Filtering](tag-filtering.md) for detailed tag filtering documentation.
116
+
117
+ #### Verbosity
118
+ - `--debug` - Enable debug mode with detailed output
119
+ - `-v, --verbose` - Increase verbosity (without full debug)
120
+ - `-q, --quiet` - Reduce verbosity to warnings and errors
121
+
122
+ #### Code Context
123
+ - `--enable-code-context` - Force include code diffs in analysis
124
+ - `--disable-code-context` - Force exclude code diffs from analysis
125
+ - `--analyze-branch-diff` - Analyze diff vs base branch (auto-enabled for code-review schemas)
126
+
127
+ #### Event Simulation
128
+ - `--event <type>` - Simulate GitHub event: `pr_opened`, `pr_updated`, `issue_opened`, `issue_comment`, `manual`, `all`
129
+
130
+ #### Interactive Mode
131
+ - `--tui` - Enable interactive TUI (chat + logs tabs)
132
+ - `--message <text>` - Message for human-input checks (inline text or file path)
133
+
134
+ #### Debug Server
135
+ - `--debug-server` - Start debug visualizer server for live execution visualization
136
+ - `--debug-port <port>` - Port for debug server (default: 3456)
137
+
138
+ #### Workspace Options
139
+ - `--keep-workspace` - Keep workspace folders after execution (for debugging)
140
+ - `--workspace-path <path>` - Workspace base path
141
+ - `--workspace-here` - Place workspace under current directory
142
+ - `--workspace-name <name>` - Workspace directory name
143
+ - `--workspace-project-name <name>` - Main project folder name inside workspace
144
+
145
+ #### Other Options
146
+ - `--slack` - Enable Slack Socket Mode runner
147
+ - `--mode <mode>` - Run mode: `cli` (default) or `github-actions`
148
+ - `--no-remote-extends` - Disable loading configurations from remote URLs
149
+ - `--allowed-remote-patterns <patterns>` - Comma-separated list of allowed URL prefixes for remote config extends
150
+
151
+ ### Examples
152
+
153
+ ```bash
154
+ # Run all configured checks
155
+ visor
156
+
157
+ # Run specific check types
158
+ visor --check security --check performance
159
+
160
+ # Output as JSON to file
161
+ visor --output json --output-file results.json
162
+
163
+ # Run with 5 minute timeout and 5 parallel checks
164
+ visor --timeout 300000 --max-parallelism 5
165
+
166
+ # Run only checks tagged as 'local' or 'fast'
167
+ visor --tags local,fast
168
+
169
+ # Run security checks but skip slow ones
170
+ visor --tags security --exclude-tags slow
171
+
172
+ # Enable debug mode with markdown output
173
+ visor --debug --output markdown
174
+
175
+ # Generate SARIF report
176
+ visor --output sarif > results.sarif
177
+
178
+ # Interactive TUI mode
179
+ visor --tui
180
+
181
+ # Debug visualizer
182
+ visor --debug-server --debug-port 3456
183
+ ```
184
+
185
+ ---
186
+
187
+ ## PR Comment Commands
188
+
189
+ When Visor is configured as a GitHub Action, it responds to slash commands in PR comments.
190
+
191
+ ### Built-in Commands
192
+
193
+ #### `/help`
194
+
195
+ Show available commands and their descriptions.
196
+
197
+ ```
198
+ /help
199
+ ```
200
+
201
+ Displays a help message listing all configured custom commands plus built-in commands.
202
+
203
+ #### `/status`
204
+
205
+ Show current PR status and metrics.
206
+
207
+ ```
208
+ /status
209
+ ```
210
+
211
+ Displays information about the current state of the pull request.
212
+
213
+ ### Custom Commands
214
+
215
+ Custom commands are configured via the `command` property in check definitions within your `.visor.yaml` file.
216
+
217
+ **Example configuration:**
218
+
219
+ ```yaml
220
+ checks:
221
+ security-review:
222
+ type: ai
223
+ command: review-security
224
+ prompt: "Review this code for security issues"
225
+
226
+ performance-check:
227
+ type: ai
228
+ command: check-perf
229
+ prompt: "Analyze performance implications"
230
+ ```
231
+
232
+ With the above configuration, the following commands become available in PR comments:
233
+
234
+ - `/review-security` - Runs the security-review check
235
+ - `/check-perf` - Runs the performance-check check
236
+
237
+ When a user comments `/help` on a PR, they'll see these custom commands listed along with which checks they trigger.
238
+
239
+ ### Command Behavior
240
+
241
+ - Commands are **case-insensitive** (`/Help` and `/help` both work)
242
+ - Commands must start with a forward slash (`/`)
243
+ - Unrecognized commands are ignored
244
+ - Commands can only be used in PR comments when Visor is running as a GitHub Action
245
+
246
+ ---
247
+
248
+ ## Related Documentation
249
+
250
+ - [Configuration](configuration.md) - Full configuration reference
251
+ - [Tag Filtering](tag-filtering.md) - Filter checks by tags
252
+ - [CI/CLI Mode](ci-cli-mode.md) - Running Visor in CI environments
253
+ - [Debug Visualizer](debug-visualizer.md) - Interactive debugging
254
+ - [Event Triggers](event-triggers.md) - Configuring when checks run
@@ -21,11 +21,97 @@ visor validate --config examples/enhanced-config.yaml
21
21
 
22
22
  The `validate` command checks for:
23
23
  - **Missing required fields** (e.g., `version`)
24
- - **Invalid check types** (must be: `ai`, `claude-code`, `command`, `http`, `http_input`, `http_client`, `noop`, `log`, `github`)
24
+ - **Invalid check types** (see [Check Types](#check-types) below)
25
25
  - **Invalid event triggers** (e.g., `scheduled` should be `schedule`)
26
26
  - **Incorrect field names** and typos
27
27
  - **Schema compliance** for all configuration options
28
28
 
29
+ ### Check Types
30
+
31
+ Visor supports the following check types:
32
+
33
+ | Type | Description | Documentation |
34
+ |------|-------------|---------------|
35
+ | `ai` | AI-powered analysis using LLMs | [AI Configuration](./ai-configuration.md) |
36
+ | `claude-code` | Claude Code SDK integration | [Claude Code](./claude-code.md) |
37
+ | `command` | Execute shell commands | [Command Provider](./command-provider.md) |
38
+ | `script` | Custom JavaScript logic | [Script](./script.md) |
39
+ | `http` | Send HTTP requests (output) | [HTTP Integration](./http.md) |
40
+ | `http_input` | Receive webhooks | [HTTP Integration](./http.md) |
41
+ | `http_client` | Fetch data from APIs | [HTTP Integration](./http.md) |
42
+ | `mcp` | MCP tool execution | [MCP Provider](./mcp-provider.md) |
43
+ | `memory` | Key-value storage operations | [Memory](./memory.md) |
44
+ | `workflow` | Reusable workflow invocation | [Workflows](./workflows.md) |
45
+ | `git-checkout` | Git repository checkout | [Git Checkout](./providers/git-checkout.md) |
46
+ | `human-input` | Request user input | [Human Input](./human-input-provider.md) |
47
+ | `github` | GitHub API operations | See [Native GitHub Provider](#native-github-provider) |
48
+ | `log` | Debug logging | [Debugging](./debugging.md) |
49
+ | `noop` | No-operation (for routing) | Used for control flow |
50
+
51
+ ### Criticality and Contracts
52
+
53
+ Steps can declare their operational criticality, which drives default safety policies for contracts, retries, and loop budgets. See the [Criticality Modes Guide](./guides/criticality-modes.md) for complete documentation.
54
+
55
+ ```yaml
56
+ steps:
57
+ post-comment:
58
+ type: github
59
+ criticality: external # external | internal | policy | info
60
+ op: comment.create
61
+
62
+ # Preconditions - must hold before execution
63
+ assume:
64
+ - "outputs['permission-check'].allowed === true"
65
+ - "env.DRY_RUN !== 'true'"
66
+
67
+ # Postconditions - assertions about produced output
68
+ guarantee:
69
+ - "output && typeof output.id === 'number'"
70
+
71
+ # Other step configuration...
72
+ ```
73
+
74
+ #### Criticality Levels
75
+
76
+ | Level | Description | Use When |
77
+ |-------|-------------|----------|
78
+ | `external` | Mutates external systems (GitHub, HTTP POST, etc.) | Step has side effects outside the engine |
79
+ | `internal` | Steers execution (forEach, routing, flags) | Step controls workflow routing |
80
+ | `policy` | Enforces permissions/compliance | Step gates external actions |
81
+ | `info` | Read-only, non-critical | Pure computation, safe to fail |
82
+
83
+ #### Contracts: assume and guarantee
84
+
85
+ - **`assume`**: Preconditions that must hold before execution. If false, the step is skipped (skipReason='assume').
86
+ - **`guarantee`**: Postconditions about the produced output. Violations are recorded as error issues with ruleId "contract/guarantee_failed".
87
+
88
+ ```yaml
89
+ steps:
90
+ critical-step:
91
+ type: http
92
+ criticality: external
93
+ url: "https://api.example.com/deploy"
94
+ method: POST
95
+
96
+ # Only run if authenticated and not in dry-run mode
97
+ assume:
98
+ - "env.API_TOKEN"
99
+ - "env.DRY_RUN !== 'true'"
100
+
101
+ # Verify the response is valid
102
+ guarantee:
103
+ - "output && output.status === 'success'"
104
+ - "output.deployment_id !== undefined"
105
+
106
+ schema: plain
107
+ ```
108
+
109
+ **Best Practices:**
110
+ - Use `assume` for pre-execution prerequisites (env/memory/upstream), not for checking this step's output
111
+ - Use `guarantee` for assertions about this step's produced output (shape, values, invariants)
112
+ - Use `fail_if` for policy/threshold decisions
113
+ - Keep expressions deterministic (no time/random/network)
114
+
29
115
  Example validation output:
30
116
  ```
31
117
  🔍 Visor Configuration Validator
@@ -50,7 +136,7 @@ If there are errors, you'll get detailed messages with hints:
50
136
  ```
51
137
  ❌ Configuration validation failed!
52
138
 
53
- Error: Invalid check type "webhook". Must be: ai, claude-code, command, http, http_input, http_client, noop, log, github
139
+ Error: Invalid check type "webhook". Must be: ai, claude-code, mcp, command, script, http, http_input, http_client, memory, noop, log, github, human-input, workflow, git-checkout
54
140
 
55
141
  💡 Hint: The 'webhook' type has been renamed to 'http' for output and 'http_input' for input.
56
142
  ```
@@ -63,7 +149,6 @@ Override global AI settings at the check level:
63
149
  # Global AI settings (optional)
64
150
  ai_provider: anthropic # or google, openai, bedrock
65
151
  ai_model: claude-3-sonnet
66
- ai_temperature: 0.2
67
152
 
68
153
  steps:
69
154
  performance-review:
@@ -71,7 +156,6 @@ steps:
71
156
  ai:
72
157
  provider: google
73
158
  model: gemini-1.5-pro
74
- temperature: 0.1
75
159
  prompt: "Analyze performance metrics and provide optimization suggestions"
76
160
 
77
161
  security-review:
@@ -322,3 +406,53 @@ Notes:
322
406
  - Requires `GITHUB_TOKEN` (or `github-token` Action input) and `GITHUB_REPOSITORY` in environment.
323
407
  - Use Liquid `safe_label` / `safe_label_list` to constrain labels to `[A-Za-z0-9:/\- ]` (alphanumerics, colon, slash, hyphen, and space).
324
408
  - Provider errors surface as issues (e.g., `github/missing_token`, `github/op_failed`) and won't abort the whole run.
409
+
410
+ ### Additional Configuration Options
411
+
412
+ The following global configuration options are available and documented in detail in their respective guides:
413
+
414
+ | Option | Description | Documentation |
415
+ |--------|-------------|---------------|
416
+ | `max_parallelism` | Maximum number of checks to run in parallel (default: 3) | [Performance](./performance.md) |
417
+ | `fail_fast` | Stop execution when any check fails (default: false) | [Performance](./performance.md) |
418
+ | `fail_if` | Global failure condition expression | [Fail If](./fail-if.md) |
419
+ | `tag_filter` | Filter checks by tags (include/exclude) | [Tag Filtering](./tag-filtering.md) |
420
+ | `routing` | Global routing defaults for retry/goto policies | [Failure Routing](./failure-routing.md) |
421
+ | `limits` | Global execution limits (max_runs_per_check, max_workflow_depth) | [Limits](./limits.md) |
422
+ | `tools` | Custom tool definitions for MCP blocks | [Custom Tools](./custom-tools.md) |
423
+ | `imports` | Import workflow definitions from external files | [Workflows](./workflows.md) |
424
+ | `inputs`/`outputs` | Workflow input/output definitions | [Workflows](./workflows.md) |
425
+ | `http_server` | HTTP server for receiving webhooks | [HTTP Integration](./http.md) |
426
+ | `memory` | Memory storage configuration | [Memory](./memory.md) |
427
+ | `output` | Output configuration (PR comments, file comments) | [Output Formats](./output-formats.md) |
428
+ | `workspace` | Workspace isolation configuration | [Workspace Isolation RFC](./rfc/workspace-isolation.md) |
429
+
430
+ Example combining several options:
431
+
432
+ ```yaml
433
+ version: "1.0"
434
+
435
+ max_parallelism: 5
436
+ fail_fast: true
437
+
438
+ tag_filter:
439
+ include: [security, performance]
440
+ exclude: [experimental]
441
+
442
+ limits:
443
+ max_runs_per_check: 50
444
+ max_workflow_depth: 3
445
+
446
+ routing:
447
+ max_loops: 10
448
+ defaults:
449
+ on_fail:
450
+ retry:
451
+ max: 2
452
+ backoff:
453
+ mode: exponential
454
+ delay_ms: 1000
455
+
456
+ steps:
457
+ # ... your step definitions
458
+ ```