Special Education Kernel için resmi eklenti modülleri: mevcut motorları kernel sözleşmesine bağlayan ince adaptörler + platform kanal şemaları. Swift karşılığı birebir aynı mimariyi paylaşır.
Bu paketle birlikte platform ilk kez uçtan uca gerçek veriyle çalışır:
Öğretmen gözlemi (assessment-sessions kanalı, tohum veri)
│
▼
┌─────────────────────────────┐
│ SEKTaskAnalysisModule │ → skill-performance (oturum bazlı kayıtlar)
│ (Task Analysis Engine) │ → assessment-reports (gerekçeli özet)
└──────────────┬───────────────┘
▼
┌─────────────────────────────┐
│ SEKGoalRecommendationModule │ → goal-recommendations (gerekçeli öneriler)
│ (Goal Recommendation Engine) │
└──────────────────────────────┘
İki modül birbirini bilmez — yalnızca kernel kanallarından okur/yazar. Motorların çekirdek kodu değişmemiştir; her adaptör envelope ↔ motor tipi dönüşümü yapan ince bir katmandır.
| Dosya | İçerik |
|---|---|
src/channels.ts |
Kanal kimlikleri + motor-bağımsız wire şemaları (AssessmentSessionRecord@1, SkillPerformanceRecord@1, AssessmentReportRecord@1, GoalRecommendationRecord@1) |
src/taskAnalysisModule.ts |
task-analysis-assessment-engine adaptörü |
src/goalRecommendationModule.ts |
goal-recommendation-engine adaptörü |
npm install github:rootayb/sek-modules-tsBağımlılıklar (kernel + iki motor) GitHub üzerinden çekilir ve prepare script'iyle otomatik derlenir.
import { ChannelCatalog, Kernel, ModuleRegistry, studentId } from "special-education-kernel";
import { SEKChannels, SEKTaskAnalysisModule, SEKGoalRecommendationModule } from "sek-modules";
const catalog = new ChannelCatalog();
catalog.define({ id: SEKChannels.assessmentSessions, requiresExplanation: false, description: "Ham oturumlar" });
catalog.define({ id: SEKChannels.skillPerformance, requiresExplanation: false, description: "Performans kayıtları" });
catalog.define({ id: SEKChannels.assessmentReports, requiresExplanation: true, description: "Raporlar" });
catalog.define({ id: SEKChannels.goalRecommendations, requiresExplanation: true, description: "Öneriler" });
const registry = new ModuleRegistry(catalog);
registry.register(new SEKTaskAnalysisModule(), JSON.stringify(taaConfig)); // beceri/basamak tanımları
registry.register(new SEKGoalRecommendationModule(), JSON.stringify(greConfig)); // beceri grafiği
const kernel = new Kernel(registry);
const report = kernel.run(studentId("student-1"), teacherSessionEnvelopes);Beceri tanımları statik veri olduğundan kanal yerine modül config'i olarak taşınır ve kayıt anında doğrulanır (boş liste, döngülü graf, geçersiz eşikler kayıtta reddedilir).
npm install
npm test # kernel üzerinde uçtan uca gerçek pipeline testleri (5 test)MIT — bkz. LICENSE