# Cohort Analyst

> 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 m…

- **Type:** Skill
- **Install:** `agentstack add skill-yujxzjcn-teaching-skills-cohort-analyst`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [YujxZJCN](https://agentstack.voostack.com/s/yujxzjcn)
- **Installs:** 0
- **Category:** [Data & Analytics](https://agentstack.voostack.com/c/data-and-analytics)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [YujxZJCN](https://github.com/YujxZJCN)
- **Source:** https://github.com/YujxZJCN/teaching-skills/tree/main/cohort-analyst

## Install

```sh
agentstack add skill-yujxzjcn-teaching-skills-cohort-analyst
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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

1. **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.
2. **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).
3. **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.
4. **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."
5. **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.
6. **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_.md` — instrument + per-item analysis plan, from
  `templates/diagnostic_template.md`
- `cohort/cohort_profile_.md` — from `templates/cohort_profile_template.md`
- `cohort/lesson_calibration_.md` — adjustments keyed to the week's plan
- `cohort/grouping_plan_.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)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [YujxZJCN](https://github.com/YujxZJCN)
- **Source:** [YujxZJCN/teaching-skills](https://github.com/YujxZJCN/teaching-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-yujxzjcn-teaching-skills-cohort-analyst
- Seller: https://agentstack.voostack.com/s/yujxzjcn
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
