Token导航 LogoToken导航

Agent Skill · 开发

education-expert(教育专家)

education-expert 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

education-expert 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 6,775。

总安装 4,357周安装 178GitHub Stars 19下载 1,396核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:education-expert(教育专家)
来源仓库:https://github.com/personamanagmentlayer/pcl
仓库路径:skills/education-expert
安装命令:
npx skills add https://github.com/personamanagmentlayer/pcl --skill education-expert
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/personamanagmentlayer/pcl --skill education-expert

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

聚焦教育技术、学习管理系统及在线教学平台开发的专业知识库。覆盖 LMS/SIS 集成、SCORM/xAPI 标准、无障碍设计等核心领域。为教育软件开发、课程内容管理和评估工具设计提供技术选型与架构参考。建议结合具体项目需求验证适用性,避免过度依赖通用方案而忽略实际约束。

education-expert 属于开发类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/education-expert

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/personamanagmentlayer/pcl --skill education-ex…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

education-expert 怎么安装?

在终端执行 npx skills add https://github.com/personamanagmentlayer/pcl --skill education-expert。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

education-expert 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

education-expert 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

education-expert 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

education-expert 用的人多吗?

公开数据是累计安装 4,357 次,近一周安装 178 次,下载 1,396 次,GitHub 19 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

education-expert 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
education-expert

教育专家 · 本页

4,35719需要联网MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Education Expert

Expert guidance for education technology, learning management systems, online learning platforms, and educational software development.

Core Concepts

Educational Technology

  • Learning Management Systems (LMS)
  • Student Information Systems (SIS)
  • Assessment and evaluation tools
  • Adaptive learning platforms
  • Virtual classrooms
  • Content management

Standards

  • SCORM (Sharable Content Object Reference Model)
  • xAPI (Experience API / Tin Can API)
  • LTI (Learning Tools Interoperability)
  • QTI (Question and Test Interoperability)
  • Accessibility (WCAG, Section 508)

Key Features

  • Course management
  • Grade tracking
  • Student analytics
  • Content delivery
  • Collaborative tools
  • Assessment engines

LMS Core Implementation

from dataclasses import dataclass
from typing import List, Optional
from datetime import datetime
from enum import Enum

class EnrollmentStatus(Enum):
    ACTIVE = "active"
    COMPLETED = "completed"
    DROPPED = "dropped"
    PENDING = "pending"

@dataclass
class Course:
    course_id: str
    title: str
    description: str
    instructor_id: str
    start_date: datetime
    end_date: datetime
    credits: int
    capacity: int
    syllabus_url: str
    prerequisites: List[str]

@dataclass
class Student:
    student_id: str
    first_name: str
    last_name: str
    email: str
    enrolled_date: datetime
    grade_level: str
    gpa: float

@dataclass
class Enrollment:
    enrollment_id: str
    student_id: str
    course_id: str
    enrollment_date: datetime
    status: EnrollmentStatus
    final_grade: Optional[float]

class LMSPlatform:
    """Learning Management System core functionality"""

    def __init__(self, db):
        self.db = db

    def enroll_student(self, student_id, course_id):
        """Enroll student in course"""
        course = self.db.get_course(course_id)
        current_enrollment = self.db.count_enrollments(course_id)

        # Check capacity
        if current_enrollment >= course.capacity:
            raise Exception("Course is full")

        # Check prerequisites
        if course.prerequisites:
            completed = self.get_completed_courses(student_id)
            if not all(prereq in completed for prereq in course.prerequisites):
                raise Exception("Prerequisites not met")

        enrollment = Enrollment(
            enrollment_id=generate_id(),
            student_id=student_id,
            course_id=course_id,
            enrollment_date=datetime.now(),
            status=EnrollmentStatus.ACTIVE,
            final_grade=None
        )

        return self.db.save_enrollment(enrollment)

    def get_student_transcript(self, student_id):
        """Generate student transcript"""
        enrollments = self.db.get_student_enrollments(student_id)
        transcript = []

        for enrollment in enrollments:
            if enrollment.status == EnrollmentStatus.COMPLETED:
                course = self.db.get_course(enrollment.course_id)
                transcript.append({
                    'course_code': course.course_id,
                    'course_name': course.title,
                    'credits': course.credits,
                    'grade': enrollment.final_grade,
                    'term': self.get_term(enrollment.enrollment_date)
                })

        return transcript

    def calculate_gpa(self, student_id):
        """Calculate student GPA"""
        transcript = self.get_student_transcript(student_id)
        total_points = 0
        total_credits = 0

        for record in transcript:
            if record['grade'] is not None:
                total_points += record['grade'] * record['credits']
                total_credits += record['credits']

        return total_points / total_credits if total_credits > 0 else 0.0

Assessment Engine

from abc import ABC, abstractmethod

class Question(ABC):
    """Base question class"""

    def __init__(self, question_id, text, points):
        self.question_id = question_id
        self.text = text
        self.points = points

    @abstractmethod
    def check_answer(self, student_answer):
        pass

class MultipleChoiceQuestion(Question):
    """Multiple choice question"""

    def __init__(self, question_id, text, points, choices, correct_answer):
        super().__init__(question_id, text, points)
        self.choices = choices
        self.correct_answer = correct_answer

    def check_answer(self, student_answer):
        return student_answer == self.correct_answer

class Essay Question(Question):
    """Essay question requiring manual grading"""

    def __init__(self, question_id, text, points, rubric):
        super().__init__(question_id, text, points)
        self.rubric = rubric

    def check_answer(self, student_answer):
        # Requires manual grading
        return None

class AssessmentEngine:
    """Assessment and grading system"""

    def grade_assessment(self, assessment, student_answers):
        """Grade student assessment"""
        total_points = 0
        earned_points = 0
        results = []

        for question in assessment.questions:
            total_points += question.points
            student_answer = student_answers.get(question.question_id)

            if isinstance(question, MultipleChoiceQuestion):
                is_correct = question.check_answer(student_answer)
                points_earned = question.points if is_correct else 0
                earned_points += points_earned

                results.append({
                    'question_id': question.question_id,
                    'correct': is_correct,
                    'points': points_earned,
                    'feedback': 'Correct!' if is_correct else f'Incorrect. Correct answer: {question.correct_answer}'
                })
            else:
                # Essay questions need manual grading
                results.append({
                    'question_id': question.question_id,
                    'status': 'pending_review',
                    'answer': student_answer
                })

        score_percentage = (earned_points / total_points) * 100 if total_points > 0 else 0

        return {
            'total_points': total_points,
            'earned_points': earned_points,
            'percentage': score_percentage,
            'results': results
        }

    def analyze_assessment_statistics(self, assessment_id, all_submissions):
        """Analyze assessment performance"""
        scores = [s['percentage'] for s in all_submissions]

        return {
            'mean': sum(scores) / len(scores),
            'median': sorted(scores)[len(scores) // 2],
            'min': min(scores),
            'max': max(scores),
            'std_dev': self.calculate_std_dev(scores)
        }

Learning Analytics

class LearningAnalytics:
    """Student learning analytics"""

    def get_student_engagement(self, student_id, course_id):
        """Calculate student engagement metrics"""
        activities = self.db.get_student_activities(student_id, course_id)

        metrics = {
            'login_frequency': self.calculate_login_frequency(activities),
            'content_completion_rate': self.calculate_completion_rate(activities),
            'assessment_participation': self.calculate_participation(activities),
            'forum_posts': len([a for a in activities if a['type'] == 'forum_post']),
            'time_on_platform': sum(a['duration'] for a in activities)
        }

        return metrics

    def predict_student_risk(self, student_id, course_id):
        """Predict at-risk students"""
        engagement = self.get_student_engagement(student_id, course_id)
        grades = self.get_recent_grades(student_id, course_id)

        risk_score = 0

        # Low engagement indicators
        if engagement['login_frequency'] < 2:  # Less than 2x per week
            risk_score += 25
        if engagement['content_completion_rate'] < 0.5:
            risk_score += 25
        if engagement['assessment_participation'] < 0.7:
            risk_score += 25

        # Grade indicators
        if grades and sum(grades) / len(grades) < 60:
            risk_score += 25

        risk_level = 'high' if risk_score >= 75 else 'medium' if risk_score >= 50 else 'low'

        return {
            'student_id': student_id,
            'risk_score': risk_score,
            'risk_level': risk_level,
            'recommendations': self.generate_interventions(risk_score, engagement)
        }

    def generate_learning_path(self, student_id, learning_goals):
        """Generate personalized learning path"""
        # Analyze student's current knowledge
        current_skills = self.assess_skills(student_id)
        gap_analysis = self.identify_skill_gaps(current_skills, learning_goals)

        # Recommend courses and resources
        recommended_courses = self.match_courses_to_goals(gap_analysis)

        return {
            'student_id': student_id,
            'current_level': current_skills,
            'target_level': learning_goals,
            'skill_gaps': gap_analysis,
            'recommended_path': recommended_courses,
            'estimated_duration': self.estimate_completion_time(recommended_courses)
        }

xAPI (Tin Can API) Integration

import json
from datetime import datetime

class xAPIStatement:
    """xAPI statement builder"""

    @staticmethod
    def create_statement(actor, verb, object_data, result=None):
        """Create xAPI statement"""
        statement = {
            'actor': {
                'objectType': 'Agent',
                'name': actor['name'],
                'mbox': f"mailto:{actor['email']}"
            },
            'verb': {
                'id': verb['id'],
                'display': {'en-US': verb['display']}
            },
            'object': {
                'id': object_data['id'],
                'definition': {
                    'name': {'en-US': object_data['name']},
                    'description': {'en-US': object_data.get('description', '')}
                }
            },
            'timestamp': datetime.utcnow().isoformat()
        }

        if result:
            statement['result'] = result

        return statement

    @staticmethod
    def completed_course(student, course, score):
        """Create course completion statement"""
        return xAPIStatement.create_statement(
            actor={'name': student['name'], 'email': student['email']},
            verb={
                'id': 'http://adlnet.gov/expapi/verbs/completed',
                'display': 'completed'
            },
            object_data={
                'id': f"http://lms.example.com/course/{course['id']}",
                'name': course['title']
            },
            result={
                'score': {
                    'scaled': score / 100,
                    'raw': score,
                    'min': 0,
                    'max': 100
                },
                'completion': True,
                'success': score >= 70
            }
        )

Best Practices

  • Implement accessibility standards (WCAG)
  • Support mobile learning
  • Enable offline access
  • Provide real-time feedback
  • Use adaptive learning algorithms
  • Protect student data privacy (FERPA)
  • Enable collaborative learning
  • Provide detailed analytics
  • Support multiple content formats
  • Implement plagiarism detection
  • Enable parent/guardian access
  • Support multilingual content

Anti-Patterns

❌ Poor mobile experience ❌ No accessibility features ❌ Ignoring data privacy ❌ No analytics or reporting ❌ Inflexible assessment tools ❌ No offline capabilities ❌ Poor user experience

Resources

平台分布

Claude Code

30%
按下载量换算419

OpenCode

21.36%
按下载量换算298

Codex

16.55%
按下载量换算231

Antigravity

13.12%
按下载量换算183

Gemini CLI

6.78%
按下载量换算95

windsurf

3.74%
按下载量换算52

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills