@shipeasy/openapi 3.3.0 → 3.4.0

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.
@@ -1248,6 +1248,132 @@
1248
1248
  positional:
1249
1249
  - handle
1250
1250
  - questionId
1251
+ /api/admin/ops/{handle}/qa-notes:
1252
+ get:
1253
+ operationId: listOpsQaNotes
1254
+ summary: List an item's QA notes
1255
+ description: |-
1256
+ The typed QA notes on a queue item, newest first (max 200) — narrowing,
1257
+ clarification, verification and correction notes, each with its author and
1258
+ time. They are separate from the comment thread: read these to learn the
1259
+ CURRENT QA state of a ticket (what remains failing, what "fixed" now means,
1260
+ the last verification verdict) without parsing prose comments.
1261
+
1262
+ **Use case:** A coding agent picks an item up and checks the latest
1263
+ `verification` verdict and any `narrowing` note before touching the code.
1264
+ tags:
1265
+ - QA notes
1266
+ parameters:
1267
+ - $ref: ../components/parameters.yaml#/ProjectId
1268
+ - name: handle
1269
+ in: path
1270
+ required: true
1271
+ description: Per-project item number (e.g. `7`) or the full ops item id.
1272
+ schema:
1273
+ $ref: ../components/schemas/common.yaml#/ResourceId
1274
+ - name: kind
1275
+ in: query
1276
+ required: false
1277
+ description: Only notes of this kind.
1278
+ schema:
1279
+ $ref: ../components/schemas/ops.yaml#/OpsQaNoteKind
1280
+ responses:
1281
+ "200":
1282
+ description: List an item's QA notes
1283
+ content:
1284
+ application/json:
1285
+ schema:
1286
+ $ref: ../components/schemas/ops.yaml#/ListOpsQaNotesResponse
1287
+ "400":
1288
+ $ref: ../components/responses.yaml#/BadRequest
1289
+ "401":
1290
+ $ref: ../components/responses.yaml#/Unauthorized
1291
+ "403":
1292
+ $ref: ../components/responses.yaml#/Forbidden
1293
+ "404":
1294
+ $ref: ../components/responses.yaml#/NotFound
1295
+ "422":
1296
+ $ref: ../components/responses.yaml#/UnprocessableEntity
1297
+ x-error-codes:
1298
+ - BAD_REQUEST
1299
+ - UNAUTHORIZED
1300
+ - FORBIDDEN
1301
+ - NOT_FOUND
1302
+ x-cli:
1303
+ name: list
1304
+ positional:
1305
+ - handle
1306
+ post:
1307
+ operationId: createOpsQaNote
1308
+ summary: Add a QA note to an item
1309
+ description: |-
1310
+ Append one typed QA note to a queue item. `kind` is `narrowing` (what now
1311
+ passes vs what still fails), `clarification` (what "fixed" now means),
1312
+ `verification` (requires a `verdict` of `pass` or `fail`, and `body` says
1313
+ what was checked) or `correction` (withdraws an earlier framing). Notes
1314
+ are append-only and appear in the item's QA notes section, not in the
1315
+ comment thread. The author is the caller's identity; pass `agent` to
1316
+ record the note as written by that agent type's QA automation. A `fail` verdict never changes the item's
1317
+ status by itself: the dashboard offers an explicit "Reopen item" action,
1318
+ and `ops update --status open` does the same from the CLI.
1319
+
1320
+ **Use case:** QA automation records "verified on production: FAIL, the
1321
+ second facet still errors" as data an agent can read back.
1322
+ tags:
1323
+ - QA notes
1324
+ parameters:
1325
+ - $ref: ../components/parameters.yaml#/ProjectId
1326
+ - name: handle
1327
+ in: path
1328
+ required: true
1329
+ description: Per-project item number (e.g. `7`) or the full ops item id.
1330
+ schema:
1331
+ $ref: ../components/schemas/common.yaml#/ResourceId
1332
+ requestBody:
1333
+ required: true
1334
+ content:
1335
+ application/json:
1336
+ schema:
1337
+ $ref: ../components/schemas/ops.yaml#/CreateOpsQaNoteRequest
1338
+ examples:
1339
+ verification:
1340
+ summary: A failing verification
1341
+ value:
1342
+ kind: verification
1343
+ verdict: fail
1344
+ body: Retested on production after the deploy — the export still drops the second sheet
1345
+ narrowing:
1346
+ summary: Narrow a bug to the facet that still fails
1347
+ value:
1348
+ kind: narrowing
1349
+ body: The list view is fixed; only the detail panel still shows the stale count
1350
+ responses:
1351
+ "200":
1352
+ description: The created note
1353
+ content:
1354
+ application/json:
1355
+ schema:
1356
+ $ref: ../components/schemas/ops.yaml#/OpsQaNote
1357
+ "400":
1358
+ $ref: ../components/responses.yaml#/BadRequest
1359
+ "401":
1360
+ $ref: ../components/responses.yaml#/Unauthorized
1361
+ "403":
1362
+ $ref: ../components/responses.yaml#/Forbidden
1363
+ "404":
1364
+ $ref: ../components/responses.yaml#/NotFound
1365
+ "422":
1366
+ $ref: ../components/responses.yaml#/UnprocessableEntity
1367
+ x-error-codes:
1368
+ - BAD_REQUEST
1369
+ - UNAUTHORIZED
1370
+ - FORBIDDEN
1371
+ - NOT_FOUND
1372
+ - VALIDATION
1373
+ x-cli:
1374
+ name: create
1375
+ positional:
1376
+ - handle
1251
1377
  /api/admin/agent-profiles:
1252
1378
  get:
1253
1379
  operationId: listOpsAgents