git clone https://github.com/YOUR_USERNAME/teshuva-algorithm
cd teshuva-algorithm
npm install
npm run buildלגרסת דסקטופ:
npm startלתוסף: טען את extension/ ב-chrome://extensions (Developer mode).
קובץ: brain/categories.js (אל תיגע ב-brain-api.js)
export const CATEGORIES = {
// ... קטגוריות קיימות ...
cooking: {
heLabel: 'בישול',
color: '#F59E0B',
keywords: ['מתכון', 'recipe', 'אוכל', 'food', 'בישול', 'cooking', 'שף']
}
}אחרי הוספה — הפעל npm run build ורענן את התוסף.
- צור
mascot/MySkin.js:
export function createMySkin() {
return {
async init() { /* הכנס דמות ל-DOM */ },
say(text) { /* הצג בועת טקסט */ },
animate(name){ /* הפעל אנימציה */ },
show() { },
hide() { },
onClick(cb) { /* רשום callback */ },
}
}- השתמש בה ב-
bundle-entry.js:
import { createMySkin } from '../../mascot/MySkin.js'
const mascot = createMySkin()
await mascot.init()- הוסף
skin.jsonבתיקייתskins/לפי הפורמט ב-skins/schema.json.
- Fork את הפרויקט
- צור branch:
git checkout -b feat/my-feature - בצע שינויים, כתוב בדיקות
npm test— ודא שהכל עוברnpm run build— ודא שה-bundle נבנהgit commit -m "feat: תיאור קצר"- Push וצור PR
- ESM modules בלבד —
import/export, לאrequire() - אל תיגע ב-
brain-api.jsו-brain/categories.jsישירות — שנה דרך הממשקים - אל תוסיף state ברמת ה-module — השתמש ב-factory functions
- אין DOM בשכבת ה-brain — רק ב-mascot ו-entry points
- Storage רק דרך adapter — לא
chrome.storageישיר מ-brain - בדיקות: צור
tests/feature.test.jsלכל פיצ'ר חדש
feat: הוספת קטגוריה "בישול"
fix: תיקון באג בחישוב weights
docs: עדכון CONTRIBUTING.md
test: הוספת בדיקות ל-insights.js
refactor: פישוט mascot-controller
פתח Issue ב-GitHub עם תג question.
תגיות: bug, enhancement, question, skin, documentation