Repository navigation
Closed
Labels
cat: trust & securityCategory: Trust & securityCategory: Trust & securitydecision: choiceUses a Choice questionUses a Choice questionlevel: 2 easyCandidate sets and explicit uncertain or no-match outcomesCandidate sets and explicit uncertain or no-match outcomespriority: p1Next up once unblockedNext up once unblockedsize: MAbout a dayAbout a daystatus: blockedWaiting on the issues listed under DependenciesWaiting on the issues listed under Dependenciestype: recipeA cookbook notebook recipeA cookbook notebook recipe
Milestone
Description
Recipe 16 of 60 · Level 2 (Easy) · Trust & security ·
Choice
Use case
Classify sample Discord messages as allowed, review-needed, or potentially violating a supplied community rule to populate a simulated moderator queue.
What to build
The folder recipes/16-discord-moderation-triage/ with notebook.ipynb, README.md, and fixtures/, meeting the recipe contract. Start from python tools/new_recipe.py 16 and the template in recipes/_template/.
Build notes
- The community rule text is supplied in the state. Outcomes:
allowed,review_needed,potentially_violating. - Sample messages are synthetic and mild. No slurs, threats, or graphic content in fixtures.
- Python fills a simulated moderator queue. Nothing is posted, deleted, or sent to Discord.
Decision design
- Choice. Options are a fixed set supplied by Python, including the fallback outcome this use case names. Show the
choice, the per-optionprobabilities, and theconfidencefor individual examples before aggregating.
Level 2 scope
Context-sensitive matching, scoring, or verification with candidate sets and explicit uncertain or no-match outcomes.
Acceptance criteria
-
recipes/16-discord-moderation-triage/notebook.ipynbruns top to bottom offline, with no key and no network, and its outputs are committed - Live mode is opt-in (
JEV_COOKBOOK_LIVE=1withTYPESAFE_API_KEY) and uses the same question definitions as the offline run - Fixtures are synthetic, include the hard cases named in the build notes, carry gold labels, and pass the fixture validator
- Every response fixture records its provenance, and the notebook states which mode it ran in
- Evaluation: Confusion matrix, with the cost of a false allow discussed separately from a false flag.
- Candidate sets are assembled by Python and shown to the reader
- The uncertain or no-match outcome is exercised by several fixtures and reported separately in the evaluation
- No statement about Jev's quality, latency, or cost appears without recorded live inference; in a synthetic run, metrics are labelled as pipeline checks
-
recipes/16-discord-moderation-triage/README.mdsays what the recipe teaches, how to run it, and what was and was not measured live - The pull request changes only
recipes/16-discord-moderation-triage/and CI is green
Dependencies
- Blocked by Foundation: CI executes every notebook offline and validates fixtures #69 (CI executes every notebook offline and validates fixtures)
- Tracked in Epic: Level 2 · Easy recipes #76
Sources
Read these before writing the questions.
- S02 · TypeSafe AI: Primitives (Questions): Choice, Noul, Score, independent questions, and dependent follow-up calls.
- S03 · TypeSafe AI: Confidence: Distribution-derived confidence and task-specific thresholds informed by observed outcomes.
- S04 · TypeSafe AI: How to build with TypeSafe: Narrow semantic judgments integrated with workflows, deterministic logic, and side effects controlled by code.
- S07 · TypeSafe AI: Jev 1.13 jaggedness: Version-specific limitations affecting arithmetic, context selection, adversarial content, and generation.
Out of scope
- Changes to shared code, the catalog, or the root README. If the shared package is missing something, open a foundation issue and link it here.
- Real side effects of any kind. Actions are simulated.
Metadata
Metadata
Assignees
Labels
cat: trust & securityCategory: Trust & securityCategory: Trust & securitydecision: choiceUses a Choice questionUses a Choice questionlevel: 2 easyCandidate sets and explicit uncertain or no-match outcomesCandidate sets and explicit uncertain or no-match outcomespriority: p1Next up once unblockedNext up once unblockedsize: MAbout a dayAbout a daystatus: blockedWaiting on the issues listed under DependenciesWaiting on the issues listed under Dependenciestype: recipeA cookbook notebook recipeA cookbook notebook recipe
Activity
Fix round 1: gate every category, add a left-standing false allow, fi…
Sweep: recipes 16-19 aligned with the current contract and guard (#193)