docs: bootstrap .planning/ via /gsd-ingest-docs (2 docs) /home/parf/projects/work/repremium/.planning/PROJECT.md /home/parf/projects/work/repremium/.planning/REQUIREMENTS.md /home/parf/projects/work/repremium/.planning/ROADMAP.md /home/parf/projects/work/repremium/.planning/STATE.md /home/parf/projects/work/repremium/.planning/intel /home/parf/projects/work/repremium/.planning/INGEST-CONFLICTS.md /home/parf/projects/work/repremium/.ingest-manifest.yaml
This commit is contained in:
126
.planning/intel/context.md
Normal file
126
.planning/intel/context.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Context (synthesized from SPEC §1, §9 and DOC)
|
||||
|
||||
Background, stakeholders, scope boundaries, and developer-facing operational
|
||||
context. Functional requirements are in `requirements.md`; technical decisions
|
||||
are in `decisions.md`; non-functional constraints are in `constraints.md`.
|
||||
|
||||
---
|
||||
|
||||
## Topic: Project goal
|
||||
|
||||
- Source: `Тз расширение фаза1.md` §1 (Контекст и цель)
|
||||
- Notes:
|
||||
- Operators work inside a browser and periodically make mistakes that are
|
||||
hard to diagnose after the fact.
|
||||
- The goal of Phase 1 is to silently and continuously record an operator's
|
||||
session so that, on a button press, a self-contained archive of the
|
||||
session can be exported to the "Downloads" folder for handoff to support.
|
||||
- Phase 1 is local-only; no server, no AI, no auto-ticketing.
|
||||
|
||||
---
|
||||
|
||||
## Topic: Phase 1 scope (what is in)
|
||||
|
||||
- Source: `Тз расширение фаза1.md` §4, §5, §6, §7, §10; `README.md` §"Особенности"
|
||||
- Notes:
|
||||
- Continuous in-memory recording of:
|
||||
- Last 30 s of active-tab video (`chrome.tabCapture` + MediaRecorder)
|
||||
- Last 10 min of DOM events via rrweb (cap 5 000 events)
|
||||
- Last 10 min of user/runtime events (click, input, navigation, js_error,
|
||||
network_error)
|
||||
- One-shot screenshot at export time (`chrome.tabs.captureVisibleTab`).
|
||||
- Local ZIP packaging via JSZip and delivery via `chrome.downloads`.
|
||||
- Sensitive-data masking for passwords and `[data-sensitive="true"]` fields.
|
||||
- Single-button popup UI with idle / saving / done state machine.
|
||||
|
||||
---
|
||||
|
||||
## Topic: Phase 1 non-goals (Phase 2 work)
|
||||
|
||||
- Source: `Тз расширение фаза1.md` §9 (Что НЕ входит в Фазу 1)
|
||||
- Notes — explicitly excluded from Phase 1 and reserved for Phase 2:
|
||||
- Sending data to a server
|
||||
- AI-driven diagnostics
|
||||
- Automatic ticket creation
|
||||
- Analytics dashboard
|
||||
- Audio recording
|
||||
|
||||
---
|
||||
|
||||
## Topic: Developer workflow (install, build, debug)
|
||||
|
||||
- Source: `README.md` §"Установка и запуск", §"Отладка", §"Структура проекта"
|
||||
- Provenance: This topic is DOC-only — the SPEC does not specify a build
|
||||
toolchain. Per precedence `SPEC > DOC`, any future SPEC/ADR that prescribes a
|
||||
different toolchain auto-overrides what is recorded here.
|
||||
- Notes:
|
||||
- **Install deps:** `npm install`
|
||||
- **Dev build with HMR:** `npm run dev`
|
||||
- **Prod build:** `npm run build`
|
||||
- **Load in Chrome:**
|
||||
1. `npm run build`
|
||||
2. Open `chrome://extensions/`
|
||||
3. Enable Developer mode
|
||||
4. "Load unpacked"
|
||||
5. Select the `dist/` folder
|
||||
- **Debugging entry points:**
|
||||
- Service Worker: Chrome DevTools → Extensions → Service Worker → Console
|
||||
- Content Script: Chrome DevTools on the page → Console
|
||||
- Popup: right-click popup → "Inspect"
|
||||
- **Project layout (DOC-described, may be stale relative to actual repo):**
|
||||
```
|
||||
ai-call-extension/
|
||||
├── src/
|
||||
│ ├── background/ # Service Worker
|
||||
│ │ └── index.ts
|
||||
│ ├── content/ # Content Script
|
||||
│ │ └── index.ts
|
||||
│ ├── popup/ # Popup UI
|
||||
│ │ ├── index.html
|
||||
│ │ ├── index.ts
|
||||
│ │ └── style.css
|
||||
│ └── shared/ # Common types + utilities
|
||||
│ ├── types.ts
|
||||
│ └── logger.ts
|
||||
├── icons/
|
||||
├── dist/
|
||||
├── manifest.json
|
||||
├── vite.config.ts
|
||||
├── tsconfig.json
|
||||
└── package.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Topic: User-facing flow
|
||||
|
||||
- Source: `Тз расширение фаза1.md` §5; `README.md` §"Использование"
|
||||
- Notes:
|
||||
1. First popup open requests screen-recording permission (mandatory).
|
||||
2. Recording starts automatically once granted.
|
||||
3. To file an error report:
|
||||
- Click the extension icon.
|
||||
- Click "Сохранить отчёт об ошибке".
|
||||
- Archive lands in the user's "Downloads" folder automatically.
|
||||
4. Button state cycle: `idle` → "Сохраняю..." → "Готово! ✓" → `idle`
|
||||
(3 s revert).
|
||||
|
||||
---
|
||||
|
||||
## Topic: Licensing and support
|
||||
|
||||
- Source: `README.md` §"Лицензия", §"Контакты"
|
||||
- Notes:
|
||||
- License: **MIT**
|
||||
- Support contact: addressed to "support" (no concrete channel listed in
|
||||
DOC).
|
||||
|
||||
---
|
||||
|
||||
## Topic: Russian-source provenance
|
||||
|
||||
- Source: both documents (`Тз расширение фаза1.md`, `README.md`)
|
||||
- Notes: Both source documents are authored in Russian. UI strings ("Сохранить
|
||||
отчёт об ошибке", "Последние 30 сек видео + 10 мин лога", "Сохраняю...",
|
||||
"Готово! ✓") are part of the user-facing contract and MUST be preserved
|
||||
verbatim. Section identifiers and technical names use Latin script.
|
||||
Reference in New Issue
Block a user