docs: update CLAUDE.md — webhook pipeline, scheduled jobs, paperclip_api.py
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 8s
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 8s
- Document emit_case_status_webhook flow and plugin integration - Document stale-case-reminder and weekly-feedback-analysis jobs - Fix paperclip_api.py vs paperclip_client.py (both exist, api.py is current) - Add warning: weekly-feedback-job CEO has no issueId Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
31
CLAUDE.md
31
CLAUDE.md
@@ -126,9 +126,10 @@
|
|||||||
│ ├── training/ ← 4 החלטות לאימון (DOCX)
|
│ ├── training/ ← 4 החלטות לאימון (DOCX)
|
||||||
│ ├── exports/ ← טיוטות DOCX מיוצאות
|
│ ├── exports/ ← טיוטות DOCX מיוצאות
|
||||||
│ └── cases/{case-number}/ ← תיקי עררים (מבנה שטוח, סטטוס ב-DB)
|
│ └── cases/{case-number}/ ← תיקי עררים (מבנה שטוח, סטטוס ב-DB)
|
||||||
├── web/ ← FastAPI backend (Python): 75 API endpoints
|
├── web/ ← FastAPI backend (Python): 75+ API endpoints
|
||||||
│ ├── app.py ← API ראשי
|
│ ├── app.py ← API ראשי
|
||||||
│ ├── paperclip_client.py ← אינטגרציית Paperclip
|
│ ├── paperclip_api.py ← אינטגרציית Paperclip: `pc_request()` + `emit_case_status_webhook()`
|
||||||
|
│ ├── paperclip_client.py ← legacy client (ישן — השתמש ב-paperclip_api.py)
|
||||||
│ └── gitea_client.py ← אינטגרציית Gitea
|
│ └── gitea_client.py ← אינטגרציית Gitea
|
||||||
├── web-ui/ ← Next.js frontend (TypeScript/React): ממשק המשתמש
|
├── web-ui/ ← Next.js frontend (TypeScript/React): ממשק המשתמש
|
||||||
│ └── next.config.ts ← proxy: /api/* → FastAPI :8000
|
│ └── next.config.ts ← proxy: /api/* → FastAPI :8000
|
||||||
@@ -197,6 +198,32 @@
|
|||||||
- הסקריפט מסנן local skills שלא קיימים ב-CMPA (מציג אזהרה), משתמש ב-API (לא DB ישיר), יוצר revisions, idempotent.
|
- הסקריפט מסנן local skills שלא קיימים ב-CMPA (מציג אזהרה), משתמש ב-API (לא DB ישיר), יוצר revisions, idempotent.
|
||||||
- שאלות ה-skill הרשמי של Paperclip — `paperclip` skill תחת `paperclipai/paperclip`.
|
- שאלות ה-skill הרשמי של Paperclip — `paperclip` skill תחת `paperclipai/paperclip`.
|
||||||
|
|
||||||
|
### Webhook יוצא — עדכון סטטוס תיק לפלאגין
|
||||||
|
|
||||||
|
כשסטטוס תיק משתנה דרך `PUT /api/cases/{case_number}`, הבקאנד שולח webhook אסינכרוני לפלאגין:
|
||||||
|
|
||||||
|
```
|
||||||
|
PUT /api/cases/{case_number} → emit_case_status_webhook() [BackgroundTask]
|
||||||
|
→ POST /api/plugins/marcusgroup.legal-ai/webhooks/case-status
|
||||||
|
→ plugin-legal-ai/onWebhook()
|
||||||
|
→ comment בעברית על issue + CEO wakeup (כשסטטוס = qa_failed)
|
||||||
|
```
|
||||||
|
|
||||||
|
- הקוד ב-`web/paperclip_api.py` (`emit_case_status_webhook`), fire-and-forget, timeout 5s
|
||||||
|
- הפלאגין שומר idempotency key ב-state עם TTL 5 דקות למניעת spam על retry
|
||||||
|
- `GET /api/cases/stale?days=N` — תיקים שלא עודכנו N ימים; מוחרגים: `new`, `final`, `exported`
|
||||||
|
- `GET /api/chair-feedback/weekly-summary` — סיכום פידבק YU"R לשבוע האחרון
|
||||||
|
|
||||||
|
### Scheduled Jobs (plugin-legal-ai)
|
||||||
|
|
||||||
|
| Job | לוח זמנים | מה עושה |
|
||||||
|
|-----|-----------|---------|
|
||||||
|
| `stale-case-reminder` | יומי 08:00 | שולח comment אזהרה על תיקים תקועים >3 ימים |
|
||||||
|
| `weekly-feedback-analysis` | ראשון 19:00 | מעיר CEO לניתוח פידבק YU"R ועדכון `docs/legal-decision-lessons.md` |
|
||||||
|
| `sync-case-status` | כל 30 דק' | מסנכרן סטטוסי תיקים בין legal-ai ל-Paperclip |
|
||||||
|
|
||||||
|
CEO שמתעורר מ-`weekly-feedback-job` כותב לקובץ בלבד — **אין לו issueId, אל תנסה לפרסם comment או לסגור issue**.
|
||||||
|
|
||||||
### External adapters — `deepseek_local`
|
### External adapters — `deepseek_local`
|
||||||
- מיקום ה-package: [adapters/deepseek-paperclip-adapter/](adapters/deepseek-paperclip-adapter/) (לא ב-`node_modules`).
|
- מיקום ה-package: [adapters/deepseek-paperclip-adapter/](adapters/deepseek-paperclip-adapter/) (לא ב-`node_modules`).
|
||||||
- רישום ב-Paperclip: רשומה ב-`~/.paperclip/adapter-plugins.json` (נטען אוטומטית ב-startup דרך `buildExternalAdapters`). אין צורך בעריכת `node_modules`.
|
- רישום ב-Paperclip: רשומה ב-`~/.paperclip/adapter-plugins.json` (נטען אוטומטית ב-startup דרך `buildExternalAdapters`). אין צורך בעריכת `node_modules`.
|
||||||
|
|||||||
Reference in New Issue
Block a user