一键导入
ppt-frontend
Navigate the React/pnpm frontend workspace — apps, shared packages, generated API client, Biome.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Navigate the React/pnpm frontend workspace — apps, shared packages, generated API client, Biome.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Implement one task end-to-end for the PPT project — pick the right per-stack specialist, code, verify per-stack, push a draft PR against `dev`.
Project-management & delivery analysis for the PPT research routine (Phase 1.6). Runs an always-on Scrum Master synthesis plus role-based deep analysis (rotating one role/day by default; all 8 on `full`; a specific role on `pm:<role>`). Reads sprint-status + repo activity + research backlog, spawns role subagents, and writes delivery artifacts under .research/management/. Use from routine Phase 1.6, or standalone for a delivery snapshot.
Post-merge code review with issue creation. Reviews merged PRs in a time window, spots better approaches / missed edge cases / security holes / perf issues / test gaps, and opens GitHub issues with concrete improvement proposals.
Deterministic goal/convergence checks for the PPT dispatcher — coverage referential integrity, coverage-progress monotonicity, and buffer bounds. Run in dispatcher Phase 6 and CI. Use when adding/auditing the dispatcher's goal-verification layer.
Open a PR in this project's style — title, body template, IG3 evidence, CI surface, draft handling.
Land a green, approved PR. Verify preconditions (CI green, approved, no unresolved threads, not draft), auto-resolve mechanical merge conflicts against the base branch (sqlx offline data, Cargo.lock, generated openapi/api-client, lockfiles), then `gh pr merge --squash --auto`. Stops and surfaces if real code conflicts or stale CI.
| name | ppt-frontend |
| description | Navigate the React/pnpm frontend workspace — apps, shared packages, generated API client, Biome. |
| when_to_use | The plan touches anything under frontend/ — an app, a package, or the generated API client. |
| mode | both |
| capabilities | ["C6"] |
| tags | ["frontend"] |
pnpm workspace at frontend/. ppt-web is a Vite + React SPA;
reality-web is a Next.js 16 SSR app. Shared TS packages alongside.
Biome for lint / format on most packages, ESLint per-app. Generated API
clients live as separate packages.
Plan area is frontend, or Suggested approach references
frontend/apps/** or frontend/packages/**.
ppt-typespec)frontend/apps/:
| App | Port | Stack | Notes |
|---|---|---|---|
ppt-web | 3000 | Vite + React (TS, vitest) | Property Management main web (SPA) |
reality-web | 3001 | Next.js 16 (SSR, App Router) | Reality Portal public site |
mobile | n/a | RN / Expo | React Native — see also ppt-mobile-native for the Kotlin native app |
frontend/packages/:
| Package | Purpose |
|---|---|
api-client | Generated client for PPT API (regenerated by just generate-api-client) |
reality-api-client | Generated client for Reality API (just generate-reality-api-client) |
admin-ui | Admin/super-admin UI components |
dev-panel | In-app dev/debug panel |
screen-map | Screen-map generation tooling |
shared | Cross-app types and utils |
sitemap | Sitemap generation |
ui-kit | Shared component library |
vite-plugin-ppt-worktree | Worktree-aware vite plugin |
cd frontend && pnpm install
# dev mode
cd frontend && pnpm dev:ppt # ppt-web (Vite) on :3000
cd frontend && pnpm dev:reality # reality-web (Next.js) on :3001
cd frontend && pnpm dev:mobile # RN/Expo
# build / test one package
cd frontend && pnpm -F <pkg> build
cd frontend && pnpm -F <pkg> test
cd frontend && pnpm -F <pkg> typecheck
just generate-api # both clients
just generate-api-client # PPT only
just generate-reality-api-client # Reality only
These wrap pnpm generate-api / pnpm generate-reality-api. They consume
the spec emitted by ppt-typespec. If the
contract changed, regenerate typespec → API spec → client in that order.just check-frontend # Biome lint + format check
just fix-frontend # auto-fix
just test-frontend # all
cd frontend && pnpm -F @ppt/web test # one app (package name, NOT dir name)
# Other apps: @ppt/reality-web, @ppt/mobile. Packages: @ppt/api-client, @ppt/admin-ui, …
# 1. pnpm available
pnpm --version >/dev/null && echo OK
# expected: OK
# 2. workspace resolves
(cd frontend && pnpm -r exec true >/dev/null 2>&1) && echo OK
# expected: OK (works even before install — exec true is a noop)
# (subshell so the cwd stays at the repo root for the following checks)
# 3. expected apps present (paths from repo root)
for a in ppt-web reality-web mobile; do
test -f "frontend/apps/$a/package.json" || { echo "missing app: $a"; exit 1; }
done
echo OK
# expected: OK
# 4. generated api-client package present
test -d frontend/packages/api-client && echo OK
# expected: OK
cd frontend && pnpm -r list --depth -1 --json >/dev/null
First run after a fresh clone needs
pnpm install(downloads + builds native deps); the smoke check above only verifies the workspace resolves, not that node_modules is populated.
just check-frontend && just test-frontend
ppt-typespec — regenerate clients after API
contract changeppt-tests — pnpm filter syntaxppt-mobile-native — Kotlin app
(separate from frontend/apps/mobile)