AI Workplace Quality: handouts
Choose Print / Save as PDF, then select Save as PDF in your browser. The learning copy hides answers.
AI Workplace Quality
Original practice materials · Version 1.0.0 · Synthetic business data
1. Extract a usable brief
Turn a source into explicit constraints without inventing details.
- Read each source ID and list supported values.
- Separate the task goal from the operational constraints.
- Use the requested JSON field types.
Extract the pilot requirements
- Return start_date (string), agents (number), budget_usd (number), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return start_date (string), agents (number), budget_usd (number), source_ids (array).",
"flawed_output": "The pilot starts next month for 20 agents with unlimited budget."
}Reference answer
{
"start_date": "2026-11-02",
"agents": 12,
"budget_usd": 2400,
"source_ids": [
"S1"
]
}S1 supplies every requested value. Use USD as a number, not a formatted string.
Capture the operating constraints
- Return owner (string), duration_days (number), human_approval (boolean), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return owner (string), duration_days (number), human_approval (boolean), source_ids (array).",
"flawed_output": "Riley will run the 30-day pilot with automatic sending."
}Reference answer
{
"owner": "Morgan",
"duration_days": 14,
"human_approval": true,
"source_ids": [
"S1",
"S2"
]
}S1 gives the duration; S2 gives the owner and approval requirement.
Extension: A clear brief helps a model, but final outputs still need checking.
2. Check claims against evidence
Separate unsupported and contradicted claims.
- Compare each claim with a named source.
- A contradicted claim has opposing evidence. An unsupported claim has no measurement.
- Keep source IDs valid and avoid treating plausible statements as facts.
Repair an inflated accuracy claim
- Return correct_tickets, total_tickets (numbers), accuracy_percent (number), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return correct_tickets, total_tickets (numbers), accuracy_percent (number), source_ids (array).",
"flawed_output": "The pilot achieved 95% accuracy across 100 tickets."
}Reference answer
{
"correct_tickets": 72,
"total_tickets": 80,
"accuracy_percent": 90,
"source_ids": [
"S3"
]
}Compute 72 ÷ 80 × 100 = 90. S3 is the fixed evidence.
Mark an unsupported satisfaction claim
- Return claim (string), verdict (string), measured (boolean), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return claim (string), verdict (string), measured (boolean), source_ids (array).",
"flawed_output": "Customer satisfaction improved significantly."
}Reference answer
{
"claim": "Customer satisfaction improved",
"verdict": "unsupported",
"measured": false,
"source_ids": [
"S3"
]
}The memo explicitly says satisfaction was not measured. Unknown evidence is not a positive result.
Extension: A structural score does not certify the quality of arbitrary prose.
3. Produce a reliable structure
Use a precise schema and stable units.
- The output contract names each field and its type.
- Numeric values must not contain display units.
- Use null for unknown numeric measurements, not zero.
Build a results JSON object
- Return tickets, median_minutes (numbers), satisfaction_percent (null), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return tickets, median_minutes (numbers), satisfaction_percent (null), source_ids (array).",
"flawed_output": "{\"tickets\":\"80 tickets\",\"median_minutes\":\"6m\",\"satisfaction_percent\":0}"
}Reference answer
{
"tickets": 80,
"median_minutes": 6,
"satisfaction_percent": null,
"source_ids": [
"S3"
]
}Zero would assert a measured value. Use null for missing satisfaction data.
Make the budget calculation explicit
- Return budget_usd, agents, usd_per_agent (numbers), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return budget_usd, agents, usd_per_agent (numbers), source_ids (array).",
"flawed_output": "Budget per agent is about 250 USD."
}Reference answer
{
"budget_usd": 2400,
"agents": 12,
"usd_per_agent": 200,
"source_ids": [
"S1"
]
}2400 ÷ 12 = 200 USD per agent; retain the source of the inputs.
Extension: Schema validity and factual correctness are checked separately in the feedback.
4. Review before handoff
Check a result for evidence, constraints and an explicit limitation.
- Check numerical claims with arithmetic.
- Check prohibited actions against the review policy.
- Make unknown measurements visible in the final artifact.
Review the reply workflow
- Return allow_personal_data (boolean), allow_unapproved_sending (boolean), owner (string), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return allow_personal_data (boolean), allow_unapproved_sending (boolean), owner (string), source_ids (array).",
"flawed_output": "Upload customer records and automatically send replies."
}Reference answer
{
"allow_personal_data": false,
"allow_unapproved_sending": false,
"owner": "Morgan",
"source_ids": [
"S2"
]
}S2 prohibits personal data and unapproved customer replies.
Write a bounded evidence summary
- Return accuracy_percent (number), median_minutes (number), satisfaction_status (string), source_ids (array).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"sources": [
{
"id": "S1",
"title": "Pilot brief",
"text": "The fictional Northstar pilot starts 2026-11-02. It covers 12 support agents. The pilot lasts 14 calendar days. Budget is 2400 USD."
},
{
"id": "S2",
"title": "Review policy",
"text": "Morgan owns the review. No customer personal data may enter the pilot. No automation may send customer replies without human approval."
},
{
"id": "S3",
"title": "Results memo",
"text": "The test processed 80 synthetic tickets. 72 had the correct category. Median handling time was 6 minutes. Customer satisfaction was not measured."
}
],
"brief": "Return accuracy_percent (number), median_minutes (number), satisfaction_status (string), source_ids (array).",
"flawed_output": "The system improved accuracy and satisfaction and cut time by half."
}Reference answer
{
"accuracy_percent": 90,
"median_minutes": 6,
"satisfaction_status": "not measured",
"source_ids": [
"S3"
]
}Use the measured results without inventing satisfaction or causal improvements.
Extension: Use the checklist to self-review free-form prose; this checker evaluates the fixed evidence fields only.
Final project
Deliver a grounded pilot brief
- Return start_date (string), accuracy_percent (number), human_approval (boolean), satisfaction_percent (null).
- Use the fixed source IDs. Array order follows the contract.
- Do not invent unsupported values. Missing evidence must remain unknown.
{
"start_date": "2026-11-02",
"accuracy_percent": 90,
"human_approval": true,
"satisfaction_percent": null
}Source objectives: https://learn.microsoft.com/en-us/training/modules/build-effective-generative-ai-solutions-organization/. Independent original materials. CC BY 4.0.