@aporthq/aport-agent-guardrails 1.0.16 → 1.0.17
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.
|
@@ -145,6 +145,51 @@ Policy packs define the complete policy logic for one or more capabilities. They
|
|
|
145
145
|
- `oap.unsigned_artifact` - Artifact signature required
|
|
146
146
|
- `oap.limit_exceeded` - Daily release limit exceeded
|
|
147
147
|
|
|
148
|
+
### deliverable.task.complete.v1
|
|
149
|
+
|
|
150
|
+
**Purpose**: Pre-action governance for an agent marking a task complete. Enforces required deliverable evidence — summary, acceptance criteria attestations, test status, reviewer identity — before done is authorized.
|
|
151
|
+
|
|
152
|
+
**Required Capability**: `deliverable.task.complete`
|
|
153
|
+
|
|
154
|
+
**Minimum Assurance**: L0
|
|
155
|
+
|
|
156
|
+
**Context Fields**:
|
|
157
|
+
- `task_id` (string): Unique identifier for the task
|
|
158
|
+
- `output_type` (string): "code" | "document" | "analysis" | "plan" | "data" | "other"
|
|
159
|
+
- `criteria_attestations` (array): One attestation per passport acceptance criterion, each with `criterion_id`, `met`, `evidence`
|
|
160
|
+
- `summary` (string, optional): Required if `require_summary` is true
|
|
161
|
+
- `tests_passing` (boolean, optional): Required if `require_tests_passing` is true
|
|
162
|
+
- `reviewer_agent_id` (string, optional): Required if `require_different_reviewer` is true
|
|
163
|
+
- `author_agent_id` (string, optional): Required when `require_different_reviewer` is true
|
|
164
|
+
- `output_content` (string, optional): Scanned for blocked patterns if `scan_output` is true
|
|
165
|
+
|
|
166
|
+
**Limits Structure**:
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"deliverable.task.complete": {
|
|
170
|
+
"require_summary": true,
|
|
171
|
+
"min_summary_words": 20,
|
|
172
|
+
"require_tests_passing": false,
|
|
173
|
+
"require_different_reviewer": false,
|
|
174
|
+
"scan_output": false,
|
|
175
|
+
"blocked_patterns": ["TODO", "FIXME", "console.log"],
|
|
176
|
+
"acceptance_criteria": [
|
|
177
|
+
{ "id": "output_produced", "description": "A concrete output artifact must be produced" },
|
|
178
|
+
{ "id": "no_placeholders", "description": "Output must not contain TODO, FIXME, or placeholder text" }
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Deny Codes**:
|
|
185
|
+
- `oap.criteria_not_met` - An attestation has met: false
|
|
186
|
+
- `oap.evidence_missing` - An attestation has empty evidence
|
|
187
|
+
- `oap.criteria_incomplete` - Missing attestation for a passport criterion
|
|
188
|
+
- `oap.summary_insufficient` - Summary absent or below min_summary_words
|
|
189
|
+
- `oap.tests_not_passing` - tests_passing required but false or missing
|
|
190
|
+
- `oap.self_review_not_allowed` - Same agent for reviewer and author, or either missing
|
|
191
|
+
- `oap.blocked_pattern_detected` - Output contains a blocked pattern
|
|
192
|
+
|
|
148
193
|
## Custom Capabilities
|
|
149
194
|
|
|
150
195
|
### Definition Process
|
|
@@ -232,6 +232,13 @@ Keys are resolved using the following format:
|
|
|
232
232
|
| `oap.passport_suspended` | Passport is suspended or revoked |
|
|
233
233
|
| `oap.idempotency_conflict` | Idempotency key conflict |
|
|
234
234
|
| `oap.policy_error` | Policy evaluation error |
|
|
235
|
+
| `oap.criteria_not_met` | An attestation has `met: false`; fix criterion and re-attest |
|
|
236
|
+
| `oap.evidence_missing` | An attestation has empty evidence; add concrete evidence string |
|
|
237
|
+
| `oap.criteria_incomplete` | Missing attestation for a passport criterion; submit attestation for every criterion_id |
|
|
238
|
+
| `oap.summary_insufficient` | Summary absent or below min_summary_words; write longer summary |
|
|
239
|
+
| `oap.tests_not_passing` | tests_passing required but false or missing; fix tests and resubmit |
|
|
240
|
+
| `oap.self_review_not_allowed` | reviewer_agent_id === author_agent_id or either missing; get different reviewer |
|
|
241
|
+
| `oap.blocked_pattern_detected` | output_content contains blocked pattern; remove flagged pattern |
|
|
235
242
|
|
|
236
243
|
## Versioning
|
|
237
244
|
|