Forge
markdowne8ad0934
1# JavaScript — operational playbook v1
2
3**Purpose:** перевод **fundamentals** (модель языка ECMAScript в KB) в **действия, контракты и проверки** в репозитории и CI.
4**Мир:** `software.javascript`.
5**Связь:** карта fundamentals + operational kb — [`index-knowledge-javascript-cluster-v1.md`](index-knowledge-javascript-cluster-v1.md).
6
7---
8
9## 1. Порядок слоёв: fundamentals → operational
10
111. **`status-javascript-v1.md`** — снимок домена и триггеры.
122. **Этот playbook** — когда и что проверять в работе (прочитать до углубления в kb).
133. **Fundamentals (теория / спецификация):** один или цепочка карточек из §2 — **не грузить все сразу** без full pass.
144. **Operational (экосистема):** [`kb-javascript-operational-ecosystem-v1.md`](kb-javascript-operational-ecosystem-v1.md) — после fundamentals или сразу при чисто инфраструктурном вопросе (lockfile, audit, CSP).
15
16---
17
18## 2. Слой fundamentals (карточки)
19
20Читать **последовательно** только при явном «полном фундаментальном проходе»; иначе — **одна** карточка по таблице в index.
21
22| Шаг | Файл | Кратко |
23|-----|------|--------|
24| A1 | `kb-javascript-ecmascript-and-modules-v1.md` | редакции ECMA-262, ESM/CJS, транспиляция vs полифилл, **движки и хосты** |
25| A2 | `kb-javascript-types-coercion-and-scope-v1.md` | типы времени выполнения, принуждения, TDZ, замыкания, `this` |
26| A3 | `kb-javascript-objects-prototypes-and-classes-v1.md` | прототипы, классы, `#`, итерируемость |
27| A4 | `kb-javascript-async-and-event-loop-v1.md` | Promises, async/await, микро/макрозадачи, AbortSignal |
28
29**Остановка:** после шага, закрывшего вопрос.
30
31---
32
33## 3. Слой operational (карточка)
34
35| Файл | Когда |
36|------|--------|
37| `kb-javascript-operational-ecosystem-v1.md` | npm/semver/lockfile, ESLint/Prettier, бандлеры, тест‑раннеры, XSS/CSP/eval, audit в CI |
38
39---
40
41## 4. Мост «fundamentals → действие в проекте»
42
43| Идея (fundamentals) | Практический шаг |
44|----------------------|------------------|
45| ESM vs CJS, `import.meta` | Зафиксировать `package.json` `"type"`, соглашение по `.mjs`/`.cjs`, проверить граф на CI |
46| Транспиляция vs полифилл | Записать матрицу сред и `targets`; не смешивать «только синтаксис» с рантайм‑полифиллами без учёта |
47| TDZ / порядок модулей | Минимальный reproduce циклического графа; не «лечить» порядком импортов без модели |
48| `this` и стрелки | Один задокументированный стиль для колбэков на границах публичного API |
49| Микрозадачи / async | Один тест порядка Promise vs `setTimeout` в **целевой** среде CI |
50| Фабрики vs `new` | Явная команда договорённость в style guide для объектных API |
51
52---
53
54## 5. Full pass (fundamentals → operational)
55
56**Фаза A (fundamentals):** A1 → A2 → A3 → A4 (как в §2).
57**Фаза B (operational):** `kb-javascript-operational-ecosystem-v1.md`.
58
59Не выполнять обе фазы в одной загрузке контекста без необходимости.
60
61---
62
63## 6. Evidence‑based рабочий формат
64
65- **Fact:** версия движка (`node -p process.versions`), матрица браузера из конфигурации или Baseline.
66- **Hypothesis:** ожидаемый эффект изменения (сборка, порядок задач, разрешение модулей).
67- **Check:** минимальный reproduce в целевом рантайме.
68- **Decision criterion:** тест + зелёный CI на целевой ветке зависимостей.
69- **Confidence mark:** явно.
70
71---
72
73## 7. Контракты (сжато)
74
75- **Runtime:** не смешивать ментальную модель «браузерный global» и ESM‑модуля Node без явной политики.
76- **Dependencies:** приложения — lockfile под VCS; audit как сигнал, не как единственная защита.
77- **Security:** минимизировать `eval`/`Function` от пользовательских строк; CSP — осознанно, вместе с экранированием HTML.
78
79---
80
81## 8. Смежные домены
82
83- **TypeScript** (`software.typescript`) — отдельный онбординг; не подменяет fundamentals JS.
84- **RegExp во flavor JS:** `worlds/pattern-regex/regex-playbook.md` → `worlds/pattern-regex/kb-regex-flavors-practice-v1.md` § JavaScript.
85
86---
87
88## 9. Revisit triggers
89
90- Смена major платформы (ESM‑only, смена разрешения модулей в Node).
91- Массовые deprecations после обновления движка или ESLint major.
92
93---
94
95## Layer (memory-architecture)
96
97- **L1:** `status-javascript-v1.md` → **этот** playbook.
98- **L1 deep fundamentals:** карточки §2 по одной.
99- **L1 operational:** `kb-javascript-operational-ecosystem-v1.md`.
100
101---
102
103*Версия: v1 · operational split fundamentals → operational · 2026-05-10*
104
105
View only · write via MCP/CIDE