feat: add daily manual price review workflow
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
Treat one XML invocation as an atomic file-processing unit.
|
||||
|
||||
On any input, XML, price, routing, write, structured-completeness, or independent-validation error:
|
||||
On any input, XML, price, routing, write, structured-completeness, or independent-validation error that is not a pure `PRICE_UNMATCHED` review result:
|
||||
|
||||
- do not return a formal daily workbook;
|
||||
- delete candidate daily/structured files from the failed attempt;
|
||||
@@ -25,6 +25,8 @@ The failed structured payload still preserves every parsed reservation and its f
|
||||
| `3` | Invocation/input-contract failure |
|
||||
| `4` | Unexpected dependency/internal failure |
|
||||
|
||||
`review_required` is a successful technical exit (`0`), but not a successful business commit: it writes only the two JSON artifacts and has no daily/exception workbook. It is allowed only when `PRICE_UNMATCHED` is the complete actionable error set.
|
||||
|
||||
## Exception workbook
|
||||
|
||||
Columns:
|
||||
@@ -45,15 +47,16 @@ Write one row per independently actionable error. Leave unavailable fields blank
|
||||
|
||||
## Success/failure invariants
|
||||
|
||||
- `status` is `success` or `failed`.
|
||||
- `status` is `success`, `review_required`, or `failed`.
|
||||
- Output references in `result.json` are basenames, never paths.
|
||||
- Success lists daily and structured files, lists no exception file, and has no errors.
|
||||
- Failure lists no daily file, lists an exception file, and has at least one error.
|
||||
- Review lists no daily or exception file, has only `PRICE_UNMATCHED` errors, candidate/review issue counts, and `activation_eligible: false`.
|
||||
- `metrics.channels` is a deterministic array of `{ "worksheet": string, "rows": integer }`.
|
||||
- Structured success requires exact artifact metadata, balanced five-outcome counts, no `validation_failed`/`price_unmatched`, and `activation_eligible: true`.
|
||||
- Structured success requires exact artifact metadata, balanced six-outcome counts, no `candidate`/`validation_failed`/`price_unmatched`, and `activation_eligible: true`.
|
||||
- Structured failure has `output_rows = 0`, no channel metrics, no daily artifact, a non-empty error array, and `activation_eligible: false`.
|
||||
- Never place guest details in the public `message`.
|
||||
|
||||
## Database boundary
|
||||
|
||||
This Skill never executes database DDL or DML. ARR may start its transaction only after process exit `0`, Schema validation, and independent re-hashing. ARR activates a new same-day version only as the last step of a successful transaction; any failure must roll back and leave the previous current version unchanged.
|
||||
This Skill never executes database DDL or DML. ARR may record a `review_required` receipt after its JSON/schema validation, but it may start a Finance transaction only after final success, independent re-hashing and replay. ARR activates a new same-day version only as the last step of that transaction; any final failure must roll back and leave the previous current version unchanged.
|
||||
|
||||
Reference in New Issue
Block a user