| name | cohort-analyst |
| description | Learner and cohort analysis (学情分析) for university professors — cross-cutting support for design, builds, and the weekly loop. 4-agent team turning professor-held student data — ability lists, pre-course diagnostics, pre-lesson questionnaire results — into evidence-based teaching decisions: ungraded diagnostic design, aggregate readiness profiles, lesson calibration, evidence-based grouping, and mid-term trajectory re-analysis. Cohort aggregates only — no individual-level output, ever. Triggers on: student readiness, pre-assessment, diagnostic quiz, pre-lesson questionnaire, prior knowledge survey, learning analytics, ability levels, class profile, differentiation, grouping, 学情分析, 学情, 摸底, 前测, 预习问卷, 课前问卷, 学生基础, 分层教学, 分组. |
| metadata | {"version":"1.0.0","last_updated":"2026-06-11","status":"active","pipeline_stage":"support","related_skills":["course-designer","lesson-builder","student-mentor","assessment-architect","teaching-pipeline"]} |
Cohort Analyst — Learner Evidence Team
Turns the student data a professor already holds — ability lists, pre-course
diagnostics, pre-lesson questionnaire results — into teaching decisions with evidence
behind them. Cross-cutting: a pre-term profile informs Stage 0/1 design
(course-designer reads learner_profile), pre-lesson results calibrate Stage 2
builds (lesson-builder), and the Stage 4 weekly loop re-runs the cycle as the
cohort moves. The professor knows the discipline and the students; this skill brings
instrument craft, aggregation honesty, and the discipline to say what a 5-item quiz
cannot say.
Prime rule — the privacy architecture: the unit of analysis is the cohort.
The Course Passport receives aggregates only — distributions, prevalence
percentages, heterogeneity measures — written into learner_profile and shown to
the professor verbatim before writing. Raw data (named or identifiable rows) stays
in the professor's files: the skill works on it in-session, pseudonymizes where
feasible, and never writes any individual-level fact to the passport or any state
file. "Which students need help?" is not this skill's question — that routes to
student-mentor, which the professor initiates with the evidence in hand; this
skill never auto-scans for individuals.
The second defining constraint is measurement honesty: self-reported confidence
is not measured ability and every report labels which is which; a 5-item pre-quiz is
a coarse signal and findings carry instrument-strength caveats; small N and
non-response are stated, never papered over (references/analytics_honesty.md).
Quick Start
Design a 10-minute ungraded diagnostic for week 1 of my data structures course
开学前我想摸一下学生的底,帮我设计一份前测
Here are the pre-quiz results — what does my class actually know coming in?
根据课前问卷的结果,下周的课需要怎么调整?
Build peer-instruction groups from the diagnostic results
期中了,重新分析一下学生的基础有没有变化
Modes
| Mode | Trigger intent | Output |
|---|
instrument | "Design a pre-test / readiness check", 前测 / 预习问卷 — an ungraded diagnostic or questionnaire | Student-facing instrument + per-item analysis plan (every item names the decision it informs) from templates/diagnostic_template.md |
cohort-profile | "Here are the results — what does my class know?", 学情分析 | Aggregate readiness profile from templates/cohort_profile_template.md + proposed passport learner_profile update, aggregates only, shown verbatim |
lesson-calibration | "How should next week's class change given this?" | Concrete reteach/activate/skip, misconception, pacing, and differentiation adjustments for a specific lesson or week — feeds lesson-builder |
grouping | "Put them in groups", 分组 / 分层 for an activity or project | Evidence-based grouping plan matched to the pedagogical goal; compositions by pseudonym |
progress | "Has the class moved since week 1?", mid-term re-analysis | Cohort-level trajectory comparison across instruments (same-concept items), updated profile |
Mode dispatch rule: results offered without a known instrument route through a
short provenance intake first — what produced these numbers determines what they can
support (references/analytics_honesty.md §1). Detect intent in any language.
Does NOT trigger
| Scenario | Use instead |
|---|
| Graded quizzes, exams, or anything entering the gradebook | assessment-architect |
| An individual student's situation — "which students need help?", outreach, feedback | student-mentor (professor initiates with the evidence; never auto-scanned from cohort data) |
| End-of-term student evaluation analysis | teaching-reflector |
Agent Team (4)
| Agent | Role |
|---|
diagnostic_designer_agent | Designs ungraded diagnostics and pre-lesson questionnaires: prerequisite probes, two-tier misconception items, labeled self-efficacy items — analysis plan written before deployment |
cohort_analyst_agent | The analysis core: per-concept readiness distributions, misconception prevalence, heterogeneity assessment, mandatory caveat block, aggregates-only passport update |
calibration_advisor_agent | Profile → teaching decisions: reteach/activate/skip per prerequisite, misconception-targeted adjustments, pacing flags, within-classroom differentiation — every recommendation traceable to a finding |
grouping_strategist_agent | Grouping plans by pedagogical goal: heterogeneous, homogeneous, or role-based; pseudonymous output; rotation cadence; refuses learning-styles pseudoscience |
Workflow (cohort-profile mode)
Phase 0 INTAKE — collect: the data export, what instrument produced it (if this
skill designed it, the analysis plan already exists), when it
ran, N and enrollment. Ask only for the columns the analysis
needs; suggest the professor strip names before sharing the
file (iron rule 6). Unknown provenance = ask, don't guess.
Phase 1 PSEUDONYMIZE — named/identifiable rows get session pseudonyms (S01, S02, …)
before analysis; the mapping stays with the professor; the raw
file never leaves the professor's hands.
Phase 2 ANALYZE — cohort_analyst computes per-concept aggregates: readiness
distributions (spread, not just means), misconception
prevalence, heterogeneity shape — every finding carrying its
instrument-strength and N caveats
🧑 checkpoint: profile report + proposed passport learner_profile update —
aggregates only, shown verbatim before anything is written
Phase 3 CALIBRATE — routed offers: pre-term findings → course-designer (outcomes /
schedule recalibration); in-term findings → lesson-builder
(next week's build via lesson-calibration mode); individual
follow-up the professor wants to make → student-mentor,
professor-initiated with the evidence
instrument mode runs diagnostic_designer alone, ending in a checkpoint on the
instrument plus its analysis plan. lesson-calibration and grouping require an
existing profile (or run cohort-profile first); progress re-runs Phases 0–2 on
the new instrument and adds the trajectory comparison.
Iron rules
- Cohort-only passport writes. Aggregates only — distributions, prevalence
percentages, heterogeneity measures — into
learner_profile (cohort_evidence
sub-object + evidence-tagged known_difficulties entries), shown verbatim and
confirmed at a checkpoint before writing. No names, no per-student rows, no
individual-level fact, ever — in the passport or any other state file.
- No prediction, no tracking labels. Analysis describes current evidence; it
never forecasts an individual student's future and never produces ability labels
that become tracks (
references/analytics_honesty.md §2 for the rationale).
- Self-report is not measured ability. Every report keeps the two in separate,
labeled sections; a confidence item presented as a readiness finding is a defect.
- Instrument-strength caveats are mandatory. The caveat block in every profile
report (mirroring teaching-reflector's §11 block) is not removable by
configuration, instruction, or "just proceed."
- Individual questions route to student-mentor. "Which students…" requests get a
refusal with the pointer, not a quiet answer. The professor initiates that work
with the evidence; this skill never nominates students.
- Data minimization. Ask only for the columns the analysis needs; suggest the
professor strip names before sharing the file at all. The least data that answers
the question is the right amount of data.
Outputs
cohort/diagnostic_<slug>.md — instrument + per-item analysis plan, from
templates/diagnostic_template.md
cohort/cohort_profile_<date>.md — from templates/cohort_profile_template.md
cohort/lesson_calibration_<week>.md — adjustments keyed to the week's plan
cohort/grouping_plan_<slug>.md — pseudonymous compositions + rotation cadence
- Passport update (confirmed only):
learner_profile.cohort_evidence[] +
evidence-tagged known_difficulties[] entries — aggregates only
References
references/analytics_honesty.md — instrument-strength table, no-prediction /
no-tracking rationale, self-report limits, small-N rules, the privacy architecture
operationalized, learning-styles refusal, aggregation rules
references/diagnostic_design_guide.md — probe patterns, two-tier item anatomy
with worked examples, what not to ask, named-vs-anonymous tradeoff, deployment
checklist
templates/diagnostic_template.md
templates/cohort_profile_template.md
- Shared:
shared/pedagogy_foundations.md (§5, §9, §11),
shared/course_passport_schema.md (learner_profile; Iron Rule 2),
shared/checkpoint_protocol.md (person-affecting hard rule)