# Project Profile — 愈心谷 (YuXinGu) > Agent **第一次**读这个文件。不要重新猜技术栈;偏离见 Forbidden + ADR。 > 产品/领域/完成标准权威仍在 `.ai/`;本文件只锁定栈与 ESS 流程入口。 ## Profile Version `2026.08` ## Type `saas-web` + AI Agent(心理洞察 / 画像 / 关系 / 问答陪伴) ## Dual-track governance | Layer | Authority | Path | |-------|-----------|------| | Product · Domain · Lexicon · Feature Spec · DoD | **`.ai/`** | `.ai/product/` · `.ai/domain.md` · `.ai/definition-of-done.md` | | Architecture · Forbidden · ADR | **`.ai/`** | `.ai/architecture.md` · `.ai/forbidden.md` · `.ai/adr/` | | Change process · ECR · Task · Handoff · Roles | **ESS** | `docs/ECR/` · `docs/TASKS/` · `docs/HANDOFF/` · `docs/STATE/` | | Backend change design(涉后台) | **ESS** | `docs/BACKEND_DESIGN/` + `$ESS_ROOT/.../BACKEND_STANDARD.md` | | Stack lock (mirror) | ESS + `.ai/` | 本文 + `.ai/tech-stack.md` | 冲突时:领域与完成标准以 `.ai/` 为准;变更分级与角色门禁以 ESS 为准。 ## Stack Lock | Layer | Choice | |-------|--------| | Language (API) | Go 1.22+ | | Backend | gin · Handler → Service → Repository | | Database | PostgreSQL · migrations under `apps/api/migrations/` | | Frontend | Vue 3 + TypeScript (`strict`) + Vite · Pinia | | Shared | npm workspaces · `@yuxingu/sdk` · `@yuxingu/types` | | Mini-program | Scaffold only until tasked | | Local run | Host Go + Vite;Docker **仅** Postgres(`docker-compose.dev.yml`) | | Deployment | Docker Compose / images — never `latest` in prod | | Architecture Pattern | Monorepo · layered API · REST `{code,message,data}` | ## Forbidden(无 ADR 禁止) - 换后端语言 / 以 GraphQL·gRPC 替代主 REST - 无 ADR 拆微服务 - Handler 直连 DB;UI 直连 DB;页面内裸 `fetch` - Docker-only 日常开发(每次改代码重建应用镜像) - 无 Active Feature Spec(`.ai/product/feature-spec/`)实现新行为 - L2+ 行为变更无 Approved ECR(`docs/ECR/`) - 复制整棵 ESS 进本仓 - 扩展已清理的 Legacy 根 HTML(见 `LEGACY.md`) ## Active anchors - **ESS Intake G0:** **FROZEN** · Validation **Active**(`$ESS_ROOT/ESS_INTAKE_0.2_FREEZE.md`) - **本仓:** `ess_intake: strict` · Retro FAIL · 单 ECR Context - **Ops foundation:** `docs/WAVE0/` · `.ai/domain/boundary-rules.md` · `glossary.yaml` · Loop: `docs/WAVE0/LOOP_AUTHORIZATION.md` - ECR: main 线 ECR-006–016 Closed;Ops 扩展 ECR-013A/B · 017–040;分叉已固定为 `ECR-012-star` / `014-plan` / `015-code` / `016-insight`(见 TRACEABILITY) - **Next ECR / Max Migration:** **Next=`ECR-047`(禁自动开)** · **Max=`000055`** - **Write-Wave CMS:** 041–042 Closed · STOP - **ExploreConfig:** ECR-043…046 Closed · **Loop STOP** · Prompt/Knowledge/Chunk STOP - **Release:** ECR-008 Live Promote **BLOCKED**(独立门禁 · 勿与 Write-Wave 混谈) - EXP: (无) - STATE: `docs/STATE/`(含 ECR-041…046) - TRACEABILITY: `docs/TRACEABILITY.md` · 门禁 `scripts/repo-governance-check.py` - ADR: `.ai/adr/0007-ess-ai-dual-track.md` - Product status: `.ai/product/p1-status.md`(**P1 Complete**)· `.ai/product/p2-status.md`(**P2 Complete**) - Active Spec: `account-auth` · `explore-test` · `home` · `star-profile` · `life-rhythm` · `input-compliance` · `ops-system` · `profile` · `ops-banner-write` · `ops-star-config-write` · `ops-rhythm-config-write` · `ops-image-card-deck-write` · `ops-scale-definition-write` ## WIP(尚未单独 ECR) - (无 · ECR-046 Closed · Loop STOP) - BD-2026-044 状态补丁:工作区可暂留 · **不**自动提交 ## Pointers - Rules: `docs/PROJECT_RULES.md` - Stack detail: `docs/TECH_STACK.md` ↔ `.ai/tech-stack.md` - ESS root: `.ess-root` 或环境变量 `ESS_ROOT` - Agent entry: `AGENTS.md` · `CLAUDE.md`