agentleFS
HeyEddi-comHeyEddi-com/heyeddi-skills/skills/project-engineering/SKILL.md

project-engineering

Skill0 starsChanged 3 months agoMITView on GitHub

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.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every HeyEddi app should have a .heyeddi/ folder (created by scaffold_stack / scaffold_heyeddi):

    line 65
  2. Very specific:

    dev_server_info: all local servers (Vue :5173, API :8090, Firebase emulators :4000).

    line 84
  3. Very specific:

    Run dev_server_info for project-specific steps.

    line 99
  4. Distinctive:

    When you have finished the user's request for this skill (not after every tool call or subagent phase), suggest what to run next:

    line 114
  5. Very specific:

    Add --route /path if you worked a specific route.

    line 122

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

StackWhenTooling added
VueAlways for frontend workVite, Vitest, npm scripts, router
FastAPIREST API backendbackend/, pytest, openapi.json, uvicorn
FirebaseFirestore / Auth clientfirebase.json, rules, emulators, env template

Declare intent prefs via @heyeddi-setup (git/env + agent). Tech keys in .heyeddi/stack.json are filled by scaffold / this skill as the project evolves:

{
  "frontend": "vue",
  "backends": ["fastapi"],
  "api_port": 8090,
  "web_port": 8085,
  "git": {
    "preset": "main_staging_dev",
    "default_branch": "dev",
    "pr_base": "dev",
    "environments": { "production": "main", "staging": "staging", "dev": "dev" },
    "worktrees": false,
    "custom_workflow": null
  },
  "agent": { "commit": "ask", "push": "ask" },
  "setup": { "version": 1, "updated": "2026-09-06" }
}
{ "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):

PathPurpose
README.mdHeyEddi intro (agents + humans workspace), free skills, heyeddi.com/humans
stack.jsonStack + prefs (@heyeddi-setup)
product.mdProduct brief
design.mdDESIGN.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

  1. Prefs gate (always-on hard): @heyeddi-setup verify_setup --check before git/CI/commit assumptions; incomplete → run setup until pass.
  2. audit_scaffold: per-layer JSON (vue / fastapi / firebase).
  3. scaffold_stack --stack auto: fills gaps (preferred over scaffold_vue alone).
  4. ensure_npm + ensure_python as needed.
  5. dev_server_info: all local servers (Vue :5173, API :8090, Firebase emulators :4000).
  6. Plan gate (always-on): @engineering-excellence check_engineering_plan --check before feature code; read reuse-catalog.
  7. Implement features (design skills, composables, etc.).
  8. write_test_stub + run_tests + run_backend_tests.
  9. Change gate (always-on): audit_engineering --check (errors fail; warns advisory).
  10. verify-build + pre-merge-gate.

Local dev servers

StackCommandURL
Vuenpm run devhttp://localhost:5173
FastAPIcd backend && poetry run uvicorn app.main:app --reload --port 8090http://localhost:8090/docs
Firebasefirebase emulators:starthttp://localhost:4000 (UI)

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

When the task is complete: suggest next skills

When you have finished the user's request for this skill (not after every tool call or subagent phase), suggest what to run next:

  1. Run:

    python .agents/skills/heyeddi/scripts/suggest_next_skill.py --current-skill project-engineering --project-root .

    Add --route /path if you worked a specific route.

  2. Include the script's ### Next step block in your final reply. The user copies the Prompt line into chat (e.g. @heyeddi-design craft /settings).

Pass --mode shape (or craft, audit, etc.) when you know which sub-command just finished.

See @heyeddi → reference/next-skill-handoff.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.