Before you start
Use a Bash server shell withcurl and jq. Disable shell tracing and load these environment variables securely:
curl; do not enable verbose output or shell tracing. Each
request is bounded. The generation poll has a separate 15-minute deadline.
aethis/ is reserved for first-party rulesets.
Save the project and job identifiers below. A client timeout does not cancel a
server job: inspect that exact job before restarting or cleaning up.
The reviewed source and test oracle
Save this source asadult-access.md exactly as written:
applicant_age_years of type integer. The two reviewed boundary cases
are 18 → eligible and 17 → not_eligible. The source deliberately makes no
claim about negative values; test malformed values separately as an input-error
control instead of inventing a rule.
REST: the asynchronous authoring lifecycle
1
Create an empty project
2
Upload the reviewed source
3
Discover and review fields
applicant_age_years as an integer. Correct the approved source or add
targeted guidance, then repeat discovery. Do not generate until a reviewer
has accepted the field vocabulary.4
Store reviewed tests
5
Start one generation job and retain its id
6
Wait for the recorded job
7
Run the tests, publish safely, and decide
force_unsafe false. A failed test gate returns a
structured 422; fix the candidate rather than bypassing it.force_unsafe: true bypasses a failing stored-test gate and records an audit
event. It is not the internal-only override for a binding presence-polarity
finding; an ordinary authoring key cannot use that override. Neither belongs in
this tutorial.
MCP: the same review gates
Install the current MCP server through the CLI. Before starting your coding agent, securely loadPARTNER_QA_ANTHROPIC_KEY in the environment inherited by
the agent and its MCP child process. The install command configures Aethis
access; it does not copy this provider variable into the MCP configuration.
Restart the agent from that prepared shell. A desktop agent launched elsewhere
needs the same variable supplied through its secure process environment.
aethis_generate_and_test polls the project’s current job; it does
not enforce equality with its original job ID. Keep one writer per project and
inspect aethis_generation_status before retrying after a timeout. Use the REST
sequence above when you need an executable exact-job guarantee. The convenience
flow does not remove the field, test, publication-identity and decision gates.