מדד דיוק החילוץ
Syncanix הופך את ה‑API שלכם ליכולות לסוכנים על ידי קריאת קוד המקור. זה עובד רק אם החילוץ מדויק — ולכן אנחנו מודדים אותו, מפרסמים את התוצאות ומקבעים בבדיקות כל מספר בעמוד הזה למערך ההערכה שבמאגר. אם מחלץ נסוג, הבילד נכשל לפני שהעמוד הזה יכול להגזים במשהו.
תוצאות עיקריות
אומת לאחרונה: 2026-06-11 · 9c09e59f2
מתודולוגיה
- אמת מידה שנגזרה ידנית
עבור כל מאגר מדורג אנחנו קוראים ידנית את הגדרות הנתיבים ומפרטים כל נקודת קצה אמיתית כצמד מתודה + נתיב. המחלץ נבחן מול הרשימה הזו: Recall הוא שיעור נקודות הקצה האמיתיות שנמצאו; Precision — שיעור נקודות הקצה שחולצו ואכן אמיתיות.
- התאמה מבנית
התאמה פירושה מתודת HTTP בתוספת הנתיב המורכב המלא — כולל קידומות שעוגנו. פרמטרים בנתיב מושווים לפי מבנה, לא לפי שם: :id ו‑{slug} באותו מקום שווים.
- ניתוח סטטי בלבד
הגילוי קורא קוד מקור; הוא לעולם לא מריץ את האפליקציה, לא בוחן את התעבורה ולא קורא לנקודות הקצה. כל מספר כאן הופק מאותו מסלול זיהוי וחילוץ ש‑npx syncanix init מריץ.
- נבדק ב‑CI ומקובע בבדיקות
חבילת הפיקסצ׳רים הדטרמיניסטית חוסמת את ה‑CI בכל שינוי מחלץ, והמספרים בעמוד הזה מקובעים לפלט המערך באמצעות בדיקות — רגרסיה מפילה את הבילד לפני שתוכל להישלח.
מאגרים ציבוריים אמיתיים, מדורגים
שתים עשרה מימושי ייחוס — רובם אפליקציות RealWorld — עם אמת מידה שנגזרה ידנית. המאגרים ציבוריים: אתם יכולים לקרוא את אותם קובצי נתיבים שקראנו.
| פריימוורק | מאגר | נקודות קצה אמיתיות | היזכרות (Recall) | דיוק (Precision) |
|---|---|---|---|---|
| Express | gothinkster/node-express-realworld-example-app | 20 | 100% | 100% |
| NestJS | lujakob/nestjs-realworld-example-app | 21 | 100% | 100% |
| FastAPI | nsidnev/fastapi-realworld-example-app | 19 | 100% | 100% |
| Flask | gothinkster/flask-realworld-example-app | 19 | 100% | 100% |
| Django | gothinkster/django-realworld-example-app | 23 | 100% | 100% |
| Rails | gothinkster/rails-realworld-example-app | 20 | 100% | 100% |
| Laravel | f1amy/laravel-realworld-example-app | 19 | 100% | 100% |
| Gin | gothinkster/golang-gin-realworld-example-app | 20 | 100% | 100% |
| Spring Boot | gothinkster/spring-boot-realworld-example-app | 19 | 100% | 100% |
| Actix | snamiki1212/realworld-v1-rust-actix-web-diesel | 20 | 100% | 100% |
| ASP.NET Core | gothinkster/aspnetcore-realworld-example-app | 19 | 100% | 100% |
| GraphQL | howtographql/graphql-js | 8 | 100% | 100% |
חבילת פיקסצ׳רים דטרמיניסטית
פרויקטי פיקסצ׳ר שבמאגר לכל פריימוורק, מדורגים ב‑F1 מול ספים פר‑פריימוורק. זו החבילה שחוסמת את ה‑CI בכל שינוי מחלץ.
| פריימוורק | פיקסצ׳רים | F1 | סף החסימה |
|---|---|---|---|
| nestjs | 5 | 1.000 | 0.92 |
| express | 3 | 1.000 | 0.85 |
| fastapi | 8 | 1.000 | 0.92 |
| nextjs | 8 | 1.000 | 0.92 |
| graphql | 5 | 1.000 | 1.00 |
| grpc | 1 | 1.000 | 0.92 |
| trpc | 2 | 1.000 | 0.92 |
| websocket | 2 | 1.000 | 0.85 |
| springboot | 1 | 1.000 | 0.85 |
| phoenix | 1 | 1.000 | 0.85 |
| gin | 2 | 1.000 | 0.85 |
| actix | 1 | 1.000 | 0.85 |
| axum | 2 | 1.000 | 0.85 |
| laravel | 1 | 1.000 | 0.85 |
| aspnet | 1 | 1.000 | 0.85 |
| vapor | 1 | 1.000 | 0.75 |
| play | 1 | 1.000 | 0.75 |
| compojure | 1 | 1.000 | 0.75 |
| dream | 1 | 1.000 | 0.75 |
| servant | 1 | 1.000 | 0.75 |
| cowboy | 1 | 1.000 | 0.75 |
| plumber | 1 | 1.000 | 0.75 |
| lapis | 1 | 1.000 | 0.75 |
פריימוורקים שמכוסים על ידי המאגרים האמיתיים המדורגים במקום פיקסצ׳רים סינתטיים: django, flask, rails
פיקסצ׳רים אמיתיים מוטמעים
מאגרים אמיתיים שלמים שהוטמעו בקומיט מקובע ונבחנים מול אורקל שנגזר מהמפרט או תויג ידנית. המדד המבוקר הוא F1 מבני (מתודה + נתיב).
| פריימוורק | פיקסצ׳ר | F1 מבני | אמת מידה |
|---|---|---|---|
| FastAPI | fastapi-realworld@029eb77 | 1.000 | openapi |
| Hono | hono-open-api-starter@0d5f3bf | 1.000 | hand-labelled |
| Symfony | symfony-realworld@5ad39de | 1.000 | openapi |
מה המספרים האלה לא טוענים
- הסט המדורג הוא אפליקציות ייחוס נבחרות, לא מדגם אקראי של כל בסיסי הקוד. המאגר שלכם עשוי להיות שונה — ולכן ה‑CLI כותב קטלוג שניתן לסקירה במקום לבקש אמון.
- המדד הזה מודד חילוץ מבני (מתודות ונתיבים). איכות תיאורי היכולות שנכתבים על ידי ה‑LLM מוערכת בנפרד ואינה חלק מהמספרים האלה.
- תיוג דרישות אימות שמרני בכוונה בחלק מהמחלצים ועשוי לחלוק על אורקל שנגזר מהמפרט בנקודות קצה ציבוריות; המדד המבוקר הוא דיוק מבני.
אמתו בעצמכם
הבדיקה המשמעותית ביותר היא בסיס הקוד שלכם: הריצו את ה‑CLI לגילוי וסקרו את הקטלוג שהוא כותב — כל יכולת שחולצה מציינת את מיקומה בקוד, כך שאפשר להשוות את הקטלוג לקובצי הנתיבים שלכם בדקות. למען השקיפות, אלה פקודות המערך הפנימיות שמאחורי המספרים למעלה (המחלצים זמינים במקור; קורפוס ההערכה אינו ציבורי):
pnpm --filter syncanix test:f1
pnpm --filter syncanix scan:realתמיכה בפ ריימוורקים מפרט כל פריימוורק ושפה שה‑CLI קורא — ומה לעשות אם שלכם לא מכוסה.