4 שלב בניית יכולות

Custom Instructions — הקבצים שמשנים הכל

איך ליצור מערכת הנחיות מדורגת שהופכת את Copilot ממתכנת גנרי לחבר צוות שמכיר כל שורת קוד בפרויקט. מהקובץ הראשי copilot-instructions.md, דרך קבצי .instructions.md ממוקדים, ועד הנחיות ברמת ארגון — הכל עם דוגמאות מעשיות שתוכלו ליישם עוד היום.

מה יהיה לך בסוף הפרק הזה
מה תוכלו לעשות אחרי הפרק הזה
דרישות קדם
פרקים נדרשיםפרק 1 — Agent Mode (הבנת הלולאה האגנטית, מצבי עבודה ורמות אישור)
חשבונות וכליםVS Code עם GitHub Copilot מותקן ומורשה, חשבון GitHub (Free/Pro/Business/Enterprise), פרויקט קוד קיים (TypeScript/Python/React מומלץ)
זמן משוער35 דקות קריאה + 60 דקות תרגולים = כ-1.5 שעות
הפרויקט שלך

בפרק 1 הבנתם איך Agent Mode עובד — הלולאה האגנטית, מצבי העבודה ורמות האישור. בפרק הזה תבנו מערכת הנחיות מדורגת שאומרת ל-Copilot איך לכתוב קוד בפרויקט שלכם — ותראו את ההבדל באיכות הפלט. בפרק 5 תרחיבו את היכולות של Copilot עם MCP Servers — כלים חיצוניים שמוסיפים יכולות שלא קיימות מובנית.

מילון מונחים — פרק 4
מונח (אנגלית) תרגום לעברית הגדרה
copilot-instructions.mdקובץ הנחיות ראשיקובץ Markdown בתיקיית .github/ שמגדיר הנחיות Copilot לכל הפרויקט
.instructions.mdקובץ הנחיות ממוקדקבצי הנחיות עם YAML frontmatter שמטרגטים קבצים ספציפיים לפי glob pattern
applyToמטרגט / חל עלשדה ב-YAML frontmatter שמגדיר על אילו קבצים ההנחיה חלה (למשל **/*.ts)
YAML frontmatterכותרת מטא-דאטהבלוק --- בתחילת קובץ Markdown שמכיל מטא-דאטה מובנה
AGENTS.mdהנחיות לסוכניםקובץ הנחיות צולב-כלים שמזוהה על ידי Copilot, Claude Code וסוכנים נוספים
CLAUDE.mdהנחיות ל-Claudeקובץ הנחיות ספציפי ל-Claude Code שנטען גם ב-VS Code Copilot
excludeAgentהחרגת סוכןשדה ב-frontmatter שמסנן הנחיות מסוכן ספציפי כמו code-review או coding-agent
instruction inheritanceירושת הנחיותהמנגנון שבו הנחיות מרמות שונות (אישי, פרויקט, ארגון) מתמזגות יחד
organization instructionsהנחיות ארגוניותהנחיות ברמת ארגון GitHub שחלות על כל הריפוזיטוריז של הארגון
מתחיל 5 דקות חינם מושג

למה הנחיות משנות הכל — הפער בין Copilot גנרי לבין Copilot שמכיר את הפרויקט

נסו לדמיין את התרחיש הבא: מפתח/ת חדש/ה מצטרף/ת לצוות שלכם. ביום הראשון, בלי לקרוא שורה אחת מה-README, בלי לדעת מה ה-coding conventions של הפרויקט, בלי להכיר את מבנה התיקיות ואת הכלים שבשימוש — הוא/היא מתחיל/ה לכתוב קוד. מה תקבלו? קוד שעובד, אולי, אבל בטוח לא קוד שמתאים לפרויקט שלכם. הוא ישתמש בשפה אחרת, בכלים אחרים, בסגנון אחר.

זה בדיוק מה ש-Copilot עושה כשאין לו הנחיות. הוא חכם מאוד, הוא יודע לכתוב קוד איכותי, אבל הוא פשוט לא יודע מה ההעדפות הספציפיות של הפרויקט שלכם. הוא לא יודע שאתם משתמשים ב-camelCase ולא ב-snake_case. הוא לא יודע שצריך לכתוב טסטים ב-Vitest ולא ב-Jest. הוא לא יודע שיש לכם Design System ספציפי עם Tailwind CSS ו-shadcn/ui. הוא לא יודע שאתם עובדים עם Fastify ולא עם Express, או ש-ORM שלכם הוא Prisma ולא TypeORM.

Custom Instructions (הנחיות מותאמות) פותרות את הבעיה הזו מהיסוד. במקום להגיד ל-Copilot בכל פרומפט מחדש "אל תשכח להשתמש ב-TypeScript strict mode" או "תמיד תכתוב error handling" — אתם כותבים את זה פעם אחת בקובץ Markdown, ו-Copilot קורא את זה אוטומטית בכל אינטראקציה. כל שיחת צ'אט, כל סשן של Agent Mode, כל Code Review — ההנחיות שם, בלי שתצטרכו לזכור אותן.

ההנחיות של Copilot עובדות בשלוש רמות — אישי, פרויקט וארגון — ומתמזגות יחד למערכת אחת שלמה. בפרק הזה נבנה את כל שלוש הרמות, נלמד איזה קובץ שמים איפה, ונראה בדיוק איך ההנחיות משפרות את הפלט.

כדי להמחיש את ההבדל, הנה ניסוי פשוט: ניקח פרומפט אחד — "Create a new API endpoint for user registration" — ונריץ אותו פעמיים. פעם ראשונה בפרויקט ללא הנחיות, ופעם שנייה באותו פרויקט עם קובץ הנחיות של 15 שורות. ההבדל מדהים:

זה ההבדל בין כלי AI גנרי לבין כלי AI שמכיר את הפרויקט שלכם. ו-15 שורות של הנחיות הן כל מה שנדרש כדי לעשות את הקפיצה הזו.

ההבדל: Copilot בלי הנחיות מול Copilot עם הנחיות בלי הנחיות פרומפט: "Create a new API endpoint" // JavaScript, no types app.get('/api/users', (req, res) => { const users = db.query('SELECT *'); res.json(users); }); ❌ אין TypeScript ❌ אין error handling ❌ אין validation ❌ Express במקום Fastify עם הנחיות אותו פרומפט בדיוק // TypeScript + Zod + Fastify export const getUsers = async ( req: FastifyRequest, reply ) => { try { const users = await... ✅ TypeScript strict ✅ Error handling ✅ Zod validation ✅ Fastify (כמו בפרויקט)
✍ עשו עכשיו 2 דקות

פתחו את VS Code בפרויקט קיים. הפעילו Agent Mode ושלחו את הפרומפט: "Create a new API endpoint for user registration". שמרו את התוצאה — בהמשך הפרק נשווה אותה לתוצאה אחרי הוספת הנחיות.

מתחיל 15 דקות חינם הקמה

copilot-instructions.md — הקובץ הראשי שכל פרויקט צריך

הקובץ copilot-instructions.md הוא נקודת ההתחלה — הקובץ הראשון שכל מפתח צריך ליצור כשמתחילים לעבוד עם Custom Instructions. הוא יושב בנתיב .github/copilot-instructions.md בשורש הריפוזיטורי, ו-Copilot קורא אותו אוטומטית בכל שיחת צ'אט ובכל סשן של Agent Mode. אין צורך להפעיל שום הגדרה — אם הקובץ קיים במיקום הנכון, Copilot מזהה אותו.

חישבו על הקובץ הזה כעל README פנימי שנכתב במיוחד ל-Copilot. הוא מכיל את הדברים שמתכנת חדש צריך לדעת כדי לכתוב קוד שמתאים לפרויקט:

מה לכלולדוגמהלמה זה חשוב
תיאור הפרויקט"This is a B2B SaaS for logistics"Copilot מבין את הקונטקסט העסקי
Tech Stack"TypeScript, Fastify, Prisma, React"לא ייצר קוד ב-Express אם אתם ב-Fastify
Conventions"Use camelCase, Zod for validation"עקביות בסגנון קוד
Build/Test"Run tests with vitest, build with tsup"Agent Mode יודע איך להריץ ולבדוק
Error Handling"Always use try/catch with custom errors"לא ישכח error handling
קבצים חשובים"Config in src/config/, routes in src/routes/"יודע איפה לשים דברים חדשים

איפה בדיוק שמים את הקובץ

המיקום המדויק הוא קריטי — טעות של אות אחת בנתיב ו-Copilot לא ימצא את הקובץ:

אם התיקייה .github/ כבר קיימת בפרויקט (למשל, בגלל GitHub Actions), פשוט הוסיפו את הקובץ לתוכה. אם לא, צרו אותה:

mkdir -p .github
touch .github/copilot-instructions.md

מבנה קובץ מומלץ

הנה דוגמה לקובץ .github/copilot-instructions.md לפרויקט TypeScript/React:

דוגמה: copilot-instructions.md לפרויקט TypeScript/React
# Project: TaskFlow — B2B Task Management SaaS

## Tech Stack
- Frontend: React 19 + TypeScript + Vite
- Backend: Fastify + TypeScript + Prisma ORM
- Testing: Vitest for unit, Playwright for E2E
- Styling: Tailwind CSS with custom design tokens

## Coding Conventions
- Use TypeScript strict mode — no `any` types
- Use Zod for all input validation
- Prefer named exports over default exports
- Use arrow functions for components, regular functions for utilities
- Error handling: always use try/catch with AppError class

## File Structure
- Components: src/components/{feature}/{ComponentName}.tsx
- API routes: src/routes/{resource}.routes.ts
- Database: prisma/schema.prisma + src/db/

## Build & Test
- Dev: `pnpm dev`
- Test: `pnpm test` (vitest) or `pnpm test:e2e` (playwright)
- Lint: `pnpm lint` (ESLint + Prettier)
- Build: `pnpm build` (tsup for backend, vite for frontend)

שימו לב לכמה עקרונות בדוגמה:

מה לא לכתוב בקובץ הנחיות

חשוב באותה מידה לדעת מה לא לשים בקובץ:

מספר ששווה לזכור

לפי מחקר של GitHub על awesome-copilot (2026), קבצי הנחיות אפקטיביים מכילים בממוצע 15-30 כללים ב-50-200 שורות. מעבר ל-200 שורות, ההשפעה מתחילה לרדת. קבצים עם למעלה מ-1,000 שורות מראים ירידה מדידה באיכות הפלט.

טעות נפוצה: הנחיות ארוכות מדי

אחת הטעויות הנפוצות ביותר היא לכתוב קובץ הנחיות ענק עם עשרות כללים. Copilot עובד טוב יותר עם הנחיות ממוקדות. כלל אצבע: שמרו על פחות מ-1,000 שורות לכל קובץ הנחיות. אם יש לכם יותר — פצלו לקבצי .instructions.md ממוקדים (נלמד בסעיף הבא). ובמקרה של Code Review, המגבלה חמורה אף יותר: רק 4,000 התווים הראשונים נקראים.

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

מה לעשות במקום: התחילו עם 10-15 כללים קריטיים. הוסיפו כללים חדשים רק כשאתם רואים ש-Copilot מייצר משהו לא רצוי שחוזר על עצמו.

✍ עשו עכשיו 3 דקות

צרו את הקובץ .github/copilot-instructions.md בפרויקט שלכם. כתבו בו 5 כללים בסיסיים: (1) תיאור הפרויקט, (2) tech stack, (3) כלל naming convention אחד, (4) פקודת test, (5) כלל error handling אחד.

✍ עשו עכשיו 2 דקות

עכשיו שלחו בדיוק את אותו פרומפט מה-Do-Now הראשון: "Create a new API endpoint for user registration". השוו את התוצאה — האם Copilot השתמש ב-tech stack הנכון? האם יש error handling? כתבו לעצמכם את ההבדלים שזיהיתם: ___

תרגיל 1: בניית copilot-instructions.md מלא לפרויקט

זמן: 20 דקות | תוצר: קובץ .github/copilot-instructions.md מותאם אישית

  1. פתחו את הפרויקט הראשי שלכם ב-VS Code
  2. צרו את התיקייה .github/ אם היא לא קיימת: mkdir -p .github
  3. צרו קובץ copilot-instructions.md בתוך .github/
  4. כתבו את הסעיפים הבאים:
    • Project Overview — משפט אחד שמתאר מה האפליקציה עושה
    • Tech Stack — כל הטכנולוגיות עם גרסאות
    • Coding Conventions — לפחות 5 כללים (naming, imports, error handling, types, testing)
    • File Structure — איפה שמים components, routes, utils
    • Build & Test — פקודות הרצה, בדיקה, build
  5. בדקו שהקובץ עובד: שלחו ל-Copilot Chat את הפרומפט "What are the project conventions?" — הוא צריך לצטט מההנחיות שלכם
  6. Commit את הקובץ לריפוזיטורי כדי שכל חברי הצוות ייהנו מההנחיות

תוצאה מצופה: Copilot מייצר קוד שתואם את ה-conventions של הפרויקט שלכם — tech stack נכון, naming conventions נכונים, error handling כמו שהגדרתם.

בינוני 15 דקות חינם הקמה

.instructions.md — הנחיות ממוקדות עם applyTo

הקובץ הראשי copilot-instructions.md חל על כל הפרויקט. אבל מה אם יש לכם כללים שרלוונטיים רק לקבצי טסטים? או רק ל-React components? או רק ל-API routes?

לשם כך קיימים קבצי .instructions.md — קבצים עם סיומת .instructions.md שנמצאים בתיקיית .github/instructions/. הפיצ'ר הזה נוסף ביולי 2025 והוא אחד השיפורים המשמעותיים ביותר במערכת ההנחיות של Copilot. הקבצים האלה משתמשים ב-YAML frontmatter (כותרת מטא-דאטה) — בלוק מטא-דאטה בתחילת הקובץ שאומר ל-Copilot על אילו קבצים ההנחיה חלה.

הרעיון פשוט: במקום קובץ הנחיות אחד גדול שמנסה לכסות את כל הפרויקט, אתם יוצרים קבצים קטנים וממוקדים. קובץ אחד לכללי TypeScript, קובץ אחד לכללי testing, קובץ אחד לכללי React. כל קובץ מופעל רק כשעובדים על קובץ שמתאים ל-pattern שהגדרתם.

המבנה: YAML frontmatter + הנחיות

כל קובץ .instructions.md מתחיל בבלוק YAML בין שני סימני ---, ואחריו ההנחיות עצמן:

דוגמה: הנחיות לקבצי TypeScript
---
applyTo: "**/*.ts,**/*.tsx"
---

# TypeScript Conventions

- Use strict mode — no `any` types
- Prefer `interface` over `type` for object shapes
- Use `readonly` for properties that shouldn't change
- Export types from dedicated `.types.ts` files
- Use discriminated unions for state management

השדה applyTo מקבל glob patterns — כללים שמתארים נתיבי קבצים:

Patternמטרגטדוגמת שימוש
**/*.tsכל קבצי TypeScript בפרויקטכללי TypeScript
**/*.test.*כל קבצי הטסטיםכללי testing
src/components/**/*כל הקבצים בתיקיית componentsכללי React components
src/routes/**/*.tsקבצי TypeScript בתיקיית routesכללי API routes
**/*.css,**/*.scssקבצי סטייל (מספר patterns)כללי styling
prisma/**/*קבצי Prismaכללי database schema

שדות נוספים ב-frontmatter

מעבר ל-applyTo, יש שדות נוספים שאפשר להגדיר:

Frontmatter מלא עם כל השדות
---
name: "React Component Standards"
description: "Conventions for React components in this project"
applyTo: "src/components/**/*.tsx"
excludeAgent: "coding-agent"
---

השדה excludeAgent חשוב במיוחד: הוא מאפשר ליצור הנחיות שחלות רק על Code Review אבל לא על Agent Mode, או להפך. לדוגמה, הנחיות סטייל קפדניות שרלוונטיות ל-Code Review אבל מיותרות ב-Agent Mode.

דוגמאות מעשיות לקבצי .instructions.md

הנה שלוש דוגמאות מעשיות שתוכלו להעתיק ולהתאים:

דוגמה: הנחיות לקבצי טסטים
---
applyTo: "**/*.test.*,**/*.spec.*"
name: "Testing Standards"
---

# Testing Conventions

- Use `describe` + `it` blocks, not standalone `test()`
- Name pattern: "should [expected behavior] when [condition]"
- Use `beforeEach` for setup, not `beforeAll` (avoid shared state)
- Mock external services with `vi.mock()` — never call real APIs in tests
- Every test file: at least 1 happy path + 1 error path
- Prefer `toEqual` for objects, `toBe` for primitives
- Async tests: always use `await` — never callbacks
דוגמה: הנחיות ל-React Components
---
applyTo: "src/components/**/*.tsx"
name: "React Component Standards"
---

# React Component Conventions

- Functional components only — no class components
- Props: always define interface, export it from same file
- Hooks: extract to custom hooks when logic exceeds 10 lines
- Naming: PascalCase for components, camelCase for hooks (useXxx)
- State: Zustand for global, useState for local
- Avoid inline styles — use Tailwind classes
- Event handlers: prefix with "handle" (handleClick, handleSubmit)
דוגמה: הנחיות ל-API Routes
---
applyTo: "src/routes/**/*.ts"
name: "API Route Standards"
---

# API Route Conventions

- Use Zod schemas for request body and query params validation
- Always return typed responses: { data: T } or { error: string }
- HTTP status codes: 200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal
- Wrap all handlers in try/catch with AppError
- Log all errors with request ID for traceability
- Rate limiting: apply to all public endpoints
- Authentication: verify JWT in middleware, not in route handler

שימו לב: כל קובץ ממוקד בדומיין אחד. קובץ הטסטים מכיל רק כללי testing. קובץ ה-components מכיל רק כללי React. קובץ ה-API routes מכיל רק כללי backend. ככה Copilot מקבל הנחיות רלוונטיות בדיוק לקובץ שהוא עובד עליו — לא עומס של כללים לא רלוונטיים.

הגישה הזו יותר אפקטיבית מקובץ אחד ענק מכמה סיבות:

מבנה התיקיות: הנחיות ממוקדות מבנה תיקיות .github/instructions/ my-project/ ├── .github/ ├── copilot-instructions.md ← הנחיות לכל הפרויקט └── instructions/ ├── typescript.instructions.md **/*.ts,**/*.tsx ├── tests.instructions.md **/*.test.* ├── components.instructions.md src/components/**/* └── review.instructions.md excludeAgent: coding-agent כל הקבצים מתמזגים: copilot-instructions.md + קבצים ממוקדים שמתאימים לקובץ הנוכחי

ארגון קבצים: תיקיות משנה

כשיש לכם יותר מ-5-6 קבצי הנחיות, כדאי לארגן אותם בתיקיות משנה בתוך .github/instructions/:

מבנה מומלץ לפרויקט גדול
.github/instructions/
├── lang/
│   ├── typescript.instructions.md
│   └── python.instructions.md
├── testing/
│   ├── unit-tests.instructions.md
│   └── e2e-tests.instructions.md
├── frontend/
│   ├── components.instructions.md
│   └── styles.instructions.md
├── backend/
│   ├── api-routes.instructions.md
│   └── database.instructions.md
└── review/
    └── code-review.instructions.md

Copilot סורק את כל התיקיות בתוך .github/instructions/ באופן רקורסיבי — כל קובץ .instructions.md שנמצא בכל רמת עומק ייטען אוטומטית. לכן ארגון בתיקיות הוא רק עניין של סדר עבורכם, לא משנה את ההתנהגות.

איך ההתמזגות עובדת

נקודה קריטית שצריך להבין: כש-Copilot עובד על קובץ מסוים, הוא מצרף את כל ההנחיות הרלוונטיות — לא מחליף. אם אתם עורכים קובץ UserForm.tsx, Copilot יקרא:

  1. את copilot-instructions.md (תמיד)
  2. את typescript.instructions.md (כי הקובץ מתאים ל-**/*.tsx)
  3. את components.instructions.md (כי הקובץ נמצא ב-src/components/)

כל שלושת הקבצים מתמזגים יחד. לכן, הימנעו מהנחיות סותרות בין קבצים שונים — ההתנהגות במקרה של סתירה היא לא צפויה (non-deterministic).

✍ עשו עכשיו 3 דקות

צרו את התיקייה .github/instructions/ בפרויקט שלכם. בתוכה, צרו קובץ tests.instructions.md עם התוכן הבא:

---
applyTo: "**/*.test.*,**/*.spec.*"
---

# Testing Standards

- Use descriptive test names: "should [action] when [condition]"
- Prefer `it()` over `test()` for consistency
- Use `beforeEach` for common setup, avoid `beforeAll`
- Mock external dependencies, never real APIs
- Each test file must have at least one positive and one negative test
תרגיל 2: יצירת 3 קבצי .instructions.md ממוקדים

זמן: 20 דקות | תוצר: 3 קבצי .instructions.md עם applyTo

  1. צרו את תיקיית .github/instructions/ (אם עוד לא קיימת)
  2. צרו קובץ 1typescript.instructions.md עם applyTo: "**/*.ts,**/*.tsx" ובתוכו 5 כללי TypeScript ספציפיים לפרויקט שלכם
  3. צרו קובץ 2tests.instructions.md עם applyTo: "**/*.test.*,**/*.spec.*" ובתוכו כללי testing: naming conventions, mock strategy, assertions
  4. צרו קובץ 3components.instructions.md עם applyTo: "src/components/**/*" ובתוכו כללי React/Vue/Angular ספציפיים
  5. לכל קובץ, ודאו שה-YAML frontmatter תקין: שני סימני ---, שדה applyTo עם glob pattern
  6. בדקו שהקבצים נטענים: פתחו Agent Logs ב-VS Code וחפשו Discovery events
  7. בדקו שההנחיות עובדות: עברו לקובץ שמתאים ל-pattern, שלחו פרומפט, ובדקו שהפלט תואם את ההנחיות

תוצאה מצופה: כשאתם עובדים על קובץ טסט, Copilot מיישם את כללי הטסטים. כשעובדים על component, הוא מיישם את כללי ה-components. הכל אוטומטי.

בינוני 10 דקות חינם מושג

AGENTS.md ו-CLAUDE.md — תאימות צולבת עם כלים אחרים

בעולם הפיתוח של 2026, רוב הצוותים לא משתמשים רק בכלי AI אחד. ובשוק הישראלי, המגמה הזו חזקה במיוחד: סקר של נתיב דיגיטל (Q1 2026) הראה ש-63% מצוותי פיתוח בסטארטאפים ישראליים משתמשים ב-2 כלי AI לפחות. יש מפתחים שעובדים עם Copilot ב-VS Code, אחרים עם Claude Code בטרמינל, ואולי מישהו בצוות משתמש ב-Cursor או ב-Windsurf. השאלה היא: איך שומרים על הנחיות אחידות כשכל כלי קורא קובץ אחר?

AGENTS.md — הקובץ האוניברסלי

הקובץ AGENTS.md הוא תקן פתוח שמזוהה על ידי מספר סוכני AI — לא רק Copilot. הוא יושב בשורש הריפוזיטורי ומכיל את ההנחיות שכל סוכן AI צריך לקרוא.

מה ייחודי ב-AGENTS.md:

ניתוח של 2,500 ריפוזיטוריז שמשתמשים ב-AGENTS.md (מחקר של GitHub, 2026) חשף כמה תובנות מעניינות:

CLAUDE.md — ספציפי ל-Claude

הקובץ CLAUDE.md הוא ספציפי ל-Claude Code ולכלים מבוססי Claude. הוא יכול לשבת בשורש הריפוזיטורי, בתיקיית .claude/, או בתיקיית הבית של המשתמש.

חדש: VS Code Copilot תומך גם הוא ב-CLAUDE.md דרך ההגדרה chat.useClaudeMdFile. זה אומר שאם אתם כבר משתמשים ב-CLAUDE.md עם Claude Code, גם Copilot יקרא אותו כשהוא עובד באותו workspace. זה פותר בעיה שהייתה מטרידה צוותים ישראליים רבים: לנהל שני קבצי הנחיות נפרדים עם אותו תוכן.

אסטרטגיית 80/20 לצוותים מרובי-כלים

הגישה המומלצת לצוותים שמשתמשים במספר כלי AI:

קובץמה לשים בואחוז הכללים
AGENTS.mdכללים משותפים: tech stack, conventions, build commands80%
.github/copilot-instructions.mdכללים ספציפיים ל-Copilot בלבד10%
CLAUDE.mdכללים ספציפיים ל-Claude בלבד10%

Claude Code גם קורא את AGENTS.md כ-fallback אם אין CLAUDE.md. כלומר, אם יש לכם רק AGENTS.md, גם Claude יעבוד איתו.

דוגמה: קובץ AGENTS.md בסיסי
# Project: TaskFlow

## About
B2B task management SaaS — TypeScript monorepo with Fastify backend and React frontend.

## Build & Test
- Install: `pnpm install`
- Dev: `pnpm dev` (starts both backend and frontend)
- Test: `pnpm test` (vitest)
- E2E: `pnpm test:e2e` (playwright)
- Lint: `pnpm lint` (eslint + prettier)

## Project Structure
- `packages/api/` — Fastify backend
- `packages/web/` — React frontend
- `packages/shared/` — shared types and utils
- `prisma/` — database schema and migrations

## Conventions
- TypeScript strict, no `any`
- Zod for runtime validation
- Named exports only
- Error handling: try/catch with AppError class
- Tests next to source files (*.test.ts)

## Important Notes
- Never modify `packages/shared/` without updating both api and web
- Database migrations require `pnpm prisma migrate dev`
- All env vars documented in `.env.example`

שימו לב: הקובץ הזה מכיל מידע שכל סוכן AI צריך — לא משנה אם זה Copilot, Claude, Cursor או כלי אחר. זה הבסיס של גישת ה-80/20.

מתי להשתמש בכל קובץ — סיכום

קובץמתי להשתמשמי קורא אותו
AGENTS.mdצוות עם מספר כלי AICopilot, Claude Code, Cursor, Windsurf
.github/copilot-instructions.mdפרויקט שמשתמש רק ב-CopilotCopilot בלבד
CLAUDE.mdכללים ספציפיים ל-Claude שלא רלוונטיים ל-CopilotClaude Code, VS Code (עם הגדרה)
שלושתם ביחדהגישה המומלצת: AGENTS.md + קבצים ספציפיים לכל כליכל הכלים
✍ עשו עכשיו 2 דקות

בדקו ב-VS Code Settings: חפשו chat.useClaudeMdFile. אם הוא כבוי, הפעילו אותו. מעכשיו Copilot גם יקרא את CLAUDE.md אם הוא קיים בפרויקט.

בינוני 10 דקות חינם מושג

שלוש הרמות — אישי, פרויקט וארגון

אחד המושגים החשובים ביותר שצריך להבין ב-Custom Instructions הוא ירושת הנחיות (instruction inheritance). Copilot מזהה הנחיות משלוש רמות שונות — אישי, פרויקט, וארגון. ההנחיות מכל הרמות מתמזגות יחד (merged) לקונטקסט אחד שנשלח למודל. הן לא דורסות אחת את השנייה — Copilot מנסה לקיים את כולן בו-זמנית. אבל כשיש סתירה, לרמות הגבוהות יש עדיפות:

פירמידת עדיפויות — שלוש רמות ההנחיות סדר עדיפויות ההנחיות אישי (Personal) VS Code Settings ⬆ עדיפות גבוהה פרויקט (Repository) copilot-instructions.md + .instructions.md ארגון (Organization) GitHub Org Settings > Copilot > Custom Instructions ⬇ עדיפות נמוכה ⚠ כל הרמות מתמזגות — הימנעו מסתירות!

רמה 1: הנחיות אישיות (Personal) — עדיפות גבוהה ביותר

הנחיות שמוגדרות ברמת המשתמש ב-VS Code. הן חלות על כל פרויקט שאתם עובדים עליו.

איך להגדיר:

  1. פתחו VS Code ← Settings (Ctrl+,)
  2. חפשו github.copilot.chat.codeGeneration.instructions
  3. לחצו "Edit in settings.json" והוסיפו הנחיות

לחלופין, דרך Command Palette: Ctrl+Shift+P ← חפשו Copilot: Open Custom Instructions.

מתי להשתמש: העדפות אישיות שלא משתנות בין פרויקטים. דוגמאות:

סנכרון בין מכשירים: VS Code Settings Sync מאפשר לסנכרן את ההנחיות האישיות בין מחשבים שונים. פתחו Command Palette, חפשו Settings Sync: Configure, וסמנו "Prompts and Instructions".

רמה 2: הנחיות פרויקט (Repository) — עדיפות בינונית

כל הקבצים שלמדנו עד עכשיו: copilot-instructions.md, קבצי .instructions.md, ו-AGENTS.md. הם נשמרים בריפוזיטורי ומשותפים עם כל הצוות דרך Git.

היתרון הגדול: כל מפתח בצוות מקבל את ההנחיות אוטומטית. אין צורך בהגדרה ידנית — אחרי git clone או git pull, ההנחיות כבר שם.

מתי להשתמש: כללים ספציפיים לפרויקט — tech stack, conventions, file structure, build commands, testing patterns.

רמה 3: הנחיות ארגוניות (Organization) — עדיפות נמוכה ביותר

הנחיות שמוגדרות על ידי admin של הארגון ב-GitHub, וחלות על כל הריפוזיטוריז בארגון.

חדש! נכון להיום (אפריל 2026), הנחיות ארגוניות הפכו ל-GA (Generally Available) עבור Copilot Business ו-Enterprise. עד עכשיו זה היה ב-Preview. זה אומר שהפיצ'ר יציב, מתועד, ומומלץ לשימוש production.

מי יכול להגדיר: רק Organization Owners (בעלי הארגון ב-GitHub). מפתחים רגילים לא יכולים לשנות את ההנחיות הארגוניות — זה by design, כדי לשמור על אחידות.

איך להגדיר:

  1. ב-GitHub.com ← Profile ← Organizations
  2. בחרו את הארגון ← Settings
  3. בתפריט הצד: Copilot ← Custom Instructions
  4. תחת "Preferences and instructions" — כתבו את ההנחיות

מתי להשתמש: כללים שרלוונטיים לכל הריפוזיטוריז בארגון — security standards, logging conventions, compliance rules, coding style basics. דוגמאות ספציפיות:

שימו לב: הנחיות ארגוניות צריכות להיות טכנולוגיה-אגנוסטיות (technology-agnostic) ככל הניתן — הן חלות על ריפוזיטוריז ב-Python, TypeScript, Go, ושפות אחרות. לכן, כללים כמו "use Zod for validation" לא מתאימים כאן — הם ספציפיים לפרויקטי TypeScript ושייכים ברמת הריפו.

✍ עשו עכשיו 3 דקות

הגדירו הנחיה אישית אחת ב-VS Code. פתחו Settings, חפשו github.copilot.chat.codeGeneration.instructions, והוסיפו הנחיה כמו: "Always add descriptive comments in Hebrew for complex logic".

מסגרת החלטה: באיזו רמה לשים כל סוג הנחיה?
סוג ההנחיהרמה אישיתרמת פרויקטרמת ארגון
העדפת שפת תגובה (עברית/אנגלית)✅ כאן
סגנון קוד אישי (functional vs OOP)✅ כאן
Tech stack ספציפי לפרויקט✅ כאן
Naming conventions של הפרויקט✅ כאן
פקודות build/test/deploy✅ כאן
Security standards (לא secrets בקוד)✅ כאן
Logging format אחיד✅ כאן
License compliance✅ כאן

כלל אצבע: אם ההנחיה רלוונטית רק לך → אישי. אם רלוונטית לפרויקט → פרויקט. אם רלוונטית לכל הריפוזיטוריז בארגון → ארגון.

בינוני 5 דקות חינם מושג

היקף: איפה ההנחיות עובדות ואיפה לא

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

מצב עבודההנחיות חלות?הערות
Chat Mode (Ask)✅ כןהנחיות נקראות בתחילת כל שיחה
Agent Mode✅ כןההשפעה המשמעותית ביותר — Agent מייצר קוד מלא
Edit Mode✅ כןהנחיות חלות על העריכות שנוצרות
Code Review (GitHub.com)✅ כן**רק 4,000 תווים ראשונים, מה-base branch
Copilot CLI✅ כןקורא הנחיות מהריפוזיטורי הנוכחי
Autocomplete (Inline)❌ לאהשלמות קוד אינן מושפעות מהנחיות
טעות נפוצה: לצפות שהנחיות ישפיעו על Autocomplete

הרבה מפתחים מופתעים לגלות שההנחיות לא חלות על השלמות קוד (autocomplete). כשאתם מקלידים ו-Copilot מציע השלמה inline — הוא לא קורא את copilot-instructions.md. ההנחיות חלות רק על צ'אט, Agent Mode, ו-Code Review.

למה זה קורה: Autocomplete חייב להיות מהיר מאוד (מילישניות), ואין זמן לעבד קובץ הנחיות שלם.

מה לעשות במקום: אם אתם רוצים להשפיע על autocomplete, השתמשו בדוגמאות קוד קיימות בפרויקט — Copilot לומד מהקבצים הפתוחים ומהקבצים הסמוכים.

✍ עשו עכשיו 2 דקות

נסו את זה: כתבו הנחיה "Always use snake_case for variable names". עכשיו פתחו קובץ TS והתחילו לכתוב const my — האם ה-autocomplete משתמש ב-snake_case? (Spoiler: לא). עכשיו שלחו את אותו prompt בצ'אט — האם שם הוא משתמש ב-snake_case? (כן!).

בינוני 10 דקות חינם תרגול

שילוב עם Code Review — הנחיות שמשפרות ביקורת קוד

Copilot Code Review הוא אחד הכלים החזקים ביותר שמשתלבים עם מערכת ההנחיות. כשאתם מבקשים מ-Copilot לסקור Pull Request ב-GitHub.com, הוא קורא את ההנחיות שלכם ומשתמש בהן כבסיס לביקורת. במקום ביקורת גנרית שמחפשת בעיות כלליות, אתם מקבלים ביקורת שמותאמת לסטנדרטים של הפרויקט שלכם — ממש כמו Code Review מחבר צוות ותיק שמכיר את כל הכללים.

איך Copilot Code Review קורא הנחיות

כמה נקודות חשובות:

דוגמה: הנחיות ספציפיות ל-Code Review
---
applyTo: "**/*"
excludeAgent: "coding-agent"
name: "Code Review Standards"
---

# Code Review Focus Areas

- Check for hardcoded secrets, API keys, or credentials
- Verify error handling exists for all async operations
- Flag any `console.log` or debug statements in production code
- Ensure new functions have JSDoc comments
- Check that database queries use parameterized inputs (SQL injection prevention)
- Verify tests exist for new public functions

שימו לב: ה-excludeAgent: "coding-agent" מבטיח שההנחיות האלה ייקראו רק על ידי Code Review ולא יפריעו ל-Agent Mode בעבודה הרגילה.

איך לבקש Code Review מ-Copilot

התהליך המעשי:

  1. צרו Pull Request ב-GitHub.com (או נווטו ל-PR קיים)
  2. בתפריט Reviewers בצד, בחרו Copilot
  3. Copilot יסרוק את הקוד לפי ההנחיות מה-base branch
  4. בהערות שלו, יש כפתור "Implement suggestion" — לחיצה תיצור PR חדש עם התיקונים

אפשר גם להגדיר automatic code review — Copilot יסקור כל PR חדש אוטומטית, בלי לבקש ידנית. את ההגדרה עושים בקביעות הריפוזיטורי ב-GitHub.

טיפ מעשי: הנחיות code review מותאמות לשוק הישראלי

בפרויקטים ישראליים, שווה להוסיף כללים ספציפיים:

טעות נפוצה: הנחיות Code Review ארוכות מדי

אם קובץ ההנחיות שלכם ל-Code Review ארוך מ-4,000 תווים (כ-600-800 מילים), Copilot פשוט יתעלם מהחלק שמעבר. שמרו על הנחיות Code Review ממוקדות וקצרות.

למה זה קורה: הפיתוי לכתוב רשימה ארוכה של כל מה שצריך לבדוק ב-Code Review.

מה לעשות במקום: התמקדו ב-5-7 כללים הכי חשובים. אם יש לכם יותר, פצלו לכמה קבצי .instructions.md עם applyTo שונה.

✍ עשו עכשיו 3 דקות

צרו קובץ .github/instructions/review.instructions.md עם 5 כללי Code Review שחשובים לכם. השתמשו ב-excludeAgent: "coding-agent". שמרו על פחות מ-4,000 תווים.

מתחיל 10 דקות חינם כלי

תבניות מוכנות — TypeScript, Python, React

לא חייבים להתחיל מאפס. הנה שלוש תבניות מוכנות שאפשר להתאים לפרויקט שלכם. כל תבנית עוקבת אחרי הפורמט המומלץ: קצרה, ספציפית, עם bullet points.

תבנית 1: פרויקט TypeScript/Node.js

תבנית: TypeScript/Node.js Backend
# Project: [שם הפרויקט]

## Tech Stack
- Runtime: Node.js 22 + TypeScript 5.x
- Framework: Fastify with @fastify/type-provider-typebox
- ORM: Prisma with PostgreSQL
- Validation: Zod for input, TypeBox for Fastify schemas
- Testing: Vitest + Supertest

## Conventions
- Use TypeScript strict mode — no `any`, no `as` casts
- Prefer `interface` for object shapes, `type` for unions
- Named exports only — no default exports
- Use barrel files (index.ts) per feature directory
- Error handling: use `AppError` class from `src/errors/`
- Logging: use `logger` from `src/lib/logger.ts`, never `console.log`

## Commands
- Dev: `pnpm dev`
- Test: `pnpm test`
- Lint: `pnpm lint`
- Build: `pnpm build`
- Migrate: `pnpm prisma migrate dev`

תבנית 2: פרויקט Python/FastAPI

תבנית: Python/FastAPI Backend
# Project: [שם הפרויקט]

## Tech Stack
- Python 3.12+ with type hints everywhere
- Framework: FastAPI with Pydantic v2
- Database: SQLAlchemy 2.0 + Alembic migrations
- Testing: pytest with pytest-asyncio

## Conventions
- Follow PEP 8, enforced by Ruff
- Use Pydantic BaseModel for all request/response schemas
- Async by default — use `async def` for all endpoints
- Type hints on ALL function signatures and return types
- Docstrings: Google style on all public functions
- Never use `print()` — use `structlog` logger

## Commands
- Dev: `uv run uvicorn main:app --reload`
- Test: `uv run pytest`
- Lint: `uv run ruff check .`
- Format: `uv run ruff format .`
- Migrate: `uv run alembic upgrade head`

תבנית 3: פרויקט React/Next.js

תבנית: React/Next.js Frontend
# Project: [שם הפרויקט]

## Tech Stack
- Next.js 15 with App Router + TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- State: Zustand for client state, React Query for server state
- Forms: React Hook Form + Zod validation
- Testing: Vitest + Testing Library

## Conventions
- Functional components only — no class components
- Use `"use client"` directive only when needed
- Prefer Server Components — fetch data on the server
- File naming: PascalCase for components, camelCase for utils
- Co-locate tests next to source: `Button.tsx` + `Button.test.tsx`
- Use absolute imports with `@/` prefix

## File Structure
- Pages: app/(routes)/[route]/page.tsx
- Components: src/components/[feature]/[ComponentName].tsx
- Shared UI: src/components/ui/ (shadcn components)
- Hooks: src/hooks/use[HookName].ts
- API: app/api/[resource]/route.ts

את כל התבניות האלה (ועוד למעלה מ-120 נוספות) אפשר למצוא ב-awesome-copilot — ריפוזיטורי רשמי של GitHub עם תבניות הנחיות, agents, ו-skills: github.com/github/awesome-copilot.

איך להתאים תבנית לפרויקט שלכם

העתקה עיוורת של תבנית היא טעות נפוצה. הנה התהליך הנכון:

  1. התחילו מתבנית — בחרו את התבנית הקרובה ביותר לפרויקט שלכם
  2. מחקו מה שלא רלוונטי — אם אתם לא משתמשים ב-Prisma, מחקו את שורת Prisma. אם אתם לא ב-Fastify, החליפו ל-Express/Nest
  3. הוסיפו כללים ספציפיים לפרויקט — naming conventions מיוחדים, patterns שחשובים לכם, כלים ייחודיים
  4. בדקו עם פרומפט — שלחו ל-Copilot בקשה טיפוסית ובדקו אם הפלט תואם את הציפיות
  5. תקנו ושפרו — אם Copilot עדיין עושה משהו לא רצוי, הוסיפו כלל ספציפי שמתקן את זה

כלל אצבע לשוק הישראלי: אם הפרויקט שלכם משרת משתמשים ישראליים, הוסיפו את הכללים הבאים בכל תבנית:

תרגיל 3: התאמת תבנית לפרויקט אישי

זמן: 15 דקות | תוצר: תבנית copilot-instructions.md מותאמת

  1. בחרו את התבנית הכי קרובה לפרויקט שלכם (TypeScript, Python, או React)
  2. העתיקו אותה ל-.github/copilot-instructions.md
  3. החליפו את [שם הפרויקט] בשם האמיתי
  4. התאימו את ה-tech stack: הוסיפו/הסירו כלים לפי מה שבפרויקט שלכם
  5. הוסיפו לפחות 2 conventions ספציפיים לפרויקט שלכם שלא קיימים בתבנית

תוצאה מצופה: קובץ הנחיות שמשקף במדויק את הפרויקט שלכם, לא תבנית גנרית.

בינוני 10 דקות חינם ניתוח

הנחיות שעובדות vs הנחיות שמבלבלות — השוואה מעשית

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

❌ הנחיה גרועה✅ הנחיה טובהלמה
"Write clean code" "Use TypeScript strict mode, no any types" "Clean code" הוא עמום — Copilot לא יודע מה זה אומר עבורכם
"Use best practices for error handling" "Wrap async operations in try/catch, use AppError class from src/errors/" "Best practices" הוא גנרי, הגרסה הטובה מציינת בדיוק מה לעשות
"Be careful with security" "Never hardcode secrets. Use env vars via process.env. Validate all user input with Zod." "Be careful" לא actionable — הגרסה הטובה נותנת צעדים קונקרטיים
"Follow our naming conventions" "Use camelCase for variables, PascalCase for types, UPPER_SNAKE for constants" "Our conventions" — Copilot לא יודע מה הם אלא אם תגידו לו
"Please try to remember to add comments when appropriate to make the code more readable and maintainable for future developers" "Add JSDoc to all public functions. Inline comments for non-obvious logic only." ההנחיה הגרועה ארוכה, מנומסת מדי, ולא ברורה. הטובה — 2 כללים חדים

הנחיה שעובדת הפוך — דוגמה לכישלון

הנה סיפור שקורה לא מעט: מפתחת כתבה את ההנחיה הבאה: "Always add comprehensive error handling with detailed logging and user-friendly messages that explain exactly what went wrong and how to fix it".

התוצאה? Copilot הוסיף 30 שורות של error handling לכל פונקציה של 5 שורות. Error messages ארוכים שחשפו implementation details ללקוח. Logging כל כך מפורט שהקונסול הציף אלפי הודעות.

הגרסה המשופרת: "Use try/catch with AppError class. Log error ID + message. Return generic error to client." — 3 כללים ברורים שנותנים בדיוק את התוצאה הרצויה.

5 טיפים של GitHub לכתיבת הנחיות טובות יותר (מתוך הבלוג הרשמי)

  1. כתבו הנחיות כמו לחבר צוות חדש — אם הייתם מסבירים את זה בעל-פה, ככה לכתוב
  2. הוסיפו את ה"למה" בקצרה — כשההנחיה מסבירה את הסיבה, Copilot מחליט טוב יותר במקרי קצה. למשל: "Use Zod for validation (runtime safety — TypeScript types don't exist at runtime)"
  3. הראו preferred pattern ו-avoided pattern — דוגמה של "עשה כך" ו"לא כך" עובדת טוב יותר מתיאור מילולי
  4. התחילו קטן והרחיבו — 5 כללים טובים > 30 כללים בינוניים. הוסיפו כללים רק כשרואים בעיה חוזרת
  5. בדקו באופן קבוע — הנחיה שהייתה רלוונטית לפני חודש אולי לא רלוונטית היום

שלוש שאלות לבדיקת איכות הנחיה

מסגרת החלטה: בדיקת איכות הנחיה — 3 שאלות מסננות

לפני שמוסיפים הנחיה חדשה, שאלו:

  1. האם ההנחיה ספציפית?
    כן → שמרו אותה
    לא → שכתבו עם פרטים קונקרטיים (שם כלי, pattern, דוגמה)
  2. האם יש דוגמה (preferred/avoided pattern)?
    כן → ההנחיה חזקה
    לא → הוסיפו דוגמת קוד של "עשה כך" ו"לא כך"
  3. האם היא קצרה מ-2 משפטים?
    כן → מצוין, Copilot יעבד אותה היטב
    לא → קצרו — הנחיה ארוכה מפחיתה השפעה
טעות נפוצה: הנחיות סותרות ברמות שונות

תרחיש שקורה הרבה: ברמה האישית הגדרתם "Use tabs for indentation", אבל בפרויקט יש "Use 2-space indentation". מה Copilot יעשה? התשובה: לא צפוי (non-deterministic). לפעמים tabs, לפעמים spaces.

למה זה קורה: כשמוסיפים הנחיות ברמות שונות, קל לשכוח מה כבר הוגדר ברמה אחרת.

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

✍ עשו עכשיו 3 דקות

פתחו את קובץ ה-copilot-instructions.md שלכם. העבירו כל הנחיה דרך שלוש השאלות של מסגרת ההחלטה. שכתבו כל הנחיה שלא עוברת את שלוש הבדיקות. כמה הנחיות שכתבתם מחדש? ___

מתקדם 5 דקות חינם כלי

ניפוי באגים — איך לוודא שההנחיות נטענו ועובדות

אחד הדברים שיכולים להוציא מפתחים מדעתם: כתבתם הנחיות מושלמות, שמתם אותן במקום הנכון, אבל Copilot ממשיך להתעלם מהן. לפני שאתם מוחקים הכל ומתחילים מחדש — יש שלושה כלי debugging שיגידו לכם בדיוק מה קורה:

1. Agent Logs — Discovery Events

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

  1. ב-VS Code: פתחו את Output panel (Ctrl+Shift+U)
  2. בתפריט הנפתח למעלה, בחרו "GitHub Copilot Chat" או "Agent"
  3. חפשו Discovery events — תראו רשימה של כל קבצי ההנחיות שנטענו
  4. אם הקובץ שלכם לא מופיע — יש בעיה במיקום או בפורמט

2. Chat Debug View — System Prompt

כלי מתקדם יותר שמראה את ה-system prompt שנשלח למודל:

  1. פתחו Command Palette (Ctrl+Shift+P)
  2. חפשו "Chat Debug View"
  3. בדקו את ה-System prompt section — ההנחיות שלכם צריכות להופיע שם

3. פקודת /troubleshoot

בצ'אט של Copilot, אפשר לשלוח:

צ'קליסט troubleshooting

אם ההנחיות לא עובדות, עברו על הרשימה הזו לפי הסדר — בדרך כלל אחד מהפריטים הראשונים הוא הבעיה:

  1. מיקום — האם הקובץ ב-.github/copilot-instructions.md? (לא ב-root, לא ב-github/ בלי נקודה)
  2. שם — האם השם בדיוק copilot-instructions.md? שגיאות נפוצות: copilot_instructions (קו תחתון), instructions.md (חסר copilot), copilot-instruction.md (חסר s)
  3. Frontmatter — לקבצי .instructions.md: האם יש שני סימני --- תקינים? חסרון של אחד מהם שובר את הקובץ
  4. Glob pattern — האם ה-applyTo תואם את הקובץ שאתם עובדים עליו? בדקו עם כלי online כמו globster.xyz
  5. הגדרה מופעלת — האם ב-VS Code Settings ה-setting github.copilot.chat.codeGeneration.useInstructionFiles מופעל? (ברירת המחדל: כן)
  6. VS Code מעודכן — הנחיות .instructions.md עם applyTo דורשות VS Code 1.93+ (יולי 2025 ומעלה)
  7. Extension מעודכן — ודאו שה-GitHub Copilot extension מעודכן לגרסה האחרונה

טיפ מנצח: הדרך הכי מהירה לבדוק אם הנחיות עובדות — שאלו את Copilot בצ'אט: "What are the project conventions you know about?". אם הוא מצטט מההנחיות שלכם, הכל עובד.

✍ עשו עכשיו 2 דקות

פתחו את Agent Logs ב-VS Code (Output Panel → GitHub Copilot Chat). שלחו הודעה כלשהי בצ'אט, וחפשו ב-Output את ה-Discovery events. האם אתם רואים את קבצי ההנחיות שיצרתם? רשמו: ___

מתקדם 10 דקות חינם אסטרטגיה

בניית ספריית הנחיות ארגונית — מהפרויקט האישי לצוות שלם

עד עכשיו עבדנו ברמת פרויקט בודד. אבל מה קורה כשיש לכם 10, 20, או 100 ריפוזיטוריז בארגון? האם צריך לכתוב הנחיות מאפס לכל אחד? ואיך שומרים על עקביות כשכל מפתח בצוות מגדיר הנחיות לבד?

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

שלב 1: הנחיות ארגוניות (Org-level)

הגדירו ב-GitHub Organization Settings הנחיות שחלות על כל הריפוזיטוריז. אלה צריכות להיות כללים אוניברסליים:

דוגמה: הנחיות ארגוניות
# [Company Name] — Copilot Organization Instructions

## Security
- Never hardcode secrets, API keys, or credentials in source code
- Use environment variables for all configuration
- Validate all external input before processing
- Log security-relevant events using structured logging

## Code Quality
- All public functions must have documentation
- Error messages must be descriptive and actionable
- No console.log/print in production code — use the project's logger
- All async operations must have error handling

## Compliance
- Include license headers in new files where required
- Follow GDPR guidelines for personal data handling
- All user-facing text must support RTL (Hebrew) layout

שלב 2: תבניות ברמת פרויקט (Template Repo)

צרו template repository ב-GitHub עם קבצי הנחיות מוכנים. כשיוצרים ריפוזיטורי חדש מהתבנית, ההנחיות כבר שם:

שלב 3: סנכרון וניהול שוטף

ברגע שיש לכם ספריית הנחיות ארגונית, צריך לנהל אותה:

סנכרון הנחיות אישיות בין מכשירים:

  1. Command Palette → Settings Sync: Configure
  2. סמנו Prompts and Instructions ברשימת ההגדרות לסנכרון
  3. מעכשיו ההנחיות האישיות שלכם זמינות בכל מכשיר

ניהול שוטף של הנחיות ארגוניות:

דוגמה מהשטח: סטארטאפ ישראלי עם 5 ריפוזיטוריז

הנה מבנה אמיתי (שמות שונו) שעובד היטב בסטארטאפ ישראלי עם צוות של 12 מפתחים:

רמהמה הוגדרמספר כללים
ארגון (org settings)Security standards, logging format, no console.log, GDPR compliance, RTL support8 כללים
Backend repos (copilot-instructions.md)Fastify + TypeScript + Prisma conventions, error handling pattern, API response format15 כללים
Frontend repos (copilot-instructions.md)Next.js + React + Tailwind conventions, component structure, state management12 כללים
.instructions.md files3-4 קבצים ממוקדים בכל ריפו: tests, components, API routes, DB queries5-8 כללים per file
אישי (per developer)שפת תגובה, סגנון הערות, העדפות formatting3-5 כללים

סך הכל: כל מפתח מקבל כ-40-50 כללים מותאמים כשהוא עובד — משולבים מכל הרמות. ותהליך ההטמעה לקח יום עבודה אחד לצוות שלם. התוצאה: ירידה של 40% ב-review comments על code style, ו-onboarding של מפתח חדש שהתקצר מיומיים ליום אחד — כי Copilot כבר "מלמד" אותו את הסטנדרטים דרך הפלט שהוא מייצר.

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

מסגרת החלטה: הנחיה ברמת ארגון או ברמת ריפו?
רלוונטי לכל הריפוזיטוריזספציפי לפרויקט
נדרש אכיפה ✅ ארגון (security, compliance, logging) ✅ ריפו (tech stack constraints)
המלצה/העדפה ✅ ארגון (code style basics) ✅ ריפו (framework-specific patterns)

כלל אצבע: אם ההנחיה רלוונטית ל-80%+ מהריפוזיטוריז בארגון → שימו ברמת ארגון. אם ספציפית לטכנולוגיה או פרויקט → ברמת ריפו.

תרגיל 4: בניית תבנית הנחיות ארגונית

זמן: 20 דקות | תוצר: ערכת הנחיות ארגונית מוכנה ליישום

  1. כתבו טקסט הנחיות ארגוניות — 10-15 כללים אוניברסליים (security, quality, compliance)
  2. צרו תיקייה חדשה copilot-org-template/
  3. בתוכה, צרו .github/copilot-instructions.md עם placeholder sections שצוותים ימלאו
  4. צרו .github/instructions/security.instructions.md עם כללי אבטחה שחלים על כל סוגי הקבצים
  5. צרו AGENTS.md בשורש עם ההנחיות המשותפות ל-80% מהכלים
  6. תעדו ב-README קצר: מה כל קובץ עושה, מה צריך להתאים, ומה אסור לשנות

תוצאה מצופה: תבנית שאפשר להפוך ל-template repo ב-GitHub ולהשתמש בה בכל ריפוזיטורי חדש בארגון.

שגרת עבודה — תחזוקת הנחיות

בנוסף לשגרה מפרק 1 (מעקב אחרי Agent Mode), הוסיפו:

תדירותמשימה
יומיכשמשנים tech stack או מוסיפים כלי חדש — עדכנו את copilot-instructions.md
שבועיסקרו הנחיות שנוספו בצוות — בדקו שאין סתירות בין קבצי .instructions.md
שבועיבדקו Code Review output — האם ההנחיות משפיעות? התאימו אם צריך
חודשיעדכנו תבניות הנחיות לפי שינויים בפרויקט (גרסאות, כלים חדשים)
חודשיסנכרנו הנחיות ארגוניות — וודאו שצוותים חדשים מכירים את ההנחיות
אם אתם עושים רק דבר אחד מהפרק הזה

צרו קובץ .github/copilot-instructions.md בפרויקט הראשי שלכם עם 5 כללים ספציפיים: שם הפרויקט, tech stack, naming convention, פקודת test, וכלל error handling אחד. זה ייקח 5 דקות ותראו שיפור מיידי באיכות הפלט של Copilot.

בדקו את עצמכם — 5 שאלות
  1. למה קובץ copilot-instructions.md לא משפיע על autocomplete?
    (רמז: חשבו על ההבדל בזמן התגובה בין chat ל-inline suggestions)
  2. איך הנחיות מרמות שונות (אישי, פרויקט, ארגון) מתנהגות כשיש ביניהן סתירה?
    (רמז: התשובה קשורה לאופן שבו ההנחיות מתמזגות)
  3. מה ההבדל בין AGENTS.md ל-copilot-instructions.md, ומתי תבחרו בכל אחד?
    (רמז: חשבו על צוות שמשתמש ביותר מכלי AI אחד)
  4. למה Code Review קורא הנחיות מה-base branch ולא מה-feature branch, ואיך זה משפיע על workflow?
    (רמז: מה היה קורה אם מישהו היה משנה את ההנחיות ב-PR עצמו?)
  5. איך תדעו אם הנחיה ספציפית מספיק — מה שלושת הקריטריונים?
    (רמז: חזרו למסגרת ההחלטה של 3 שאלות)

4 מתוך 5 = עברתם. אם נתקעתם — חזרו לסעיף הרלוונטי.

סיכום הפרק

הפרק הזה חשף את אחד ההבדלים הגדולים ביותר בין שימוש בסיסי ל-mastery ב-Copilot: מערכת ההנחיות המדורגת. הרעיון המרכזי הוא שאתם לא צריכים להגיד ל-Copilot שוב ושוב מה ההעדפות שלכם — אתם כותבים את זה פעם אחת בקובץ, והוא קורא אוטומטית. זו קפיצת מדרגה באפקטיביות שדורשת 15 דקות עבודה חד-פעמית.

הגילוי המפתיע ביותר עבור רוב המפתחים הוא שההנחיות לא חלות על autocomplete — רק על צ'אט, Agent Mode, ו-Code Review. ההבנה הזו לבדה חוסכת שעות של תסכול. בנוסף, מגבלת 4,000 התווים ב-Code Review היא מלכודת שחשוב להכיר מראש.

הערך המעשי הגדול ביותר הוא קובץ copilot-instructions.md טוב — אפילו 5 כללים ספציפיים משנים את האיכות. וכשמוסיפים קבצי .instructions.md ממוקדים לפי סוגי קבצים, הנחיות ארגוניות לכל הריפוזיטוריז, ו-AGENTS.md לתאימות צולבת עם כלים כמו Claude Code — מקבלים מערכת שלמה שעובדת עם כל הצוות ועם כל הכלים. הגישה של 80% כללים משותפים ב-AGENTS.md ו-20% כללים ספציפיים בכל כלי היא הדרך הפרקטית ביותר לנהל צוות מרובה-כלים.

בפרק הבא נעבור ל-MCP Servers — שם נלמד איך להרחיב את Copilot עם כלים חיצוניים שנותנים לו גישה ל-APIs, databases, ושירותים שלא קיימים מובנית. אם Custom Instructions מלמדים את Copilot איך לכתוב קוד, MCP Servers מלמדים אותו מה הוא יכול לעשות.

צ'קליסט — בדקו שהשלמתם