Agentic Engineering על Google Sheets ו-clasp


Apps Script כמעבדה מצוינת למורים

למה דווקא Sheets?

הרבה מורים כבר עובדים עם Google Sheets: ציונים, נוכחות, משימות, קבוצות, קישורים, מעקב הגשות. לכן Apps Script הוא גשר טבעי בין “כלי משרדי” לבין engineering.

בסקירת האתר לא מצאתי עמוד קיים שמלמד Google Sheets / Apps Script / clasp, ולכן העמוד הזה נבנה כעמוד עבודה מעשי מהפקודות שסופקו כאן.

מה זה clasp?

clasp הוא כלי command-line רשמי של Google לפיתוח וניהול Apps Script מהמחשב המקומי. לפי תיעוד Google, הוא מאפשר לעבוד מקומית, להשתמש ב־Git, לנהל גרסאות ו־deployments, ולסדר קוד בתיקיות.

למה זה agentic?

Apps Script רגיל בדפדפן:

פותחים editor, כותבים קוד, מריצים ידנית.

Apps Script עם clasp ו־agent:

repo מקומי -> agent עורך קוד -> tests / lint -> git diff -> clasp push -> בדיקה ב-Sheets
flowchart LR
    A["Google Sheet"] --> B["Apps Script project"]
    B --> C["clasp pull"]
    C --> D["Local repo"]
    D --> E["Agent edits"]
    E --> F["Git diff"]
    F --> G["clasp push"]
    G --> H["Manual / automated check"]

התקנה מלאה למורים / תלמידים ב-Windows

סרטון הדרכה: שימוש ב-clasp

1. התקנת Node.js

winget install --id OpenJS.NodeJS.LTS -e --source winget

בדיקה:

node -v
npm -v

2. התקנת clasp

npm i -g @google/clasp

בדיקה:

clasp --version

אם clasp לא מזוהה אחרי ההתקנה, סגרו ופתחו מחדש terminal. לעיתים PATH מתעדכן רק ב־session חדש.

יצירת תיקיית עבודה

cd C:\Users\<user>\source\repos
mkdir SubmissionProcessor
cd SubmissionProcessor

בדוגמה המקורית הופיעו שני שמות: SubmissionProcessor ו־AppScTestGrader. בחרו שם אחד ושמרו עליו לאורך כל העבודה.

התחברות ל-Google

clasp login

הפקודה תפתח browser ותבקש הרשאה לחשבון Google שבו נמצא פרויקט Apps Script.

Clone לפרויקט Apps Script קיים

clasp clone 1ayD8nA5N9yz0QyS0JM30tCeSVjQz0KOaqU4v191DowZoTwJWiNcXvNgY

פלט צפוי:

└─ appsscript.json
└─ Code.js
└─ ClassroomIntegration.js
Cloned 3 files.

אחרי clone אמורים להיות בתיקייה:

SubmissionProcessor/
├── .clasp.json
├── appsscript.json
├── Code.js
└── ClassroomIntegration.js

פקודות עבודה כלליות

פקודה שימוש
clasp pull הורדה וסנכרון מ־Apps Script אל המחשב
clasp push העלאת השינויים המקומיים חזרה ל־Apps Script
clasp open פתיחת הפרויקט בעורך Apps Script בדפדפן
git add -A הוספת כל השינויים ל־Git staging
git commit -m "message" שמירת checkpoint מקומי
git push דחיפה ל־GitHub

סדר העבודה הבריא הוא: clasp pull, עבודה מקומית, git diff, commit, ואז clasp push. כך לא דורסים בטעות עבודה שנעשתה בדפדפן.

חיבור ל-GitHub CLI

מתקינים:

winget install --id GitHub.cli -e

מתחברים:

gh auth login

עכשיו אפשר לעבוד עם Git מקומי ו־GitHub מה־CLI.

יצירת repo פרטי ב-GitHub ודחיפה ראשונה

מתוך תיקיית הפרויקט:

git add -A
git commit -m "version capable of LLM feedback on all submissions"

יצירת repo מרוחק, הגדרת origin, ודחיפת הענף הנוכחי בפקודה אחת:

gh repo create 3strategy/AppScTalEng --private --source . --remote origin --push

החליפו את 3strategy/AppScTalEng בשם ה־GitHub organization/user וה־repo שלכם. לתרגול תלמידים מומלץ repo פרטי אם יש מידע רגיש או תוצרי בדיקה.

בהמשך העבודה:

git add -A
git commit -m "msg"
git push

או, אחרי שכבר הוספתם קבצים ל־staging:

git commit -m "msg" && git push

מבנה repo מומלץ

SubmissionProcessor/
├── AGENTS.md
├── .clasp.json
├── appsscript.json
├── Code.js
├── ClassroomIntegration.js
├── docs/
│   └── teacher-workflow.md
└── test-data/
    └── sample-grades.csv

AGENTS.md לפרויקט Sheets

# AGENTS.md

## Context
This repo contains Google Apps Script code managed with clasp.

## Rules
- Never hardcode student private data.
- Use sample data under `test-data/`.
- Before `clasp push`, show the diff and summarize changed functions.
- Prefer small pure helper functions that can be tested locally.

## Done when
- The script still opens the custom menu.
- The changed function has a small sample-input explanation.
- No real student data appears in the diff.

דוגמת משימה למורה

הפרויקט המקומי מחובר ל-Apps Script דרך clasp.
קרא את Code.js ואת ClassroomIntegration.js.
הוסף יכולת קטנה לעיבוד submissions.
לפני שינוי הרץ clasp pull.
אחרי שינוי הצג git diff.
אל תריץ clasp push לפני שסיכמת לי מה השתנה.

דוגמה ממוקדת יותר:

הוסף פונקציה שמכינה משוב LLM לכל submission.
הפונקציה תקבל נתוני submission ותייצר אובייקט feedback.
אל תקרא ל-API אמיתי עדיין.
כתוב פונקציית helper טהורה שאפשר לבדוק עם sample data.
בסוף תן לי פקודות clasp/git להמשך.

מה חשוב ללמד

נושא למה הוא חשוב
winget install OpenJS.NodeJS.LTS בלי Node אין npm ואין clasp
npm i -g @google/clasp התקנת כלי הסנכרון
clasp login הרשאת גישה לחשבון Google
clasp pull לפני עבודה לא לדרוס קוד שנערך בדפדפן
clasp push אחרי review לא לשלוח קוד לא בדוק
.clasp.json קישור ל־scriptId, לא לערבב פרויקטים
appsscript.json הרשאות, timezone, runtime
gh auth login חיבור נוח ליצירת repo ודחיפה
sample data להגן על פרטיות תלמידים

נקודות זהירות

  • לא להכניס שמות תלמידים או מזהים אמיתיים לפרומפטים.
  • לא להעלות .clasp.json אם מדיניות בית הספר לא מאפשרת חשיפת scriptId.
  • לא לתת ל־agent הרשאה חופשית למחוק deployments.
  • לא לדחוף בלי git diff.
  • להעדיף פונקציות קטנות שמקבלות ערכים ומחזירות ערכים.
  • לא לבצע clasp push בלי לוודא שאתם מחוברים לפרויקט הנכון.

מקורות