From cw
Use when investigating an enrollment in any EdgeEx environment — fetches enrollment, section, customization, supplemental, and gradebook data to produce a complete picture of how a student's course is configured and how they are progressing
How this skill is triggered — by the user, by Claude, or both
Slash command
/cw:gather-edgeex-enrollment-infoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Collect and summarize the full configuration and progress state for a given enrollment: section details, course structure customizations, supplemental individualizations, and gradebook results.
Collect and summarize the full configuration and progress state for a given enrollment: section details, course structure customizations, supplemental individualizations, and gradebook results.
If the environment is not clear from context, ask the user before proceeding. The MCP tools are namespaced by environment (e.g. mcp__edgeex-prod__*, mcp__edgeex-staging__*). Use the correct namespace for all calls in this skill.
Keep these categories separate in your summary.
Call mcp__edgeex-prod__enrollment_get with the enrollmentId.
Extract and note:
courseId, sectionId, studentIddistrictId, schoolIdcourseMajorEdition, catalogManagercustomizationSectionEdition — edition of the section customization snapshot baked into this enrollmentcustomizedAtEnrollmentLevel — true if enrollment has supplemental individualizations (not content customizations)Always fetch section details (mcp__edgeex-prod__section_get). Beyond that, only fetch what is relevant:
| User is asking about... | Also fetch |
|---|---|
| Course structure, hidden content, added content | Section and enrollment customization summaries (mcp__edgeex-prod__course_customization_get_summary) |
| Grade weights, passing thresholds, assessment settings | Section and enrollment supplementals (mcp__edgeex-prod__course_get_supplemental) |
| Overall grade or progress (top-line only) | Enrollment gradebook (mcp__edgeex-prod__grading_gradebook_get_enrollment) — but do NOT load the full activities array into context |
| A specific activity's score, attempts, or bypass reason | mcp__edgeex-prod__grading_gradebook_get_activity — requires activityId from the user |
| General "what's going on with this enrollment" | Customizations + supplementals. Do not pull the full gradebook by default. |
Make all relevant calls simultaneously. Always pass catalogManager from the enrollment to the customization summary calls.
Gradebook policy: the full enrollment gradebook is very large (often hundreds of activities, ~500KB+) and loading it into context is wasteful. Default to activity-level lookups via grading_gradebook_get_activity once the user names a specific activity. If the user has not provided an activityId, ask which activity they want to inspect rather than pulling the full gradebook. Only use grading_gradebook_get_enrollment when you need the top-line grade/progress/status fields and plan to discard the activities array.
Do not rely on course_customization_get_summary to determine whether customizations exist. The changes array it returns is only populated when a special metadata flag is passed to the course call — an empty changes array does not mean the section or enrollment is uncustomized.
To get the authoritative list of active customizations, use mcp__edgeex-prod__course_customization_query_active with districtId, schoolId, sectionId, and courseId. This queries DynamoDB directly and is the most reliable source.
For enrollment-level content customizations specifically, mcp__edgeex-prod__course_customization_list_for_section lists them by section; a 404 response means none exist at the enrollment level.
customizedAtEnrollmentLevel flag — the latter only indicates supplemental overrides, not content changes)Report only the top-line: overall grade, progress, pacing status, and enrollment status. Do not load or summarize the per-activity list. If the user wants detail on a specific activity, ask for the activityId and call grading_gradebook_get_activity for just that one.
Compare grade weights and other key options between section and enrollment scopes using a table. Use the fieldSources object in the supplemental response to identify which fields are overridden at which level — any field showing "enrollment" is individualized at the enrollment level, "section" means the section overrides the course default.
Grade weights comparison template:
| Category | Section | Enrollment | Source |
|---|---|---|---|
| quiz | X | X | course / section / enrollment |
| test | X | X | ... |
| exam | X | X | ... |
| assignment | X | X | ... |
| project | X | X | ... |
| short writing | X | X | ... |
| practice assessment | X | X | ... |
| essay | X | X | ... |
Also note any other fields where enrollment scope differs from section scope (passing thresholds, assessment settings, etc.).
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub imaginelearning/dp-claude-plugin --plugin cw