Skip to main content

Az engine belső rétegei

cmd/craftingtable-engine/main.go # flag parsing, mód-választás
internal/
├─ app/ # bootstrap, DI, graceful shutdown, MCP listener kötése
├─ transport/
│ ├─ httpapi/ # REST /api/v1, middleware (auth, log, recover)
│ └─ mcp/ # MCP szerver: stdio + streamable HTTP (mcp.go + authoring.go)
├─ domain/ # tiszta adat + logika — NEM ismer HTTP-t és SQL-t
│ ├─ project/ # projekt, konfiguráció, stack
│ ├─ levels/ # L1 business case, L2 user story
│ ├─ flow/ # canvas node/edge, C4 szintek
│ ├─ structure/ # cél fa-struktúra, oldal-entitások
│ ├─ schema/ # adatmodellek, mezők
│ ├─ skills/ # skill katalógus
│ ├─ design/ # tokenek, komponensek
│ ├─ asset/ # infra + package assetek
│ ├─ blueprint/ # Blueprint → Block → Part → Tweak
│ ├─ layout/ # derivált célfa node-jai
│ └─ workpackage/ # a Work Package index-entry típusa
├─ workspace/ # a projekt élő állapota; a Save*/Delete* metódusok + blueprint-szinkron
├─ pkg/
│ ├─ workpackagegen/ # determinisztikus Work Package assembler
│ ├─ layoutgen/ # a Layout célfa számítása
│ ├─ partbrief/ # a Blueprint Part önálló munka-briefje
│ ├─ ddlgen/ # adatmodell → DDL (postgres/mysql/sqlite/mssql/mongodb)
│ ├─ stackprofile/ # a projekt Stack → generátor-profil
│ ├─ export/ # Export & Handoff: MD/HTML, changelog, Docusaurus
│ ├─ git/ # git réteg (os/exec), snapshot/restore
│ ├─ scan/ # mappa-import: stack-detektálás, style/model/page szkennerek
│ ├─ gherkin/ # Gherkin lépés-parser (a frontend lib/gherkin.ts tükre)
│ ├─ canonjson/ # kanonikus JSON szerializáló + roundtrip-ellenőrzés
│ └─ slug/ # Unicode-transzliteráló slug (ID-generálás)
└─ store/files/ # a kanonikus JSON/MD író-olvasó (SSoT); atomi írás (temp + rename)

Rétegszabály​

transport → workspace → domain → store.

  • A domain nem importál net/http-t és database/sql-t.
  • A pkg/workpackagegen és a pkg/export csak domain-t és store/files-t használ (soha nem SQLite-ot) — így garantált, hogy a kimenet a fájlokból jön, nem a cache-ből.
  • Hiba: fmt.Errorf("...: %w", err) wrapping; szentinel hibák a domainben (ErrNotFound, ErrConflict), a transport réteg fordítja HTTP-státuszra (RFC 7807 application/problem+json).
  • A fájlírás atomi (temp fájl + rename) — ez a felhő-mappákban (iCloud/OneDrive) is helyes viselkedést ad.

A generate és az export viszonya​

A generate (workpackagegen) állítja elő a Work Package-et — egyetlen, kanonikus Markdown artefaktumot. Az export ezt nem generálja újra, csak becsomagolja: több munkacsomagot fűz össze, tartalomjegyzéket és kereszthivatkozásokat tesz hozzá, és MD/HTML/Docusaurus formába önti. Így a két kimeneti csatorna (ember és AI) garantáltan ugyanazt az adatot látja.

HTTP / WebSocket API​

Base: http://127.0.0.1:<port>/api/v1 — minden hívás Authorization: Bearer <token>.

MetódusÚtvonalLeírás
GET/healthStátusz, verzió, capabilities[], mcpPort, mcpStatus
GET/capabilitiesgit, mcp, localFs, penpotSync, postgres, tier
POST/projectsÚj projekt + .craftingtable/ init + git init
GET/POST/PUT/DELETE/entities/{type} /entities/{type}/{id}CRUD (Business Case / User Story)
PUT/projectProjekt-konfiguráció (név + stack)
GET/POST/PUT/DELETE/flows /schema-models /design/components /skills /blueprints /structure/pages /assets/*Modul-CRUD
GET/PUT/design/tokensToken-kollekció (egyben)
POST/workpackages/generate · GET /workpackagesWork Package generálás / lista
GET/blueprints/{id}/parts/{partId}/contextPart munka-brief
GET/POST/layout/preview · /layout/generate · /layout/treeÉlő célfa / kiírás / diff-alap
GET/POST/exportsHandoff export (format, scope, id?)
GET/POST/vcs/status · /vcs/commit · /vcs/snapshots · .../{id}/restoreGit + snapshot
GET/POST/import/preview · /import/runMappa-import

Verziózás: az útvonal /api/v1. Breaking változásnál /api/v2, és az engine egy ideig mindkettőt kiszolgálja.

D blokk — solo-scope-ban elhalasztva

/graph/trace/{id}, /search?q= + FTS5, WS /events — nincs implementálva; solo, egyablakos használatban nincs rá szükség.