mcpField
P
professor-skill

professor-skill

github.com/commithu502craftProductivity6457 installsUpdated 29w ago
Repository

About professor-skill

A skill for building a professor-specific study resource from real course materials. It separates course content from teaching persona and generates structured study artifacts, while requiring uncertainty to be labeled rather than presented as fact.

Key features

  1. 01Extract course structure and exam signals
  2. 02Model teaching style separately
  3. 03Generate persona, course, and review files
  4. 04Build and validate material workspace
  5. 05Flag uncertain inferences

Use cases

  1. 01Turn course files into a review guide
  2. 02Prepare exam-focused study materials
  3. 03Organize professor and course notes
  4. 04Create teaching-style replies from evidence

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/commithu502craft/professor-skill --skill professor-skill

After installing, type/professor-skillin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

CHANGELOG.md
CONTRIBUTING.md
.gitignore
ROADMAP.md
LICENSE
README.md
.github/ISSUE_TEMPLATE/
bug_report.md
docs_or_examples.md
config.yml
feature_request.md
agents/
openai.yaml
professors/example_linear-algebra-liu/
course.md
materials_manifest.md
persona.md
meta.json
review_guide.md
source_brief.md
professors/example_linear-algebra-liu/exports/extracted/
index.json
professors/example_linear-algebra-liu/exports/extracted/chats/
group-qa.txt.txt
professors/example_linear-algebra-liu/exports/extracted/exams/
2025-final-sample.txt.txt
professors/example_linear-algebra-liu/exports/extracted/syllabus/
course-outline.md.txt
professors/example_linear-algebra-liu/exports/extracted/transcripts/
lecture-09.txt.txt
professors/example_linear-algebra-liu/materials/assignments/
.gitkeep
professors/example_linear-algebra-liu/materials/chats/
group-qa.txt
professors/example_linear-algebra-liu/materials/exams/
2025-final-sample.txt
professors/example_linear-algebra-liu/materials/misc/
.gitkeep
professors/example_linear-algebra-liu/materials/notices/
.gitkeep
professors/example_linear-algebra-liu/materials/slides/
.gitkeep
professors/example_linear-algebra-liu/materials/syllabus/
course-outline.md
professors/example_linear-algebra-liu/materials/transcripts/
lecture-09.txt

Details

From the project README

Professor Skill

Use this skill when the user wants to build a 大学老师.skill / Professor Skill from real course materials.

The output must stay useful first and funny second:

  • Useful enough to help with review, Q&A, and exam prep
  • Distinct enough to feel like this specific professor
  • Meme-friendly enough that the result is screenshot-worthy

Core Model

Always separate the professor into two engines:

  1. Course Brain Extract the actual course structure:

    • key topics
    • repeated concepts
    • likely exam scope
    • common question types
    • grading preferences
    • typical mistakes
  2. Teacher Persona Extract the professor's delivery style:

    • catchphrases
    • explanation rhythm
    • patience level
    • response habits
    • classroom humor or sarcasm
    • how they emphasize or downplay topics

The final output should merge both: Teacher Persona decides tone. Course Brain decides substance.

Workflow

Step 1: Collect minimum intake

Ask only for the smallest set of details needed to start:

  • professor name
  • school or department if available
  • course name
  • what materials the user has
  • one-line impression of the professor

If the user already provided files or context, do not repeat questions.

If there is no professor workspace yet, initialize one first:

python ${CLAUDE_SKILL_DIR}/tools/professor_writer.py --name "<teacher>" --course "<course>" --school "<school>" --department "<department>"

This creates:

  • meta.json
  • persona.md
  • course.md
  • review_guide.md
  • materials/ source folders
  • materials_manifest.md
  • source_brief.md
  • workflow.md
Step 2: Sort material by signal strength

Rank sources before extracting:

  1. exams, quizzes, assignments
  2. lecture transcripts or lecture notes
  3. slides and syllabus
  4. group chats, Q&A logs, office-hour notes
  5. professor bio, homepage, publication summaries

Use higher-signal sources to determine exam and review content. Use lower-signal sources to sharpen persona and identity.

When source files have been placed into materials/, always run the single-command build pipeline:

python ${CLAUDE_SKILL_DIR}/tools/build_professor_outputs.py "<professor-dir>"

This pipeline must:

  • extract parseable text from pdf, pptx, docx, and text files into exports/extracted/
  • refresh materials_manifest.md
  • refresh source_brief.md
  • generate persona.md, course.md, and review_guide.md
  • validate the workspace before claiming it is ready

Read materials_manifest.md, source_brief.md, and the highest-signal extracted files first.

If ${CLAUDE_SKILL_DIR} is unavailable in the runtime, resolve tool paths relative to the skill root directory rather than the caller's working directory.

Step 3: Build three artifacts

Always generate these three files or sections:

  • persona.md
  • course.md
  • review_guide.md

If the user explicitly wants it, also generate:

  • mock exam
  • likely key points
  • oral-style explanation notes
  • teacher-style chat replies

When updating existing artifacts:

  • preserve strong evidence already reflected in the files
  • replace [fill me] placeholders with concrete content
  • keep unsupported claims marked as low-confidence inference
Step 3.5: Refuse fake confidence

If validate_professor.py warns that there are no exams, no transcripts, or no indexed sources, you should still help, but explicitly lower confidence and explain which parts are inferred.

Step 4: Keep the humor disciplined

Humor should come from recognition, not random jokes.

Prefer these patterns:

  • "这题上课讲过" energy
  • vague but familiar teacher phrasing
  • passive-aggressive reminders
  • overlong slides, underspecified key points
  • exam warnings that feel suspiciously real

Avoid:

  • insulting the professor
  • fabricated misconduct
  • fake official notices
  • humor that reduces usefulness

Legal And Content Guardrails

  • Treat imported materials as potentially sensitive by default.
  • Do not encourage users to upload or redistribute content they do not have the right to use.
  • Do not present generated text as an official notice, grading rule, or statement from the real professor.
  • Do not fabricate private facts, misconduct claims, or internal school policies.
  • If the user appears to be using private chats, recordings, unpublished materials, or other potentially restricted content without permission, warn briefly and continue only with clearly lawful, minimal assistance.
  • When uncertainty exists, prefer summarization, study guidance, and low-confidence caveats over imitation that could be mistaken for the real person.

Output Requirements

persona.md

Include:

  • identity summary
  • catchphrases
  • speaking style
  • how the professor answers vague questions
  • how they react to lazy students
  • how they signal importance without saying "this will be on the exam"
  • boundaries and correction notes
course.md

Include:

  • course overview
  • chapter map
  • likely core topics
  • recurring concepts
  • known exam styles
  • grading preferences or answer expectations
  • high-risk confusion points
review_guide.md

This is the student-facing compressed artifact.

It should:

  • prioritize likely exam content
  • reduce fluff
  • explain what to memorize versus what to understand
  • include "teacher may ask this way" examples
  • include a short "last-night-before-exam" section

Style Rules

  • Respond in the user's language. If the user is writing in Chinese, stay in Chinese.
  • Be concrete. Replace generic praise with specific behavioral patterns.
  • Do not present guesses as facts. Mark weak inferences clearly.
  • If the material is thin, say so and still produce a lightweight version.
  • Keep outputs organized and readable. Students should be able to skim them fast.

Internet Flavor

If the user wants stronger virality or "网感", lean into these angles while staying accurate:

  • "老师说不考"
  • "PPT 讲了很多,重点像没讲"
  • "群里回复比题目更难懂"
  • "你以为是人格模拟,实际上是期末自救"

The project should feel like a real tool wrapped in a shareable joke, not a joke wrapped around an empty shell.

Bundled Resources

  • Prompt templates live in prompts/
  • Material schema guidance lives in references/materials-schema.md
  • GitHub README positioning guidance lives in references/github-readme-design.md
  • Local scaffolding/build scripts live in tools/
  • Example professor data lives in professors/example_linear-algebra-liu/

Comments

Markdown supported