MertCapkin-GraphCraft 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. graphcraft/__init__.py +8 -0
  2. graphcraft/__main__.py +4 -0
  3. graphcraft/assets/.cursor/commands/graphcraft.md +24 -0
  4. graphcraft/assets/.cursor/rules/graphcraft.mdc +106 -0
  5. graphcraft/assets/.cursor/skills/design-strategist/DESIGN_STRATEGIST.md +23 -0
  6. graphcraft/assets/.cursor/skills/designer/DESIGNER.md +26 -0
  7. graphcraft/assets/.cursor/skills/mobile-app/MOBILE_APP.md +15 -0
  8. graphcraft/assets/.cursor/skills/mobile-game/MOBILE_GAME.md +19 -0
  9. graphcraft/assets/.cursor/skills/stitch-import/STITCH_IMPORT.md +25 -0
  10. graphcraft/assets/.cursor/skills/visual-review/VISUAL_REVIEW.md +20 -0
  11. graphcraft/assets/.graphcraft-assets-version +1 -0
  12. graphcraft/assets/.stitch/metadata.template.json +20 -0
  13. graphcraft/assets/design/screens/login.example.yaml +14 -0
  14. graphcraft/assets/design-system/components/button.example.yaml +20 -0
  15. graphcraft/assets/design-system/tokens.base.json +27 -0
  16. graphcraft/assets/design-system/tokens.json +27 -0
  17. graphcraft/assets/graphcraft.config.yaml +47 -0
  18. graphcraft/assets/handoff/AESTHETIC_BRIEF.md +52 -0
  19. graphcraft/assets/handoff/DESIGN_BRIEF.md +47 -0
  20. graphcraft/assets/orchestrator/GRAPHCRAFT.md +87 -0
  21. graphcraft/assets/packages/assets/README.md +22 -0
  22. graphcraft/assets/packages/ui-core/README.md +23 -0
  23. graphcraft/assets/packs/mobile-app/STACKS.md +28 -0
  24. graphcraft/assets/packs/mobile-game/STACKS.md +30 -0
  25. graphcraft/assets/packs/stitch/README.md +20 -0
  26. graphcraft/assets/packs/styles/minimal-dark/style.yaml +18 -0
  27. graphcraft/bootstrap.py +68 -0
  28. graphcraft/cli.py +63 -0
  29. graphcraft/constants.py +21 -0
  30. graphcraft/design_graph/__init__.py +1 -0
  31. graphcraft/design_graph/builder.py +218 -0
  32. graphcraft/design_graph/cli.py +83 -0
  33. graphcraft/design_graph/harmony.py +47 -0
  34. graphcraft/design_graph/query.py +81 -0
  35. graphcraft/design_graph/report.py +36 -0
  36. graphcraft/design_graph/schema.py +69 -0
  37. graphcraft/design_graph/stitch_adapter.py +83 -0
  38. graphcraft/doctor.py +104 -0
  39. graphcraft/init_cmd.py +78 -0
  40. graphcraft/installer.py +204 -0
  41. graphcraft/stitch/__init__.py +1 -0
  42. graphcraft/stitch/cli.py +3 -0
  43. graphcraft/stitch/import_cmd.py +68 -0
  44. mertcapkin_graphcraft-0.1.1.dist-info/METADATA +237 -0
  45. mertcapkin_graphcraft-0.1.1.dist-info/RECORD +49 -0
  46. mertcapkin_graphcraft-0.1.1.dist-info/WHEEL +5 -0
  47. mertcapkin_graphcraft-0.1.1.dist-info/entry_points.txt +2 -0
  48. mertcapkin_graphcraft-0.1.1.dist-info/licenses/LICENSE +21 -0
  49. mertcapkin_graphcraft-0.1.1.dist-info/top_level.txt +1 -0
graphcraft/__init__.py ADDED
@@ -0,0 +1,8 @@
1
+ """GraphCraft — mobile game/app design layer on GraphStack.
2
+
3
+ Entry point: ``python -m graphcraft <command>``
4
+ Commands: ``init``, ``install``, ``doctor``, ``design``, ``stitch``
5
+ """
6
+
7
+ __version__ = "0.1.1"
8
+ __all__ = ["__version__"]
graphcraft/__main__.py ADDED
@@ -0,0 +1,4 @@
1
+ from .cli import main
2
+
3
+ if __name__ == "__main__":
4
+ raise SystemExit(main())
@@ -0,0 +1,24 @@
1
+ # GraphCraft slash command
2
+
3
+ You are in a **GraphCraft** project. GraphStack is the **dependency** (cycle/gate).
4
+
5
+ ## Read first (parallel)
6
+
7
+ - `orchestrator/GRAPHCRAFT.md` — design lifecycle (primary)
8
+ - `orchestrator/ORCHESTRATOR.md` — GraphStack cycle (dependency, unchanged)
9
+ - `graphcraft.config.yaml`
10
+ - `docs/FLOW.md` — who runs first
11
+
12
+ ## Greet
13
+
14
+ `GraphCraft ready.` — not GraphStack ready.
15
+
16
+ ## Quick commands
17
+
18
+ ```bash
19
+ graphcraft doctor .
20
+ graphcraft design update .
21
+ python -m graphstack cycle start <id> "<title>"
22
+ ```
23
+
24
+ UI tasks: Architect → Design Strategist → Designer → Design Audit → Builder → Visual Review → Reviewer → QA → Ship
@@ -0,0 +1,106 @@
1
+ ---
2
+ description: GraphCraft primary orchestrator overlay — mobile design layer on GraphStack (dependency). Loads WITH graphstack.mdc; overrides greeting and design routing only.
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # GraphCraft Rules (v0.1) — Primary Orchestrator Overlay
8
+
9
+ This project is **GraphCraft**. GraphStack is a **dependency** (orchestration only).
10
+ GraphStack rules (`graphstack.mdc`) remain active for cycle, gate, and token discipline.
11
+ **Do not skip GraphCraft design phases for UI/mobile tasks.**
12
+
13
+ ---
14
+
15
+ ## Activation (GraphCraft projects — run WITH GraphStack activation)
16
+
17
+ After GraphStack reads `TOKEN_OPTIMIZER.md` and `GRAPH_REPORT.md`, also read (same session, once):
18
+
19
+ ```
20
+ - orchestrator/GRAPHCRAFT.md ← design lifecycle (GraphCraft)
21
+ - graphcraft-out/DESIGN_REPORT.md ← if exists
22
+ - graphcraft.config.yaml ← profile, design_source, stack
23
+ - handoff/AESTHETIC_BRIEF.md ← if design task active
24
+ - handoff/DESIGN_BRIEF.md ← if design task active
25
+ ```
26
+
27
+ Then greet with **GraphCraft format** (replaces GraphStack step-8 greeting):
28
+
29
+ ```
30
+ GraphCraft ready.
31
+ Profile: [mobile-app|mobile-game] | Stack: [active_stack] | Design: [native|stitch|hybrid]
32
+ Design graph: [N nodes] | Code graph: [N nodes] | Board: [N todo / N doing / N done]
33
+ [If doing/]: In progress: [task-id] — resume?
34
+ What are we building?
35
+ ```
36
+
37
+ ---
38
+
39
+ ## First-turn routing (GraphCraft override)
40
+
41
+ | User intent | Action |
42
+ |-------------|--------|
43
+ | Greeting only | GraphCraft greet → wait |
44
+ | Task with **UI, screens, design, mobile UX, Stitch, style** | GraphCraft greet → GraphStack `cycle start` + ARCHITECT → **then Design Strategist** (do not jump to Builder) |
45
+ | Task **without UI** (API, scripts, docs) | GraphStack flow only — skip design phases |
46
+
47
+ **Embedded goal ≠ build now.** Architect writes BRIEF first (GraphStack contract unchanged).
48
+
49
+ ---
50
+
51
+ ## Design phases (GraphCraft — required for UI tasks)
52
+
53
+ After Architect BRIEF, before Builder:
54
+
55
+ 1. **Design Strategist** → `handoff/AESTHETIC_BRIEF.md` + `research/INSPIRATION.md`
56
+ 2. **Designer** → `design/`, `design-system/`, run `python -m graphcraft design update .`
57
+ 3. **Design Audit** → `design validate` + `design harmony` → `DESIGN_BRIEF.md` **Ready for Builder**
58
+ 4. GraphStack **`cycle enter-builder`** (only after design ready)
59
+
60
+ After Builder, before Code Reviewer:
61
+
62
+ 5. **Visual Review** → `.cursor/skills/visual-review/VISUAL_REVIEW.md`
63
+
64
+ Announce: `[GRAPHCRAFT]` when entering design phases. Announce GraphStack roles as usual.
65
+
66
+ ---
67
+
68
+ ## Graph queries
69
+
70
+ | Question type | Command |
71
+ |---------------|---------|
72
+ | Code structure | `python -m graphstack graph query "…"` |
73
+ | Design (screens, tokens, style) | `python -m graphcraft design query "…"` |
74
+
75
+ ---
76
+
77
+ ## Role skills (GraphCraft)
78
+
79
+ | Role | Skill |
80
+ |------|-------|
81
+ | Design Strategist | `.cursor/skills/design-strategist/DESIGN_STRATEGIST.md` |
82
+ | Designer | `.cursor/skills/designer/DESIGNER.md` |
83
+ | Stitch import | `.cursor/skills/stitch-import/STITCH_IMPORT.md` |
84
+ | Visual Review | `.cursor/skills/visual-review/VISUAL_REVIEW.md` |
85
+ | Mobile app | `.cursor/skills/mobile-app/MOBILE_APP.md` |
86
+ | Mobile game | `.cursor/skills/mobile-game/MOBILE_GAME.md` |
87
+
88
+ GraphStack role skills (Architect, Builder, etc.) unchanged.
89
+
90
+ ---
91
+
92
+ ## Before UI code edits
93
+
94
+ 1. `python -m graphcraft design update .` if design files changed
95
+ 2. Screen must exist in design graph
96
+ 3. GraphStack: `role=builder` + task in `doing/` (gate unchanged)
97
+
98
+ ---
99
+
100
+ ## Forbidden
101
+
102
+ - Editing `orchestrator/ORCHESTRATOR.md` or `graphstack.mdc` for GraphCraft features
103
+ - Skipping design phases when task touches UI/mobile screens
104
+ - Greeting with "GraphStack ready" in GraphCraft projects
105
+
106
+ See `docs/FLOW.md` and `docs/ARCHITECTURE.md`.
@@ -0,0 +1,23 @@
1
+ # DESIGN STRATEGIST Role
2
+
3
+ You research, brainstorm, and select aesthetic direction before Designer works.
4
+
5
+ ## Activation
6
+
7
+ 1. Read `handoff/BRIEF.md` (functional scope)
8
+ 2. Write `handoff/AESTHETIC_BRIEF.md`
9
+ 3. Web research → `research/INSPIRATION.md` (patterns, not copies)
10
+
11
+ ## Workflow
12
+
13
+ 1. Define project identity + target audience
14
+ 2. Run ≤5 focused research queries
15
+ 3. Propose ≤3 style directions with marketing + usability notes
16
+ 4. User selects direction → update `graphcraft.config.yaml` `design.style`
17
+ 5. Set AESTHETIC_BRIEF **Ready for Designer**
18
+
19
+ ## Output quality
20
+
21
+ - Reference **patterns** (shop layout, onboarding flow), not pixel clones
22
+ - Note accessibility floors (contrast, touch targets)
23
+ - Flag trademark/clone risks explicitly
@@ -0,0 +1,26 @@
1
+ # DESIGNER Role
2
+
3
+ You implement design specs — screens, components, tokens. You do not write app logic.
4
+
5
+ ## Activation
6
+
7
+ 1. Read `graphcraft-out/DESIGN_REPORT.md`
8
+ 2. Read `handoff/DESIGN_BRIEF.md` and `graphcraft.config.yaml`
9
+ 3. Run `python -m graphcraft design update .`
10
+
11
+ ## Do
12
+
13
+ - Write/update `design/screens/*.yaml`, `design-system/components/*.yaml`
14
+ - Normalize tokens in `design-system/tokens.json`
15
+ - Run `design validate` and `design harmony` before handoff
16
+ - Set DESIGN_BRIEF **Status: Ready for Builder**
17
+
18
+ ## Don't
19
+
20
+ - Implement platform code (Builder job)
21
+ - Hardcode colors in specs — use token references
22
+ - Skip harmony check on multi-component screens
23
+
24
+ ## Stitch mode
25
+
26
+ When `design_source: stitch|hybrid`: curate imported screens, set status approved/rejected in YAML.
@@ -0,0 +1,15 @@
1
+ # MOBILE APP Skill
2
+
3
+ Active when `graphcraft.config.yaml` → `profile: mobile-app`.
4
+
5
+ Read `packs/mobile-app/STACKS.md` for stack-specific guidance.
6
+
7
+ ## Defaults
8
+
9
+ - Safe area + touch targets enforced
10
+ - Navigation: follow design graph `navigates_to`
11
+ - Prefer `active_stack` from config for Builder
12
+
13
+ ## Stacks
14
+
15
+ react-native · expo · flutter · swiftui · jetpack-compose · kotlin-multiplatform · ionic · capacitor
@@ -0,0 +1,19 @@
1
+ # MOBILE GAME Skill
2
+
3
+ Active when `graphcraft.config.yaml` → `profile: mobile-game`.
4
+
5
+ Read `packs/mobile-game/STACKS.md`.
6
+
7
+ ## Scope
8
+
9
+ Meta-UI only: menus, HUD, shop, inventory, dialogs.
10
+
11
+ Gameplay canvas is out of design graph scope for v0.1.
12
+
13
+ ## Stacks
14
+
15
+ unity-ugui · unity-ui-toolkit · godot · unreal-umg · defold · cocos
16
+
17
+ ## Visual mode
18
+
19
+ Prefer Stitch PNG reference. Token → USS / ScriptableObject themes.
@@ -0,0 +1,25 @@
1
+ # STITCH IMPORT Skill
2
+
3
+ Import Google Stitch prototypes into GraphCraft design graph.
4
+
5
+ ## When
6
+
7
+ `graphcraft.config.yaml` → `design_source: stitch|hybrid`
8
+
9
+ ## Steps
10
+
11
+ 1. Export from Stitch: DESIGN.md + screens → `.stitch/designs/` (PNG/HTML)
12
+ 2. Copy/fill `.stitch/metadata.json` from `metadata.template.json`
13
+ 3. `python -m graphcraft stitch import .`
14
+ 4. `python -m graphcraft stitch report`
15
+ 5. Curator approves screens in design specs
16
+
17
+ ## MCP (optional)
18
+
19
+ Configure `@keeponfirst/kof-stitch-mcp` for automated fetch.
20
+
21
+ ## Rules
22
+
23
+ - `.stitch/` is read-only reference after import
24
+ - Refinements go in `design/screens/` (hybrid mode)
25
+ - Visual ground truth = PNG files
@@ -0,0 +1,20 @@
1
+ # VISUAL REVIEW Role
2
+
3
+ Compare implementation against design ground truth.
4
+
5
+ ## Checklist
6
+
7
+ - [ ] Stitch PNG match (if `.stitch/designs/` exists)
8
+ - [ ] Token usage matches design graph (no random hex)
9
+ - [ ] Touch targets ≥ config `design.touch_target_min`
10
+ - [ ] Safe area respected on mobile
11
+ - [ ] `graphcraft design harmony` PASS for reviewed screens
12
+
13
+ ## Marketing + usability rubric
14
+
15
+ | Screen type | Marketing weight | Usability weight |
16
+ |-------------|------------------|------------------|
17
+ | shop, onboarding | high | medium |
18
+ | settings, forms | medium | high |
19
+
20
+ Report in `handoff/REVIEW.md` under `## Visual Review`.
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,20 @@
1
+ {
2
+ "project_id": "your-stitch-project-id",
3
+ "screens": {
4
+ "login": {
5
+ "id": "screen:login",
6
+ "title": "Login",
7
+ "png": "login.png",
8
+ "status": "imported"
9
+ },
10
+ "home": {
11
+ "id": "screen:home",
12
+ "title": "Home",
13
+ "png": "home.png",
14
+ "status": "imported"
15
+ }
16
+ },
17
+ "flows": [
18
+ { "from": "screen:login", "to": "screen:home", "trigger": "login_success" }
19
+ ]
20
+ }
@@ -0,0 +1,14 @@
1
+ id: screen:login
2
+ title: Login
3
+ platform: mobile-app
4
+ status: example
5
+ components:
6
+ - component:button-primary
7
+ tokens:
8
+ - spacing.screen.padding
9
+ navigation:
10
+ success: screen:home
11
+ forgot_password: screen:forgot-password
12
+ acceptance:
13
+ touch_target_min: 44
14
+ safe_area: true
@@ -0,0 +1,20 @@
1
+ id: component:button-primary
2
+ label: Button Primary
3
+ collection: buttons
4
+ style_compatibility:
5
+ - style:minimal-dark
6
+ uses_tokens:
7
+ - color.action.primary
8
+ - spacing.button.padding
9
+ - radius.default
10
+ alternatives:
11
+ - component:button-secondary
12
+ when_to_use: Primary CTA, max one per screen
13
+ when_not_to_use: Secondary actions, destructive flows
14
+ harmony_score_with:
15
+ component:card-elevated: 0.9
16
+ states:
17
+ - default
18
+ - pressed
19
+ - disabled
20
+ - loading
@@ -0,0 +1,27 @@
1
+ {
2
+ "color": {
3
+ "action": {
4
+ "primary": { "$value": "#6366F1", "$type": "color" },
5
+ "secondary": { "$value": "#8B5CF6", "$type": "color" }
6
+ },
7
+ "bg": {
8
+ "default": { "$value": "#0F172A", "$type": "color" },
9
+ "elevated": { "$value": "#1E293B", "$type": "color" }
10
+ },
11
+ "text": {
12
+ "primary": { "$value": "#F8FAFC", "$type": "color" },
13
+ "muted": { "$value": "#94A3B8", "$type": "color" }
14
+ }
15
+ },
16
+ "spacing": {
17
+ "screen": {
18
+ "padding": { "$value": "16px", "$type": "dimension" }
19
+ },
20
+ "button": {
21
+ "padding": { "$value": "12px", "$type": "dimension" }
22
+ }
23
+ },
24
+ "radius": {
25
+ "default": { "$value": "8px", "$type": "dimension" }
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "color": {
3
+ "action": {
4
+ "primary": { "$value": "#6366F1", "$type": "color" },
5
+ "secondary": { "$value": "#8B5CF6", "$type": "color" }
6
+ },
7
+ "bg": {
8
+ "default": { "$value": "#0F172A", "$type": "color" },
9
+ "elevated": { "$value": "#1E293B", "$type": "color" }
10
+ },
11
+ "text": {
12
+ "primary": { "$value": "#F8FAFC", "$type": "color" },
13
+ "muted": { "$value": "#94A3B8", "$type": "color" }
14
+ }
15
+ },
16
+ "spacing": {
17
+ "screen": {
18
+ "padding": { "$value": "16px", "$type": "dimension" }
19
+ },
20
+ "button": {
21
+ "padding": { "$value": "12px", "$type": "dimension" }
22
+ }
23
+ },
24
+ "radius": {
25
+ "default": { "$value": "8px", "$type": "dimension" }
26
+ }
27
+ }
@@ -0,0 +1,47 @@
1
+ # GraphCraft configuration
2
+ # Docs: README_GRAPHCRAFT.md
3
+
4
+ profile: mobile-app # mobile-app | mobile-game
5
+ design_source: native # native | stitch | hybrid
6
+
7
+ stacks:
8
+ mobile_app:
9
+ - react-native
10
+ - expo
11
+ - flutter
12
+ - swiftui
13
+ - jetpack-compose
14
+ - kotlin-multiplatform
15
+ - ionic
16
+ - capacitor
17
+ mobile_game:
18
+ - unity-ugui
19
+ - unity-ui-toolkit
20
+ - godot
21
+ - unreal-umg
22
+ - defold
23
+ - cocos
24
+
25
+ active_stack: react-native # pick one from lists above
26
+
27
+ design:
28
+ style: style:minimal-dark
29
+ token_file: design-system/tokens.json
30
+ touch_target_min: 44
31
+ safe_area: true
32
+
33
+ aesthetic:
34
+ priority: balanced # marketing | usability | balanced
35
+ research_enabled: true
36
+ max_style_directions: 3
37
+ hard_floors:
38
+ contrast_min: 4.5
39
+
40
+ stitch:
41
+ enabled: false
42
+ project_id: ""
43
+ reference_mode: visual # visual | code
44
+
45
+ gates:
46
+ require_design_approval: true
47
+ require_visual_qa: true
@@ -0,0 +1,52 @@
1
+ # Aesthetic Brief
2
+
3
+ **Date:** YYYY-MM-DD
4
+ **Status:** Draft | Ready for Designer | Complete
5
+
6
+ ---
7
+
8
+ ## Project identity
9
+
10
+ > One sentence: who is this for, what feeling should it evoke?
11
+
12
+ ---
13
+
14
+ ## Research scope
15
+
16
+ ### Queries (max 5)
17
+ -
18
+
19
+ ### References (URLs, patterns — not assets to copy)
20
+ -
21
+
22
+ ### Avoid
23
+ - clone / trademark risk
24
+ -
25
+
26
+ ---
27
+
28
+ ## Style directions (max 3)
29
+
30
+ | ID | Name | Mood | Marketing fit | Usability fit |
31
+ |----|------|------|---------------|---------------|
32
+ | 1 | | | | |
33
+ | 2 | | | | |
34
+ | 3 | | | | |
35
+
36
+ **Selected:** style:...
37
+
38
+ ---
39
+
40
+ ## Aesthetic priority
41
+
42
+ - [ ] balanced
43
+ - [ ] marketing-first (hero screens)
44
+ - [ ] usability-first (forms, settings)
45
+
46
+ ---
47
+
48
+ ## Acceptance
49
+
50
+ - [ ] Research saved to `research/INSPIRATION.md`
51
+ - [ ] Style pack chosen in `graphcraft.config.yaml`
52
+ - [ ] Ready for Designer
@@ -0,0 +1,47 @@
1
+ # Design Brief
2
+
3
+ **Date:** YYYY-MM-DD
4
+ **Status:** Draft | Ready for Builder | In Review
5
+
6
+ ---
7
+
8
+ ## Screens in scope
9
+
10
+ | Screen ID | Title | Status | Source |
11
+ |-----------|-------|--------|--------|
12
+ | screen:login | Login | approved | native / stitch |
13
+
14
+ ---
15
+
16
+ ## Style pack
17
+
18
+ - Active: `style:minimal-dark`
19
+ - Tokens: `design-system/tokens.json`
20
+
21
+ ---
22
+
23
+ ## Component collections
24
+
25
+ - buttons: component:button-primary (alternatives documented in design graph)
26
+
27
+ ---
28
+
29
+ ## Design graph
30
+
31
+ - Last update: YYYY-MM-DD
32
+ - `graphcraft design validate` → PASS
33
+ - `graphcraft design harmony` → PASS
34
+
35
+ ---
36
+
37
+ ## Visual ground truth
38
+
39
+ - Stitch PNG: `.stitch/designs/` (if applicable)
40
+
41
+ ---
42
+
43
+ ## Acceptance (Design Audit)
44
+
45
+ - [ ] All in-scope screens in design graph
46
+ - [ ] No unresolved clashes_with edges on approved screens
47
+ - [ ] DESIGN_BRIEF status → Ready for Builder
@@ -0,0 +1,87 @@
1
+ # GRAPHCRAFT Orchestrator Extension
2
+
3
+ **GraphCraft overlay on GraphStack (dependency).**
4
+ GraphStack's `orchestrator/ORCHESTRATOR.md` is **not modified** — read it for cycle/gate mechanics.
5
+ This file extends the lifecycle for **mobile game/app design**.
6
+
7
+ Load order: `TOKEN_OPTIMIZER.md` → `GRAPHCRAFT.md` (this file) → `ORCHESTRATOR.md`
8
+
9
+ Announce: `[GRAPHCRAFT]` when entering design phases.
10
+
11
+ ---
12
+
13
+ ## Primary greeting (overrides GraphStack step 8)
14
+
15
+ ```
16
+ GraphCraft ready.
17
+ Profile: … | Design graph: … | Code graph: … | Board: …
18
+ ```
19
+
20
+ ---
21
+
22
+ ## Extended Lifecycle (UI/mobile tasks)
23
+
24
+ ```
25
+ ARCHITECT → BRIEF.md (functional) [GraphStack]
26
+ DESIGN STRATEGIST → AESTHETIC_BRIEF.md [GraphCraft]
27
+ DESIGNER/CURATOR → design/, design-system/, .stitch/ [GraphCraft]
28
+ DESIGN AUDIT → validate + harmony → DESIGN_BRIEF [GraphCraft]
29
+ BUILDER → design graph + UI packages [GraphStack + GraphCraft context]
30
+ VISUAL REVIEW → PNG reference vs code [GraphCraft]
31
+ REVIEWER → QA → SHIP [GraphStack unchanged]
32
+ ```
33
+
34
+ Non-UI tasks: skip GraphCraft phases → GraphStack only.
35
+
36
+ ---
37
+
38
+ ## Mechanical commands
39
+
40
+ ```bash
41
+ # GraphCraft
42
+ python -m graphcraft design update .
43
+ python -m graphcraft design validate
44
+ python -m graphcraft design harmony
45
+ python -m graphcraft stitch import .
46
+ python -m graphcraft doctor .
47
+
48
+ # GraphStack (dependency — unchanged)
49
+ python -m graphstack cycle start <id> "<title>"
50
+ python -m graphstack cycle enter-builder <id>
51
+ python -m graphstack cycle enter-reviewer <id>
52
+ python -m graphstack cycle enter-qa <id>
53
+ python -m graphstack cycle enter-ship <id>
54
+ python -m graphstack cycle close <id>
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Design Graph First (UI tasks)
60
+
61
+ ```bash
62
+ python -m graphcraft design query "screens"
63
+ python -m graphcraft design query "tokens"
64
+ python -m graphstack graph query "…" # code structure
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Profiles & packs
70
+
71
+ | Profile | Config | Pack doc |
72
+ |---------|--------|----------|
73
+ | mobile-app | `profile: mobile-app` | `packs/mobile-app/STACKS.md` |
74
+ | mobile-game | `profile: mobile-game` | `packs/mobile-game/STACKS.md` |
75
+
76
+ `graphcraft.config.yaml` → `design_source`, `active_stack`, `aesthetic`, `stitch`
77
+
78
+ ---
79
+
80
+ ## Integration principle
81
+
82
+ GraphCraft **never patches GraphStack**. Overlay files only.
83
+ See `docs/ARCHITECTURE.md` · `docs/FLOW.md` · `docs/GRAPHSTACK.md`
84
+
85
+ ---
86
+
87
+ *GraphCraft v0.1 — mobile game & app design layer on GraphStack*
@@ -0,0 +1,22 @@
1
+ # Asset Library
2
+
3
+ Icons, sprites, fonts, audio UI cues.
4
+
5
+ ## Manifest example
6
+
7
+ ```yaml
8
+ id: assets:icons-minimal
9
+ style_compatibility:
10
+ - style:minimal-dark
11
+ files:
12
+ - path: home.svg
13
+ tags: [navigation, 24px]
14
+ ```
15
+
16
+ ## Rules
17
+
18
+ - Link assets to components via design graph `uses_asset` edges
19
+ - Keep style compatibility in manifest
20
+ - Game sprites: separate atlas pipeline (future)
21
+
22
+ v0.1: scaffold — add asset sets per style pack in future cycles.
@@ -0,0 +1,23 @@
1
+ # UI Core Library
2
+
3
+ Shared UI primitives consumed by mobile app/game implementations.
4
+
5
+ ## Structure (expand per cycle)
6
+
7
+ ```
8
+ ui-core/
9
+ ├── tokens/ # re-export from design-system
10
+ ├── rn/
11
+ ├── flutter/
12
+ ├── swiftui/
13
+ ├── compose/
14
+ └── unity/
15
+ ```
16
+
17
+ ## Rules
18
+
19
+ - No hardcoded colors — use semantic tokens
20
+ - Each component maps to design graph `component:*` id
21
+ - Register new components in `design-system/components/*.yaml`
22
+
23
+ v0.1: scaffold only — implement stack modules in future cycles.