floop 0.1.0__tar.gz

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 (42) hide show
  1. floop-0.1.0/.github/workflows/docs.yml +66 -0
  2. floop-0.1.0/.github/workflows/release.yml +45 -0
  3. floop-0.1.0/.gitignore +40 -0
  4. floop-0.1.0/PKG-INFO +225 -0
  5. floop-0.1.0/README.md +212 -0
  6. floop-0.1.0/docs/architecture.md +150 -0
  7. floop-0.1.0/docs/assets/javascripts/mermaid.min.js +2811 -0
  8. floop-0.1.0/docs/commands.md +51 -0
  9. floop-0.1.0/docs/contributing.md +20 -0
  10. floop-0.1.0/docs/demos/context-network.md +276 -0
  11. floop-0.1.0/docs/demos/cross-session.md +114 -0
  12. floop-0.1.0/docs/demos/domain-learning.md +136 -0
  13. floop-0.1.0/docs/demos/requirements-driven.md +140 -0
  14. floop-0.1.0/docs/demos/team-onboarding.md +135 -0
  15. floop-0.1.0/docs/features.md +41 -0
  16. floop-0.1.0/docs/getting-started.md +34 -0
  17. floop-0.1.0/docs/index.md +84 -0
  18. floop-0.1.0/docs/use-cases/enterprises.md +112 -0
  19. floop-0.1.0/docs/use-cases/individuals.md +109 -0
  20. floop-0.1.0/docs/use-cases.md +18 -0
  21. floop-0.1.0/mkdocs.yml +77 -0
  22. floop-0.1.0/pyproject.toml +27 -0
  23. floop-0.1.0/setup.cfg +4 -0
  24. floop-0.1.0/src/floop/__init__.py +3 -0
  25. floop-0.1.0/src/floop/adapters.py +320 -0
  26. floop-0.1.0/src/floop/cli.py +797 -0
  27. floop-0.1.0/src/floop/preview.py +1002 -0
  28. floop-0.1.0/src/floop/prototype.py +788 -0
  29. floop-0.1.0/src/floop/skills.py +512 -0
  30. floop-0.1.0/src/floop/tokens.py +1336 -0
  31. floop-0.1.0/src/floop.egg-info/PKG-INFO +225 -0
  32. floop-0.1.0/src/floop.egg-info/SOURCES.txt +40 -0
  33. floop-0.1.0/src/floop.egg-info/dependency_links.txt +1 -0
  34. floop-0.1.0/src/floop.egg-info/entry_points.txt +2 -0
  35. floop-0.1.0/src/floop.egg-info/requires.txt +6 -0
  36. floop-0.1.0/src/floop.egg-info/top_level.txt +1 -0
  37. floop-0.1.0/tests/__init__.py +0 -0
  38. floop-0.1.0/tests/test_adapters.py +322 -0
  39. floop-0.1.0/tests/test_cli.py +507 -0
  40. floop-0.1.0/tests/test_preview.py +733 -0
  41. floop-0.1.0/tests/test_prototype.py +1739 -0
  42. floop-0.1.0/tests/test_tokens.py +1122 -0
@@ -0,0 +1,66 @@
1
+ name: Test & Deploy Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+ pages: write
11
+ id-token: write
12
+
13
+ concurrency:
14
+ group: "pages"
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ test:
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ python-version: ['3.10', '3.12', '3.13']
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Install dependencies
31
+ run: pip install -e ".[test]"
32
+
33
+ - name: Run tests
34
+ run: python -m pytest tests/ -v
35
+
36
+ build:
37
+ needs: test
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+
42
+ - uses: actions/setup-python@v5
43
+ with:
44
+ python-version: '3.12'
45
+
46
+ - name: Install MkDocs
47
+ run: pip install mkdocs-material mkdocs-mermaid-zoom
48
+
49
+ - name: Build site
50
+ run: mkdocs build --strict
51
+
52
+ - name: Upload artifact
53
+ uses: actions/upload-pages-artifact@v3
54
+ with:
55
+ path: site
56
+
57
+ deploy:
58
+ needs: build
59
+ runs-on: ubuntu-latest
60
+ environment:
61
+ name: github-pages
62
+ url: ${{ steps.deployment.outputs.page_url }}
63
+ steps:
64
+ - name: Deploy to GitHub Pages
65
+ id: deployment
66
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,45 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags: ['v*', '[0-9]*']
6
+
7
+ jobs:
8
+ test:
9
+ runs-on: ubuntu-latest
10
+ strategy:
11
+ matrix:
12
+ python-version: ['3.10', '3.12', '3.13']
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: ${{ matrix.python-version }}
19
+
20
+ - name: Install dependencies
21
+ run: pip install -e ".[test]"
22
+
23
+ - name: Run tests
24
+ run: python -m pytest tests/ -v
25
+
26
+ publish:
27
+ needs: test
28
+ runs-on: ubuntu-latest
29
+ permissions:
30
+ id-token: write
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version: '3.12'
37
+
38
+ - name: Install build tools
39
+ run: pip install build
40
+
41
+ - name: Build package
42
+ run: python -m build
43
+
44
+ - name: Publish to PyPI
45
+ uses: pypa/gh-action-pypi-publish@release/v1
floop-0.1.0/.gitignore ADDED
@@ -0,0 +1,40 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.pyo
5
+ *.pyd
6
+ *.egg-info/
7
+ *.egg
8
+ dist/
9
+ build/
10
+ .eggs/
11
+
12
+ # Virtual environments
13
+ .venv/
14
+ venv/
15
+ env/
16
+
17
+ # Testing / coverage
18
+ .pytest_cache/
19
+ .coverage
20
+ htmlcov/
21
+ coverage.xml
22
+ *.cover
23
+
24
+ # mypy / type checkers
25
+ .mypy_cache/
26
+ .dmypy.json
27
+
28
+ # Distribution
29
+ *.whl
30
+ *.tar.gz
31
+ MANIFEST
32
+
33
+ # IDE
34
+ .vscode/
35
+ .idea/
36
+ *.swp
37
+ *.swo
38
+
39
+ # macOS
40
+ .DS_Store
floop-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,225 @@
1
+ Metadata-Version: 2.4
2
+ Name: floop
3
+ Version: 0.1.0
4
+ Summary: AI-native prototype quality toolkit — Agent Skill + review workflow CLI
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: click>=8.1
9
+ Requires-Dist: pyyaml>=6.0
10
+ Provides-Extra: test
11
+ Requires-Dist: pytest>=8.0; extra == "test"
12
+ Requires-Dist: pytest-cov>=5.0; extra == "test"
13
+
14
+ # floop
15
+
16
+ **AI prototypes degrade with every iteration. floop is the missing quality loop that keeps your Agent honest. An open-source alternative to Figma Make and Google Stitch.**
17
+
18
+ [![PyPI version](https://img.shields.io/pypi/v/floop?style=for-the-badge)](https://pypi.org/project/floop/)
19
+ [![Python](https://img.shields.io/pypi/pyversions/floop?style=for-the-badge)](https://pypi.org/project/floop/)
20
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=for-the-badge)](LICENSE)
21
+ [![Agents](https://img.shields.io/badge/agents-7%20supported-green?style=for-the-badge)](#supported-agents)
22
+ [![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen?style=for-the-badge)](#)
23
+
24
+ ---
25
+
26
+ ## The Problem: The "Disposable Prototype" Trap
27
+
28
+ Building a UI with AI (Cursor, Claude, Copilot) always starts out feeling like magic. But as you iterate, that magic quickly turns into a mess.
29
+
30
+ Because AI lacks design discipline, it hallucinates new colors, forgets your component library, and injects messy inline styles. What you hoped would be a maintainable project becomes a **disposable prototype**—a tangled codebase that you'll inevitably have to throw away and rewrite from scratch.
31
+
32
+ **Why does this happen?** AI is perfectly optimized to generate code *forward*, but has zero ability to enforce consistency *backward*. It's exactly like writing code without tests: it works on day one, but silently degrades with every new feature.
33
+
34
+ ```text
35
+ WITHOUT floop
36
+
37
+ Iteration 1: "Build a login page" → looks perfect ✓
38
+ Iteration 3: "Add a dashboard" → hallucinates new shades of blue, adds inline CSS
39
+ Iteration 5: "Add settings page" → forgets components entirely, writes raw HTML
40
+ Iteration 8: "Change brand color" → updates 2 files, misses 6 others
41
+ Iteration 10: "Add onboarding" → unmaintainable Frankenstein codebase
42
+
43
+ Result: The AI only generated forward. No one caught the regressions.
44
+ ```
45
+
46
+ ```text
47
+ WITH floop
48
+
49
+ Iteration 1: "Build a login page" → tokens.css + components.js, validated ✓
50
+ Iteration 3: "Add a dashboard" → perfectly reuses the exact same tokens and components ✓
51
+ Iteration 5: "Add settings page" → floop catches raw tags, forces agent to rewrite them ✓
52
+ Iteration 8: "Change brand color" → update one token, rebuild — all 8 pages sync ✓
53
+ Iteration 10: "Add onboarding" → pristine consistency, production-ready ✓
54
+
55
+ Result: The quality loop catches what the AI misses. Every page, every iteration.
56
+ ```
57
+
58
+ ---
59
+
60
+ ## What floop Does
61
+
62
+ floop forces your AI to stop writing free-form, disposable HTML and start building a structured, reusable design system. It overrides the AI's default "just generate" behavior by locking it into a strict, backward-checked workflow.
63
+
64
+ Instead of generating page layouts immediately, the AI must explicitly define design tokens and components first. Then, floop acts as your project's quality gate, catching regressions (like bare HTML tags or hallucinatory colors) when the AI inevitably tries to cut corners.
65
+
66
+ ```mermaid
67
+ flowchart TD
68
+ Start(["New Iteration / Request"]) --> Sketch["Step 1: Sketch & Plan"]
69
+
70
+ subgraph "✅ Forward Validation (Building it right)"
71
+ Sketch --> Token["Step 2: Update Tokens"]
72
+ Token -.->|"floop token validate"| Token
73
+ Token --> Sitemap["Step 3: Update Sitemap"]
74
+ Sitemap --> Component["Step 4: Update Components"]
75
+ Component -.->|"floop component validate"| Component
76
+ end
77
+
78
+ Component --> Build["Step 5: Build HTML"]
79
+
80
+ subgraph "🔁 Backward Check (Did the AI miss anything?)"
81
+ Build --> Check{"Step 6: floop journey check"}
82
+ end
83
+
84
+ Check -.->|"❌ Fails: Bare tags, missing references"| Token
85
+ Check -->|"✅ Passes: 100% consistent"| Confirm(["Step 7: User Confirm"])
86
+ Confirm --> Start
87
+
88
+ style Check fill:#ffe6e6,stroke:#ff6b6b,stroke-width:2px
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Why floop
94
+
95
+ ### For Individuals (Makers & Founders)
96
+ > AI delivers infinite speed, but **you** need sustainable assets.
97
+
98
+ AI accelerates your imagination, but if you don't enforce discipline, you end up with an unmaintainable toy. floop acts as your automated safety net, ensuring your fast prototypes remain structurally sound, preventing technical debt from forcing a complete rewrite.
99
+
100
+ ### For Teams (Designers & Developers)
101
+ > Real projects run on design systems, not inline styles.
102
+
103
+ AI-generated code is notoriously hard to hand off because it relies on hallucinated DOM structures and hardcoded colors. By enforcing W3C DTCG tokens and a strict component YAML, floop guarantees the AI outputs developer-ready `tokens.css` and `components.js` that seamlessly merge into real production codebases.
104
+
105
+
106
+ ---
107
+
108
+ ## Use Cases
109
+
110
+ ### Scenario 1: The Global Redesign
111
+ **Problem:** "Make all the primary buttons slightly rounder, and change the brand color to purple." The AI updates the homepage perfectly, but forgets the dashboard, settings, and login pages.
112
+
113
+ **floop Solution:** The AI is instructed to update the `global.tokens.json`. You run `floop build`. Every single page across the entire project updates instantly with mathematical consistency. No manual sweeping required.
114
+
115
+ ### Scenario 2: The Multi-Page Hallucination
116
+ **Problem:** When you ask the AI to build a list view for page 2, it invents a totally new card style with hardcoded `border-radius: 8px` and `#333` hex colors.
117
+
118
+ **floop Solution:** The AI is strictly bound by `.floop/components.yaml`. When it attempts to build page 2, `floop journey check` detects the bare `<div>` tags and inline styles. The check fails, and the agent is forced to rewrite the page using the registered `DataCard` component or fail the build.
119
+
120
+ ### Scenario 3: Handoff to Engineering
121
+ **Problem:** Developers refuse to touch AI prototypes because they're a tangled mess of arbitrary class names and unmaintainable inline styles.
122
+
123
+ **floop Solution:** Because floop enforced standard `tokens.css` and documented `components.js` from day one, engineers can drop these exact artifacts directly into their React/Vue/Tailwind design systems. It's production-ready CSS architecture from the start.
124
+
125
+
126
+
127
+ ---
128
+
129
+ ## Features
130
+
131
+ - **Design System Tokens**: Manage brand variables using the W3C DTCG format (global → semantic → component).
132
+ - **Structured Prototypes**: Compose layouts through defined components, domain logic, and journey maps.
133
+ - **Multiple Platform Preview**: Inspect your UI seamlessly across Web, Tablet, and Mobile device shells.
134
+ - **Code-Level Output**: Automatically compile design concepts into developer-friendly `tokens.css` and `components.js`.
135
+ - **Multi-Version Snapshots**: Save named iterations (v1, v2) and easily compare or roll back versions in the local preview.
136
+
137
+ ### Highlights: The Quality Mechanisms
138
+
139
+ To keep the AI in check, floop enforces a structured workflow combining manual confirmation with two automated quality gates.
140
+
141
+ - **🫂 Human in the Loop**: The AI never commits blindly. Every iteration pauses for your explicit review and confirmation.
142
+ - **✅ Forward Validate**: Verifies tokens and components format and cross-references *before* the AI is allowed to build the page layout (`floop token validate`).
143
+ - **🔁 Backward Check**: Scans the generated HTML to catch bare DOM tags, hallucinated inline CSS, or missing token references *after* the page is built (`floop journey check`).
144
+
145
+ ### Supported Agents
146
+
147
+ | Agent | Command |
148
+ |-------|---------|
149
+ | GitHub Copilot | `floop enable copilot` |
150
+ | Cursor | `floop enable cursor` |
151
+ | Claude Code | `floop enable claude` |
152
+ | Trae IDE | `floop enable trae` |
153
+ | Qwen Code | `floop enable qwen-code` |
154
+ | OpenCode | `floop enable opencode` |
155
+ | OpenClaw | `floop enable openclaw` |
156
+
157
+ ---
158
+
159
+ ## Installation
160
+
161
+ ```bash
162
+ pip install floop
163
+ ```
164
+
165
+ Verify:
166
+
167
+ ```bash
168
+ floop --version
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Quick Start
174
+
175
+ ```bash
176
+ # 1. Initialize project
177
+ cd your-project
178
+ floop init
179
+
180
+ # 2. Install skills into your AI agent
181
+ floop enable copilot # or: cursor, claude, trae, qwen-code, opencode, openclaw
182
+
183
+ # 3. Prompt your AI Agent
184
+ # Just tell it what you want to build (e.g., "Build a SaaS dashboard").
185
+ # The installed floop skill will take over and guide it step-by-step.
186
+
187
+ # 4. Preview the result
188
+ floop preview
189
+ # Opens http://localhost:<port>
190
+ ```
191
+
192
+ ---
193
+
194
+ ## For Contributors
195
+
196
+ Because floop is fundamentally a tool focused on **Agent Engineering**, we welcome contributors looking to expand the toolkit of supported Agents or harden the validation mechanics of the CLI!
197
+
198
+ ### Getting Started
199
+
200
+ ```bash
201
+ # 1. Fork and clone the repository
202
+ git clone https://github.com/<your-username>/floop.git
203
+ cd floop/floop-cli
204
+
205
+ # 2. Install inside a virtual environment for development
206
+ pip install -e ".[test]"
207
+
208
+ # 3. Run the test suite (floop maintains 100% coverage)
209
+ pytest tests/
210
+
211
+ # 4. Want to add a new AI Agent to `floop enable`?
212
+ # Add yours directly in: src/floop/skills.py
213
+ ```
214
+
215
+ ---
216
+
217
+ ## Star History
218
+
219
+ [![Star History Chart](https://api.star-history.com/svg?repos=marvintalk/floop&type=Date)](https://star-history.com/#marvintalk/floop&Date)
220
+
221
+ ---
222
+
223
+ ## License
224
+
225
+ This project is licensed under the [Apache License 2.0](LICENSE).
floop-0.1.0/README.md ADDED
@@ -0,0 +1,212 @@
1
+ # floop
2
+
3
+ **AI prototypes degrade with every iteration. floop is the missing quality loop that keeps your Agent honest. An open-source alternative to Figma Make and Google Stitch.**
4
+
5
+ [![PyPI version](https://img.shields.io/pypi/v/floop?style=for-the-badge)](https://pypi.org/project/floop/)
6
+ [![Python](https://img.shields.io/pypi/pyversions/floop?style=for-the-badge)](https://pypi.org/project/floop/)
7
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=for-the-badge)](LICENSE)
8
+ [![Agents](https://img.shields.io/badge/agents-7%20supported-green?style=for-the-badge)](#supported-agents)
9
+ [![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen?style=for-the-badge)](#)
10
+
11
+ ---
12
+
13
+ ## The Problem: The "Disposable Prototype" Trap
14
+
15
+ Building a UI with AI (Cursor, Claude, Copilot) always starts out feeling like magic. But as you iterate, that magic quickly turns into a mess.
16
+
17
+ Because AI lacks design discipline, it hallucinates new colors, forgets your component library, and injects messy inline styles. What you hoped would be a maintainable project becomes a **disposable prototype**—a tangled codebase that you'll inevitably have to throw away and rewrite from scratch.
18
+
19
+ **Why does this happen?** AI is perfectly optimized to generate code *forward*, but has zero ability to enforce consistency *backward*. It's exactly like writing code without tests: it works on day one, but silently degrades with every new feature.
20
+
21
+ ```text
22
+ WITHOUT floop
23
+
24
+ Iteration 1: "Build a login page" → looks perfect ✓
25
+ Iteration 3: "Add a dashboard" → hallucinates new shades of blue, adds inline CSS
26
+ Iteration 5: "Add settings page" → forgets components entirely, writes raw HTML
27
+ Iteration 8: "Change brand color" → updates 2 files, misses 6 others
28
+ Iteration 10: "Add onboarding" → unmaintainable Frankenstein codebase
29
+
30
+ Result: The AI only generated forward. No one caught the regressions.
31
+ ```
32
+
33
+ ```text
34
+ WITH floop
35
+
36
+ Iteration 1: "Build a login page" → tokens.css + components.js, validated ✓
37
+ Iteration 3: "Add a dashboard" → perfectly reuses the exact same tokens and components ✓
38
+ Iteration 5: "Add settings page" → floop catches raw tags, forces agent to rewrite them ✓
39
+ Iteration 8: "Change brand color" → update one token, rebuild — all 8 pages sync ✓
40
+ Iteration 10: "Add onboarding" → pristine consistency, production-ready ✓
41
+
42
+ Result: The quality loop catches what the AI misses. Every page, every iteration.
43
+ ```
44
+
45
+ ---
46
+
47
+ ## What floop Does
48
+
49
+ floop forces your AI to stop writing free-form, disposable HTML and start building a structured, reusable design system. It overrides the AI's default "just generate" behavior by locking it into a strict, backward-checked workflow.
50
+
51
+ Instead of generating page layouts immediately, the AI must explicitly define design tokens and components first. Then, floop acts as your project's quality gate, catching regressions (like bare HTML tags or hallucinatory colors) when the AI inevitably tries to cut corners.
52
+
53
+ ```mermaid
54
+ flowchart TD
55
+ Start(["New Iteration / Request"]) --> Sketch["Step 1: Sketch & Plan"]
56
+
57
+ subgraph "✅ Forward Validation (Building it right)"
58
+ Sketch --> Token["Step 2: Update Tokens"]
59
+ Token -.->|"floop token validate"| Token
60
+ Token --> Sitemap["Step 3: Update Sitemap"]
61
+ Sitemap --> Component["Step 4: Update Components"]
62
+ Component -.->|"floop component validate"| Component
63
+ end
64
+
65
+ Component --> Build["Step 5: Build HTML"]
66
+
67
+ subgraph "🔁 Backward Check (Did the AI miss anything?)"
68
+ Build --> Check{"Step 6: floop journey check"}
69
+ end
70
+
71
+ Check -.->|"❌ Fails: Bare tags, missing references"| Token
72
+ Check -->|"✅ Passes: 100% consistent"| Confirm(["Step 7: User Confirm"])
73
+ Confirm --> Start
74
+
75
+ style Check fill:#ffe6e6,stroke:#ff6b6b,stroke-width:2px
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Why floop
81
+
82
+ ### For Individuals (Makers & Founders)
83
+ > AI delivers infinite speed, but **you** need sustainable assets.
84
+
85
+ AI accelerates your imagination, but if you don't enforce discipline, you end up with an unmaintainable toy. floop acts as your automated safety net, ensuring your fast prototypes remain structurally sound, preventing technical debt from forcing a complete rewrite.
86
+
87
+ ### For Teams (Designers & Developers)
88
+ > Real projects run on design systems, not inline styles.
89
+
90
+ AI-generated code is notoriously hard to hand off because it relies on hallucinated DOM structures and hardcoded colors. By enforcing W3C DTCG tokens and a strict component YAML, floop guarantees the AI outputs developer-ready `tokens.css` and `components.js` that seamlessly merge into real production codebases.
91
+
92
+
93
+ ---
94
+
95
+ ## Use Cases
96
+
97
+ ### Scenario 1: The Global Redesign
98
+ **Problem:** "Make all the primary buttons slightly rounder, and change the brand color to purple." The AI updates the homepage perfectly, but forgets the dashboard, settings, and login pages.
99
+
100
+ **floop Solution:** The AI is instructed to update the `global.tokens.json`. You run `floop build`. Every single page across the entire project updates instantly with mathematical consistency. No manual sweeping required.
101
+
102
+ ### Scenario 2: The Multi-Page Hallucination
103
+ **Problem:** When you ask the AI to build a list view for page 2, it invents a totally new card style with hardcoded `border-radius: 8px` and `#333` hex colors.
104
+
105
+ **floop Solution:** The AI is strictly bound by `.floop/components.yaml`. When it attempts to build page 2, `floop journey check` detects the bare `<div>` tags and inline styles. The check fails, and the agent is forced to rewrite the page using the registered `DataCard` component or fail the build.
106
+
107
+ ### Scenario 3: Handoff to Engineering
108
+ **Problem:** Developers refuse to touch AI prototypes because they're a tangled mess of arbitrary class names and unmaintainable inline styles.
109
+
110
+ **floop Solution:** Because floop enforced standard `tokens.css` and documented `components.js` from day one, engineers can drop these exact artifacts directly into their React/Vue/Tailwind design systems. It's production-ready CSS architecture from the start.
111
+
112
+
113
+
114
+ ---
115
+
116
+ ## Features
117
+
118
+ - **Design System Tokens**: Manage brand variables using the W3C DTCG format (global → semantic → component).
119
+ - **Structured Prototypes**: Compose layouts through defined components, domain logic, and journey maps.
120
+ - **Multiple Platform Preview**: Inspect your UI seamlessly across Web, Tablet, and Mobile device shells.
121
+ - **Code-Level Output**: Automatically compile design concepts into developer-friendly `tokens.css` and `components.js`.
122
+ - **Multi-Version Snapshots**: Save named iterations (v1, v2) and easily compare or roll back versions in the local preview.
123
+
124
+ ### Highlights: The Quality Mechanisms
125
+
126
+ To keep the AI in check, floop enforces a structured workflow combining manual confirmation with two automated quality gates.
127
+
128
+ - **🫂 Human in the Loop**: The AI never commits blindly. Every iteration pauses for your explicit review and confirmation.
129
+ - **✅ Forward Validate**: Verifies tokens and components format and cross-references *before* the AI is allowed to build the page layout (`floop token validate`).
130
+ - **🔁 Backward Check**: Scans the generated HTML to catch bare DOM tags, hallucinated inline CSS, or missing token references *after* the page is built (`floop journey check`).
131
+
132
+ ### Supported Agents
133
+
134
+ | Agent | Command |
135
+ |-------|---------|
136
+ | GitHub Copilot | `floop enable copilot` |
137
+ | Cursor | `floop enable cursor` |
138
+ | Claude Code | `floop enable claude` |
139
+ | Trae IDE | `floop enable trae` |
140
+ | Qwen Code | `floop enable qwen-code` |
141
+ | OpenCode | `floop enable opencode` |
142
+ | OpenClaw | `floop enable openclaw` |
143
+
144
+ ---
145
+
146
+ ## Installation
147
+
148
+ ```bash
149
+ pip install floop
150
+ ```
151
+
152
+ Verify:
153
+
154
+ ```bash
155
+ floop --version
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Quick Start
161
+
162
+ ```bash
163
+ # 1. Initialize project
164
+ cd your-project
165
+ floop init
166
+
167
+ # 2. Install skills into your AI agent
168
+ floop enable copilot # or: cursor, claude, trae, qwen-code, opencode, openclaw
169
+
170
+ # 3. Prompt your AI Agent
171
+ # Just tell it what you want to build (e.g., "Build a SaaS dashboard").
172
+ # The installed floop skill will take over and guide it step-by-step.
173
+
174
+ # 4. Preview the result
175
+ floop preview
176
+ # Opens http://localhost:<port>
177
+ ```
178
+
179
+ ---
180
+
181
+ ## For Contributors
182
+
183
+ Because floop is fundamentally a tool focused on **Agent Engineering**, we welcome contributors looking to expand the toolkit of supported Agents or harden the validation mechanics of the CLI!
184
+
185
+ ### Getting Started
186
+
187
+ ```bash
188
+ # 1. Fork and clone the repository
189
+ git clone https://github.com/<your-username>/floop.git
190
+ cd floop/floop-cli
191
+
192
+ # 2. Install inside a virtual environment for development
193
+ pip install -e ".[test]"
194
+
195
+ # 3. Run the test suite (floop maintains 100% coverage)
196
+ pytest tests/
197
+
198
+ # 4. Want to add a new AI Agent to `floop enable`?
199
+ # Add yours directly in: src/floop/skills.py
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Star History
205
+
206
+ [![Star History Chart](https://api.star-history.com/svg?repos=marvintalk/floop&type=Date)](https://star-history.com/#marvintalk/floop&Date)
207
+
208
+ ---
209
+
210
+ ## License
211
+
212
+ This project is licensed under the [Apache License 2.0](LICENSE).