# Execution triage — personal working demo

A synthetic, local-only demonstration by Argos. It groups execution records into a review queue and exports the same decisions as JSON. No live platform is connected and no retry is performed.

## Browser

Open index.html locally, or serve this folder as static files. All assets are local and no dependency is required. The built-in sample contains eight fictional records. Edit or import your own synthetic JSON (maximum 100 records and 100 KB), then select **Build review queue**. Download the report as JSON. Editing clears the previous results to avoid exporting stale decisions.

Required schema:

```json
[
  {"id":"sync-101","status":429,"idempotent":true},
  {"id":"charge-102","status":503,"idempotent":false},
  {"id":"unknown-103","status":null}
]
```

IDs accept letters, digits, underscores and hyphens (1–48 characters). IDs must be unique. Status must be an integer HTTP status from 100 to 599 or null. Idempotent is optional and must be boolean if supplied. Missing means unconfirmed. Additional fields are rejected. Do not provide client data, payloads or secrets. Input stays in memory in the current browser tab; the demo does not use storage or send records over the network. A downloaded report remains on your device until you delete it.

## Decision policy v1.0

- 429 or 503 plus idempotent:true: **retry candidate** for human review.
- 429 or 503 without that explicit marker: **manual review**.
- 401 or 403: **credentials review**, including permissions and provider policy.
- 400: **validation review**.
- All other codes and null: **manual review**.

These are routing hints, not a diagnosis. An idempotent marker is supplied by the user and is not verified. Even a retry candidate needs manual confirmation of side effects, deduplication, recovery, Retry-After/backoff and retry limits. Success status codes are not inferred as failures or silently removed: this tool expects a preselected failed-execution batch and leaves unmapped codes for review.

## Command line

Node.js 18 or later. Save `triage.js` beside `cli.cjs` and `test.cjs`.

```sh
node cli.cjs synthetic-executions.json > report.json
node --test test.cjs
```

The CLI and browser call the same pure logic in triage.js. The CLI accepts a regular local file only and exits nonzero on invalid input. No data is sent anywhere.

## Limits / what a live pilot needs

This is a personal demonstration, not client work, a connector or a production monitoring system. It does not diagnose an n8n or Make graph, inspect retry history, authenticate to services, schedule backoff or run jobs. A real pilot would first agree its platform, a sanitized export schema, reviewed replay rules, permissions and acceptance tests. Review categories intentionally favor a human decision when safety is unknown.
