מדריך קלוד קוד בעברית

תיעוד 33

Claude Code עם GitLab CI/CD

למדו כיצד לשלב את Claude Code בתהליך הפיתוח שלכם באמצעות GitLab CI/CD

מידע: Claude Code עבור GitLab CI/CD נמצא כעת בבטא. תכונות ויכולות עשויות להשתנות ככל שנמשיך לשפר את החוויה.

אינטגרציה זו מתוחזקת על ידי GitLab. לקבלת תמיכה, ראו את ה-issue הבא ב-GitLab.

הערה: אינטגרציה זו בנויה על גבי Claude Code CLI and Agent SDK, ומאפשרת שימוש תכנותי ב-Claude בתוך משימות ה-CI/CD שלכם ובתהליכי אוטומציה מותאמים אישית.

#למה להשתמש ב-Claude Code עם GitLab?

  • יצירת MR מיידית: תארו מה אתם צריכים, ו-Claude יציע MR מלא עם שינויים והסבר.
  • מימוש אוטומטי: הפכו issues לקוד עובד באמצעות פקודה אחת או אזכור (mention).
  • מודעות לפרויקט: Claude פועל לפי ההנחיות בקובץ CLAUDE.md ודפוסי הקוד הקיימים שלכם.
  • הגדרה פשוטה: הוסיפו job אחד לקובץ .gitlab-ci.yml ומשתנה CI/CD מוסתר (masked).
  • מוכן לארגונים: בחרו ב-Claude API, ב-Amazon Bedrock או ב-Google Cloud's Agent Platform כדי לענות על צורכי רכש ומיקום נתונים (data residency).
  • מאובטח כברירת מחדל: רץ ב-runners של GitLab שלכם, בכפוף להגנות הענפים ולאישורים שלכם.

#כיצד זה עובד

Claude Code משתמש ב-GitLab CI/CD כדי להריץ משימות בינה מלאכותית ב-jobs מבודדים ולבצע commit של התוצאות בחזרה דרך MRs:

  1. תזמור מונחה אירועים (Event-driven orchestration): GitLab מאזין לטריגרים שבחרתם (לדוגמה, תגובה שמזכירה את @claude ב-issue, ב-MR או בשרשור סקירה). ה-job אוסף הקשר מתוך השרשור ומהמאגר (repository), בונה פרומפטים מהקלט הזה, ומריץ את Claude Code.

  2. הפשטת ספקים (Provider abstraction): השתמשו בספק המתאים לסביבה שלכם:

    • Claude API (מודל SaaS)
    • Amazon Bedrock (גישה מבוססת IAM, אפשרויות חוצות אזורים)
    • Google Cloud's Agent Platform (טבעי ל-GCP, באמצעות Workload Identity Federation)
  3. הרצה בסביבה מבודדת (Sandboxed execution): כל אינטראקציה רצה בקונטיינר עם כללי רשת ומערכת קבצים קפדניים. Claude Code אוכף הרשאות התחומות לסביבת העבודה כדי להגביל פעולות כתיבה. כל שינוי זורם דרך MR כך שהסוקרים רואים את השינויים (diff) ואישורי המיזוג עדיין חלים.

בחרו נקודות קצה אזוריות (regional endpoints) כדי להפחית זמני השהיה ולעמוד בדרישות ריבונות נתונים (data sovereignty), תוך שימוש בהסכמי הענן הקיימים שלכם.

#מה Claude יכול לעשות?

בתוך GitLab pipeline, ה-Claude Code יכול:

  • ליצור ולעדכן MRs מתוך תיאורי issues או תגובות.
  • לנתח נסיגות בביצועים (performance regressions) ולהציע אופטימיזציות.
  • לממש תכונות ישירות בענף, ולאחר מכן לפתוח MR.
  • לתקן באגים ונסיגות שזוהו על ידי בדיקות או תגובות.
  • להגיב לתגובות המשך כדי לבצע איטרציות על השינויים שהתבקשו.

#הגדרה

#הגדרה מהירה

הדרך המהירה ביותר להתחיל היא להוסיף job מינימלי לקובץ .gitlab-ci.yml שלכם ולהגדיר את מפתח ה-API שלכם כמשתנה מוסתר (masked).

  1. הוספת משתנה CI/CD מוסתר (masked)

    • עברו אל SettingsCI/CDVariables
    • הוסיפו את ANTHROPIC_API_KEY (מוסתר כ-masked, ומוגן כ-protected לפי הצורך)
  2. הוספת job של Claude לקובץ .gitlab-ci.yml

stages:
  - ai

claude:
  stage: ai
  image: node:24-alpine3.21
  
# Adjust rules to fit how you want to trigger the job:
  
# - manual runs
  
# - merge request events
  
# - web/API triggers when a comment contains '@claude'
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  variables:
    GIT_STRATEGY: fetch
  before_script:
    - apk update
    - apk add --no-cache git curl bash
    - curl -fsSL https://claude.ai/install.sh | bash
    
# The installer places claude in ~/.local/bin, which isn't on PATH in this image
    - export PATH="$HOME/.local/bin:$PATH"
  script:
    
# Optional: start a GitLab MCP server if your setup provides one
    - /bin/gitlab-mcp-server || true
    
# Use AI_FLOW_* variables when invoking via web/API triggers with context payloads
    - echo "$AI_FLOW_INPUT for $AI_FLOW_CONTEXT on $AI_FLOW_EVENT"
    - >
      claude
      -p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"
      --debug

לאחר הוספת ה-job ומשתנה ה-ANTHROPIC_API_KEY שלכם, בצעו בדיקה על ידי הרצת ה-job באופן ידני מתוך CI/CDPipelines, או הפעילו אותו מתוך MR כדי לאפשר ל-Claude להציע עדכונים בענף ולפתוח MR במידת הצורך.

הערה: כדי להריץ על גבי Amazon Bedrock או Google Cloud's Agent Platform במקום ב-Claude API, עיינו בסעיף שימוש עם Amazon Bedrock ו-Google Cloud להלן עבור הגדרות אימות וסביבה.

#הגדרה ידנית (מומלץ לסביבת ייצור)

אם אתם מעדיפים הגדרה מבוקרת יותר או זקוקים לספקי ארגונים (enterprise providers):

  1. הגדרת גישה לספק:

    • Claude API: צרו ושמרו את ANTHROPIC_API_KEY כמשתנה CI/CD מוסתר (masked).
    • Amazon Bedrock: הגדירו GitLabAWS OIDC וצרו תפקיד IAM role עבור Amazon Bedrock.
    • Google Cloud's Agent Platform: הגדירו Workload Identity Federation for GitLabGCP.
  2. הוספת פרטי גישה של הפרויקט עבור פעולות ב-GitLab API:

    • השתמשו ב-CI_JOB_TOKEN כברירת מחדל, או צרו Project Access Token עם הרשאת (scope) api.
    • שמרו אותו כ-GITLAB_ACCESS_TOKEN (מוסתר כ-masked) אם אתם משתמשים ב-PAT.
  3. הוספת job של Claude לקובץ .gitlab-ci.yml: השתמשו ב-job מתוך הגדרה מהירה עבור Claude API, או ב-job ייעודי לספק מתוך דוגמאות הגדרה.

  4. (אופציונלי) הפעלת טריגרים מונחי אזכור (mentions):

    • הוסיפו webhook של הפרויקט עבור "Comments (notes)" למאזין האירועים שלכם (אם אתם משתמשים באחד כזה).
    • הגדירו שמאזין האירועים יקרא ל-API להפעלת ה-pipeline עם משתנים כגון AI_FLOW_INPUT ו-AI_FLOW_CONTEXT כאשר תגובה מכילה את @claude.

#דוגמאות לתרחישי שימוש

#הפיכת issues ל-MRs

בתגובה על issue:

@claude implement this feature based on the issue description

Claude מנתח את ה-issue ואת בסיס הקוד, כותב שינויים בענף, ופותח MR לבדיקה.

#קבלת עזרה במימוש

בדיון בתוך MR:

@claude suggest a concrete approach to cache the results of this API call

Claude מציע שינויים, מוסיף קוד עם שמירה במטמון (caching) מתאימה, ומעדכן את ה-MR.

#תיקון באגים במהירות

בתגובה על issue או MR:

@claude fix the TypeError in the user dashboard component

Claude מאתר את הבאג, מיישם תיקון, ומעדכן את הענף או פותח MR חדש.

#שימוש עם Amazon Bedrock ו-Google Cloud

עבור סביבות ארגוניות, באפשרותכם להריץ את Claude Code באופן מלא על תשתית הענן שלכם עם אותה חוויית פיתוח.

#Amazon Bedrock

#דרישות מקדימות

לפני הגדרת Claude Code עם Amazon Bedrock, אתם זקוקים ל:

  1. חשבון AWS עם גישה ב-Amazon Bedrock למודלי Claude הרצויים.
  2. GitLab מוגדר כספק זהויות OIDC בתוך AWS IAM.
  3. תפקיד IAM role עם הרשאות ל-Amazon Bedrock ומדיניות אמון (trust policy) שמוגבלת לפרויקט ול-refs של GitLab שלכם.
  4. משתני GitLab CI/CD עבור קבלת התפקיד (role assumption):
    • AWS_ROLE_TO_ASSUME (ה-ARN של התפקיד)
    • AWS_REGION (האזור של Amazon Bedrock)

#הוראות הגדרה

הגדירו את AWS כך שיאפשר למשימות GitLab CI לקבל תפקיד IAM role דרך OIDC (ללא מפתחות סטטיים).

הגדרה נדרשת:

  1. הפעילו את Amazon Bedrock ובקשו גישה למודלי Claude שבחרתם.
  2. צרו ספק IAM OIDC עבור GitLab אם אינו קיים עדיין.
  3. צרו תפקיד IAM role שנותן אמון בספק ה-OIDC של GitLab, מוגבל לפרויקט שלכם ול-refs מוגנים.
  4. צרפו הרשאות מצומצמות ככל האפשר (least privilege) עבור ממשקי Amazon Bedrock invoke APIs.

השתמשו ב-דוגמת job עבור Amazon Bedrock כדי להחליף את טוקן ה-OIDC של המשימה באישורי AWS זמניים בזמן ריצה.

#Google Cloud's Agent Platform

#דרישות מקדימות

לפני הגדרת Claude Code עם Google Cloud's Agent Platform, אתם זקוקים ל:

  1. פרויקט Google Cloud הכולל:
    • הפעלת ה-API של Google Cloud's Agent Platform.
    • הגדרת Workload Identity Federation כך שתיתן אמון ב-GitLab OIDC.
  2. חשבון שירות (service account) ייעודי עם התפקידים הנדרשים בלבד עבור Google Cloud's Agent Platform.
  3. משתני GitLab CI/CD:
    • GCP_WORKLOAD_IDENTITY_PROVIDER (שם משאב הספק ללא הקידומת //iam.googleapis.com/, כגון projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider)
    • GCP_SERVICE_ACCOUNT (כתובת האימייל של חשבון השירות)
    • GCP_PROJECT_ID (מזהה הפרויקט ב-Google Cloud)

#הוראות הגדרה

הגדירו את Google Cloud כדי לאפשר למשימות GitLab CI להתחזות (impersonate) לחשבון שירות באמצעות Workload Identity Federation.

הגדרה נדרשת:

  1. הפעילו את ה-APIs הבאים: IAM Credentials API, STS API, ו-Google Cloud's Agent Platform API.
  2. צרו Workload Identity Pool וספק עבור GitLab OIDC.
  3. צרו חשבון שירות ייעודי עם תפקידי Google Cloud's Agent Platform.
  4. העניקו לישות (principal) של ה-WIF הרשאה להתחזות לחשבון השירות.

השתמשו ב-דוגמת job עבור Agent Platform כדי לבצע אימות ללא שמירת מפתחות.

#דוגמאות הגדרה

להלן מקטעי קוד מוכנים לשימוש שתוכלו להתאים ל-pipeline שלכם.

#דוגמת job עבור Amazon Bedrock (OIDC)

דרישות מקדימות:

  • Amazon Bedrock מופעל עם גישה למודל או למודלי Claude שבחרתם
  • GitLab OIDC מוגדר ב-AWS עם תפקיד שנותן אמון בפרויקט וב-refs של GitLab שלכם
  • תפקיד IAM role עם הרשאות ל-Amazon Bedrock (מומלץ לפי עקרון ההרשאה המינימלית, least privilege)

משתני CI/CD נדרשים:

  • AWS_ROLE_TO_ASSUME: ה-ARN של תפקיד ה-IAM עבור גישה ל-Amazon Bedrock
  • AWS_REGION: האזור של Amazon Bedrock (לדוגמה, us-west-2)

GitLab מנפיק את טוקן ה-OIDC של ה-job מתוך בלוק ה-id_tokens: וחושף אותו כ-GITLAB_OIDC_TOKEN. הגדירו את aud לערך ה-audience שהגדרתם בספק זהויות ה-IAM OIDC ב-AWS, לדוגמה כתובת ה-URL של מופע ה-GitLab שלכם.

stages:
  - ai

claude-bedrock:
  stage: ai
  image: node:24-alpine3.21
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
  id_tokens:
    GITLAB_OIDC_TOKEN:
      aud: https://gitlab.example.com
  before_script:
    - apk add --no-cache bash curl jq git aws-cli
    - curl -fsSL https://claude.ai/install.sh | bash
    
# The installer places claude in ~/.local/bin, which isn't on PATH in this image
    - export PATH="$HOME/.local/bin:$PATH"
    
# Exchange the job's OIDC token for AWS credentials
    - export AWS_WEB_IDENTITY_TOKEN_FILE="/tmp/oidc_token"
    - printf "%s" "$GITLAB_OIDC_TOKEN" > "$AWS_WEB_IDENTITY_TOKEN_FILE"
    - >
      aws sts assume-role-with-web-identity
      --role-arn "$AWS_ROLE_TO_ASSUME"
      --role-session-name "gitlab-claude-$(date +%s)"
      --web-identity-token "file://$AWS_WEB_IDENTITY_TOKEN_FILE"
      --duration-seconds 3600 > /tmp/aws_creds.json
    - export AWS_ACCESS_KEY_ID="$(jq -r .Credentials.AccessKeyId /tmp/aws_creds.json)"
    - export AWS_SECRET_ACCESS_KEY="$(jq -r .Credentials.SecretAccessKey /tmp/aws_creds.json)"
    - export AWS_SESSION_TOKEN="$(jq -r .Credentials.SessionToken /tmp/aws_creds.json)"
  script:
    - /bin/gitlab-mcp-server || true
    - >
      claude
      -p "${AI_FLOW_INPUT:-'Implement the requested changes and open an MR'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"
      --debug
  variables:
    AWS_REGION: "us-west-2"
    CLAUDE_CODE_USE_BEDROCK: "1"

הערה: מזהי מודלים (Model IDs) עבור Amazon Bedrock כוללים קידומות ספציפיות לאזור (לדוגמה, us.anthropic.claude-sonnet-4-6). העבירו את המודל הרצוי דרך הגדרת ה-job או הפרומפט אם תהליך העבודה שלכם תומך בכך.

#דוגמת job עבור Agent Platform (Workload Identity Federation)

דרישות מקדימות:

  • ה-API של Google Cloud's Agent Platform מופעל בפרויקט ה-GCP שלכם
  • Workload Identity Federation מוגדר לתת אמון ב-GitLab OIDC
  • חשבון שירות בעל הרשאות ל-Google Cloud's Agent Platform

משתני CI/CD נדרשים:

  • GCP_WORKLOAD_IDENTITY_PROVIDER: שם משאב הספק ללא הקידומת //iam.googleapis.com/, כגון projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider
  • GCP_SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות
  • GCP_PROJECT_ID: מזהה הפרויקט ב-Google Cloud
  • CLOUD_ML_REGION: האזור של Google Cloud's Agent Platform (לדוגמה, us-east5)

GitLab מנפיק את טוקן ה-OIDC של ה-job מתוך בלוק ה-id_tokens: וחושף אותו כ-GITLAB_OIDC_TOKEN. הגדירו את aud לערך ה-audience שהגדרתם בספק של ה-Workload Identity Pool, לדוגמה כתובת ה-URL של מופע ה-GitLab שלכם. ה-job כותב את הטוקן לקובץ, והערך credential_source בהגדרת האישורים מורה לספריות האימות של Google לקרוא אותו משם. הגדרת GOOGLE_APPLICATION_CREDENTIALS לקובץ תצורת האישורים הופכת אותו לזמין עבור Claude Code דרך Application Default Credentials.

stages:
  - ai

claude-vertex:
  stage: ai
  image: gcr.io/google.com/cloudsdktool/google-cloud-cli:slim
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
  id_tokens:
    GITLAB_OIDC_TOKEN:
      aud: https://gitlab.example.com
  before_script:
    - apt-get update && apt-get install -y git && apt-get clean
    - curl -fsSL https://claude.ai/install.sh | bash
    
# The installer places claude in ~/.local/bin, which isn't on PATH in this image
    - export PATH="$HOME/.local/bin:$PATH"
    
# Write the job's OIDC token where credential_source expects it
    - printf "%s" "$GITLAB_OIDC_TOKEN" > /tmp/oidc_token
    
# Write the WIF credential configuration to a file (no downloaded keys)
    - |
      cat > /tmp/cred.json <<EOF
      {
        "type": "external_account",
        "audience": "//iam.googleapis.com/${GCP_WORKLOAD_IDENTITY_PROVIDER}",
        "subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
        "token_url": "https://sts.googleapis.com/v1/token",
        "credential_source": {
          "file": "/tmp/oidc_token"
        },
        "service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${GCP_SERVICE_ACCOUNT}:generateAccessToken"
      }
      EOF
    
# Expose the credentials to Claude Code via Application Default Credentials
    - export GOOGLE_APPLICATION_CREDENTIALS=/tmp/cred.json
    
# Authenticate the gcloud CLI with the same credential configuration
    - gcloud auth login --cred-file=/tmp/cred.json
    - gcloud config set project "$GCP_PROJECT_ID"
  script:
    - /bin/gitlab-mcp-server || true
    - >
      CLOUD_ML_REGION="${CLOUD_ML_REGION:-us-east5}"
      claude
      -p "${AI_FLOW_INPUT:-'Review and update code as requested'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"
      --debug
  variables:
    CLOUD_ML_REGION: "us-east5"
    CLAUDE_CODE_USE_VERTEX: "1"
    ANTHROPIC_VERTEX_PROJECT_ID: "$GCP_PROJECT_ID"

הערה: בעזרת Workload Identity Federation, אינכם צריכים לשמור מפתחות של חשבונות שירות. השתמשו בתנאי אמון ייעודיים למאגר ובחשבונות שירות בעלי הרשאות מינימליות (least privilege).

#שיטות מומלצות

#הגדרת CLAUDE.md

צרו קובץ CLAUDE.md בשורש המאגר כדי להגדיר תקני קידוד, קריטריונים לסקירת קוד, וכללים ייחודיים לפרויקט. Claude קורא קובץ זה במהלך הריצות ופועל לפי המוסכמות שלכם בעת הצעת שינויים.

#שיקולי אבטחה

לעולם אל תבצעו commit של מפתחות API או פרטי אימות ענן למאגר שלכם. השתמשו תמיד במשתני GitLab CI/CD:

  • הוסיפו את ANTHROPIC_API_KEY כמשתנה מוסתר (masked), והגנו עליו (protected) במידת הצורך.
  • השתמשו ב-OIDC ייעודי של הספק במידת האפשר (ללא מפתחות ארוכי טווח).
  • הגבילו הרשאות של jobs ותעבורת רשת יוצאת (network egress).
  • סקרו את ה-MRs של Claude בדיוק כמו של כל תורם קוד אחר.

#מיטוב ביצועים

  • שמרו על קובץ CLAUDE.md ממוקד ותמציתי.
  • ספקו תיאורים ברורים של ה-issue או ה-MR כדי לצמצם סבבי איטרציות.
  • בצעו שמירה במטמון (cache) להתקנות npm וחבילות ב-runners במידת האפשר.

#עלויות CI

בעת שימוש ב-Claude Code עם GitLab CI/CD, היו מודעים לעלויות הנלוות:

  • זמן GitLab Runner:

    • Claude רץ ב-runners של GitLab שלכם וצורך דקות חישוב (compute minutes).
    • עיינו בפרטי החיוב של ה-runners בתוכנית ה-GitLab שלכם לקבלת פרטים נוספים.
  • עלויות API:

    • כל אינטראקציה עם Claude צורכת טוקנים בהתאם לגודל הפרומפט והתגובה.
    • השימוש בטוקנים משתנה לפי מורכבות המשימה וגודל בסיס הקוד.
    • עיינו ב-תמחור של Anthropic לקבלת פרטים נוספים.
  • טיפים למיטוב עלויות:

    • השתמשו בפקודות @claude ספציפיות כדי לצמצם סבבי שיחה מיותרים.
    • הגדירו ערכים מתאימים עבור --max-turns ועבור מילת המפתח timeout של ה-job.
    • הגבילו מקביליות (concurrency) כדי לשלוט בהרצות מקבילות.

#פתרון בעיות

#Claude אינו מגיב לפקודות @claude

  • ודאו שה-pipeline שלכם מופעל (באופן ידני, באירוע MR, או דרך מאזין אירועי הערות/webhook).
  • ודאו שמשתנה ANTHROPIC_API_KEY או משתני ספק הענן שלכם קיימים.
  • בדקו שהתגובה אכן מכילה @claude (ולא /claude) ושמנגנון טריגר האזכור מוגדר.

#ה-job אינו יכול לכתוב תגובות או לפתוח MRs

  • ודאו של-CI_JOB_TOKEN יש הרשאות מספיקות לפרויקט, או השתמשו ב-Project Access Token עם הרשאת (scope) api.
  • בדקו שהכלי mcp__gitlab מופעל בתוך --allowedTools.
  • ודאו שה-job רץ בהקשר של ה-MR או שיש לו מספיק הקשר דרך משתני AI_FLOW_*.

#שגיאות אימות

  • עבור Claude API: ודאו ש-ANTHROPIC_API_KEY תקין ולא פג תוקפו.
  • עבור Amazon Bedrock או Google Cloud's Agent Platform: ודאו את תצורת OIDC/WIF, התחזות לתפקיד (role impersonation) ושמות הסודות, וודאו זמינות של האזור והמודל.

#הגדרות מתקדמות

#פרמטרים ומשתנים נפוצים

שלטו בהרצות של Claude Code בתוך ה-jobs שלכם באמצעות דגלי CLI, מילות מפתח של GitLab, ומשתנים אלה:

  • -p: אספקת הוראות ישירות בשורת הפקודה, לדוגמה claude -p "Review this MR".
  • --max-turns: הגבלת מספר איטרציות הלוך ושוב.
  • timeout: הגבלת זמן הריצה הכולל של ה-job באמצעות מילת המפתח ברמת ה-job של GitLab בשם timeout, לדוגמה timeout: 30m.
  • ANTHROPIC_API_KEY: נדרש עבור Claude API (אינו בשימוש עבור Amazon Bedrock או Google Cloud's Agent Platform).
  • סביבה ספציפית לספק: AWS_REGION, משתני פרויקט או אזור עבור Google Cloud's Agent Platform.

הערה: הדגלים והפרמטרים המדויקים עשויים להשתנות לפי גרסת @anthropic-ai/claude-code. הריצו claude --help ב-job שלכם כדי לראות את האפשרויות הנתמכות.

#התאמה אישית של התנהגות Claude

באפשרותכם להנחות את Claude בשתי דרכים עיקריות:

  1. CLAUDE.md: הגדירו תקני קידוד, דרישות אבטחה ומוסכמות פרויקט. Claude קורא קובץ זה במהלך הריצות ופועל לפי הכללים שלכם.
  2. פרומפטים מותאמים אישית: העבירו הוראות ייעודיות למשימה דרך -p בתוך ה-job. השתמשו בפרומפטים שונים עבור jobs שונים (לדוגמה: סקירה, מימוש, שכתוב קוד).