# v0.2.0 — Platform Track Handover

> Active handover. If you are a Claude Code session opening this
> repo, after reading `CLAUDE.md` at the root, read this next.
>
> Supersedes: `docs/handovers/v0.1.4-next-session.md` (engineering
> task list still valid; this doc adds the strategic frame above it).

---

## 1. The strategic shift

As of v0.1.4 (commit `bd12eb7`), the project's strategic frame is
formalized:

> **JAMES is a mother platform, not a product.**
>
> Domain packs (legal, food, retail, travel, finance, etc.) will
> branch from it **only at v1.0**, approximately 22 months from now.
> Until then, all work hardens the mother. Domain-specific code
> introduced before v1.0 will be reverted in review.

This frame is documented in `docs/PLATFORM_READINESS.md`. Read that
file before proposing any work that touches a domain (legal clauses,
food labels, POS connectors, etc.).

## 2. Where v0.2 stands today (updated 2026-05-13)

The six axes are **complete**. Live status per ROADMAP:

| Axis | Status | Done-when |
|---|---|---|
| 1 Architecture Separation | ✅ | `import` graph acyclic; every `core/` file < 20 KB |
| 2 Evaluation Harness | ✅ | PR cannot land without bench numbers |
| 3 Observability / Tracing | ✅ | Hallucination report diagnosable by trace_id alone |
| 4 Security Boundary | ✅ | Removing PolicyEngine breaks ≥ 6 modules |
| 5 Controlled Evolution | ✅ | Deploy without `approver_username` is rejected |
| 6 Real-Data Validation | ✅ | Second user secured (2026-05-13) — gate clear |

**v0.2 → v0.3 gate clear.** v0.2.0 closes as the recruitment task
landed; the project formally moves into v0.3 Platform Skeleton mode.
This handover is preserved for audit trail but the active deliverable
queue is now in the v0.3 entry document (see §3).

### v0.2.x cycles that landed on top of the six axes

- **Frontend dark UI** — token unification, mobile.css extraction,
  inline `<style>` extraction (PR #246), reasoning panel phase
  grouping (PR #235), event-delegation rollout (§5, PRs #230 #241
  #232 #233), workspace CR panel (PR #239). HANDOVER_WEB_UI.md §4
  rollout list now fully closed except for #2 (already done) and
  #8 (just landed); workspace + graph inline-style follow-up
  (#8b) deliberately deferred.
- **Change Request primitive** — `core/change_request.py` +
  `core/change_request_apply.py` + 6 endpoints + workspace UI.
  Two `target_type`s land: `wiki_entity` (PR #243) and
  `run_jobs` (PR #240). Trust zone documented in
  `docs/ARCHITECTURE.md §5.6`. The self-evolution gate wrap is
  **deferred** — see `docs/handovers/v0.2.x-cr-track.md § 5` for
  the scoping decision.
- **Security** — dependabot 6 high-severity alerts closed
  (urllib3 ≥ 2.7.0 + python-multipart ≥ 0.0.27, PR #244).

## 3. v0.3 entry — active queue (2026-05-13~)

Axis 6 closed → v0.3 Platform Skeleton 활성. 다음 사이클 진입점은
**`docs/handovers/v0.3.0-platform-track.md`** (신설). 본 문서는 v0.2
종료 시점의 audit-trail 로 보존.

핵심 트랙 (자세히는 v0.3 handover 와 `ROADMAP.md` v0.3 섹션 참조):
- **Track A / B** — License + CLA Assistant + Plugin manifest `license:`
  field. `docs/handovers/session-2026-05-09-license-infrastructure.md`
  마스터 체크리스트.
- **Track C** — Plugin API skeleton (`core/plugins/` + `packs/general/`).
- **Knowledge Cascade** — 5 phase 스키마 진화 + delete/modify cascade
  + graph editor (`docs/design/v0.3-knowledge-cascade.md`).
- **CR-E** — self-evolution gate → Change Request 래핑 (v0.2.x §5 디퍼).
- **Carryover** — `core/memory/store.py` 21 KB split (rule #5), Audit
  Phase 4b-2 16 JSONL writer 제거.

### Frontend follow-ups (v0.2 closure, 작은 PR)
- HANDOVER_WEB_UI.md §3 잔여: sensitivity 배지 (백엔드 wiring),
  retrieve→expand→verify timeline (per-stage timing surface)
- 정공법 라이브 검증 (사용자 직접): cleanup_web_noise_entities.py
  `--apply` + 엔비디아 재학습 + 그래프 edge 확인

### 일상 사용 차단 (긴급, v0.3 와 독립)
- 새 세션 리프레쉬 안 됨 (PR #249 영향 진단)
- 장기기억 후 그래프 cache invalidation (서버 재시작 불요)
- 챗 UX 묶음: 제안 버튼 형성 일관화, 부분 추론 웹검색 옵션, 장기기억
  저장 모달 UI 개선

## 4. Open issues snapshot

Run `gh issue list` for the live list. Highlights as of last update:

- Issue #5 — Entity type classification: products mislabeled as org
- Issue #6 — Relation label distribution skewed (RELATED_TO = 91%)
- Issue #8 — Define policy for risky coding requests
- Issue #14 — Upload progress UI (frontend)
- Issue #29 — Architecture split (mostly resolved by PRs #35-#39;
  store.py size remains)

## 5. Things to deliberately NOT do this cycle

- Do not propose a domain pack (legal, food, retail). v0.3 is the
  earliest reasonable point and we are not there.
- Do not modify `docs/PLATFORM_READINESS.md` to allow earlier
  branching. The discipline is the asset.
- Do not enable self-evolution by default. Even after Axis 5
  lands, the default is OFF.
- Do not couple `PolicyEngine` to a specific domain's role taxonomy
  (it must accept a pluggable role schema).

## 6. Branch / PR / commit conventions

(Same as `CLAUDE.md` — repeated here for handover self-containment.)

- Branches: `fix/v0.2-<topic>`, `chore/v0.2-<topic>`,
  `docs/v0.2-<topic>`
- PR body sections: `## Summary`, `## Verification`,
  `## Out of scope`; bench numbers if applicable
- Issue closing: `Closes #N` in PR body, not commit message
- Always non-main branch → PR → self-merge after bench check

## 7. Companion documents

| Document | Purpose |
|---|---|
| `CLAUDE.md` | Session-start primer (read first) |
| `docs/PLATFORM_READINESS.md` | Strategic frame + 6-dimension gates |
| `docs/ARCHITECTURE.md` | Design principles + non-goals |
| `ROADMAP.md` | v0.2 → v0.3 → v0.4 → v1.0 plan |
| `docs/handovers/v0.2.1-business-track.md` | Business-frame companion to this doc |
| `docs/handovers/v0.1.4-next-session.md` | Previous engineering task list (still valid for tasks; this doc adds frame) |
| `docs/handovers/v0.1.3.1-hotfix.md` | Historical: P0 security fixes + business audit |
| `frontend/HANDOVER_WEB_UI.md` | UI redesign track (separate branch) |

## 8. 한국어 요약

이 사이클(v0.2)부터 자메스는 **모체 플랫폼**으로만 강화합니다. 도메인 작업은 v1.0 이후. 다음 세션은 Axis 4 (PolicyEngine 분리) → Axis 2 (RAGAS) → Axis 3 (trace_id) → Axis 2 (STEP 7 lock) 순서로 진행하세요. 자세한 전략 컨텍스트는 `docs/PLATFORM_READINESS.md`, 세션 진입 규칙은 루트의 `CLAUDE.md` 참조.
