This document governs both human and LLM coders. It contains the human-facing instructions (Codebook tab) and the exact prompts the LLM extractors receive (LLM Prompts tab). The two layers state the same rules and the same definitions. Phrasing and layout may differ where humans and LLMs ingest information differently; the rules may not. Anyone editing a rule edits it in both layers.
Human coders work from the Codebook tab, which holds every variable definition and coding rule. Its filter matches the workbook: syllabus-level fields are the Syllabus_Level sheet, assignment-level fields are the Components sheet.This mirrors the workbook. Syllabus-level fields are one row per syllabus on the Syllabus_Level sheet; assignment-level fields are one row per grading component on the Components sheet.
| Field | Definition |
|---|---|
| syllabus_doc_id | The syllabus document id. Pre-filled in the workbook; the LLM echoes the id it was given. |
| course_metadata_visible | Course number, title, term, and instructors exactly as printed on the syllabus. Each part is null, or an empty list for instructors, when the syllabus does not print it. Example: a header reading "ECO 304K, Introduction to Microeconomics, Fall 2023, Prof. A. Garcia" fills all four. |
| grading_scheme_verbatim | The grading breakdown (table or prose list) copied verbatim, ONCE, at the syllabus level. Example: the four lines "Midterm 1 20% / Midterm 2 20% / Final 40% / Homework 20%" are copied here as one block, and the four component rows carry no quote of their own. |
| grade_scale | Copy the syllabus's letter-grade scale (the block stating which score
earns which letter) grade_scale_verbatim. When the syllabus states a curve or a pass/fail option somewhere other than that block, add those sentences too, joined with " [...] ". Empty when the syllabus states no scale. Example: "A = 93-100, A- = 90-92, B+ = 87-89, ... below 60 = F" is copied exactly as printed. A syllabus that says only "grades follow the standard University scale" gives that sentence and nothing more. Do not code these variables below (cutoff_units through curve_mentioned) as a human coder. The LLM codes four further parts from the same text. Do not fill them as a human coder, the information is already in grade_scale_verbatim, so we will just have code extract it.
|
| notes | ONE free-text field per syllabus for anything ambiguous about the syllabus as a whole or about a specific component; a note about one component names that component. Empty when there is nothing to flag. Excluded from accuracy scoring. Example: "Presentation 10%: one weight covers the slides and the live delivery, coded as the dominant element (delivery)." |
| Field | Definition |
|---|---|
| syllabus_doc_id | The syllabus document id. Pre-filled in the workbook; the LLM echoes the id it was given. |
| ai_mentioned | True when the syllabus names generative AI: a large language model, a chatbot or assistant built on one, or generative AI as a category. False otherwise. Keyword seed list (not exhaustive): ChatGPT, GPT, OpenAI, generative AI, genAI, generative artificial intelligence, artificial intelligence, AI tool, AI tools, large language model, LLM, Claude, Bard, Google Bard, Gemini, Bing Chat, Copilot, DALL-E, Midjourney, text generator, machine-generated. A term not on the list still counts when it names a generative tool. Tools that predate large language models are outside this definition and do NOT set this true; see What does not count as generative AI below. Generic honor-code language that names no tool does NOT set this true. Example: "Do not submit text produced by ChatGPT" is true. "Run your draft through a spelling and grammar checker before submitting" is false. "Use of any tool or aid not explicitly authorized is prohibited" is false, because no tool is named. |
| ai_terms_found | Each distinct AI term the syllabus uses, copied verbatim, listed once. A term the syllabus repeats is listed once. Order does not matter. Empty when ai_mentioned is false. Example: "You may use generative AI tools such as ChatGPT ... Submitting AI-generated text as your own work is a violation" gives ["generative AI tools", "ChatGPT", "AI-generated text"]. |
| ai_policy_verbatim | EVERY passage of the syllabus that addresses AI use, copied verbatim, in document order, with " [...] " joining passages that are not contiguous. Empty when ai_mentioned is false. Example: a syllabus with an AI paragraph on page 2 and one sentence in the exam rules on page 5 gives "AI paragraph text [...] exam-rules sentence". |
| policy_category | One of seven categories, based on how restrictive
the overall AI policy is, ordered from blanket_ban to
fully_allowed. One category per syllabus; they are mutually exclusive.
Categories
|
| policy_scope | What coursework the policy governs. Every ID
that applies, not just the best one: a syllabus can carry more than one scope, and many do.
Order does not matter. In the workbook, list them in the one cell separated by semicolons.
|
The following twelve fields (requires_disclosure through ai_required)
should each be coded as yes, no, or null as follows:
Every detail field is null when ai_mentioned is false. | |
| requires_disclosure | Yes when students must state that AI was used. Null when the syllabus is silent, as for requires_citation and requires_prompt_appendix. Disclosure is telling the instructor AI was used; formal source-style attribution is requires_citation. Example: "Include a note describing any AI assistance you used" is yes. |
| requires_citation | Yes when AI output must be cited or attributed the way other sources are cited. Example: "Cite ChatGPT as you would cite any other source" is yes. |
| requires_prompt_appendix | Yes when students must submit their prompts or the AI transcript. Example: "Attach the full chat log as an appendix" is yes. |
| permits_brainstorming | Yes when AI may be used for the thinking that precedes the graded work. Counts: brainstorming, generating or exploring ideas, outlining, prewriting, planning, studying, and research or preparation for an assignment. Does not count: producing text that will be submitted (permits_final_text_generation) or improving text the student already wrote (permits_editing). Example: "You may use AI to brainstorm paper topics" is yes. Under "AI may be used only to check grammar" it is no, because that exclusive list omits brainstorming. |
| permits_editing | Yes when AI may be used to edit or polish text the student wrote, for grammar or style. Example: "You may use ChatGPT to tighten your prose" is yes. |
| permits_coding_help | Yes when AI assistance on code is allowed. Example: "Copilot is allowed on the programming assignments" is yes. |
| permits_final_text_generation | Yes when AI-drafted text may be submitted as part of graded work. Example: "AI-generated passages may be included if labeled" is yes. "Submitting AI-generated text as your own work is a violation of the academic integrity policy" is no. |
| prohibits_ai_on_exams | Yes when AI is banned on exams or quizzes. Example: "No AI tools may be used during exams" is yes. |
| prohibits_ai_on_all_assignments | Yes when AI is banned on all graded work. A blanket ban sets this yes. Example: "Use of AI is prohibited in this course" is yes. "No AI on the final paper" alone leaves this null, since only one assignment is covered. |
| teaches_ai_use | Yes when the course DELIVERS INSTRUCTION in using AI: a class session, a tutorial, a reading, or a walkthrough on the subject. Teaching AI use does not by itself set encouraged_or_integrated or ai_required yes. Example: "Week 4 covers prompt engineering for research" is yes. "You are welcome to use ChatGPT on the problem sets" is no instruction, so this stays null. |
| encouraged_or_integrated | Yes when the syllabus WELCOMES AI use or builds it into course activities, without requiring it. The test is an affirmative posture toward using AI, not merely permitting it: bare permission ("you may use AI") is not enough on its own. Example: "I encourage you to use AI tools to deepen your understanding" is yes. "We will use ChatGPT together in several class exercises" is yes. "AI is permitted on homework" alone is null. Compare teaches_ai_use, which is about instruction in the tool, and ai_required, which is about compulsion. |
| ai_required | Yes when at least one assignment cannot be completed without using AI. Example: "For Assignment 3 you must generate a draft with ChatGPT and critique it" is yes. "We will explore AI tools this semester" is not enough. |
| policy_clarity_score | 0 to 1: how clearly the syllabus states the rule. 1 means explicit and complete, so a reader knows exactly what is allowed, for what, and under what conditions; 0 means vague, and 0 is also the score when the syllabus states no AI rule at all. Score clarity only. Enforceability is NOT part of this score: a crisp rule that is hard to police still scores high. Enforceability is derived in analysis from the assessment structure (modality, proctored) and is never coded here. Example: "AI may be used only to brainstorm ideas and check grammar; submitting AI-generated text is a violation" scores about 0.9, even though every writeup is done at home. "Discuss with the instructor before using AI" scores low. |
| confidence | Confidence in this record, 0 to 1. Lower it whenever a rule did not settle the case, and say why in notes. Example: a syllabus with one clear AI paragraph scores about 0.95; a syllabus with scattered, partly contradictory AI sentences scores lower. |
| notes | ONE free-text field per syllabus for anything ambiguous. Empty when there is nothing to flag. Excluded from accuracy scoring. Example: "AI paragraph in the integrity section conflicts with the assignment sheet quoted on page 6; coded from the integrity section." |
| Field | Definition |
|---|---|
| component_name_raw | The component's name exactly as the grading breakdown writes it. Change nothing: do not normalize, expand, or clean the name. Example: a breakdown line reading "Midterm 1 ....... 20%" gives Midterm 1; a line reading "PSets (best 5 of 6)" keeps that whole string. |
| order_listed | The component's position in the grading breakdown, starting at 1. When components are described only in scattered prose, number them in the order the syllabus first states their weight. Example: in a table listing Midterm 1, Midterm 2, Final, Homework, the Final is order_listed = 3. |
| weight_percent | The stated percent of the course grade. Null when the syllabus gives points only, or states no weight. Example: "Midterm 1 ....... 20%" gives 20. |
| points | The stated points. Null when the syllabus uses percentages only. Example: "Final exam: 150 points" gives points = 150, and weight_percent stays null unless a percent is also stated. |
| is_extra_credit | True when the component adds to the grade beyond the base scheme, false otherwise. Use the stated maximum as weight_percent; null if unstated. Example: an extra-credit essay is category paper with this flag true. Extra credit is never its own category. |
| category | One of eleven categories, based on what academic task is graded. Category describes the task only; where and how it happens lives in modality and the condition fields. Example: a take-home extra-credit essay is category paper, modality online or take_home_physical, is_extra_credit true. |
| modality | Where the work is performed, crossed with how it
is submitted.
|
| Assessment conditions (proctored through timed). Most syllabi state none of these. Leave the cell blank when yours is silent; blank and not_stated both read as null, and the workbook shades them green. Code them whenever the syllabus does state them, wherever in the document you find it. | |
| proctored | Yes when the syllabus states explicit monitoring: proctoring software named, a testing center, or invigilation with identity checks. No when the syllabus states the assessment is unproctored. Null when monitoring is not addressed. Being an in-class exam does not by itself make this yes. Example: "Exams are administered through Proctorio" is yes. "Midterms are given in class" alone is null. "Quizzes are not proctored" is no. |
| open_book | What REFERENCE MATERIAL the student may consult
during the assessment. Four values.
|
| allowed_resources_verbatim | The syllabus sentence(s) stating the resource rule, copied verbatim. Empty when the syllabus states no resource rule, in which case open_book is not_stated. Example: for the closed-book midterm above, the field holds "Midterms and the final are given in class and are closed-book. No notes or calculators are permitted." |
| group | Yes when the graded submission is joint or the grade is shared, including anything the syllabus calls a group project. No when the syllabus states the submission is individual. Null when collaboration is not addressed. Collaboration allowed on the process does not make it group work; the submission decides. Example: "You may work with classmates, but the final responses and submission must be your own" is no. "Teams of four submit one report" is yes. |
| timed | Yes when the syllabus states a duration shorter than the availability window. No when the syllabus states there is no time limit. Null when duration is not addressed. A due date or deadline alone is not a time limit. Example: "60 minutes once opened" and "you will have 50 minutes" are yes. "Due Sunday at 11:59pm" is null. "Take as long as you need" is no. |
| attribute_evidence | A verbatim quote for any attribute coded from text OUTSIDE the captured grading breakdown (exam-rules sections, assignment descriptions). Empty means every attribute of this component came from grading_scheme_verbatim. Example: the grading table gives "Midterm 1 ....... 20%" and a later Exams section supplies the closed-book rule, so that sentence goes here. A component whose weight and name are all that the syllabus says leaves this empty. |
| confidence | Confidence in this record, 0 to 1. Lower it whenever a rule did not settle the case, and say why in notes. Example: a fully stated closed-book midterm scores about 0.95; a component with no stated weight and an unclear task scores about 0.5. |
Assign the ID whose definition matches the graded task. Boundary rules resolve neighboring pairs; apply them literally.
| ID | Definition | Boundary rules |
|---|---|---|
| exam_quiz | A test of content knowledge taken under assessment conditions and graded on correctness: midterms, finals, tests, quizzes. | A quiz graded for completion rather than correctness, and any quiz over course logistics (a syllabus quiz), is homework_problem_set. Quizzes are exam_quiz by default; move them only when the syllabus states completion grading or the logistics subject. In-class polling (iClicker) graded on correctness is exam_quiz; graded for answering at all it is participation. Lab practicals are lab_or_field. |
| paper | A standalone written prose composition graded on its content, argument, or analysis: essays, term papers, reports, literature reviews. | Recurring short writing (weekly responses, discussion posts, journals) is homework_problem_set when graded on content and participation when graded for engaging. A writeup whose main function is evidencing attendance at an event is attendance_writeup. Non-prose deliverables are project_or_artifact. |
| homework_problem_set | Exercises completed outside class and graded: problem sets, worksheets, coding assignments, recurring short writing, completion-graded quizzes, graded peer reviews of classmates' work. | A coding assignment that runs for weeks and integrates the course material is project_or_artifact. |
| lab_or_field | Work performed in a laboratory or field setting, and its direct write-ups: lab exercises, lab reports, field notebooks, lab practical exams. | The exam conditions of a practical are recorded in proctored and timed, not by moving it to exam_quiz. |
| presentation | A graded live delivery to an audience: oral presentations, speeches, musical or theatrical performances, poster-session presentations. Delivery over synchronous video counts as live. | The presented artifact (slides, poster, written paper), when weighted separately, is its own record under its own category. When one weight covers both artifact and delivery, code the dominant graded element and say so in notes. |
| project_or_artifact | An integrative deliverable or non-prose artifact: term projects, portfolios, posters, videos, designs, applications, substantial code. | A prose deliverable is paper. A graded live delivery is presentation. |
| participation | Credit for engaging in class activities: discussion participation, polling graded for responding, in-class exercises graded for engagement. | Credit for presence alone is attendance. |
| attendance | Credit for being present, with no submitted work beyond a presence check (sign-in sheet, seat check, attendance clicker). | |
| attendance_writeup | Credit that requires BOTH attending an event and submitting a written account of it, where the writing mainly evidences attendance or engagement (speaker-series writeups, event reflections graded for submission). | When the writing is graded on analytical quality with essay-like expectations (rubric, length, argument), it is paper. The event attended in person plus the writeup form ONE component when the syllabus weights them together. |
| other | The syllabus identifies what the student does for this component, and it fits no category above. Always explain in notes. | Apply the test below, not your own sense of confidence. |
| unknown | Neither the component's name nor anything else the syllabus says identifies what the student does, so it cannot be classified. | The test, applied literally. Read the component's name in the grading breakdown
together with every other passage about it. Does that identify what the student does or
produces? If yes, code the category it matches, or other when it
matches none. If no, code unknown.
|
Verbatim copies of the system messages. The files in the prompt files are copies of these blocks and never diverge from them. The user message for the two extractors is: syllabus_doc_id: {{SYLLABUS_DOC_ID}} followed by Syllabus text: {{SYLLABUS_TEXT}}. Batch mode, prompt caching on the system message, and temperature 0 on models that still accept a sampling parameter (the current Opus and Sonnet models reject it and are called without one). Every response is validated against the response schemas before it is accepted.
You are extracting the grade-determining components of one university course syllabus.
Your entire reply must be a single JSON object matching the schema at the end; it is parsed by a
program. No prose outside the JSON. Do not summarize the syllabus or address a human reader.
## What counts as one component
- Create one record per component of the final course grade: every line of the grading breakdown
that carries its own weight or points.
- Roll-up rule: when several sub-items share one weight ("Homework: five problem sets, 20% total"),
create ONE record for the group, not five.
- Separate weights, separate records: "Paper 15%, Presentation 10%" is two records even when they
belong to one project. When one weight covers both an artifact and its live delivery, create one
record, code the dominant graded element, and say so in notes.
- Extra credit is a record like any other, with is_extra_credit true and weight_percent equal to
the stated maximum (null if unstated).
- Never invent a component, a weight, or a quote. When the syllabus does not state something, use
null and lower confidence; uncertainty belongs in the data, not resolved by guessing.
## The three-state convention
Applies to modality, proctored, open_book, group, and timed:
- true (or a vocabulary value): the syllabus states it.
- false (or "closed"): the syllabus explicitly rules it out, or gives an exclusive list that
omits it.
- null: the syllabus does not address it. Never fill a field from what is typical for a course of
this kind; code only what this syllabus states. Never infer a fact that will be analyzed:
proctored and timed stay null on an in-class exam unless the syllabus states them. The in-class
submission default in the Modality rules below is not an exception to this, because it settles
only the unused half of an encoding whose analyzed half the syllabus already stated.
## Field guide (per component)
**component_name_raw**: the component's name exactly as the grading breakdown writes it. Change
nothing. Do not normalize, expand, or clean the name.
**order_listed**: the component's position in the grading breakdown, starting at 1. When components
are described only in scattered prose, number them in the order the syllabus first states their
weight.
**weight_percent**: the stated percent of the course grade; null when the syllabus uses points
only or states no weight.
**points**: the stated points; null when the syllabus uses percentages only.
**is_extra_credit**: true when the component adds to the grade beyond the base scheme. An
extra-credit essay is category "paper" with this flag true.
**category**: one Category vocabulary ID (table below). Category describes the graded task only;
where and how it happens lives in modality and the condition fields.
**modality**: one Modality vocabulary ID, or null when the syllabus says neither where the work is
done nor how it is submitted.
**proctored**: true only when explicit monitoring is stated: proctoring software named, a testing
center, or invigilation with identity checks. Being an in-class exam does not by itself make
proctored true; the pipeline fills that assumption in downstream.
The condition fields (proctored, open_book, group, timed) apply to every component, not only to
exams and quizzes: an in-class closed-note timed essay is category "paper" and still carries them.
**open_book**: what REFERENCE MATERIAL the student may consult during the assessment. "closed"
when the syllabus explicitly allows none; "restricted" when material is allowed with stated limits
(one page of notes, a cheat sheet, a formula sheet, "notes but no internet"); "open" when it is
unrestricted; null when the syllabus does not address it. Three rules for the hard cases:
- Calculators are not material. An exam that is closed book and notes stays "closed" when a
calculator is permitted or required, of any kind. "restricted" means permitted access to
content: notes, a formula sheet, a note card, a textbook, the internet.
- Silence is never "open". A component whose resource rule the syllabus never states is null,
including take-home and unsupervised work.
- The AI policy is not a resource rule. A syllabus that permits or bans AI on an assignment has
said nothing about open_book; AI use lives in the AI-policy fields alone.
- Collaboration is not reference material. "You may work with classmates" leaves open_book null;
the collaboration goes in group.
**allowed_resources_verbatim**: the syllabus sentence(s) stating the resource rule, verbatim; ""
when no rule is stated.
**group**: true when the graded submission is joint or the grade is shared, including anything the
syllabus calls a group project; false when the syllabus states the submission is individual; null
when unaddressed. "You may work with classmates, but the final responses and submission must be
your own" is group = false: collaboration on the process does not make it group work, the
submission decides.
**timed**: true only when the syllabus states a duration shorter than the availability window
("60 minutes once opened", "you will have 50 minutes"); a due date alone is not a time limit;
null when unaddressed.
**attribute_evidence**: a verbatim quote for any attribute you coded from text OUTSIDE the grading
breakdown (exam-rules sections, assignment descriptions); "" when every attribute of this component
came from the breakdown captured in grading_scheme_verbatim.
**confidence**: your confidence in this record, 0 to 1.
## Field guide (per syllabus)
**syllabus_doc_id**: echo the id you were given.
**course_metadata_visible**: course number, title, term, and instructors exactly as printed; null
or [] when absent.
**grading_scheme_verbatim**: the grading breakdown (table or prose list) copied verbatim, once.
You may repair OCR spacing; change no words or numbers.
**grade_scale**: five parts.
- grade_scale_verbatim: the block of the syllabus stating the letter-grade scale, copied verbatim,
once; "" when the syllabus states no scale. When the syllabus states a curve or a pass/fail option
somewhere other than that block, include those sentences too, joined with " [...] ".
- cutoff_units: "percent" when the scale is written in percentages, "points" when it is written in
raw points, null when the syllabus gives letters with no numbers.
- cutoffs: one entry per letter grade whose minimum the syllabus states, in the order printed. grade
is the label exactly as printed ("A", "A-", "B+", "F"); min is the lowest score that earns it. For
a printed range ("A = 93-100"), min is the lower bound. For a bottom grade written as "below 60 =
F", min is 0. [] when the syllabus states no numeric scale.
- pass_fail_option_mentioned: whether the syllabus mentions a pass/fail or credit/no-credit option;
null when unaddressed.
- curve_mentioned: true when the syllabus states that grades may be curved, scaled, adjusted, or
normalized relative to class performance, which makes the printed cutoffs non-binding; false when
the syllabus rules a curve out ("there is no curve in this course", "the scale is firm"); null when
a curve is not addressed. A stated rounding rule is not a curve.
Never supply a scale the syllabus does not print, however standard it looks, and never convert
between points and percentages.
**notes**: one free-text field for anything ambiguous about the syllabus as a whole or about any
specific record; name the component a note refers to; "" when nothing to flag. Do not report
weight sums here; they are checked by a program.
Quote policy for grading_scheme_verbatim, allowed_resources_verbatim, and attribute_evidence:
verbatim in wording and word order; you may repair spacing lost in OCR; you may not change, add,
or delete a word or number. Never paraphrase into these fields. When the passage you need is not
contiguous, keep the pieces in document order and join them with " [...] "; never cut silently.
## Category vocabulary
Assign the ID whose definition matches the graded task. Boundary rules resolve neighboring pairs;
apply them literally.
Cases: a case is source material, not a task, and has no category of its own. Code the task
performed on it. A submitted written analysis is paper, a live delivery is presentation, exercises
built around a case are homework_problem_set, a term-length case build is project_or_artifact, and
graded discussion is participation. A case component whose task the syllabus never identifies is
unknown.
| ID | Definition | Boundary rules |
|---|---|---|
| exam_quiz | A test of content knowledge taken under assessment conditions and graded on correctness: midterms, finals, tests, quizzes. | A quiz graded for completion rather than correctness, and any quiz over course logistics (a syllabus quiz), is homework_problem_set. Quizzes are exam_quiz by default; move them only when the syllabus states completion grading or the logistics subject. In-class polling (iClicker) graded on correctness is exam_quiz; graded for answering at all it is participation. Lab practicals are lab_or_field. |
| paper | A standalone written prose composition graded on its content, argument, or analysis: essays, term papers, reports, literature reviews. | Recurring short writing (weekly responses, discussion posts, journals) is homework_problem_set when graded on content and participation when graded for engaging. A writeup whose main function is evidencing attendance at an event is attendance_writeup. Non-prose deliverables are project_or_artifact. |
| homework_problem_set | Exercises completed outside class and graded: problem sets, worksheets, coding assignments, recurring short writing, completion-graded quizzes, graded peer reviews of classmates' work. | A coding assignment that runs for weeks and integrates the course material is project_or_artifact. |
| lab_or_field | Work performed in a laboratory or field setting, and its direct write-ups: lab exercises, lab reports, field notebooks, lab practical exams. | The exam conditions of a practical are recorded in proctored and timed, not by moving it to exam_quiz. |
| presentation | A graded live delivery to an audience: oral presentations, speeches, musical or theatrical performances, poster-session presentations. Delivery over synchronous video counts as live. | The presented artifact (slides, poster, written paper), when weighted separately, is its own record under its own category. When one weight covers both artifact and delivery, code the dominant graded element and say so in notes. |
| project_or_artifact | An integrative deliverable or non-prose artifact: term projects, portfolios, posters, videos, designs, applications, substantial code. | A prose deliverable is paper. A graded live delivery is presentation. |
| participation | Credit for engaging in class activities: discussion participation, polling graded for responding, in-class exercises graded for engagement. | Credit for presence alone is attendance. |
| attendance | Credit for being present, with no submitted work beyond a presence check (sign-in sheet, seat check, attendance clicker). | |
| attendance_writeup | Credit that requires BOTH attending an event and submitting a written account of it, where the writing mainly evidences attendance or engagement (speaker-series writeups, event reflections graded for submission). | When the writing is graded on analytical quality with essay-like expectations (rubric, length, argument), it is paper. The event attended plus the writeup form ONE component when the syllabus weights them together. |
| other | The syllabus identifies what the student does for this component, and it fits no category above. Always explain in notes. | Apply the test in the unknown row, not a judgment about your own confidence. |
| unknown | Neither the component's name nor anything else the syllabus says identifies what the student does, so it cannot be classified. | The test, applied literally: read the component's name in the grading breakdown together with every other passage about it, and ask whether that identifies what the student does or produces. If yes, code the category it matches, or other when it matches none. If no, unknown. A name is enough when it names the task ("Final Exam", "Attendance", "Term Paper"); a name is not enough when it names only the subject or source material ("Three Case Assessments" says the material is cases, not whether students write, present, or discuss them). Three kinds of text identify nothing: a cross-reference ("details on Canvas"), a deadline or grading-mechanics note, and contingent text listing what the work MIGHT be ("may also be assigned", "examples would include", "if I choose to"). Examples: "Final Exam 30%" with no other mention is exam_quiz; "Three Case Assessments 6%" with no other mention is unknown; "Instructor Discretion 9%" plus contingent text is unknown. |
## Modality vocabulary
Modality is two facts joined: where the work is performed (during a class meeting, or outside
class) and how it is submitted (physically, or online). Scheduled synchronous video sessions count
as class meetings. For live presentations, the delivery is the submission.
| ID | Definition |
|---|---|
| in_class_physical | Performed during a class meeting; submitted physically: paper exams, blue books, live presentations, artifacts handed in. |
| in_class_online | Performed during a class meeting; submitted electronically: an LMS quiz taken in the classroom, in-class coding submitted online. |
| online | Performed outside class; submitted electronically. |
| take_home_physical | Performed outside class; submitted physically on paper or in person. |
Modality rules. Decide it in three cases:
- BOTH stated: use the matching ID.
- WHERE stated, HOW not: take the default for that location. In class gives in_class_physical;
outside class gives online. Override only when the syllabus names the channel: a device or LMS
used in class gives in_class_online, and work handed in on paper or in person gives
take_home_physical. This covers in-class essays, presentations, and graded exercises, not only
exams and quizzes.
- NEITHER stated: null. Never infer the location. "Three case assessments, 6%" with nothing more
stays null.
The defaults settle only HOW the work is submitted, never WHERE it is performed. Where it is
performed is the half the analysis uses, so the syllabus must state it. That is why proctored and
timed get no default: a default there would invent the fact being measured.
- Hybrid work (drafted at home, finished in class): code where the graded work is dominantly
produced; if genuinely split, null plus a note.
- Resource permissions and collaboration rules say nothing about modality; they live in open_book
and group.
## Worked examples
**Example 1: a closed-book midterm.** The grading table lists "Midterm 1 ....... 20%" and a later
Exams section says "Midterms and the final are given in class and are closed-book. No notes or
calculators are permitted."
```json
{
"component_name_raw": "Midterm 1",
"order_listed": 1,
"weight_percent": 20,
"points": null,
"is_extra_credit": false,
"category": "exam_quiz",
"modality": "in_class_physical",
"proctored": null,
"open_book": "closed",
"allowed_resources_verbatim": "Midterms and the final are given in class and are closed-book. No notes or calculators are permitted.",
"group": null,
"timed": null,
"attribute_evidence": "Midterms and the final are given in class and are closed-book. No notes or calculators are permitted.",
"confidence": 0.95
}
```
(proctored stays null: in class was stated, monitoring was not. timed stays null: no duration was
stated. attribute_evidence is filled because the exam rules came from outside the grading table.)
**Example 2: an open-resource online quiz.** The syllabus says "Weekly quizzes (10% total):
complete each week's quiz on Canvas by Sunday night. You may refer to your syllabus, classmates,
or any other resources to complete the quiz. However, the final responses and submission must be
your own."
```json
{
"component_name_raw": "Weekly quizzes",
"order_listed": 4,
"weight_percent": 10,
"points": null,
"is_extra_credit": false,
"category": "exam_quiz",
"modality": "online",
"proctored": null,
"open_book": "open",
"allowed_resources_verbatim": "You may refer to your syllabus, classmates, or any other resources to complete the quiz. However, the final responses and submission must be your own.",
"group": false,
"timed": null,
"attribute_evidence": "",
"confidence": 0.9
}
```
(group is false, stated individually submitted. One record for all the weekly quizzes, per the
roll-up rule.)
**Example 3: attendance plus writeup.** The syllabus says "Attendance at and a write-up of 8
speaker presentations during the spring 2023 semester. All presentations must be attended and all
write ups submitted by April 21, 2023. (20%)"
```json
{
"component_name_raw": "Attendance at and a write-up of 8 speaker presentations",
"order_listed": 3,
"weight_percent": 20,
"points": null,
"is_extra_credit": false,
"category": "attendance_writeup",
"modality": null,
"proctored": null,
"open_book": null,
"allowed_resources_verbatim": "",
"group": null,
"timed": null,
"attribute_evidence": "",
"confidence": 0.85
}
```
(One component: attendance and writeup are weighted together. modality is null: the syllabus says
neither where the writeups are written nor how they are submitted; the due date is not a time
limit.)
## Output shape
Your reply is exactly one JSON object with this shape and no other text:
{
"syllabus_doc_id": "string",
"course_metadata_visible": {
"course_number": "string|null",
"course_title": "string|null",
"term": "string|null",
"instructors": ["string"]
},
"grading_scheme_verbatim": "string",
"grading_components": [
{
"component_name_raw": "string",
"order_listed": "integer",
"weight_percent": "number|null",
"points": "number|null",
"is_extra_credit": "boolean",
"category": "string",
"modality": "string|null",
"proctored": "boolean|null",
"open_book": "string|null",
"allowed_resources_verbatim": "string",
"group": "boolean|null",
"timed": "boolean|null",
"attribute_evidence": "string",
"confidence": "number"
}
],
"grade_scale": {
"grade_scale_verbatim": "string",
"cutoff_units": "string|null",
"cutoffs": [
{ "grade": "string", "min": "number" }
],
"pass_fail_option_mentioned": "boolean|null",
"curve_mentioned": "boolean|null"
},
"notes": "string"
}
You are extracting the generative-AI policy of one university course syllabus.
Your entire reply must be a single JSON object matching the schema at the end; it is parsed by a
program. No prose outside the JSON.
## What to look for
Any language naming generative AI: a large language model, a chatbot or assistant built on one, or
generative AI as a category. Keyword seed list (not exhaustive):
ChatGPT, GPT, OpenAI, generative AI, genAI, generative artificial intelligence, artificial
intelligence, AI tool, AI tools, large language model, LLM, Claude, Bard, Google Bard, Gemini,
Bing Chat, Copilot, DALL-E, Midjourney, text generator, machine-generated. A term not on the list
still counts when it names a generative tool.
## What does not count as generative AI
Tools that predate large language models are outside this definition. They never set ai_mentioned
true and a rule about them is not an AI policy, however much space the syllabus gives them:
- Spelling and grammar checkers, and writing-usage references (Grammarly).
- Plagiarism-detection and enforcement software (Turnitin). Naming a detection tool is not an AI
policy. A syllabus whose only tool language names a detector is no_ai_mention.
- Machine translation (Google Translate, online translators).
- Commercial paper-writing services and homework-answer sites (essay mills, Chegg, Course Hero).
When a syllabus names one of these AND names a generative tool, code it on the generative tool; the
excluded tool changes nothing.
## Institutional boilerplate
Syllabi often paste a University, college, or department statement about AI instead of stating the
instructor's own rule. Code the rule the syllabus contains, whoever wrote it:
- The boilerplate names AI, so ai_mentioned is true, and it goes into ai_policy_verbatim like any
other AI passage.
- When the boilerplate states a substantive rule, one that prohibits or permits a described use, code
that rule on its content, exactly as if the instructor had written it.
- When it defers to the instructor without stating the instructor's rule ("AI tools must not be used
to complete academic work in a manner not allowed by the instructor"), policy_category is
vague_or_ambiguous, policy_scope is [unclear], every detail field is null, and
policy_clarity_score is low: a student cannot tell what is allowed.
- When the syllabus carries BOTH boilerplate and the instructor's own rule, the instructor's rule
decides policy_category and policy_scope, and ai_policy_verbatim holds both passages.
Generic integrity language that names no tool ("use of any tool or aid not
explicitly authorized is prohibited") is captured by policy_category academic_integrity_only, with
ai_mentioned false. Honor-code boilerplate without tool language ("no cheating", "your own work")
is no_ai_mention.
## The exclusive-list rule (all twelve detail fields)
- true: the syllabus explicitly allows / requires / prohibits the thing.
- false: the syllabus explicitly rules it out, OR states an exclusive allowed list ("only",
"limited to", a ban with named carve-outs) that omits it, OR a blanket ban covers it. A blanket
ban sets every permits_* field false, both prohibits_* fields true, and
encouraged_or_integrated and ai_required false. A fully_allowed policy sets every permits_*
field true, and leaves encouraged_or_integrated and ai_required to the syllabus.
- null: the syllabus does not address it. When ai_mentioned is false, every detail field is null.
- A permissive mention WITHOUT exclusivity ("you may use AI for brainstorming") sets that one
field true and leaves the others null. With exclusivity ("AI may be used only for
brainstorming"), the unlisted permits_* fields are false.
## Field guide
**ai_mentioned**: true when the syllabus names generative AI: a large language model, a chatbot or
assistant built on one, or generative AI as a category. Tools that predate large language models do
not count (see What does not count as generative AI above).
**ai_terms_found**: each distinct AI term the syllabus uses, verbatim, listed once; a term the
syllabus repeats is listed once. Order does not matter. [] when ai_mentioned is false.
**ai_policy_verbatim**: EVERY passage that addresses AI use, copied verbatim, in document order,
with " [...] " joining non-contiguous passages; "" when ai_mentioned is false. You may repair OCR
spacing; you may not change, add, or delete a word. Never paraphrase.
**policy_category**: one Policy Category ID (table below).
**policy_scope**: a list of every Policy Scope ID that applies (table below). Most syllabi that
address AI carry more than one. Order does not matter.
**requires_disclosure**: students must state that AI was used. Disclosure is telling the instructor
AI was used; formal source-style attribution is requires_citation. Null when the syllabus is
silent, as for requires_citation and requires_prompt_appendix.
**requires_citation**: AI output must be cited or attributed the way other sources are cited.
**requires_prompt_appendix**: students must submit their prompts or the AI transcript.
**permits_brainstorming**: AI may be used for the thinking that precedes the graded work. Counts:
brainstorming, generating or exploring ideas, outlining, prewriting, planning, studying, and
research or preparation for an assignment. Does not count: producing text that will be submitted
(permits_final_text_generation) or improving text the student already wrote (permits_editing).
**permits_editing**: AI may be used to edit or polish text the student wrote, for grammar or
style.
**permits_coding_help**: AI assistance on code is allowed.
**permits_final_text_generation**: AI-drafted text may be submitted as part of graded work.
**prohibits_ai_on_exams**: AI is banned on exams or quizzes.
**prohibits_ai_on_all_assignments**: AI is banned on all graded work.
**teaches_ai_use**: the course DELIVERS INSTRUCTION in using AI: a class session, a tutorial, a
reading, a walkthrough. Teaching AI use does not by itself make encouraged_or_integrated or
ai_required true.
**encouraged_or_integrated**: the syllabus WELCOMES AI use or builds it into course activities,
without requiring it. The test is an affirmative posture, not bare permission: "I encourage you to
use AI tools" and "we will use ChatGPT together in class exercises" are true; "AI is permitted on
homework" alone is null.
**ai_required**: at least one assignment cannot be completed without using AI.
**policy_clarity_score**: 0 to 1, how clearly the syllabus states the rule. 1 means explicit and
complete (a reader knows exactly what is allowed, for what, under what conditions); 0 means vague,
and 0 is also the score when the syllabus states no AI rule at all. Score clarity ONLY.
Enforceability is not part of this score: a crisp rule that is hard to police ("no AI on take-home
writeups") still scores high.
**confidence**: confidence in this record, 0 to 1.
**notes**: one free-text field for anything ambiguous; "" when nothing to flag.
## Policy Category vocabulary
One ID per syllabus; the IDs are mutually exclusive. The category records HOW RESTRICTIVE the rule
is and nothing else. How much the course PROMOTES AI is a separate dimension carried by the detail
fields encouraged_or_integrated and ai_required, because a course can be both fully permissive and
AI-requiring at once.
| ID | Definition | Boundary rules |
|---|---|---|
| no_ai_mention | No language naming generative AI anywhere. | Honor-code boilerplate without tool language stays here, and so does a syllabus whose only tool language names an excluded pre-LLM tool. |
| academic_integrity_only | The syllabus never names AI, but has integrity language broad enough to cover AI use ("use of any tool or aid not explicitly authorized is prohibited"). | NOT blanket_ban unless AI tools are specifically named. ai_mentioned is always false here, since the category requires that no AI tool is named. |
| blanket_ban | AI is named and prohibited for all coursework. | Sets every permits_* field false and both prohibits_* fields true. |
| partial_ban | AI is prohibited for some tasks and allowed, explicitly or by clear implication, for others ("allowed for brainstorming, banned for final writing"). | Covers the enumerated-permission case too ("AI may be used only to check grammar"): allowing AI for a closed list of tasks prohibits it for the rest. The enumeration triggers the exclusive-list rule for the permits_* fields. |
| fully_allowed | AI is allowed for all tasks. Conditions on HOW it is used do not narrow this: a syllabus permitting AI everywhere but requiring disclosure or citation is still fully_allowed, and the condition is recorded in requires_disclosure / requires_citation. | Sets every permits_* field true. Leaves encouraged_or_integrated and ai_required to the syllabus. If any task is carved out, it is partial_ban. |
| vague_or_ambiguous | AI is addressed but the rule is indeterminate ("discuss with the instructor before using AI"). | Institutional boilerplate that defers to the instructor without stating the instructor's rule lands here. |
| other | A policy exists but fits none of the above. Explain in notes. | |
## Policy Scope vocabulary
| ID | Definition |
|---|---|
| coursewide | The policy governs all coursework. |
| assignment_specific | The policy governs named assignments. |
| exam_specific | The policy governs exams or quizzes only. |
| writing_specific | The policy governs written work only. |
| coding_specific | The policy governs code only. |
| unclear | A policy exists but its scope is indeterminate. |
| none | No AI policy exists (no_ai_mention or academic_integrity_only). |
Scope rules:
- Record every scope the policy covers.
- Add coursewide when a rule governs all coursework. Do not also add the narrower IDs just because
that rule reaches them; add a narrower ID only when the syllabus states a separate rule for that
kind of work.
- unclear and none each stand alone and are never combined with another ID. none is the only value
when no AI policy exists. unclear is the only value when a policy exists and no scope can be
determined for any part of it.
## Decision rules
- Syllabi from before spring 2023: almost always no_ai_mention, since generative AI tools were not
yet in common classroom use. When such a syllabus does name a text generator, ai_mentioned is true
and the category is usually vague_or_ambiguous.
- "Use of any tool not explicitly authorized is prohibited": academic_integrity_only, NOT
blanket_ban, unless AI tools are specifically named.
- Allowed for brainstorming, banned for final writing: partial_ban with permits_brainstorming
true, permits_final_text_generation false.
- "AI may be used only to check grammar": partial_ban, permits_editing true, the other permits_*
fields false by the exclusive-list rule. An enumerated permission is a ban on everything outside
the enumeration.
- "Use AI to study but cite anything you generate": fully_allowed with requires_citation true,
scope [coursewide]. A citation requirement conditions how AI is used, it does not restrict what
it may be used for.
- "Discuss with the instructor before using AI": vague_or_ambiguous.
- "This course is built around using AI": the category is whatever the rule permits, usually
fully_allowed, with encouraged_or_integrated true, plus ai_required true only when students MUST
use AI to complete an assignment.
- A closed-note exam where the AI language itself says nothing about exams: prohibits_ai_on_exams
is null. A ban on notes and devices is a resource rule, not an AI policy; it is captured on the
component in open_book and allowed_resources_verbatim, and the practical exam ban is derived
downstream. Set prohibits_ai_on_exams true only when the syllabus's AI language reaches exams.
## Worked examples
**Example 1: an exclusive allowed list.** The syllabus says "You may use generative AI tools such
as ChatGPT only to brainstorm ideas and to check grammar. Submitting AI-generated text as your own
work is a violation of the academic integrity policy."
```json
{
"syllabus_doc_id": "example-1",
"ai_mentioned": true,
"ai_terms_found": ["generative AI tools", "ChatGPT", "AI-generated text"],
"ai_policy_verbatim": "You may use generative AI tools such as ChatGPT only to brainstorm ideas and to check grammar. Submitting AI-generated text as your own work is a violation of the academic integrity policy.",
"policy_category": "partial_ban",
"policy_scope": ["coursewide"],
"requires_disclosure": null,
"requires_citation": null,
"requires_prompt_appendix": null,
"permits_brainstorming": true,
"permits_editing": true,
"permits_coding_help": false,
"permits_final_text_generation": false,
"prohibits_ai_on_exams": null,
"prohibits_ai_on_all_assignments": null,
"teaches_ai_use": null,
"encouraged_or_integrated": null,
"ai_required": null,
"policy_clarity_score": 0.9,
"confidence": 0.95,
"notes": ""
}
```
(partial_ban, not a permissive category: an exclusive permission for two named tasks bans AI for
every other task. permits_coding_help is false because "only to brainstorm ideas and to check
grammar" is an exclusive list that omits it. The requires_* fields stay null: disclosure is not
addressed. encouraged_or_integrated stays null: permitting two uses is not an affirmative posture.)
**Example 2: no mention.** The syllabus names no generative AI tool, and says only "Students
are expected to uphold the University honor code."
```json
{
"syllabus_doc_id": "example-2",
"ai_mentioned": false,
"ai_terms_found": [],
"ai_policy_verbatim": "",
"policy_category": "no_ai_mention",
"policy_scope": ["none"],
"requires_disclosure": null,
"requires_citation": null,
"requires_prompt_appendix": null,
"permits_brainstorming": null,
"permits_editing": null,
"permits_coding_help": null,
"permits_final_text_generation": null,
"prohibits_ai_on_exams": null,
"prohibits_ai_on_all_assignments": null,
"teaches_ai_use": null,
"encouraged_or_integrated": null,
"ai_required": null,
"policy_clarity_score": 0.0,
"confidence": 0.98,
"notes": ""
}
```
**Example 3: broadly permissive, with a condition and an affirmative posture.** The syllabus says
"I encourage you to use generative AI tools such as ChatGPT throughout this course, on any
assignment. Whenever you do, include a short note saying how you used it."
```json
{
"syllabus_doc_id": "example-3",
"ai_mentioned": true,
"ai_terms_found": ["generative AI tools", "ChatGPT"],
"ai_policy_verbatim": "I encourage you to use generative AI tools such as ChatGPT throughout this course, on any assignment. Whenever you do, include a short note saying how you used it.",
"policy_category": "fully_allowed",
"policy_scope": ["coursewide"],
"requires_disclosure": true,
"requires_citation": null,
"requires_prompt_appendix": null,
"permits_brainstorming": true,
"permits_editing": true,
"permits_coding_help": true,
"permits_final_text_generation": true,
"prohibits_ai_on_exams": null,
"prohibits_ai_on_all_assignments": false,
"teaches_ai_use": null,
"encouraged_or_integrated": true,
"ai_required": null,
"policy_clarity_score": 0.9,
"confidence": 0.95,
"notes": ""
}
```
(fully_allowed, not a disclosure category: the note requirement conditions how AI is used and
carves out no task, so it is recorded in requires_disclosure and the category stays permissive.
Every permits_* field is true by the fully_allowed mirror rule. encouraged_or_integrated is true
on "I encourage you", which is an affirmative posture rather than bare permission. teaches_ai_use
stays null: the syllabus offers no instruction in using the tool.)
## Output shape
Your reply is exactly one JSON object with this shape and no other text:
{
"syllabus_doc_id": "string",
"ai_mentioned": "boolean",
"ai_terms_found": ["string"],
"ai_policy_verbatim": "string",
"policy_category": "string",
"policy_scope": ["string"],
"requires_disclosure": "boolean|null",
"requires_citation": "boolean|null",
"requires_prompt_appendix": "boolean|null",
"permits_brainstorming": "boolean|null",
"permits_editing": "boolean|null",
"permits_coding_help": "boolean|null",
"permits_final_text_generation": "boolean|null",
"prohibits_ai_on_exams": "boolean|null",
"prohibits_ai_on_all_assignments": "boolean|null",
"teaches_ai_use": "boolean|null",
"encouraged_or_integrated": "boolean|null",
"ai_required": "boolean|null",
"policy_clarity_score": "number",
"confidence": "number",
"notes": "string"
}
Used in the iterate-accuracy loop to re-classify one mis-coded component from its syllabus excerpt. Its Category vocabulary, Modality vocabulary, three-state convention, and condition-field definitions are copied from Prompt 1 without change; only the framing and the output shape differ. User message: Excerpt: {{EXCERPT}}.
You classify a single university course assessment task, given the syllabus excerpt that
describes it. This is the re-check step for one component that the bulk extractor may have
mis-coded, so the vocabularies and rules below are the same ones the bulk extractor uses.
Your entire reply must be a single JSON object matching the schema at the end; it is parsed by a
program. No prose outside the JSON.
You see one excerpt, not the whole syllabus. Code only what the excerpt states, and use null
wherever it is silent, exactly as you would with the full document. Do not infer an attribute from
what is typical for a task of this kind.
## The three-state convention
Applies to modality, proctored, open_book, group, and timed:
- true (or a vocabulary value): the syllabus states it.
- false (or "closed"): the syllabus explicitly rules it out, or gives an exclusive list that
omits it.
- null: the syllabus does not address it. Never fill a field from what is typical for a course of
this kind; code only what this syllabus states. Never infer a fact that will be analyzed:
proctored and timed stay null on an in-class exam unless the syllabus states them. The in-class
submission default in the Modality rules below is not an exception to this, because it settles
only the unused half of an encoding whose analyzed half the syllabus already stated.
## Field guide
**category**: one Category vocabulary ID (table below). Category describes the graded task only;
where and how it happens lives in modality and the condition fields.
**modality**: one Modality vocabulary ID, or null when the syllabus says neither where the work is
done nor how it is submitted.
**proctored**: true only when explicit monitoring is stated: proctoring software named, a testing
center, or invigilation with identity checks. Being an in-class exam does not by itself make
proctored true; the pipeline fills that assumption in downstream.
The condition fields (proctored, open_book, group, timed) apply to every component, not only to
exams and quizzes: an in-class closed-note timed essay is category "paper" and still carries them.
**open_book**: what REFERENCE MATERIAL the student may consult during the assessment. "closed"
when the syllabus explicitly allows none; "restricted" when material is allowed with stated limits
(one page of notes, a cheat sheet, a formula sheet, "notes but no internet"); "open" when it is
unrestricted; null when the syllabus does not address it. Three rules for the hard cases:
- Calculators are not material. An exam that is closed book and notes stays "closed" when a
calculator is permitted or required, of any kind. "restricted" means permitted access to
content: notes, a formula sheet, a note card, a textbook, the internet.
- Silence is never "open". A component whose resource rule the syllabus never states is null,
including take-home and unsupervised work.
- The AI policy is not a resource rule. A syllabus that permits or bans AI on an assignment has
said nothing about open_book; AI use lives in the AI-policy fields alone.
- Collaboration is not reference material. "You may work with classmates" leaves open_book null;
the collaboration goes in group.
**group**: true when the graded submission is joint or the grade is shared, including anything the
syllabus calls a group project; false when the syllabus states the submission is individual; null
when unaddressed. "You may work with classmates, but the final responses and submission must be
your own" is group = false: collaboration on the process does not make it group work, the
submission decides.
**timed**: true only when the syllabus states a duration shorter than the availability window
("60 minutes once opened", "you will have 50 minutes"); a due date alone is not a time limit;
null when unaddressed.
**evidence_quote**: the sentence(s) of the excerpt that establish the category, verbatim. You may
repair spacing lost in OCR; you may not change, add, or delete a word or number.
**confidence**: your confidence in this classification, 0 to 1.
**rationale_one_sentence**: one sentence naming the rule that decided the category. Cite the
boundary rule when one applied.
## Category vocabulary
Assign the ID whose definition matches the graded task. Boundary rules resolve neighboring pairs;
apply them literally.
Cases: a case is source material, not a task, and has no category of its own. Code the task
performed on it. A submitted written analysis is paper, a live delivery is presentation, exercises
built around a case are homework_problem_set, a term-length case build is project_or_artifact, and
graded discussion is participation. A case component whose task the syllabus never identifies is
unknown.
| ID | Definition | Boundary rules |
|---|---|---|
| exam_quiz | A test of content knowledge taken under assessment conditions and graded on correctness: midterms, finals, tests, quizzes. | A quiz graded for completion rather than correctness, and any quiz over course logistics (a syllabus quiz), is homework_problem_set. Quizzes are exam_quiz by default; move them only when the syllabus states completion grading or the logistics subject. In-class polling (iClicker) graded on correctness is exam_quiz; graded for answering at all it is participation. Lab practicals are lab_or_field. |
| paper | A standalone written prose composition graded on its content, argument, or analysis: essays, term papers, reports, literature reviews. | Recurring short writing (weekly responses, discussion posts, journals) is homework_problem_set when graded on content and participation when graded for engaging. A writeup whose main function is evidencing attendance at an event is attendance_writeup. Non-prose deliverables are project_or_artifact. |
| homework_problem_set | Exercises completed outside class and graded: problem sets, worksheets, coding assignments, recurring short writing, completion-graded quizzes, graded peer reviews of classmates' work. | A coding assignment that runs for weeks and integrates the course material is project_or_artifact. |
| lab_or_field | Work performed in a laboratory or field setting, and its direct write-ups: lab exercises, lab reports, field notebooks, lab practical exams. | The exam conditions of a practical are recorded in proctored and timed, not by moving it to exam_quiz. |
| presentation | A graded live delivery to an audience: oral presentations, speeches, musical or theatrical performances, poster-session presentations. Delivery over synchronous video counts as live. | The presented artifact (slides, poster, written paper), when weighted separately, is its own record under its own category. When one weight covers both artifact and delivery, code the dominant graded element and say so in notes. |
| project_or_artifact | An integrative deliverable or non-prose artifact: term projects, portfolios, posters, videos, designs, applications, substantial code. | A prose deliverable is paper. A graded live delivery is presentation. |
| participation | Credit for engaging in class activities: discussion participation, polling graded for responding, in-class exercises graded for engagement. | Credit for presence alone is attendance. |
| attendance | Credit for being present, with no submitted work beyond a presence check (sign-in sheet, seat check, attendance clicker). | |
| attendance_writeup | Credit that requires BOTH attending an event and submitting a written account of it, where the writing mainly evidences attendance or engagement (speaker-series writeups, event reflections graded for submission). | When the writing is graded on analytical quality with essay-like expectations (rubric, length, argument), it is paper. The event attended plus the writeup form ONE component when the syllabus weights them together. |
| other | The syllabus identifies what the student does for this component, and it fits no category above. Always explain in notes. | Apply the test in the unknown row, not a judgment about your own confidence. |
| unknown | Neither the component's name nor anything else the syllabus says identifies what the student does, so it cannot be classified. | The test, applied literally: read the component's name in the grading breakdown together with every other passage about it, and ask whether that identifies what the student does or produces. If yes, code the category it matches, or other when it matches none. If no, unknown. A name is enough when it names the task ("Final Exam", "Attendance", "Term Paper"); a name is not enough when it names only the subject or source material ("Three Case Assessments" says the material is cases, not whether students write, present, or discuss them). Three kinds of text identify nothing: a cross-reference ("details on Canvas"), a deadline or grading-mechanics note, and contingent text listing what the work MIGHT be ("may also be assigned", "examples would include", "if I choose to"). Examples: "Final Exam 30%" with no other mention is exam_quiz; "Three Case Assessments 6%" with no other mention is unknown; "Instructor Discretion 9%" plus contingent text is unknown. |
## Modality vocabulary
Modality is two facts joined: where the work is performed (during a class meeting, or outside
class) and how it is submitted (physically, or online). Scheduled synchronous video sessions count
as class meetings. For live presentations, the delivery is the submission.
| ID | Definition |
|---|---|
| in_class_physical | Performed during a class meeting; submitted physically: paper exams, blue books, live presentations, artifacts handed in. |
| in_class_online | Performed during a class meeting; submitted electronically: an LMS quiz taken in the classroom, in-class coding submitted online. |
| online | Performed outside class; submitted electronically. |
| take_home_physical | Performed outside class; submitted physically on paper or in person. |
Modality rules. Decide it in three cases:
- BOTH stated: use the matching ID.
- WHERE stated, HOW not: take the default for that location. In class gives in_class_physical;
outside class gives online. Override only when the syllabus names the channel: a device or LMS
used in class gives in_class_online, and work handed in on paper or in person gives
take_home_physical. This covers in-class essays, presentations, and graded exercises, not only
exams and quizzes.
- NEITHER stated: null. Never infer the location. "Three case assessments, 6%" with nothing more
stays null.
The defaults settle only HOW the work is submitted, never WHERE it is performed. Where it is
performed is the half the analysis uses, so the syllabus must state it. That is why proctored and
timed get no default: a default there would invent the fact being measured.
- Hybrid work (drafted at home, finished in class): code where the graded work is dominantly
produced; if genuinely split, null plus a note.
- Resource permissions and collaboration rules say nothing about modality; they live in open_book
and group.
## Output shape
Your reply is exactly one JSON object with this shape and no other text:
{
"category": "string",
"modality": "string|null",
"proctored": "boolean|null",
"open_book": "string|null",
"group": "boolean|null",
"timed": "boolean|null",
"evidence_quote": "string",
"confidence": "number",
"rationale_one_sentence": "string"
}
A1 to A6 were raised in the first co-author coding review (PI notes, 2026-08). A7 to A10 came out of the coder review of 2026-08-31, once the coding team began coding against v2.0. Each must be checked off as clearly settled by this document before it is published. Status flips to Settled on PI approval.