066acde0cb
- Feature maps: agentic intelligence, digital factory, yiacad global/UI/UX/backend - Audits: consolidation, refactor manifest, exhaustive refonte - Research: OSS AI-native CAD, digital factory stack, mascarade observability - Plans: lots 19-26 (mesh tri-repo, UI/UX refonte, yiacad global, intelligence agentique, mistral agents/studio, hypnoled, EDA AI tools, git EDA platform) - Operator docs: machine registry, alignment, sync status, provider compat - Mascarade/Kill_LIFE product contracts and OPS bridge - PCB AI fab integration map, artifact WMS index - References directory Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
77 lines
2.0 KiB
Markdown
77 lines
2.0 KiB
Markdown
# YiACAD Git EDA platform - 2026-03-22
|
|
|
|
## Scope
|
|
|
|
Translate the Git-first SaaS architecture into an actual repo slice that can grow incrementally:
|
|
|
|
- `web/` for the product surface
|
|
- GraphQL as the HTTP aggregation boundary
|
|
- a separate Yjs websocket lane for collaboration
|
|
- Git-tracked `.excalidraw` files inside the project tree
|
|
|
|
## Implemented scaffold
|
|
|
|
- `web/app/` now exposes four surfaces:
|
|
- `/`
|
|
- `/diagram`
|
|
- `/pcb`
|
|
- `/review`
|
|
- `web/app/api/graphql/route.ts` is the API gateway entry
|
|
- `web/app/api/project-files/[...segments]/route.ts` serves Git-backed project files to browser viewers
|
|
- `web/lib/project-store.ts` is the local project service and diagram service seed
|
|
- `web/realtime/server.mjs` starts the dedicated Yjs websocket server with persistence
|
|
|
|
## Stored project shape
|
|
|
|
```text
|
|
web/project/
|
|
├── diagrams/
|
|
│ ├── system.excalidraw
|
|
│ └── power.excalidraw
|
|
├── pcb/
|
|
│ └── README.md
|
|
└── .ci/
|
|
├── queue.json
|
|
├── artifacts.json
|
|
└── pull-requests.json
|
|
```
|
|
|
|
## Why this shape
|
|
|
|
- `.excalidraw` remains plain JSON, so Git diff and PR review stay cheap
|
|
- KiCad files remain canonical and are only projected into API/view models
|
|
- CI outputs and review state have their own lane under `.ci/` instead of mutating source files
|
|
|
|
## Product surface map
|
|
|
|
### Dashboard
|
|
|
|
- project files
|
|
- PR list
|
|
- CI runs
|
|
- artifact counts
|
|
|
|
### Diagram editor
|
|
|
|
- Excalidraw canvas
|
|
- Git-backed save
|
|
- local queue trigger for KiBot and KiCad headless
|
|
|
|
### PCB viewer
|
|
|
|
- KiCanvas lane
|
|
- artifact summary
|
|
|
|
### PR review
|
|
|
|
- KiCad diff placeholder
|
|
- Excalidraw diff placeholder
|
|
- artifact preview readiness
|
|
|
|
## Next hard problems
|
|
|
|
- bind Excalidraw scene state into Yjs without creating a second source of truth
|
|
- add a real queue backend instead of a local JSON queue stub
|
|
- add a real worker/orchestrator contract for KiCad CLI, KiBot, KiAuto, Gerber, STEP, BOM, PDF
|
|
- replace placeholder PR/artifact JSON with outputs derived from real Git and CI state
|