KS
Killer-Skills

student-activity-analysis — how to use student-activity-analysis how to use student-activity-analysis, student-activity-analysis setup guide, automated git activity analysis, student-activity-analysis alternative, student-activity-analysis vs manual tracking, student-activity-analysis install, what is student-activity-analysis, student-activity-analysis for educators, student-activity-analysis benefits

v1.0.0
GitHub

About this Skill

Ideal for Education-focused AI Agents requiring automated student progress tracking and git activity analysis. student-activity-analysis is a skill that automates the analysis of student git activity in software engineering to track progress and identify at-risk students.

Features

Analyzes student git activity to track progress
Identifies at-risk students through automated analysis
Supports tracking of lab submissions and project work
Provides insights into student participation and engagement
Automates the process of checking class activity and student contributions

# Core Topics

nibzard nibzard
[0]
[0]
Updated: 3/7/2026

Quality Score

Top 5%
51
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add nibzard/2025-intro-swe/student-activity-analysis

Agent Capability Analysis

The student-activity-analysis MCP Server by nibzard is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use student-activity-analysis, student-activity-analysis setup guide, automated git activity analysis.

Ideal Agent Persona

Ideal for Education-focused AI Agents requiring automated student progress tracking and git activity analysis.

Core Value

Empowers agents to analyze student git activity, providing valuable insights into class participation, lab submissions, and project work using git protocols and data visualization techniques, enabling educators to identify at-risk students and areas of improvement.

Capabilities Granted for student-activity-analysis MCP Server

Automating student progress updates
Identifying at-risk students through git activity analysis
Analyzing class participation and lab submissions
Tracking project work and contributions
Verifying student participation and engagement

! Prerequisites & Limits

  • Requires access to student git activity data
  • Limited to software engineering education context
  • Needs integration with git version control systems
Project
SKILL.md
7.0 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

Student Activity Analysis Skill

When to Use This Skill

Invoke this skill when the user:

  • Asks to "update the student activity analysis"
  • Asks "how are students doing?" or "check student progress"
  • Mentions checking class activity, lab submissions, or project work
  • Wants to see who has completed labs or is actively contributing
  • Needs to verify student participation or identify at-risk students

Overview

This skill automates the analysis of student git activity in a software engineering course. It reads from a canonical student roster (OFFICIAL_STUDENT_ROSTER.json), queries git history, checks file systems, and generates a comprehensive markdown report (STUDENT_ACTIVITY_ANALYSIS.md).

Step-by-Step Instructions

Step 0: Sync with Main Branch (CRITICAL)

Always start by syncing with the main branch to ensure you're analyzing the latest activity:

bash
1git fetch origin main 2git merge origin main -m "Sync with main before analysis"

⚠️ Why this is critical: Without syncing, you may miss up to 76% of student activity that exists on the main branch but not on your current branch.

Step 1: Collect Activity Data

Run the data collection script:

bash
1python3 .claude/skills/student-activity-analysis/collect_data.py

This script will:

  • Read OFFICIAL_STUDENT_ROSTER.json
  • Query git logs for each student (handling multiple usernames)
  • Check lab01 completion (intro.py files)
  • Check lab03 folders
  • Analyze project folder activity
  • Generate STUDENT_ACTIVITY_DATA.json

Step 2: Generate Report

Run the report generation script:

bash
1python3 .claude/skills/student-activity-analysis/generate_report.py

This script will:

  • Read STUDENT_ACTIVITY_DATA.json
  • Generate formatted markdown tables
  • Calculate statistics
  • Write to STUDENT_ACTIVITY_ANALYSIS.md

Step 3: Review and Commit

Review the generated report and commit if everything looks good:

bash
1git add STUDENT_ACTIVITY_ANALYSIS.md STUDENT_ACTIVITY_DATA.json 2git commit -m "Update student activity analysis - $(date +%Y-%m-%d)" 3git push -u origin <branch-name>

Handling Edge Cases

The real world is messy. Students don't always follow instructions perfectly. This skill is designed to handle common inconsistencies:

Edge Case 1: Multiple GitHub Usernames

Problem: A student may have multiple GitHub usernames or commit under different names.

Example from roster:

json
1"github_username": "jcuzic/Zlicone"

Solution: Split on "/" and query git with all usernames:

bash
1git log --all --author="jcuzic\|Zlicone" --oneline | wc -l

Edge Case 2: Name Variations and Diacritics

Problem: Student names in folders may not match roster exactly due to diacritics or spelling.

Roster: "Stipe Ćubelić" Folder: students/lab03/scubelic/

Solution: Use fuzzy matching when checking for folders:

  • Convert names to lowercase
  • Remove diacritics (ć→c, š→s, ž→z)
  • Check for partial matches

Edge Case 3: Lab Submissions in Wrong Location

Problem: Student may create intro.py in the wrong directory.

Expected: students/<github_username>/intro.py Actual: students/intro.py or students/lab01/<name>/intro.py

Solution: Search entire students/ directory:

bash
1find students/ -name "intro.py" -type f

Then manually verify which file belongs to which student.

Edge Case 4: Stale or Orphaned Project Folders

Problem: Project folders exist but no students in roster claim them.

Examples:

  • projects/garderoba/ (no team registered)
  • projects/climate-analyzers-asmith-bjohnson/ (demo data?)

Solution:

  • List all projects in report
  • Mark unmatched folders as "Unknown Team"
  • Show commit count to help identify ownership

Edge Case 5: Team Lead with No Commits

Problem: Student is listed as project lead but has 0 commits in project folder.

Possible reasons:

  • Commits under different username
  • Work done in different branch
  • Administrative lead (not technical)

Solution:

  • Mark as "Lead Only - Verify" status
  • Manually review git log for project folder
  • Check if commits exist under alternative username

Validation and Error Handling

Before finalizing the report, validate:

  1. Student count matches: Number of students in report = Number in roster
  2. No missing projects: All project folders are accounted for
  3. Date ranges make sense: First commit < Last commit
  4. Status classifications are consistent:
    • "Very Active" = 15+ commits
    • "Active" = 5-14 commits
    • "Low Activity" = 2-4 commits
    • "Minimal Activity" = 1 commit
    • "No Git Activity" = 0 commits

If validation fails:

  • Report the discrepancy
  • Show which students/projects are problematic
  • Ask user if manual review is needed

Output Format

The generated STUDENT_ACTIVITY_ANALYSIS.md should include:

  1. Overview Statistics

    • Total students (from roster)
    • Students with activity
    • Activity percentage
  2. Student Activity Table

    • ALL students (even those with 0 commits)
    • Sorted by activity level (most active first)
    • Columns: Name, GitHub, Commits, Status, Lab01, Lab03, Project Role
    • NO email addresses (kept in JSON only)
  3. Project Teams Table

    • ALL project folders
    • Columns: Project, Total Commits, Team Lead, Status
    • Include "Unknown" projects
  4. Recommendations

    • Students needing attention (0 commits)
    • Positive highlights (very active students)

Testing the Skill

To test this skill manually:

  1. Create a test branch
  2. Invoke the skill
  3. Verify output contains all 52 students
  4. Check that statistics add up correctly
  5. Manually verify a few commit counts with git log

Troubleshooting

Q: Script says "OFFICIAL_STUDENT_ROSTER.json not found" A: Make sure you're in the repository root directory /home/user/2025-intro-swe/

Q: Git log shows no commits for a student I know has commits A: Check if they have multiple GitHub usernames. Update roster with "username1/username2" format.

Q: Student has intro.py but script doesn't detect it A: Check the file path. Script searches entire students/ directory but may need manual verification.

Q: Project folder exists but not in any team's project_folder field A: This is an orphaned project. Script will mark it as "Unknown Team" - may need manual investigation.

Files Managed by This Skill

  • OFFICIAL_STUDENT_ROSTER.json (READ ONLY - never modified by scripts)
  • STUDENT_ACTIVITY_DATA.json (Generated by collect_data.py)
  • STUDENT_ACTIVITY_ANALYSIS.md (Generated by generate_report.py)

Key Lessons Learned

  1. Always sync with main first - Missing this step caused 76% of activity to be missed initially
  2. Include ALL enrolled students - Even those with 0 activity need to be in the report
  3. Separate static from dynamic data - Roster is manual, activity data is automated
  4. Handle real-world messiness - Students use multiple usernames, misspell names, put files in wrong places
  5. Make it deterministic - Same git state should produce same report every time

Related Skills

Looking for an alternative to student-activity-analysis or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication