# פרק 6 - קלוד וקודקס ביחד על אותו פרויקט (Handoff)

> "Chat, Cowork, Code ו-Codex הם ארבעה חללים עם דלתות שונות לאותה צורת עבודה."

---

## 6.1 מה זה קודקס באוגוסט 2026 (בקצרה)

קודקס = הסוכן של OpenAI. מותג אחד, ארבע דלתות:
- **CLI** (`codex` בטרמינל, קוד פתוח)
- **תוסף IDE**
- **טאב Codex בתוך אפליקציית ChatGPT** (ביולי הם איחדו את אפליקציית Codex לתוך ChatGPT. סשנים מקבילים עם worktrees, תור ביקורת, דפדפן פנימי, computer use)
- **Codex cloud** (chatgpt.com/codex + אפליקציית ChatGPT בטלפון; **Codex Remote** = QR מהמק לטלפון, בדיוק כמו Remote Control)

מודלים: משפחת GPT-5.6 (Sol החזק, Terra המאוזן - זה מה שאני מריץ, Luna הזול). קונטקסט 272 אלף.
הכל מ-`~/.codex/`. הגדרות ב-`~/.codex/config.toml`.

**העקרונות זהים:** תיקייה, הוראות, סקילים, כלים, הרשאות, תוצר. מי שמכיר קלוד קוד מבין קודקס בעשר דקות. אותו SKILL.md עובד בשניהם.

**למה שניהם?** כי כל אחד טוב במשהו אחר ביום נתון, כי שני מנויים = כפול מכסה, וכי שני מוחות על אותה בעיה תופסים יותר. אני: קלוד לחשיבה, כתיבה, ניהול, מחקר; קודקס לבנייה מכנית ארוכה ולביקורת. אצלי Bootch/reelsmith נבנה עם קודקס וקלוד הוא הסוקר החיצוני.

---

## 6.2 CLAUDE.md מול AGENTS.md - הדף על הקיר, בשני כתבי יד

**AGENTS.md** = ה-CLAUDE.md של קודקס. אותו רעיון: קובץ Markdown שנטען אוטומטית. הוא גם סטנדרט פתוח (Cursor, Copilot, Gemini CLI קוראים אותו).

| | Claude Code | Codex |
|---|---|---|
| קובץ | `CLAUDE.md` (+ `CLAUDE.local.md`, `.claude/rules/`) | `AGENTS.md` (+ `AGENTS.override.md` שדורס זמנית) |
| גלובלי | `~/.claude/CLAUDE.md` | `~/.codex/AGENTS.md` |
| מיזוג | מהשורש למטה, הקרוב מנצח, תת-תיקיות נטענות עצלנית | מהשורש למטה, הקרוב מנצח |
| תקרה | אין (המלצה: <200 שורות) | 32KB לכל הקבצים יחד (`project_doc_max_bytes`) |
| ייבוא | `@קובץ` | אין. אבל `project_doc_fallback_filenames = ["CLAUDE.md"]` אומר לו לקרוא CLAUDE.md כשאין AGENTS.md |
| התחלה | `/init` | `/init` |
| זיכרון אוטומטי | `~/.claude/projects/<פרויקט>/memory/` | `~/.codex/memories/` (גלובלי, `/memories`) |

**חשוב:** קלוד קוד **לא** קורא AGENTS.md לבד. קודקס **לא** קורא CLAUDE.md לבד. ו"אז AGENTS.md הוא Agent?" לא. זה קובץ טקסט. השם מבלבל.

### הפתרון: קובץ אחד, שני קוראים

**אופציה א' (ההמלצה הרשמית של אנתרופיק):** AGENTS.md הוא הקנוני, ניטרלי לכלי. CLAUDE.md מכיל שורה אחת + תוספות לקלוד:
```markdown
@AGENTS.md

## Claude Code
תשתמש ב-plan mode לכל שינוי בתיקיית output/.
```
זה מה שעשיתי בערכת המשתתפים של TAU: CLAUDE.md רזה שמצביע על AGENTS.md.

**אופציה ב' (מה שיש לי ב-Downloads):** CLAUDE.md הוא הקנוני (מפת ניווט ענקית). לקודקס - AGENTS.md של 5 שורות: "תקרא את CLAUDE.md קודם, אותם כללים חלים עליך", או שורה ב-`config.toml`: `project_doc_fallback_filenames = ["CLAUDE.md"]`. שימו לב ל-32KB.

**אופציה ג':** symlink (`ln -s AGENTS.md CLAUDE.md`). עובד במק, לא בווינדוס, ואי אפשר תוספות לקלוד.

**מה לא לעשות:** לתחזק שני קבצים שונים ביד. הם יתפצלו תוך שבועיים. זה הכשל מספר אחת שמדווחים עליו.

**כלים לגשר:** `/import` בקלוד (2.1.213+) מעתיק חד-פעמית הגדרות של קודקס (AGENTS.md, MCP, סקילים). ובאפליקציית ChatGPT יש מאוגוסט "Import from Claude Code / Cowork / Cursor" עם סנכרון.

---

## 6.3 סקילים וזיכרון - משותפים או נפרדים?

**סקילים:** משותפים. אותו SKILL.md. קודקס מחפש ב-`~/.codex/skills`, `.codex/skills`, `~/.agents/skills`, `.agents/skills`. אצלי:
```bash
ln -s ~/.claude/skills/hyperframes ~/.codex/skills/hyperframes
```
20 כאלה. בערכת TAU שמתי את אותם 7 סקילים גם ב-`.claude/skills` וגם ב-`.agents/skills`. "לא צריך לבחור ולא צריך למחוק."
מפעילים: קלוד `/שם`, קודקס `$שם` (`/skills` לרשימה, `$skill-installer` להוריד מהקטלוג של OpenAI).

**זיכרון:** נפרד, וזה בסדר. לקלוד יש זיכרון לפי תיקייה; לקודקס זיכרון גלובלי ב-`~/.codex/memories/` (עם MEMORY.md, סיכומי סשנים, ואפילו `.git` פנימי; מופעל אצלי: `[features] memories = true`). שניהם Markdown, שניהם קריאים.
**מה שצריך להיות בשני המוחות - לא סומכים על אף זיכרון. שמים בקובץ בפרויקט.** (פרק 2, ופרק 7.)

---

## 6.4 Handoff - איך מוסרים עבודה בין קלוד לקודקס (ובין סשן לסשן)

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

### הפנקס המשותף - שלושה קבצים

1. **`HANDOFF.md` / `KICKOFF_*.md`** (מצב חי, נכתב מחדש כל סשן): מטרה, מה נעשה, מה הבא, חסמים, החלטות, **נקודת עצירה לאישור**. הנוסח שקודקס עצמו שמר עליי בזיכרון: "כשמבקשים handoff, לתת מסמך אחד מסודר, copy-paste-able, עם נתיבים, אילוצים, בדיקות קבלה ועצירת אישור."
2. **`TASKS.md`** - רשימת משימות אחת. `[ ]` / `[x]`. מקור אמת יחיד.
3. **`AGENT_LOG.md`** - append-only. שורה לכל פעולה משמעותית: `| תאריך שעה | סוכן | פעולה | סטטוס |`. כל סוכן קורא את 5-10 השורות האחרונות **לפני** שהוא עושה משהו שיכול להתנגש (אירוע ביומן, יצירת קובץ, טיוטת הודעה).

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

### כללי הברזל (לשים ב-AGENTS.md/CLAUDE.md של שניהם)
1. לפני כתיבה חיצונית (יומן, מייל, קובץ) - **חפש קודם**. `list_events` עם מילת מפתח, Glob לנתיב.
2. בדוק את טבלת "פעילים" ב-AGENT_LOG.
3. פעל, ואז **שורת לוג מיד** (לא בסוף הסשן).
4. פעולות **אידמפוטנטיות**: שמות קבצים דטרמיניסטיים (`MEETING_SUMMARY_2026-05-27_realclicks.md`), "ערוך אם קיים, אחרת צור".
5. **נתיב בעלות** לכל סוכן בסשן: קלוד = hub/תכנון, קודקס = בנייה ב-worktree. כתוב ב-HANDOFF.
6. מה שחייב לשרוד החלפת כלי - **בקובץ בריפו**, לא בצ'אט.

### git הוא החוזה
- שניהם עושים commit, עם שם הסוכן בהודעה (`[claude]`, `[codex]`). הסוקר קורא `git log -p` במקום צ'אט.
- עבודה מקבילית -> **worktrees** (שתי האפליקציות יוצרות לבד; בטרמינל `git worktree add ../proj-codex codex/feature`). שני סוכנים לא נוגעים באותו קובץ בו-זמנית.
- קודקס בכלל נחמד יותר בתיקיית גיט (מצב Auto במקום read-only, `codex exec` מסרב לתיקייה בלי גיט). לכן: **`git init` על הכל**, גם על תיקיית Markdown.

### תבניות עבודה שעובדות
- **בונה / מבקר:** קלוד בונה, קודקס מבקר (`codex review` או `$review-agent`). או הפוך. אני עושה את זה על reelsmith.
- **ספק-קודם:** אחד כותב בדיקות/קריטריוני קבלה, השני מממש.
- **הצלבה:** אותה משימה בשני ענפים, משווים גישות.
- **"קלוד מבין, קודקס מבצע":** קלוד חוקר ומתכנן, קודקס עושה 40 קבצים מכניים.

### לקרוא אחד לשני ישירות (מתקדם)
- **קודקס מתוך קלוד:** `claude mcp add codex --scope user -- codex mcp-server` (קודקס הופך לשרת MCP עם כלים `codex` ו-`codex-reply`). או פשוט מהטרמינל של קלוד: `codex exec -s workspace-write -a never -o /tmp/out.md "תבדוק את ה-diff האחרון ותרשום באגים"` ואז קלוד קורא את הקובץ.
- **קלוד מתוך קודקס:** `claude mcp serve` (קלוד כשרת MCP), ב-config.toml: `[mcp_servers.claude-code] command="claude" args=["mcp","serve"]`. או `claude -p "..." --output-format json` מהטרמינל של קודקס.
- יש לי סקיל בקודקס `claude-export-context` שקורא `/export` של קלוד ומזקק אותו לזיכרון של קודקס.

---

## 6.5 מה שיש לי בפועל (כדי שתראו שזה לא תיאוריה)

```
Downloads/
├── CLAUDE.md          <- מפת הניווט (קלוד)
├── AGENTS.md          <- (ריק כרגע! משימה: 5 שורות "תקרא CLAUDE.md")
├── TASKS.md           <- מקור אמת למשימות
├── AGENT_LOG.md       <- כל פעולה של כל סוכן, מאז מאי
├── GenOS/             <- המוח השני (פרק 7), שניהם קוראים
└── E.Y.AI/לקוחות/X/KICKOFF_X.md   <- handoff לכל פרויקט
```
- `~/.codex/skills/` - 20 symlinks ל-`~/.claude/skills/`.
- קודקס עם זיכרון פעיל, מודל terra, 26 פלאגינים.
- reelsmith: קודקס בונה, קלוד סוקר.

**משימה שיצאה מהפרק:** למלא את `~/.codex/AGENTS.md` ואת `Downloads/AGENTS.md` בכללי הברזל. (נוסף ל-TASKS.)

---

## 6.6 מה זה נותן לי?
- לא מסבירים פעמיים. הקובץ מסביר.
- לא יוצרים אירוע פעמיים. הלוג עוצר.
- שני מוחות, שתי מכסות, אותה תיקייה, אפס בלגן - אם יש פנקס, גיט וכללים.
