Skip to content

פיצ׳ר: שורת נשיאה בחישוב המאונך - #29

Draft
Swissystem7 wants to merge 1 commit into
masterfrom
ext/feature-code-20260915-175301-3d60
Draft

Swissystem7 wants to merge 1 commit into
masterfrom
ext/feature-code-20260915-175301-3d60

Conversation

@Swissystem7

@Swissystem7 Swissystem7 commented Sep 15, 2026

Copy link
Copy Markdown
Owner

פיצ׳ר: שורת נשיאה בחישוב המאונך

מה תוכל לעשות אחרי מיזוג: המורה פותחת תרגיל מאונך עם נשיאה והילד רואה את ה-1 במקום הנכון, בלי להסביר בעל פה

מקור: /home/aviran/specs/MelodyMath/vertical-carry/spec.json (פיצ׳ר F1)
בסיס: eee10e1 (origin/master, נקרא ברגע השיגור)
כותב: recovered

מה עבר בשערים

  • בדיקת הרגרסיה test/verticalCarry.test.js נכשלה על הבסיס ועברה אחרי השינוי
  • הסוויטה המלאה (node --test) עברה
  • אינווריאנט כיסוי: מספר הבדיקות העוברות לא ירד, ועם בדיקה חדשה הוא גדל
  • היגיינת diff: רק הנתיבים שהמפרט נקב, בלי תלות חדשה, בלי רשת, בלי אקראיות ובלי שעון
  • הבוחן על ה-Dell נתן EXAMINER_PASS

מה זה לא מוכיח

קובץ בדיקה אחד מוכיח אדום־ירוק על פונקציה אחת. one test_file can prove exactly one file red-green. With 1 implementation files, the others are proven only by the full suite and the Dell examiner. This is stated, not hidden.

טיוטה בלבד. לא מוזג, לא נדחף ל-master, לא force-push.

🤖 Generated with Claude Code

אימות

נבדק 16.09.2026 מול ה-diff עצמו, בהרצה — לא בקריאה. עודכן 06:40 עם ראיה חדה יותר לסעיף 3.

נבדק ונמצא נכון

  • הבדיקה נכשלת על הבסיס בכשל אמיתי. הרצתי את test/verticalCarry.test.js של הענף מול src/lib/vertical.js של origin/master: 3 בדיקות, 1 נכשלת, על assertion (vert-carry חסר) ולא על Cannot find module. זו ההוכחה החזקה.
  • מוטציה מאדימה אותה. החלפתי return ua + ub >= 10 ? 1 : 0; ב-return 0; על ענף ה-PR — 1 בדיקה נכשלת. הבדיקה שומרת על ההתנהגות, לא רק על קיומה.
  • על המימוש האמיתי: 3 עוברות, 0 נכשלות.
  • היגיינת diff: שני קבצים, שניהם נקובים במפרט. אין תלות, אין רשת, אין Math.random, אין שעון.

מה שלא מסתדר עם הגוף

  1. 2 מתוך 3 הבדיקות לא יכולות להיכשל. בדיקה 2 (21+34) ובדיקה 3 (חיסור) טוענות doesNotMatch(/vert-carry/). על הבסיס אין שורת נשיאה בכלל, אז שתיהן עוברות לפני ואחרי. הוכחה יש כאן, אבל בדיקה אחת עושה את כל העבודה. (LESSONS class 10)

  2. שינוי שהגוף לא מזכיר. תו הריפוד ב-padDigits: master מחזיק את הרצף   כטקסט (5c 75 30 30 61 30), הענף מחזיק את התו עצמו (c2 a0). רינדרתי את שני הענפים על אותו קלט — פלט זהה, אין רגרסיה. אבל בקוד כתוב עכשיו join(' ') כשהתו בלתי־נראה, והעורך הבא יחליף אותו ברווח רגיל וישבור את יישור הטורים בשקט.

3. ההבטחה למשתמש לא תתקיים אחרי מיזוג — וחסרות בדיוק שתי שורות

הגוף מבטיח "המורה פותחת תרגיל מאונך עם נשיאה והילד רואה את ה-1 במקום הנכון". זה לא יקרה, ולא בגלל הקוד הזה. שלושה ממצאים, כל אחד בנתיב ומספר שורה:

  • src/lib/banks.js:543,548 — הפונקציות VAV() ו-VSV() כן מייצרות פריטים { widget: 'vertical', vert: { a, b, op } }. הבנק מייצר תרגילים מאונכים.
  • index.html:256-268 — העמוד טוען 13 מודולים ב-<script src>, ביניהם numberLine.js (שורה 261) ו-bar44.js (שורה 262). vertical.js לא ברשימה בכלל.
  • index.html:322-328 — טבלת ההפעלה היא if(item.widget==='numberLine' …) else if(item.widget==='bar44' …) ונגמרת שם. אין ענף ל-'vertical'.

אימתתי גם מהכיוון השני, עם ביקורת: כלי שקורא את הייצוא של כל מודול ומחפש שימוש אמיתי מצא ש-numberLine.js בשימוש ב-8 קבצים ו-bar44.js ב-index.html — שני הווידג'טים שהעמוד כן מפעיל — ואילו src/lib/vertical.js בשימוש של test/vertical.test.js בלבד.

כלומר MelodyMath מייצרת שאלות מאונכות ולא מציגה אותן. שש טיוטות פתוחות נוגעות במודול הזה (#29, #28, #27, #24, #22, #15) וכולן חסומות מאחורי אותן שתי שורות:

<script src="src/lib/vertical.js"></script>
} else if(item.widget==='vertical' && item.vert && typeof bindVertical==='function'){
  host.classList.remove('hidden');
  bindVertical(host, item.vert);
}

החתימה תואמת: bindVertical(root, vert) מול item.vert שהבנק כבר מייצר.

זו לא סיבה לא למזג — הקוד נכון והוא תנאי מוקדם. זו סיבה לא לצפות לשינוי על המסך לפני שהשתיים האלה נוספו. שרשרת השערים מוכיחה פונקציה; היא לא יכולה להוכיח שהפונקציה מגיעה לילד.

מה שלא נבדק

  • האם ה-1 נוחת ויזואלית מעל ספרת העשרות. אין CSS ל-.vert-carry בשום מקום במאגר, ואין דפדפן בשרשרת. לא נבדק.
  • התנגשויות מול שאר הטיוטות הפתוחות. לא נבדק בסבב הזה.

טיוטה בלבד. לא מוזג, לא נדחף, לא הוצא מטיוטה.

submit_code on eee10e1; regression test base-fails/candidate-passes (assertion proof); full suite green locally; Dell review pending; no push.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant