xiaohongshu
xiaohongshu
curriculum-validate-cc
Validate IMS Common Cartridge 1.3 packages against spec, check manifest schema, verify file references, validate QTI assessments, and ensure LMS compatibility. Use when validating CC packages before delivery. Activates on "validate Common Cartridge", "check CC package", "verify IMS CC", or "CC va...
Full skill instructions
Validate IMS Common Cartridge 1.3 packages for specification compliance, structural integrity, and LMS compatibility before delivery.
File Structure:
File References:
Manifest Schema:
Metadata:
Organizations:
Resources:
QTI Assessments:
LTI Tools:
Discussion Topics:
Web Links:
Web Content:
WCAG 2.1 AA Compliance:
Canvas-Specific:
Moodle-Specific:
Blackboard-Specific:
# Extract .imscc to temporary directory
unzip course.imscc -d /tmp/cc-validate-XXXXX
# Verify structure
ls -la /tmp/cc-validate-XXXXX/
Expected structure:
course/
├── imsmanifest.xml # Required at root
├── course-settings.xml # Optional
├── lessons/
├── assessments/
├── discussions/
├── lti-tools/
├── resources/
└── web-links/
# Validate against IMS CC 1.3 XSD
xmllint --noout --schema imscc_v1p3_imscp_v1p2.xsd imsmanifest.xml
# Check for well-formed XML
xmllint --noout imsmanifest.xml
Common Schema Errors:
# Pseudocode for reference validation
manifest = parse_xml("imsmanifest.xml")
# Get all file references from manifest
referenced_files = []
for resource in manifest.resources:
referenced_files.append(resource.href)
for file in resource.files:
referenced_files.append(file.href)
# Check all references exist
for file_path in referenced_files:
if not exists(file_path):
error(f"Missing file: {file_path}")
# Check for orphaned files
package_files = list_all_files()
for file in package_files:
if file not in referenced_files and file != "imsmanifest.xml":
warning(f"Orphaned file (not in manifest): {file}")
# For each QTI assessment
for assessment in assessments/*; do
# Validate assessment metadata
xmllint --noout --schema assessment_meta.xsd $assessment/assessment_meta.xml
# Validate QTI 2.1 XML
xmllint --noout --schema qtiasiv2p1.xsd $assessment/assessment.xml
# Check item types
check_qti_item_types $assessment/assessment.xml
done
QTI Validation Checks:
# For each LTI tool
for tool in lti-tools/*; do
# Validate LTI XML
xmllint --noout --schema blti_v1p0.xsd $tool
# Check required fields
check_lti_fields $tool
done
LTI Validation Checks:
Common Cartridge Validation Report
===================================
Package: bio-101-2025.imscc
Validation Date: 2025-11-06T13:30:00Z
Validation Level: Thorough
SUMMARY
-------
Overall Status: PASS ✓
Total Checks: 87
Passed: 85
Warnings: 2
Errors: 0
DETAILED RESULTS
----------------
[✓] Structure Validation (12 checks)
✓ Package is valid ZIP
✓ imsmanifest.xml exists at root
✓ imsmanifest.xml is valid XML
✓ No OS-specific files
✓ All referenced files exist
✓ No orphaned files
... (6 more)
[✓] Schema Validation (25 checks)
✓ Valid against IMS CC 1.3 XSD
✓ Required elements present
✓ Namespace declarations correct
✓ All identifiers unique
... (21 more)
[✓] QTI Assessment Validation (18 checks)
✓ 3 assessments found
✓ All assessment metadata valid
✓ All QTI 2.1 XML valid
✓ Response processing defined
✓ Scoring configured
... (13 more)
[⚠] Accessibility Validation (15 checks)
✓ All images have alt text
✓ Color contrast ratios meet AA
⚠ 2 links have non-descriptive text ("click here")
⚠ 1 video missing captions
... (11 more)
[✓] LTI Tool Validation (8 checks)
✓ 2 LTI tools configured
✓ All launch URLs valid
✓ All use HTTPS
✓ Vendor information complete
... (4 more)
WARNINGS (2)
------------
1. lessons/lesson-1-2.html: Link text "click here" is not descriptive (line 42)
2. resources/videos/cell-division.mp4: Video missing caption track
RECOMMENDATIONS
---------------
1. Update link text to be descriptive ("View cell diagram" instead of "click here")
2. Add WebVTT caption file for video: resources/videos/cell-division.vtt
3. Consider adding more feedback to QTI questions (optional)
PACKAGE DETAILS
---------------
Course ID: bio-101-2025
Course Title: Introduction to Biology
Lessons: 8
Assessments: 3 (QTI 2.1)
Discussion Topics: 2
LTI Tools: 2
Resources: 47 files (images, videos, PDFs)
Package Size: 14.2 MB
Extracted Size: 15.8 MB
IMPORT COMPATIBILITY
--------------------
Canvas: ✓ Compatible
Moodle: ✓ Compatible
Blackboard: ✓ Compatible
D2L Brightspace: ✓ Compatible
Schoology: ✓ Compatible
NEXT STEPS
----------
1. ✓ Package is ready for delivery
2. Address 2 accessibility warnings (optional but recommended)
3. Test import in target LMS before final delivery
4. Generate import instructions for customer
Report generated by: curriculum.validate-cc v1.0.0
# Quick validation (structure only)
/curriculum.validate-cc --package course.imscc --level quick
# Standard validation (structure + schema)
/curriculum.validate-cc --package course.imscc --level standard
# Thorough validation (all checks)
/curriculum.validate-cc --package course.imscc --level thorough
# With target LMS checks
/curriculum.validate-cc --package course.imscc --level thorough --target-lms canvas
# Generate detailed report
/curriculum.validate-cc --package course.imscc --level thorough --report-file validation-report.txt
# JSON output for automation
/curriculum.validate-cc --package course.imscc --level thorough --format json --output validation.json
# Validate multiple packages
/curriculum.validate-cc --packages "*.imscc" --level standard
# Help
/curriculum.validate-cc --help
Human-readable validation report with:
{
"package": "bio-101-2025.imscc",
"validation_date": "2025-11-06T13:30:00Z",
"level": "thorough",
"summary": {
"status": "pass",
"total_checks": 87,
"passed": 85,
"warnings": 2,
"errors": 0
},
"structure_validation": {
"status": "pass",
"checks": 12,
"passed": 12
},
"schema_validation": {
"status": "pass",
"checks": 25,
"passed": 25
},
"qti_validation": {
"status": "pass",
"checks": 18,
"passed": 18,
"assessments": 3
},
"accessibility_validation": {
"status": "warning",
"checks": 15,
"passed": 13,
"warnings": 2,
"issues": [
{
"type": "warning",
"file": "lessons/lesson-1-2.html",
"line": 42,
"message": "Link text 'click here' is not descriptive",
"recommendation": "Use descriptive text like 'View cell diagram'"
},
{
"type": "warning",
"file": "resources/videos/cell-division.mp4",
"message": "Video missing caption track",
"recommendation": "Add WebVTT caption file"
}
]
},
"lti_validation": {
"status": "pass",
"checks": 8,
"passed": 8,
"tools": 2
},
"compatibility": {
"canvas": true,
"moodle": true,
"blackboard": true,
"d2l_brightspace": true,
"schoology": true
}
}
<validation-report>
<package>bio-101-2025.imscc</package>
<summary status="pass">
<total-checks>87</total-checks>
<passed>85</passed>
<warnings>2</warnings>
<errors>0</errors>
</summary>
<structure-validation status="pass"/>
<schema-validation status="pass"/>
<qti-validation status="pass"/>
<accessibility-validation status="warning">
<issue type="warning" file="lessons/lesson-1-2.html" line="42">
Link text 'click here' is not descriptive
</issue>
</accessibility-validation>
<lti-validation status="pass"/>
</validation-report>
Error:
Element '{http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1}manifest':
Missing child element(s). Expected is ( {http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1}organizations ).
Cause: Missing required <organizations> element
Fix:
<manifest>
<metadata>...</metadata>
<organizations>
<organization identifier="org-1" structure="rooted-hierarchy">
<item identifier="root">
<title>Course Title</title>
</item>
</organization>
</organizations>
<resources>...</resources>
</manifest>
Warning:
Orphaned file (not in manifest): resources/images/unused-diagram.png
Cause: File exists in package but not referenced in manifest
Fix Options:
Error:
Missing file: lessons/lesson-5.html (referenced in manifest)
Cause: Manifest references file that doesn't exist
Fix:
Error:
QTI validation failed: assessments/quiz-1/assessment.xml
Element 'correctResponse': This element is not expected.
Cause: QTI XML doesn't conform to QTI 2.1 schema
Fix:
Error:
LTI tool 'Virtual Lab' has HTTP launch URL (HTTPS recommended)
Cause: LTI tool uses insecure HTTP URL
Fix:
<blti:launch_url>http://example.com/launch</blti:launch_url>
<!-- Change to: -->
<blti:secure_launch_url>https://example.com/launch</blti:secure_launch_url>
Before Validation:
After Validation: 2. If validation passes → deliver to customer 3. If validation fails → fix issues and re-validate 4. For LMS testing → use cc-validator agent
Workflow:
# 1. Create package
/curriculum.package-common-cartridge --materials "curriculum/" --output "course.imscc"
# 2. Validate package
/curriculum.validate-cc --package "course.imscc" --level thorough
# 3. If pass, test in LMS
/agent.cc-validator --action "test" --package "course.imscc" --lms-targets "canvas,moodle"
# 4. If all tests pass, deliver
cp course.imscc published/bio-101-2025.imscc
✅ Always validate:
✅ Quick validation good for:
✅ Thorough validation good for:
| Level | Time | Use Case |
|---|---|---|
| Quick | 1-2 min | Development, CI/CD |
| Standard | 3-5 min | Pre-testing validation |
| Thorough | 5-10 min | Final QA, delivery |
Accessibility Warnings:
Orphaned Files:
Missing Feedback:
Typical Validation Times:
| Package Size | Quick | Standard | Thorough |
|---|---|---|---|
| Small (<5 MB, 5-10 lessons) | 30 sec | 1-2 min | 3-5 min |
| Medium (5-20 MB, 10-30 lessons) | 1 min | 3-5 min | 5-10 min |
| Large (20-100 MB, 30+ lessons) | 2-3 min | 5-10 min | 10-20 min |
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience