Reported issues for edumints SCORM MCP
Pod holds 19 of 37 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to edumints SCORM MCP.
Most discussed
[agent:docs-i18n] Tüm-dil doküman senkronu (EN sha 448f0cb)
Maintainer görevi: yapılan işi kontrol et + 8 dildeki dokümanı EN kaynağına göre SOMUT güncelle.
Senkron dışı: README.tr.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.es.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.ru.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.zh-CN.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.az.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.kk.md(synced:e0cb4fc2568bdf0234512d68d2327123afefc407) README.k
Read the thread · 2026-06-07 · closed · external user · 2 comments
Açık kaynak ikon setleri: search_icons + icon_to_asset (vendor'lanmış indeks)
Boşluk (kod-doğrulamalı)
Görsel bulmak için bugün iki yol var ve ikisi de ikon/illüstrasyon için işe yaramıyor:
search_images— Openverse / Wikimedia üzerinde CC0/Public-Domain arar. Fotoğraf için iyi; "onay işareti", "uyarı üçgeni", "dişli" gibi arayüz ikonları için sonuçlar tutarsız (farklı stil, farklı çizgi kalınlığı, çoğu raster). Kurs boyunca tutarlı bir ikon dili kurmak imkânsız.svg_to_asset— ham SVG'yi asset'e çevirir, ama SVG'yi birinin yazması gerekir. İs
Read the thread · 2026-08-29 · open · 1 comment
matching / sorting: per-item images (image pairing & sequencing)
What's missing
matching and sorting currently work on text only — MatchPair and SortItem carry no asset field. There is no way to build an image-pairing or image-sequencing task (match the logo to the company, put the process photos in order), which is a standard interaction in every commercial authoring tool.
image_compare exists but is a non-scored content screen, so it does not cover this.
What to do
Do not add a new screen type. The repo deliberately prefers param
Read the thread · 2026-08-29 · open · 1 comment
labeled_diagram display-only callout modu — split-attention exhibit deseninin kalıcı çözümü
Bağlam — ölçümün gösterdiği desen
Faz 6a düzen/split-attention ölçüm raporu (docs/research/2026-07-30-layout-split-attention-measurement.md, private dev repo kemalyy/scorm-mcp) 39 görselli ekranı sınıfladı: 6'sı sınıf-b AYRIK (split). Bunların 3'ü aynı desen — "exhibit okuma-protokolü":
| Kurs | Ekran | Kanıt (rapordan) |
|---|---|---|
| spot-the-phish | c_email |
4 maddelik okuma protokolü ("gönderen satırı, ton, butonun gerçek hedefi, ek") e-posta mockup'ının ALTINDA düzyazıda; |
Read the thread · 2026-07-30 · closed · 1 comment
[MCP-2026-07-28] MCP Apps keşfi: kurs player'ını ui:// kaynağı olarak sunma
Bağlam — spec'te ne değişti
MCP Apps resmî extension oldu (io.modelcontextprotocol/ui, SEP-1865; https://modelcontextprotocol.io/extensions/apps/overview): ui:// şemalı, text/html;profile=mcp-app içerikli, host tarafında sandbox iframe'de render edilen UI kaynakları.
Bizdeki durum
Altyapı büyük ölçüde hazır: /preview+/demo tek-dosya, kendine-yeterli HTML üretiyor (server.py:360-380, asset'ler data-URI components/renderer.py:232-244); player LMS'siz çalışıyor (noop API shim `
Read the thread · 2026-07-28 · open · 1 comment
[MCP-2026-07-28] Özel HTTP rotalarının 401 yanıtlarına WWW-Authenticate başlığı
Bağlam — spec'te ne değişti
Authorization bölümü RS semantiğini sıkılaştırdı (https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization): korumalı kaynak 401'lerinde RFC 9728 metadata'ya işaret eden WWW-Authenticate beklenir. MCP endpoint'imizde bunu RemoteAuthProvider zaten yapıyor (auth/oauth.py:10-11,92-98).
Bizdeki durum
Özel Starlette rotalarındaki 401'ler çıplak JSON: server.py:1297, 1321, 1343, 1361, 1385 — WWW-Authenticate yok.
Kabul kriterleri
- 5
Read the thread · 2026-07-28 · closed · 1 comment
[MCP-2026-07-28] Liste araçlarına ttlMs/cacheScope cache metadata
Bağlam — spec'te ne değişti
SEP-2549: resultType:"complete" sonuçlarında ttlMs (ms, ≥0) + cacheScope (public/private) — server/discover, tools/list, prompts/list, resources/list, resources/templates/list, resources/read için zorunlu (https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/caching).
Bizdeki durum
Hiçbir sonuçta cache hint yok. Doğal adaylar: list_screen_types (statik _SCREEN_TYPE_DESC, server.py:1202-1233,1257-1267) ve `list_th
Read the thread · 2026-07-28 · closed · 1 comment
build_package: job_id döndükten sonra durum sorgulayan MCP aracı yok
Bağlam
Spec'ten bağımsız, MCP 2026-07-28 denetiminin bulduğu bugünkü ürün açığı. build_package/build_from_spec fast-path 4 sn'i (BUILD_SYNC_TIMEOUT_SEC) aşınca job_id+status dönüyor (server.py:1033-1035, :1148-1150) ama ajanın işi sorgulayabileceği bir MCP aracı yok — Packager.get() mevcut fakat expose edilmemiş (core/packager.py:91-92). Tek dolaylı yol: build_package'ı yeniden çağırmak (idempotent) veya HTTP /projects.
Kabul kriterleri
- Yeni `build_status(project_i
Read the thread · 2026-07-28 · closed · 1 comment
Most recent
hotspot: shape="poly" is accepted by the model but never positioned by the runtime
The bug
HotspotRegion.shape accepts three values — "rect", "circle", "poly" — but the runtime only positions two of them.
In components/templates.py, bindHotspot's place() scales region coordinates onto the rendered image:
if(sh==="rect"){ /* left/top/width/height from coords */ }
else if(sh==="circle"){ /* left/top/width/height + border-radius */ }
// no branch for "poly"
A poly region therefore never receives left/top/width/height. The button stays at i
Read the thread · 2026-08-29 · open · 0 comments
Lottie: respect prefers-reduced-motion + make it pausable (a11y limitation #6)
What's missing
docs/ACCESSIBILITY-CONFORMANCE.md §3, limitation #6:
Lottie animations ignore
prefers-reduced-motionand cannot be paused (2.2.2 / 2.3.3). All other animated surfaces in the player degrade under reduced motion; Lottie playback (including looping) does not.
Every other animated surface in the player already respects prefers-reduced-motion — Lottie is the single exception. That makes this a consistency fix, not new design work.
What to do
- Under `prefers
Read the thread · 2026-08-29 · open · 0 comments
drag_drop klavye / seçim alternatifi — a11y kısıt #3
Boşluk (kod-doğrulamalı)
docs/ACCESSIBILITY-CONFORMANCE.md §3 kısıt #3:
drag_dropis pointer-only. Mouse drag (HTML5 DnD) and a touch fallback exist; there is no keyboard or select-based alternative in this screen type (fails 2.1.1 and 2.5.7 Dragging Movements). The documented workaround is authoring the same task asmatching(select-based) —docs/GAME-A11Y.mdrequires this pattern for game mechanics, but the standalonedrag_dropscreen itself does not enforce or provide
Read the thread · 2026-08-29 · open · 0 comments
WebVTT altyazı hattı (
Boşluk (kod-doğrulamalı)
docs/ACCESSIBILITY-CONFORMANCE.md §3 kısıt #1:
No synchronized captions or transcripts for video (WCAG 1.2.2 fail for videos with audio).
_r_videoemits a<video controls>without any<track>element; there is no WebVTT pipeline.
Repo genelinde WebVTT / <track karşılığı yok. Mevcut hafifletmeler (statik caption figcaption'ı ve narration_text bloğu) zaman-senkron değil.
kısıt #2 de aynı hatta: yazar yalnız seslendirme asset'i verdiys
Read the thread · 2026-08-29 · open · 0 comments
Deneme politikası: limit, retry_wrong, lock, cooldown
Boşluk (kod-doğrulamalı)
Deneme sayısı, tekrar hakkı ve "geçemezse ne olacak" modellenmiyor. Tracking yalnız completion_rule, passing_score, score_scaling taşıyor.
Bugün bir öğrenci sınavı ya sınırsız tekrarlar ya hiç tekrarlayamaz — arada politika yok. Kurumsal uyum eğitimlerinde (deneme limiti + bekleme süresi) bu bir zorunluluk.
Öneri
class AttemptPolicy(BaseModel):
max: int | None = None # None = sınırsız (bugünkü davranış)
on_fail: Literal["retry_all",
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/143) · 2026-08-29 · open · 0 comments
### exploration: add input_kind="slider" (numeric / scale commitment)
## What's missing
`ExplorationScreen.input_kind` supports `text`, `choice` and `prediction`. There is no **numeric / scale** input — a learner cannot commit to "how many percent?", a Likert rating, or a slider estimate.
This matters because `exploration` exists precisely to capture a learner's own input and **replay it later** (`data-exploration-ref`), and numeric estimates are one of the most common commit-then-see patterns in inquiry-based teaching.
## What to do
Add a fourth `input_kind`:
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/141) · 2026-08-29 · open · 0 comments
### Etkileşimli video: zaman damgalı cue'lar (soru / not / dallanma)
## Boşluk (kod-doğrulamalı)
`VideoScreen` bugün yalnız `video_asset_id | video_url`, `caption`, `poster_asset_id`, `require_complete` taşıyor. Video **tamamen pasif**: zaman damgasına bağlı soru, duraklama noktası ve dallanma yok.
Bu, ticari araçların (Storyline, H5P Interactive Video) en çok kullanılan etkileşimi ve bizde karşılığı olmayan en yüksek değerli tek madde.
## Öneri
```python
class VideoCue(BaseModel):
at_sec: float
kind: Literal["question", "note", "branch"]
pause: b
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/139) · 2026-08-29 · open · 0 comments
### E2 — Paket uygunluk denetleyicisi: conflicts_with ve scoring_allowed_from ihlalleri
## Bağlam
E1 (#110) kanıt varlığını denetler; bu konu kursun BEYAN ETTİĞİ paketin sözleşmesine uygunluğunu denetler. Paket ön-madde şeması skill tarafında tanımlandı: kemalyy/edumints-scorm-skill#14 (evidence_phase, scoring_allowed_from, conflicts_with).
## Kapsam
Yeni denetimler:
- FAIL: conflicts_with ihlali — çakışan paket/kaplama kombinasyonu aynı kursta beyan edilmiş
- FAIL: scoring_allowed_from'dan ÖNCE gelen skorlanan ekran
- Paket fazları ile kurs akışındaki ekran tiplerinin eşleşme rap
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/111) · 2026-07-29 · closed · 0 comments
### E1 — lint_course genişletmesi: kanıt bağlama denetimleri
## Bağlam
Skill tarafındaki 2026-07-29 denetimi: 28 ekran tipinden 13'ü soru soruyor ama 0 yazarlı-gösterim primitifi var (video = dış varlık kabı, simulation = 1. adımdan pratik); concept-lesson.json saf iddia+quiz üretiyor; amiral gemisi örneğinde q1 cevabı yazarlı metinde öğretilmiyor. Mevcut lint görsel yoksulluğu ölçüyor ama kanıt yokluğunu ölçmüyor.
## Kapsam
lint_course'a yeni denetimler:
- FAIL: skorlanan soru, kurs-içi bir kanıt kaynağına bağlanmamış
- FAIL: beyan edilen paketin eviden
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/110) · 2026-07-29 · closed · 0 comments
### [MCP-2026-07-28] Tracking: 2026-07-28 spec uyum migrasyonu
MCP spesifikasyonunun 2026-07-28 revizyonuna ([changelog](https://modelcontextprotocol.io/specification/2026-07-28/changelog)) uyum migrasyonunun izleme issue'su. Denetim özeti: handshake/oturum bağımlılığımız sıfır, Roots/Sampling/Logging kullanımımız sıfır (**deprecation penceresi bizim için boş — ayrı milestone açılmadı**), OAuth katmanı büyük ölçüde uyumlu. Ana tetikleyici: **FastMCP 4 stable release** (şu an alpha; python-sdk v2 çıktı, v1.x bakım modunda; 2025-era protokol 12 ay destekli —
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/101) · 2026-07-28 · open · 0 comments
### [MCP-2026-07-28] CIMD değerlendirmesi: paylaşılan public Client ID yerine Client ID Metadata Document
## Bağlam — spec'te ne değişti
DCR (RFC 7591) deprecated → Client ID Metadata Documents (AS+client SHOULD; https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization/client-registration; deprecated registry: en erken kaldırma 2027-07-28+).
## Bizdeki durum
IdP'mizde (Logto) DCR yok; Claude connector'ı için portalda gömülü **paylaşılan public SPA Client ID** kullanıyoruz — CIMD bu geçici çözümün spec'teki resmî karşılığı olabilir: client kimliği URL'deki metadata dokümanından t
[Read the thread](https://github.com/kemalyy/edumints-scorm-mcp/issues/99) · 2026-07-28 · open · 0 comments
The remaining reports are on [the project's issue tracker](https://github.com/kemalyy/edumints-scorm-mcp/issues).