October workshops are openBuild a Search AI Agent$99 early bird

Enroll now
Skip to content

PATHWAY PROJECT · CAPSTONE PROJECT · 2 SMALL IDEAS + A GUIDED LAB

School-club campaign reviewer

The announcement sounds convincing. Are its promises supported, and did anyone approve this exact draft?

You will learn to: Review a fictional event campaign against a source of truth, a known cost plan, and version-specific approval before a simulated action.

Preparing your lesson and this browser’s progress…
Read the complete lessonAll the ideas in one place · works without the editor

Use these notes to review a concept or read at your own pace. The interactive workspace above adds predictions, editable code, and actual run results.

IDEA 1

Marketing claims still need evidence

A campaign is a coordinated set of messages and channels used to tell an audience about something. In this classroom project, the audience is a fictional school club and the channels are invented poster options. Persuasive writing can be useful, but it cannot establish that an event has a certain date, location, or donation promise.

Separate the draft from the event fact record. Check dates and venue exactly, and allow only claims listed in the fixture's supportedClaims array. This deliberately narrow matcher is not a general language fact checker. It teaches the architecture: proposed text is evaluated against independent evidence before being treated as ready.

A draft must match the fact record

  1. Event facts. Read the approved fictional date, venue, and supported claims.
  2. Draft. Inspect the promises actually present in the proposed announcement.
  3. Review issue. Flag a promise absent from the fact record.

Claims use exact authored strings so the classroom check is inspectable.

Check every proposed claim

const unsupported = draft.claims.some(claim => !facts.supportedClaims.includes(claim));

One unsupported claim is enough to require review. Good spelling or a matching date cannot make that claim supported.

Think it through: The draft promises 'All proceeds donated,' but the fact record does not. What should happen?

IDEA 2

Budget and approval belong at the action boundary

The campaign's channel plan has its own constraints. A known total must fit the budget; an unknown channel price is a missing-cost issue. These checks are separate from factual review. A truthful announcement can still exceed the planned spend, and an inexpensive one can still contain a false promise.

Approval is tied to the exact draft version. If version 1 was approved and the text changed to version 2, the earlier approval does not cover the changed action. Here publishPreview returns only a simulated receipt: no ad is purchased, no student audience is profiled, and nothing is posted. A real application would obtain version-specific permission from its authenticated review flow.

Three independent gates

  1. Facts. Require every explicit claim to be supported.
  2. Cost. Require a known total at or below budget.
  3. Version. Match the approved version to this draft.
  4. Simulated action. Return a receipt only after all gates pass.

Passing checks prepares the draft; it does not manufacture human approval.

A changed draft needs review

const draftVersion = "v2";
const approvedVersion = "v1";
// The approval does not cover this version.

The rule prevents a reviewed draft from being replaced with different content just before an action.

Think it through: All facts and costs pass, but there is no approval. Which result fits?

Put it into practice

Block unsupported claims and stale approvals while preserving exact campaign costs.

  1. Run the unsupported-promise case and inspect the starter's publishPreview call.
  2. Insert the claim-evidence gate.
  3. Run all cases and confirm the stale-version case makes no publication call.
  4. Set approvedVersion to null in custom input to prepare a reviewable preview.

Your next experiment: Remove approval to obtain a preview, then set the channel price to null. How is missing permission different from missing cost evidence?

A convincing draft still needs factual support, an affordable plan, and approval for that exact version.

Key terms

Campaign
A coordinated set of messages and channels for communicating an event or offer.
Source of truth
The designated record used to check a defined set of facts.
Version-specific approval
Permission tied to the exact reviewed draft or action.

Sources and scope

Original Stemtiq teaching, reviewed 2026-09-14. The named researchers and organizations do not endorse this course. Classroom cases are authored exercises, not published findings.

OpenAI: Guardrails and human review

Reviewed 13 September 2026 · undated documentation

Distinguish automatic checks from approval decisions, pause sensitive tool requests, retain state, and resume after an application approves or rejects them.

Model-generated approval text is not authorization. Resume examples that automatically approve a request do not establish that a person reviewed it.

AWS · Amazon Bedrock AgentCore: Policy in Amazon Bedrock AgentCore: Control Agent Interactions

Reviewed 13 September 2026 · undated documentation

Evaluate identity and tool inputs at a gateway before allowing a call. Treat policy authoring, review, enforcement, and decision logging as separate operations.

The gateway governs capabilities routed through it. A classroom approval check is not an AgentCore integration or a complete production authorization system.

Anthropic: Demystifying evals for AI agents

9 January 2026

Define tasks, trials, and graders; inspect both execution records and final outcomes; repeat trials when model behavior varies.

A score depends on its cases and grading rules. Repeating a deterministic classroom case does not measure the variability of a live model.

Microsoft Research: Defending Against Indirect Prompt Injection Attacks With Spotlighting

March 2024

Separating the provenance of retrieved content and user instructions helps address indirect prompt injection.

The paper evaluates particular mitigations and conditions. A classroom filter or trust flag neither implements the full method nor guarantees protection against all attacks.

Your JavaScript really runs. The model decisions and school data are authored simulations, so you can learn without an API key. Every workspace also includes a separate real SDK example to explore next. Passing the lab’s cases is practice, not proof that an agent is ready for real-world use.