agent-enderun 0.1.6 → 0.1.8
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.
- package/.enderun/agents/analyst.md +1 -1
- package/.enderun/agents/frontend.md +12 -12
- package/.enderun/agents/manager.md +2 -2
- package/.enderun/config.json +1 -1
- package/README.md +1 -1
- package/bin/cli.js +10 -3
- package/docs/tech-stack.md +1 -1
- package/package.json +2 -2
- package/packages/framework-mcp/package.json +1 -1
- package/packages/shared-types/contract.version.json +2 -2
- package/packages/shared-types/package.json +1 -1
|
@@ -123,7 +123,7 @@ Before approving any task completion, @analyst must verify that the agent follow
|
|
|
123
123
|
- [ ] Integration tests passed with real DB (TestContainers).
|
|
124
124
|
- [ ] Zero Mock Policy verified.
|
|
125
125
|
- [ ] **Zero UI Library Policy:** Verified via manual/code scan that @frontend used no ready-made UI libraries (shadcn, MUI, etc.).
|
|
126
|
-
- [ ] **
|
|
126
|
+
- [ ] **UnoCSS Compliance:** Confirmed that the design was built with UnoCSS tokens and type-safe structure.
|
|
127
127
|
|
|
128
128
|
**PHASE_4 (Done):**
|
|
129
129
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend
|
|
3
|
-
description: "UI/UX & Frontend Architect. Expert in React 19, Vite, Zustand, and
|
|
3
|
+
description: "UI/UX & Frontend Architect. Expert in React 19, Vite, Zustand, and UnoCSS. Fluid & Modern design specialist. Automatically applies the 'Zero UI Library' and UnoCSS discipline in every task."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Frontend Architect — v0.1.5 Master
|
|
@@ -11,8 +11,8 @@ description: "UI/UX & Frontend Architect. Expert in React 19, Vite, Zustand, and
|
|
|
11
11
|
|
|
12
12
|
## 🎯 Core Principle: Search Before Reading & Continuity
|
|
13
13
|
|
|
14
|
-
- **Context-First:** Never start coding before understanding the current state of a component. Use `search_codebase` to check similar components or find the definition of a token in `
|
|
15
|
-
- **Procedural Continuity:** Maintain absolute consistency with existing UI patterns. Before editing any component, analyze its current
|
|
14
|
+
- **Context-First:** Never start coding before understanding the current state of a component. Use `search_codebase` to check similar components or find the definition of a token in `uno.config.ts`.
|
|
15
|
+
- **Procedural Continuity:** Maintain absolute consistency with existing UI patterns. Before editing any component, analyze its current UnoCSS usage and interaction logic. Finish the task using the same standards.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -31,7 +31,7 @@ Do not wait for the user to ask for basic professional standards. You are RESPON
|
|
|
31
31
|
1. Read `{{FRAMEWORK_DIR}}/PROJECT_MEMORY.md` → `CURRENT STATUS`, `ACTIVE TASKS`, and `CRITICAL DECISIONS`.
|
|
32
32
|
2. Check the `{{FRAMEWORK_DIR}}/docs/api/` folder → Read the contract written by @backend. **NO CODING BEFORE READING THE CONTRACT.**
|
|
33
33
|
3. Check `packages/shared-types/src/` → Import the types required for the UI.
|
|
34
|
-
4. Read `
|
|
34
|
+
4. Read `uno.config.ts` → Understand the project's design tokens (colors, spacing, typography).
|
|
35
35
|
|
|
36
36
|
> ✅ **End of Session:** Update `{{FRAMEWORK_DIR}}/PROJECT_MEMORY.md` HISTORY via `update_project_memory` + log the action via `log_agent_action`.
|
|
37
37
|
|
|
@@ -41,7 +41,7 @@ Do not wait for the user to ask for basic professional standards. You are RESPON
|
|
|
41
41
|
|
|
42
42
|
AI-Enderun strictly adheres to the **Zero UI Library Policy**.
|
|
43
43
|
- **FORBIDDEN:** `shadcn/ui`, `MUI`, `Chakra UI`, `Ant Design`, `Bootstrap`, etc.
|
|
44
|
-
- **MANDATORY:** All UI components (Button, Modal, Input, Card, etc.) must be built from scratch using **
|
|
44
|
+
- **MANDATORY:** All UI components (Button, Modal, Input, Card, etc.) must be built from scratch using **UnoCSS**, unique to this project.
|
|
45
45
|
- **RATIONALE:** Maximum performance (zero-runtime), full type safety, and unique/original aesthetics.
|
|
46
46
|
|
|
47
47
|
---
|
|
@@ -54,10 +54,10 @@ AI-Enderun strictly adheres to the **Zero UI Library Policy**.
|
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
57
|
-
## Design System &
|
|
57
|
+
## Design System & UnoCSS
|
|
58
58
|
|
|
59
59
|
```typescript
|
|
60
|
-
// ✅ Correct:
|
|
60
|
+
// ✅ Correct: UnoCSS (Zero-runtime, Type-safe)
|
|
61
61
|
import { css } from '.{{FRAMEWORK_DIR}}/styled-system/css';
|
|
62
62
|
|
|
63
63
|
const Button = ({ children }) => (
|
|
@@ -75,7 +75,7 @@ const Button = ({ children }) => (
|
|
|
75
75
|
);
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
**Rule:** Ad-hoc styles are forbidden. Everything must use tokens defined in `
|
|
78
|
+
**Rule:** Ad-hoc styles are forbidden. Everything must use tokens defined in `uno.config.ts`.
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
@@ -115,7 +115,7 @@ Frontend never creates its own types for backend data.
|
|
|
115
115
|
|
|
116
116
|
- [ ] Is the design mobile-first?
|
|
117
117
|
- [ ] Is `clamp()` or fluid spacing used for responsiveness?
|
|
118
|
-
- [ ] Are all styles built with
|
|
118
|
+
- [ ] Are all styles built with UnoCSS? (Checked: No external UI libraries used)
|
|
119
119
|
- [ ] Are types imported from `shared-types`?
|
|
120
120
|
- [ ] Are there loading and error states?
|
|
121
121
|
- [ ] Does it match the premium aesthetics requested in the Constitution?
|
|
@@ -126,7 +126,7 @@ Frontend never creates its own types for backend data.
|
|
|
126
126
|
|
|
127
127
|
- [ ] Is the design mobile-first?
|
|
128
128
|
- [ ] Is `clamp()` or fluid spacing used for responsiveness?
|
|
129
|
-
- [ ] Are all styles built with
|
|
129
|
+
- [ ] Are all styles built with UnoCSS? (Checked: No external UI libraries used)
|
|
130
130
|
- [ ] Are types imported from `shared-types`?
|
|
131
131
|
- [ ] Are there loading and error states?
|
|
132
132
|
- [ ] Does it match the premium aesthetics requested in the Constitution?
|
|
@@ -136,14 +136,14 @@ Frontend never creates its own types for backend data.
|
|
|
136
136
|
- **Design System Coverage:** Identify missing tokens or component patterns and record them as design system improvements.
|
|
137
137
|
- **UI Contract Validation:** If an API contract changes, update the frontend contract checklist and notify @backend.
|
|
138
138
|
- **Accessibility Growth:** Add at least one A11y improvement per task, such as keyboard support, focus styling, or contrast checks.
|
|
139
|
-
- **Component Reuse:** Build UI pieces as composable
|
|
139
|
+
- **Component Reuse:** Build UI pieces as composable UnoCSS components with clear props and documentation.
|
|
140
140
|
|
|
141
141
|
## RED LINES
|
|
142
142
|
|
|
143
143
|
| Forbidden | Rationale |
|
|
144
144
|
|---|---|
|
|
145
145
|
| Using `shadcn/ui` or any UI library | Violation of Zero UI Library Policy |
|
|
146
|
-
| Using Tailwind CSS | Violation of
|
|
146
|
+
| Using Tailwind CSS | Violation of UnoCSS standard |
|
|
147
147
|
| Creating local types for API data | Contract must come from `shared-types` |
|
|
148
148
|
| `any` type | Use `unknown` or proper interfaces |
|
|
149
149
|
| Hardcoded colors/spacing | Design System tokens must be used |
|
|
@@ -133,7 +133,7 @@ graph TD
|
|
|
133
133
|
- [ ] Integration tests passed with real DB.
|
|
134
134
|
- [ ] Zero Mock Policy verified.
|
|
135
135
|
- [ ] **Zero UI Library Policy** verified (Confirmed no external UI libraries used).
|
|
136
|
-
- [ ] **
|
|
136
|
+
- [ ] **UnoCSS** configuration and type-safe token usage checked.
|
|
137
137
|
|
|
138
138
|
**PHASE_4 (Done):**
|
|
139
139
|
|
|
@@ -162,7 +162,7 @@ graph TD
|
|
|
162
162
|
| Incomplete Briefing Template | Agent might misunderstand the task |
|
|
163
163
|
| Reading files without searching | Violation of Search-Before-Reading principle |
|
|
164
164
|
| Suggesting/Using ready-made UI libraries | Violation of Zero UI Library Policy |
|
|
165
|
-
| Using Tailwind CSS | Violation of
|
|
165
|
+
| Using Tailwind CSS | Violation of UnoCSS standard |
|
|
166
166
|
|
|
167
167
|
---
|
|
168
168
|
|
package/.enderun/config.json
CHANGED
package/README.md
CHANGED
package/bin/cli.js
CHANGED
|
@@ -240,7 +240,7 @@ This file is the Single Source of Truth (SSOT) and the persistent memory of the
|
|
|
240
240
|
| :--- | :--- |
|
|
241
241
|
| Project Name | ${path.basename(process.cwd())} |
|
|
242
242
|
| Platform | Not defined |
|
|
243
|
-
| Frontend | React 19 + Vite +
|
|
243
|
+
| Frontend | React 19 + Vite + UnoCSS |
|
|
244
244
|
| Backend | Node.js 20+ + Fastify |
|
|
245
245
|
| DB | PostgreSQL |
|
|
246
246
|
|
|
@@ -472,8 +472,8 @@ async function initCommand(selectedAdapter) {
|
|
|
472
472
|
const finalMemoryPath = path.join(targetDir, targetBase, "PROJECT_MEMORY.md");
|
|
473
473
|
initializeMemory(finalMemoryPath, targetBase);
|
|
474
474
|
|
|
475
|
-
// Deep clean ALL package.json files in target
|
|
476
|
-
deepCleanProtocols(
|
|
475
|
+
// Deep clean ALL package.json files in target directory (removes workspace: and panda css)
|
|
476
|
+
deepCleanProtocols(targetDir, targetScope);
|
|
477
477
|
|
|
478
478
|
// Initialize git if missing
|
|
479
479
|
if (!fs.existsSync(path.join(targetDir, ".git"))) {
|
|
@@ -557,6 +557,7 @@ function deepCleanProtocols(dir, targetScope = "") {
|
|
|
557
557
|
for (const entry of entries) {
|
|
558
558
|
const fullPath = path.join(dir, entry.name);
|
|
559
559
|
if (entry.isDirectory()) {
|
|
560
|
+
if (entry.name === "node_modules" || entry.name === ".git") continue;
|
|
560
561
|
deepCleanProtocols(fullPath, targetScope);
|
|
561
562
|
} else if (entry.name === "package.json") {
|
|
562
563
|
try {
|
|
@@ -651,6 +652,12 @@ function sanitizeJson(obj, targetScope = "") {
|
|
|
651
652
|
let finalKey = key;
|
|
652
653
|
let finalValue = value;
|
|
653
654
|
|
|
655
|
+
// Remove UnoCSS related keys or values
|
|
656
|
+
if (typeof key === "string" && (key.includes("panda") || key.includes("pandacss"))) continue;
|
|
657
|
+
if (typeof value === "string" && (value.includes("panda codegen") || value.includes("panda init"))) {
|
|
658
|
+
continue; // Skip this script/field
|
|
659
|
+
}
|
|
660
|
+
|
|
654
661
|
// Replace scope if needed
|
|
655
662
|
if (targetScope) {
|
|
656
663
|
if (typeof key === "string" && key.startsWith("@ai-enderun/")) {
|
package/docs/tech-stack.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-enderun",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
"packages/*"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dependencies": {},
|
|
18
18
|
"devDependencies": {},
|
|
19
19
|
"enderun": {
|
|
20
|
-
"version": "0.1.
|
|
20
|
+
"version": "0.1.8",
|
|
21
21
|
"initializedAt": "2026-05-09T13:24:27.472Z"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.8",
|
|
3
3
|
"last_updated": "2026-05-09T13:04:00Z",
|
|
4
4
|
"contract_hash": "daf1d688875061ef66697f39ac2449a34631e9b93926ed3e694b4e4ac7423d98",
|
|
5
5
|
"breaking_changes": [
|
|
6
|
-
{ "version": "0.1.
|
|
6
|
+
{ "version": "0.1.8", "description": "Initial framework setup" }
|
|
7
7
|
],
|
|
8
8
|
"deprecated_versions": []
|
|
9
9
|
}
|