Artifacts
Content, comments, and patches produced by workflow steps.
Workflow steps produce artifacts that populate the Push Request. There are three types of artifacts, each created with a dedicated CLI command.
Artifact Types
Content
Content artifacts add rich text to the Push Request overview — typically a generated PR title and description.
airlock artifact content --title "Add user authentication" --body "Implements OAuth2 login flow with..."Comment
Comment artifacts attach inline review comments to specific files and lines in the Changes tab.
airlock artifact comment \
--file src/auth.ts \
--line 42 \
--message "Consider using a constant for the token expiry" \
--severity warningPatch
Patch artifacts suggest code changes that appear in the Patches tab for review.
airlock artifact patch \
--title "Fix import ordering" \
--explanation "Sorted imports alphabetically per project convention"Patch artifacts capture the current worktree diff as the patch content. Pre-freeze patches are applied automatically; post-freeze patches are queued for manual review.
See the CLI Reference for full flag details on each command.
How Artifacts Populate the Push Request
| Artifact Type | Desktop App Tab |
|---|---|
| Content | Overview — Title and description |
| Comment | Changes — Inline comments on the diff |
| Patch | Patches — Suggested changes to accept or reject |
Producing Artifacts in Custom Steps
Any workflow step can produce artifacts by calling the airlock artifact commands. For example, a custom linting step might produce both patches (auto-fixes) and comments (warnings):
- name: custom-lint
run: |
# Run linter and apply fixes
eslint --fix src/
airlock artifact patch --title "ESLint auto-fixes" --explanation "Applied ESLint auto-fix rules"
# Add a comment for manual-fix issues
airlock artifact comment --file src/index.ts --line 10 \
--message "Unused variable 'foo'" --severity warningStep Result Artifacts
Some default steps write JSON result files to $AIRLOCK_ARTIFACTS/ that downstream steps can read:
test_result.json
Written by the test step:
{
"verdict": "pass",
"summary": "All 42 tests passed",
"details": "..."
}| Field | Values | Description |
|---|---|---|
verdict | pass, fail, or skip | Overall test outcome |
summary | string | Brief summary of the test run |
critique_result.json
Written by the critique step:
{
"max_severity": "warning",
"comment_count": 3,
"summary": "Found 2 warnings and 1 info suggestion"
}| Field | Values | Description |
|---|---|---|
max_severity | none, info, warning, or error | Highest severity across comments |
comment_count | number | Total number of review comments |
risk_assessment.json
Written by the gate step:
{
"risk_level": "medium",
"summary": "Change modifies core auth logic with partial test coverage",
"rationale": "The change touches authentication middleware...",
"system_impact": "moderate",
"ambiguity": "medium",
"approval_threshold": "medium",
"await_human_approval": "true",
"test_verdict": "pass",
"critique_max_severity": "warning",
"critique_comment_count": 3
}| Field | Values | Description |
|---|---|---|
risk_level | low, medium, or high | Assessed risk level of the change |
summary | string | Brief summary of the risk assessment |
rationale | string | Explanation of why this risk level was chosen |
system_impact | cosmetic, moderate, fundamental | Scope of the change's impact on the system |
ambiguity | low, medium, or high | Level of implementation ambiguity |
approval_threshold | string | Configured AIRLOCK_RISK_THRESHOLD value |
await_human_approval | "true" or "false" | Whether the gate paused for approval |
test_verdict | pass, fail, or skip | Test verdict from upstream step |
critique_max_severity | none, info, warning, error | Highest critique severity |
critique_comment_count | number | Number of critique comments |
These artifacts are used by the gate step to perform a risk assessment and conditionally pause the pipeline with airlock exec await.
Related
- Push Requests — How artifacts appear in the Push Request UI
- Custom Steps — Writing steps that produce artifacts