SCRIP-METRIC-004: validate derived source units before repinning public gallery
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Read scriptorium/full_work_gallery.py, the current metric schema, and the pinned Beketova source JSON on fresh master; check whether #278 has already implemented and validated this behavior before starting. Add repin-aware negative tests showing that swapped unit values fail even when source bytes and their Git blob hash change, while preserving the ten-row declaration and Grin diagnostic rows. Run the full canonical tests and installed gallery CI; done means those pass and the stated chart, source identity, M2, and translation boundaries remain intact.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Latent contract mismatch in pinned full-work gallery
In the merged scriptorium/full_work_gallery.py (source blob e3d94d8c8290f8954325a28206aeb416a770a13a) the renderer declares display units for ten supported metrics but does not independently verify the unit field in a newly approved Beketova derived JSON. The two current pinned Git blobs are correct: local audit of source units was 10/10. The issue is a future-repin integrity regression: changing source data plus its reviewed hash could leave unit: ratio displayed as %.
Existing staged handoff, not yet published
/mnt/data/Scriptorium-Gallery-Unit-Contract-20261021.zip (local archive provided in chat) includes apply_unit_contract.py and 3 repin-aware negative tests. It was prepared for the old #276 head 61a32b6...; now #276 is merged. Its original GitHub update_file was denied, and the handoff's 3/3 smoke tests do not substitute for canonical CI. Do not replay the denied mutation unchanged or switch endpoints to circumvent it.
Acceptance
- Revalidate against fresh master, existing source JSON and current metric schema; preserve the same ten-row declaration (no second registry).
- Match Beketova
unitto the canonical declared source unit (percentmaps to display%,wordsto displaytypesfor unique forms,occurrences/1000_wordsto the display rate). Grin's diagnostic rows do not have this field and must not be assigned invented source units. - Negative tests with deliberately repinned source JSON detect swapped percentage/rate/count units even when the new Git blob hash matches changed bytes.
- Keep full-work chart/chart units, pinned source identity, M2 0/5 and translation boundaries. Full canonical tests and installed gallery CI must pass before merge.
- Scope only a later independently selected unit; no duplicate issue if #278 has already implemented and validated this behavior.
- Langage dominant
- Python
- Étoiles
- 4
- Forks
- 0
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 36
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de drevendev/Scriptorium
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
drevendev/Scriptorium#285 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
drevendev/Scriptorium#284 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
drevendev/Scriptorium#283 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
drevendev/Scriptorium#282 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
drevendev/Scriptorium#281 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de drevendev/Scriptorium
Issues similaires
-
Project submission:Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
slavakurilyak/awesome-ai-agents#845 ·
Les mainteneurs répondent en général sous 1 jour
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertedifficulty:2 enhancement good first issue
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
MakazhanAlpamys/Soup#2178 ·
Les mainteneurs répondent en général sous 1 jour
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
scverse/rapids-singlecell#854 ·
Les mainteneurs répondent en général sous 1 jour
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPeut-être pris @ninglinLiu l’a pris aujourd’hui. Ouvertearea:frontend backend:slang bug direction:input
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 13 jours