Modulok áttekintése
A Craftingtable modulokban gondolkodik. Minden modulnak van egy elsődleges létrehozási módja, de a legtöbb nem légmentesen szigetelt — a köztük lévő kapcsolat maga a termék lényege („élő tervezőasztal").
A modulok és felelősségük
| # | Modul | Mit rögzít | Ki/mi hozza létre | Perzisztencia |
|---|---|---|---|---|
| 1 | Business Case (L1) | Üzleti szándék, Gherkin Given/When/Then | Felhasználó, kézzel | levels/l1/BC-*.json + .md |
| 2 | User Story (L2) | Fejlesztésre kész story + elfogadási kritériumok | Felhasználó, Business Case-hez kötve | levels/l2/DEV-*.json + .md |
| 3 | Flow | Node/edge canvas — navigáció, logika, C4 | Felhasználó; User Story-hoz rendelhető (M:N tag) | flows/FLW-*.json |
| 4 | Structure | Screen-ek (Flow-ból) → Oldalak összerendelése | Screen automatikusan; Oldal önálló, kézzel | structure/pages/PAGE-*.json |
| 5 | Schema | Adatmodellek (mezők, típusok) | Kézzel, vagy Flow model/api node-ból | schemas/models/MDL-*.json |
| 6 | Assets | Infrastruktúra + kimenő API-hívások | Infra kézzel; API-hívás a Flow api node-okból (outbound) | assets/infra/*.json, assets/packages/*.json |
| 7 | Design | Tokenek + komponensek | Tokenek kézzel; komponens kézzel vagy Structure screen-szerkesztőből | design/tokens.json, design/components/*.json |
| 8 | Skills | Technológiai szaktudás Markdown | Felhasználó, kézzel/importtal; BC-hez és US-hez tag-elhető | skills/SKL-*.md |
| 9 | Layout | A fenti modulokból élőben összeálló célfa | Automatikusan számolt nézet — lemezre csak „Létrehozás" gombra | structure/tree.json + structure/scaffold/ |
| 10 | Blueprints | Blueprint → Block → Part → Tweak — a tényleges munka nyomkövetése | 1 rendszer-Blueprint mindig; Part-ok auto-derivált + kézi | blueprints/BP-*.json |
| 11 | Tweak | Utólagos javítás egy Block/Part-on | Mindig kézzel | Blueprint fájlon belül |
Plusz két „nem modul, de kimenet": Generate & Work Package és Export & Handoff.
Hierarchia és adatfolyam
Fontos: a legtöbb nyíl nem tulajdonlás, hanem hivatkozás (id-alapú soft reference). Csak két igazi szülő-gyerek kapcsolat van:
- Business Case → User Story — a
refs.parentskötelező, törléskor/exportnál tényleges hierarchia. - Blueprint → Block → Part — tényleges tartalmi beágyazás.
Minden más (Flow↔User Story, Screen↔Oldal, Component↔Token, bármi↔Skill, bármi↔Blueprint-forrás) csak azonosító-alapú összerendelés.
Szinkronizációs szabályok
A rendszer kétféleképp viselkedik attól függően, hogy egy kapcsolat strukturális vagy kereszthivatkozás:
| Kapcsolat típusa | Példa | Mi történik, ha a cél törlődik |
|---|---|---|
| Strukturális (kompozíciós) — a hivatkozó adat maga a helye a kapcsolatnak | Screen node pageId-ja; screen node componentIds listája | Aktív takarítás. A hivatkozás törlődik/nullázódik, a Flow újraíródik lemezre |
| Kereszthivatkozás (traceability) — a hivatkozás dokumentálja a kapcsolatot | Flow linkedModel → törölt MDL-*; Skill tag → törölt US; Blueprint sources → törölt entitás | Passzív figyelmeztetés. A hivatkozás megmarad, a UI „elavult hivatkozás" jelzést mutat |
Az általános elv: soha nem törlünk vagy módosítunk hangosan olyan adatot, amit a
felhasználó explicit hozott létre (Part, Tweak, Business Case szöveg) csak azért, mert egy
hivatkozott forrás megváltozott. Amit a rendszer maga tart karban (egy node pageId-ja),
azt aktívan tisztítjuk.
Konkrét szabályok:
- Business Case törlése: a gyerek User Story-k megmaradnak, „árva szülő" figyelmeztetést kapnak.
- User Story törlése: minden Flow
linkedStorieslistája frissül; a Skillrefs.userStoriesaktívan tisztul. - Oldal / Design Component törlése: minden rá mutató Flow node
pageId-ja /componentIds-e nullázódik (strukturális, aktív, backend-oldalon is megmarad reload után). - Schema Model mező átnevezése/törlése: a rá hivatkozó Component
dataFields„elavult mező" figyelmeztetést kap (passzív). - Design Token átnevezése: a rá hivatkozó komponensek
tokenslistája aktívan frissül az új névre (a token neve szó szerint egy string a komponens JSON-jában). - Blueprint Part forrás-entitás törlése: a Part megmarad, a forrás „elavult" jelzést kap;
ha az auto-Part minden auto-forrása eltűnt és a Part érintetlen, törlődik, egyébként
Stale=truejelzéssel marad.
Az egész .craftingtable/-fát egy közös resyncSystemBlueprint() tartja szinkronban: minden
BC/US/Flow/Design-komponens mentéskor és törléskor újraszámolja a teljes elvárt
Part-halmazt.