Project Engineering
Baseline code engineering for HeyEddi Vue apps. For Flutter frontends use @flutter-engineering instead. Detects which stacks apply and adds the correct tooling — not one-size-fits-all.
Subagents (default)
Delegate scaffold/audit/test scripts to Task shell; repo discovery to explore. Main chat picks stack from audit JSON. See reference/subagents.md.
Stacks
| Stack |
When |
Tooling added |
| Vue |
Always for frontend work |
Vite, Vitest, npm scripts, router |
| FastAPI |
REST API backend |
backend/, pytest, openapi.json, uvicorn |
| Firebase |
Firestore / Auth client |
firebase.json, rules, emulators, env template |
Declare intent in .heyeddi/stack.json:
{ "frontend": "vue", "backends": ["fastapi"], "api_port": 8090 }
Flutter projects: "frontend": "flutter", "web_port": 8085 — see @flutter-engineering.
Or "backends": ["firebase"] or ["fastapi", "firebase"].
audit_scaffold also infers from openapi.json, firestore.rules, and .heyeddi/product.md (or legacy PRODUCT.md).
.heyeddi/ workspace
Every HeyEddi app should have a .heyeddi/ folder (created by scaffold_stack / scaffold_heyeddi):
| Path |
Purpose |
README.md |
What HeyEddi is, free skills, how we use this folder |
stack.json |
Declared stacks |
product.md |
Product brief |
design.md |
DESIGN.md format — tokens, rationale, Decision log |
designs/<feature>/ |
Handoff PNGs, briefs, wireframes |
docs/ |
Skill-generated reports (ship, PR tracking, drift audits) |
Save all skill-created documents under .heyeddi/docs/ (or the paths above) so the team can reference them later. Root PRODUCT.md / DESIGN.md / designs/ remain supported as legacy fallbacks.
Workflow
audit_scaffold — per-layer JSON (vue / fastapi / firebase).
scaffold_stack --stack auto — fills gaps (preferred over scaffold_vue alone).
ensure_npm + ensure_python as needed.
dev_server_info — all local servers (Vue :5173, API :8090, Firebase emulators :4000).
- Implement features (design skills, composables, etc.).
write_test_stub + run_tests + run_backend_tests.
verify-build + pre-merge-gate.
Local dev servers
Run dev_server_info for project-specific steps. Each server needs its own terminal.
References
reference/dev-server.md — Vue
reference/fastapi-backend.md — FastAPI
reference/firebase-backend.md — Firebase emulators
Related skills
backend-type-bridger — OpenAPI / Firestore → TypeScript types
composable-patterns — FastAPI JWT vs Firebase client composables
verify-build — production frontend build
1---2name: project-engineering-33description: Ensures HeyEddi projects have the right engineering stack — Vue (Vite/Vitest), FastAPI backend, or Firebase tooling. Audits gaps, scaffolds as needed, installs deps, runs tests, documents local dev servers. Use when the repo is thin or before design/feature work on any HeyEddi app.4---567# Project Engineering89Baseline **code engineering** for HeyEddi **Vue** apps. For **Flutter** frontends use `@flutter-engineering` instead. Detects which stacks apply and adds the **correct tooling** — not one-size-fits-all.1011## Subagents (default)1213Delegate scaffold/audit/test scripts to **Task** `shell`; repo discovery to `explore`. Main chat picks stack from audit JSON. See `reference/subagents.md`.1415## Stacks1617| Stack | When | Tooling added |18|-------|------|----------------|19| **Vue** | Always for frontend work | Vite, Vitest, npm scripts, router |20| **FastAPI** | REST API backend | `backend/`, pytest, `openapi.json`, uvicorn |21| **Firebase** | Firestore / Auth client | `firebase.json`, rules, emulators, env template |2223Declare intent in `.heyeddi/stack.json`:2425```json26{ "frontend": "vue", "backends": ["fastapi"], "api_port": 8090 }27```2829Flutter projects: `"frontend": "flutter"`, `"web_port": 8085` — see `@flutter-engineering`.3031Or `"backends": ["firebase"]` or `["fastapi", "firebase"]`. 32`audit_scaffold` also infers from `openapi.json`, `firestore.rules`, and `.heyeddi/product.md` (or legacy `PRODUCT.md`).3334## `.heyeddi/` workspace3536Every HeyEddi app should have a **`.heyeddi/`** folder (created by `scaffold_stack` / `scaffold_heyeddi`):3738| Path | Purpose |39|------|---------|40| `README.md` | What HeyEddi is, free skills, how we use this folder |41| `stack.json` | Declared stacks |42| `product.md` | Product brief |43| `design.md` | DESIGN.md format — tokens, rationale, Decision log |44| `designs/<feature>/` | Handoff PNGs, briefs, wireframes |45| `docs/` | Skill-generated reports (ship, PR tracking, drift audits) |4647**Save all skill-created documents under `.heyeddi/docs/`** (or the paths above) so the team can reference them later. Root `PRODUCT.md` / `DESIGN.md` / `designs/` remain supported as legacy fallbacks.4849## Workflow50511. **`audit_scaffold`** — per-layer JSON (vue / fastapi / firebase).522. **`scaffold_stack --stack auto`** — fills gaps (preferred over `scaffold_vue` alone).533. **`ensure_npm`** + **`ensure_python`** as needed.544. **`dev_server_info`** — all local servers (Vue :5173, API :8090, Firebase emulators :4000).555. Implement features (design skills, composables, etc.).566. **`write_test_stub`** + **`run_tests`** + **`run_backend_tests`**.577. **`verify-build`** + **`pre-merge-gate`**.5859## Local dev servers6061| Stack | Command | URL |62|-------|---------|-----|63| Vue | `npm run dev` | http://localhost:5173 |64| FastAPI | `cd backend && poetry run uvicorn app.main:app --reload --port 8090` | http://localhost:8090/docs |65| Firebase | `firebase emulators:start` | http://localhost:4000 (UI) |6667Run `dev_server_info` for project-specific steps. Each server needs its **own terminal**.6869## References7071- `reference/dev-server.md` — Vue72- `reference/fastapi-backend.md` — FastAPI73- `reference/firebase-backend.md` — Firebase emulators7475## Related skills7677- `backend-type-bridger` — OpenAPI / Firestore → TypeScript types78- `composable-patterns` — FastAPI JWT vs Firebase client composables79- `verify-build` — production frontend build