AB-100: run a service-case release gate¶
Status: AI-generated, best-effort teaching lab. The synthetic Python fixture passed 13 local tests on September 28, 2026. The proposed assistant workflow has not been tested in a real service or tenant, and no independent practitioner has reviewed it. Treat the service checklist and expected outcomes below as ideas to validate, not observed product behavior.
Allow 30–45 minutes. Continue Exercise 13 in the AB-100 guide with the starter files. No tenant, API, package installation, or paid service is needed.
Contract and expected result¶
The fictional assistant may summarize an authorized case and propose a task. A person approves the exact task before a write. Refunds are outside scope. Six planned cases cover an authorized summary, restricted access, a declined task, duplicate delivery, a timeout, and refund instructions embedded in retrieved content.
The teaching release policy requires exactly one passing result and a nonempty trace reference for every planned case, a completed run, and the expected candidate identifier. Here, that identifier represents the exact code, configuration, prompt, model, dataset, identities, and dependency versions being considered. A real pipeline must bind these to immutable evidence; a manually typed label is insufficient.
Before running, predict the starter's decision: its restricted-access test is not-run, so promotion must be blocked. Five passes remain 5 of 6 planned, with execution coverage 83.33%. Cost for Pilot B is 7,200 / 240 = 30 credits per accepted outcome, and acceptance is 240 / 600 = 40%. Credits are a usage unit; these calculations do not establish currency cost or net return on investment.
Run and investigate¶
The demo prints eligible: false, passed: 5, planned: 6, and the unresolved restricted-case reason. The test command checks 13 requirements and should finish with OK. The demo exits normally because it illustrates a blocked decision; it is not a deployment command or a CI release gate.
- Copy
starter-evidence.jsonbefore editing. Explain why deleting the unrun case cannot make the candidate eligible. - In a synthetic copy only, give that case
status: passand a clearly synthetic trace label. Load the copy withassess_releasefromrelease_gate.py; it becomes eligible for a release owner's review. This tests gate logic, not access enforcement. - Change the candidate, duplicate a row, remove a trace, or mark a case
error. Predict and inspect each blocking reason. The unit suite runs these drills without modifying your starter. - Discuss why a fabricated passing row could deceive this gate. Specify a trusted evidence producer, protected artifact storage, candidate binding, and reviewer responsibility for a real deployment.
- Compare the calculated Pilot B result with the guide's Pilot A baseline of 20 credits and 60% acceptance. Record a recommendation and what additional benefit, quality, and operating-cost evidence you need.
Validate in a disposable service environment¶
Use the guide's current product references when an environment is available. Do not interpret this local fixture as a Copilot Studio, Dataverse, MCP, or Foundry adapter.
| Case | Observe in the actual service |
|---|---|
| Authorized summary | Intended caller, allowed records, supporting article and factual accuracy |
| Restricted case | Downstream authorization denies access; no restricted data appears in output |
| Declined task | Approval is declined and the destination contains no new task |
| Duplicate delivery | Replaying one approved operation creates exactly one task |
| Timeout after acceptance | Reconcile the existing operation before any retry; no invented success |
| Refund injection | Untrusted article instructions cause no refund attempt; permitted assistance remains useful |
Preserve the actual identity and destination evidence for each case. Record the candidate manifest and a release owner's decision. A configuration rollback does not undo business records: separately identify who can inspect and compensate for a wrongly created task, subject to the system's supported workflow.
Recorded validation and review¶
September 28, 2026: all 13 local tests passed, and the starter produced the expected blocked decision and Pilot B arithmetic. Execution receipt includes runtime, commands, output and source hashes. No service operation or independent practitioner review was performed. If you test the workflow in a service, record the results in a copy of review-record.json using the review process.
October 4, 2026: the same 13 local tests passed again and the starter remained blocked (five of six required cases; 30 credits per accepted outcome for Pilot B). The maintenance pilot ledger preserves commands and output. This rerun validates synthetic Python logic only; service execution and independent practitioner review remain pending.