The §20.1 argv contract for the stand-in (Plan 184).
Purpose
-------
Parse exactly the stand-in grammar: the eight §20.1 flags plus
``--per-test-timeout`` (ADR-T-07) plus accepted-but-ignored
``--output-tests-limit`` (§20.3 no-sink rule). Anything else — unknown
flags, bare positionals, a literal ``--`` (ADR-T-16), or the
v1.0-grammar flags the stand-in does not support (``--workspace``,
``--ndjson``) — produces an exit-4-class configuration error with the
right catalog code.
Responsibilities
----------------
- ``parse_argv`` — pure argv → (config, errors); first error wins.
- ``StandInConfig`` — the parsed invocation.
Diagnostics
-----------
Domain: OC_TESTING
Levels:
L2 — lifecycle events
L3 — semantic details
L4 — deep tracing
Contracts
---------
- No prefix abbreviation: tokens match the grammar exactly.
- Both ``--flag value`` and ``--flag=value`` forms are accepted.
- ``parse_argv`` performs no filesystem or environment access.
Dependencies
------------
- oc_diagnostics (structured debug logging via _dbg)
- oc_chat.testing.report (error constructors)