achira-wf 3.1.0
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/.achira/ARCHITECTURE.md +296 -0
- package/.achira/core/agents/backend-specialist.md +263 -0
- package/.achira/core/agents/code-archaeologist.md +106 -0
- package/.achira/core/agents/database-architect.md +226 -0
- package/.achira/core/agents/debugger.md +225 -0
- package/.achira/core/agents/devops-engineer.md +242 -0
- package/.achira/core/agents/documentation-writer.md +104 -0
- package/.achira/core/agents/explorer-agent.md +73 -0
- package/.achira/core/agents/frontend-specialist.md +593 -0
- package/.achira/core/agents/game-developer.md +162 -0
- package/.achira/core/agents/mobile-developer.md +377 -0
- package/.achira/core/agents/orchestrator.md +416 -0
- package/.achira/core/agents/penetration-tester.md +188 -0
- package/.achira/core/agents/performance-optimizer.md +187 -0
- package/.achira/core/agents/product-manager.md +112 -0
- package/.achira/core/agents/product-owner.md +95 -0
- package/.achira/core/agents/project-planner.md +413 -0
- package/.achira/core/agents/qa-automation-engineer.md +103 -0
- package/.achira/core/agents/security-auditor.md +170 -0
- package/.achira/core/agents/seo-specialist.md +111 -0
- package/.achira/core/agents/test-engineer.md +158 -0
- package/.achira/core/mcp_config.json +24 -0
- package/.achira/core/shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.achira/core/shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.achira/core/shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.achira/core/shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.achira/core/shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.achira/core/shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.achira/core/shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.achira/core/shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.achira/core/shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.achira/core/shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.achira/core/shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.achira/core/shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.achira/core/shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/__pycache__/generate_theme.cpython-314.pyc +0 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/generate_theme.py +99 -0
- package/.achira/core/shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.achira/core/skills/api-patterns/SKILL.md +81 -0
- package/.achira/core/skills/api-patterns/api-style.md +42 -0
- package/.achira/core/skills/api-patterns/auth.md +24 -0
- package/.achira/core/skills/api-patterns/documentation.md +26 -0
- package/.achira/core/skills/api-patterns/graphql.md +41 -0
- package/.achira/core/skills/api-patterns/rate-limiting.md +31 -0
- package/.achira/core/skills/api-patterns/response.md +37 -0
- package/.achira/core/skills/api-patterns/rest.md +40 -0
- package/.achira/core/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.achira/core/skills/api-patterns/security-testing.md +122 -0
- package/.achira/core/skills/api-patterns/trpc.md +41 -0
- package/.achira/core/skills/api-patterns/versioning.md +22 -0
- package/.achira/core/skills/app-builder/SKILL.md +98 -0
- package/.achira/core/skills/app-builder/agent-coordination.md +71 -0
- package/.achira/core/skills/app-builder/feature-building.md +53 -0
- package/.achira/core/skills/app-builder/project-detection.md +34 -0
- package/.achira/core/skills/app-builder/scaffolding.md +118 -0
- package/.achira/core/skills/app-builder/tech-stack.md +40 -0
- package/.achira/core/skills/app-builder/templates/SKILL.md +39 -0
- package/.achira/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.achira/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.achira/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.achira/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.achira/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.achira/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.achira/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.achira/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.achira/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.achira/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.achira/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.achira/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.achira/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.achira/core/skills/architecture/SKILL.md +55 -0
- package/.achira/core/skills/architecture/context-discovery.md +43 -0
- package/.achira/core/skills/architecture/examples.md +94 -0
- package/.achira/core/skills/architecture/pattern-selection.md +68 -0
- package/.achira/core/skills/architecture/patterns-reference.md +50 -0
- package/.achira/core/skills/architecture/trade-off-analysis.md +77 -0
- package/.achira/core/skills/bash-linux/SKILL.md +199 -0
- package/.achira/core/skills/behavioral-modes/SKILL.md +242 -0
- package/.achira/core/skills/brainstorming/SKILL.md +163 -0
- package/.achira/core/skills/brainstorming/dynamic-questioning.md +350 -0
- package/.achira/core/skills/clean-code/SKILL.md +201 -0
- package/.achira/core/skills/code-review-checklist/SKILL.md +109 -0
- package/.achira/core/skills/database-design/SKILL.md +52 -0
- package/.achira/core/skills/database-design/database-selection.md +43 -0
- package/.achira/core/skills/database-design/indexing.md +39 -0
- package/.achira/core/skills/database-design/migrations.md +48 -0
- package/.achira/core/skills/database-design/optimization.md +36 -0
- package/.achira/core/skills/database-design/orm-selection.md +30 -0
- package/.achira/core/skills/database-design/schema-design.md +56 -0
- package/.achira/core/skills/database-design/scripts/schema_validator.py +172 -0
- package/.achira/core/skills/deployment-procedures/SKILL.md +241 -0
- package/.achira/core/skills/doc.md +177 -0
- package/.achira/core/skills/documentation-templates/SKILL.md +194 -0
- package/.achira/core/skills/frontend-design/SKILL.md +418 -0
- package/.achira/core/skills/frontend-design/animation-guide.md +331 -0
- package/.achira/core/skills/frontend-design/color-system.md +311 -0
- package/.achira/core/skills/frontend-design/decision-trees.md +418 -0
- package/.achira/core/skills/frontend-design/motion-graphics.md +306 -0
- package/.achira/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.achira/core/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.achira/core/skills/frontend-design/typography-system.md +345 -0
- package/.achira/core/skills/frontend-design/ux-psychology.md +1116 -0
- package/.achira/core/skills/frontend-design/visual-effects.md +383 -0
- package/.achira/core/skills/game-development/2d-games/SKILL.md +119 -0
- package/.achira/core/skills/game-development/3d-games/SKILL.md +135 -0
- package/.achira/core/skills/game-development/SKILL.md +167 -0
- package/.achira/core/skills/game-development/game-art/SKILL.md +185 -0
- package/.achira/core/skills/game-development/game-audio/SKILL.md +190 -0
- package/.achira/core/skills/game-development/game-design/SKILL.md +129 -0
- package/.achira/core/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.achira/core/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.achira/core/skills/game-development/pc-games/SKILL.md +144 -0
- package/.achira/core/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.achira/core/skills/game-development/web-games/SKILL.md +150 -0
- package/.achira/core/skills/geo-fundamentals/SKILL.md +156 -0
- package/.achira/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.achira/core/skills/i18n-localization/SKILL.md +154 -0
- package/.achira/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.achira/core/skills/intelligent-routing/SKILL.md +335 -0
- package/.achira/core/skills/lint-and-validate/SKILL.md +45 -0
- package/.achira/core/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.achira/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.achira/core/skills/mcp-builder/SKILL.md +176 -0
- package/.achira/core/skills/mobile-design/SKILL.md +394 -0
- package/.achira/core/skills/mobile-design/decision-trees.md +516 -0
- package/.achira/core/skills/mobile-design/mobile-backend.md +491 -0
- package/.achira/core/skills/mobile-design/mobile-color-system.md +420 -0
- package/.achira/core/skills/mobile-design/mobile-debugging.md +122 -0
- package/.achira/core/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/.achira/core/skills/mobile-design/mobile-navigation.md +458 -0
- package/.achira/core/skills/mobile-design/mobile-performance.md +767 -0
- package/.achira/core/skills/mobile-design/mobile-testing.md +356 -0
- package/.achira/core/skills/mobile-design/mobile-typography.md +433 -0
- package/.achira/core/skills/mobile-design/platform-android.md +666 -0
- package/.achira/core/skills/mobile-design/platform-ios.md +561 -0
- package/.achira/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.achira/core/skills/mobile-design/touch-psychology.md +537 -0
- package/.achira/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/.achira/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/.achira/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/.achira/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/.achira/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/.achira/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/.achira/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/.achira/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/.achira/core/skills/nextjs-react-expert/SKILL.md +286 -0
- package/.achira/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.achira/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.achira/core/skills/nodejs-best-practices/SKILL.md +333 -0
- package/.achira/core/skills/parallel-agents/SKILL.md +175 -0
- package/.achira/core/skills/performance-profiling/SKILL.md +143 -0
- package/.achira/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.achira/core/skills/plan-writing/SKILL.md +152 -0
- package/.achira/core/skills/powershell-windows/SKILL.md +167 -0
- package/.achira/core/skills/project-setup/SKILL.md +291 -0
- package/.achira/core/skills/python-patterns/SKILL.md +441 -0
- package/.achira/core/skills/red-team-tactics/SKILL.md +199 -0
- package/.achira/core/skills/rust-pro/SKILL.md +176 -0
- package/.achira/core/skills/seo-fundamentals/SKILL.md +129 -0
- package/.achira/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.achira/core/skills/server-management/SKILL.md +161 -0
- package/.achira/core/skills/systematic-debugging/SKILL.md +109 -0
- package/.achira/core/skills/tailwind-patterns/SKILL.md +269 -0
- package/.achira/core/skills/tdd-workflow/SKILL.md +149 -0
- package/.achira/core/skills/testing-patterns/SKILL.md +178 -0
- package/.achira/core/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.achira/core/skills/vulnerability-scanner/SKILL.md +276 -0
- package/.achira/core/skills/vulnerability-scanner/checklists.md +121 -0
- package/.achira/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.achira/core/skills/web-design-guidelines/SKILL.md +57 -0
- package/.achira/core/skills/webapp-testing/SKILL.md +187 -0
- package/.achira/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.achira/rules/GEMINI.md +273 -0
- package/.achira/scripts/__pycache__/checklist.cpython-314.pyc +0 -0
- package/.achira/scripts/__pycache__/shared_utils.cpython-314.pyc +0 -0
- package/.achira/scripts/__pycache__/verify_all.cpython-314.pyc +0 -0
- package/.achira/scripts/auto_preview.py +148 -0
- package/.achira/scripts/checklist.py +193 -0
- package/.achira/scripts/session_manager.py +120 -0
- package/.achira/scripts/shared_utils.py +64 -0
- package/.achira/scripts/verify_all.py +304 -0
- package/.achira/workflows/brainstorm.md +113 -0
- package/.achira/workflows/create.md +59 -0
- package/.achira/workflows/debug.md +103 -0
- package/.achira/workflows/deploy.md +176 -0
- package/.achira/workflows/enhance.md +63 -0
- package/.achira/workflows/html+js+css.md +363 -0
- package/.achira/workflows/next.js.md +316 -0
- package/.achira/workflows/orchestrate.md +237 -0
- package/.achira/workflows/plan.md +89 -0
- package/.achira/workflows/preview.md +81 -0
- package/.achira/workflows/react+vite.md +280 -0
- package/.achira/workflows/registry.json +35 -0
- package/.achira/workflows/status.md +86 -0
- package/.achira/workflows/test.md +144 -0
- package/.achira/workflows/ui-ux-pro-max.md +296 -0
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/html+js+css.md +363 -0
- package/.agent/workflows/next.js.md +316 -0
- package/.agent/workflows/orchestrate.md +237 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +81 -0
- package/.agent/workflows/react+vite.md +280 -0
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/LICENSE +21 -0
- package/README.md +110 -0
- package/cli.js +293 -0
- package/package.json +48 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Scaffold a mature, scalable React + Vite project with Absolute Imports, React Router, and a Service-oriented architecture.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
// turbo-all
|
|
6
|
+
|
|
7
|
+
## 1. Create the Vite project
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
npx -y create-vite@latest ./ --template react
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 2. Install scalable architecture dependencies
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
npm install axios lucide-react react-router-dom
|
|
17
|
+
npm install -D eslint prettier eslint-config-prettier vitest @testing-library/react @testing-library/jest-dom jsdom
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 3. Configure Absolute Imports (@)
|
|
21
|
+
|
|
22
|
+
### vite.config.js
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
import { defineConfig } from "vite";
|
|
26
|
+
import react from "@vitejs/plugin-react";
|
|
27
|
+
import { fileURLToPath, URL } from "node:url";
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
plugins: [react()],
|
|
31
|
+
resolve: {
|
|
32
|
+
alias: {
|
|
33
|
+
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
test: {
|
|
37
|
+
globals: true,
|
|
38
|
+
environment: "jsdom",
|
|
39
|
+
setupFiles: "./src/test/setup.js",
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### jsconfig.json
|
|
45
|
+
|
|
46
|
+
Add this to the project root so VS Code resolves `@/` imports:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"compilerOptions": {
|
|
51
|
+
"baseUrl": ".",
|
|
52
|
+
"paths": {
|
|
53
|
+
"@/*": ["./src/*"]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"include": ["src"]
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 4. Create directory structure
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
mkdir src/pages src/components src/layouts src/hooks src/services src/utils src/globals src/styles src/test
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 5. Global CSS Architecture
|
|
67
|
+
|
|
68
|
+
### src/globals/variables.css
|
|
69
|
+
|
|
70
|
+
```css
|
|
71
|
+
:root {
|
|
72
|
+
--color-primary: #6366f1;
|
|
73
|
+
--color-bg: #ffffff;
|
|
74
|
+
--color-text: #0f172a;
|
|
75
|
+
--transition-default: all 0.2s ease;
|
|
76
|
+
}
|
|
77
|
+
@media (prefers-color-scheme: dark) {
|
|
78
|
+
:root {
|
|
79
|
+
--color-bg: #0f172a;
|
|
80
|
+
--color-text: #f8fafc;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### src/globals/reset.css
|
|
86
|
+
|
|
87
|
+
```css
|
|
88
|
+
*,
|
|
89
|
+
*::before,
|
|
90
|
+
*::after {
|
|
91
|
+
margin: 0;
|
|
92
|
+
padding: 0;
|
|
93
|
+
box-sizing: border-box;
|
|
94
|
+
}
|
|
95
|
+
html {
|
|
96
|
+
font-size: 16px;
|
|
97
|
+
scroll-behavior: smooth;
|
|
98
|
+
}
|
|
99
|
+
body {
|
|
100
|
+
font-family: system-ui;
|
|
101
|
+
background: var(--color-bg);
|
|
102
|
+
color: var(--color-text);
|
|
103
|
+
line-height: 1.6;
|
|
104
|
+
}
|
|
105
|
+
img {
|
|
106
|
+
max-width: 100%;
|
|
107
|
+
display: block;
|
|
108
|
+
}
|
|
109
|
+
button {
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### src/globals/globals.css
|
|
115
|
+
|
|
116
|
+
```css
|
|
117
|
+
@import "./variables.css";
|
|
118
|
+
@import "./reset.css";
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 6. Layout & Router Setup
|
|
122
|
+
|
|
123
|
+
### src/layouts/MainLayout.jsx
|
|
124
|
+
|
|
125
|
+
```jsx
|
|
126
|
+
export default function MainLayout({ children }) {
|
|
127
|
+
return <div className="main-layout">{children}</div>;
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### src/router.jsx
|
|
132
|
+
|
|
133
|
+
```jsx
|
|
134
|
+
import { createBrowserRouter } from "react-router-dom";
|
|
135
|
+
import Home from "@/pages/Home/Home";
|
|
136
|
+
|
|
137
|
+
export const router = createBrowserRouter([{ path: "/", element: <Home /> }]);
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### src/main.jsx
|
|
141
|
+
|
|
142
|
+
```jsx
|
|
143
|
+
import React from "react";
|
|
144
|
+
import ReactDOM from "react-dom/client";
|
|
145
|
+
import { RouterProvider } from "react-router-dom";
|
|
146
|
+
import { router } from "./router";
|
|
147
|
+
import "./globals/globals.css";
|
|
148
|
+
|
|
149
|
+
ReactDOM.createRoot(document.getElementById("root")).render(
|
|
150
|
+
<React.StrictMode>
|
|
151
|
+
<RouterProvider router={router} />
|
|
152
|
+
</React.StrictMode>,
|
|
153
|
+
);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## 7. Folder Philosophy Pattern
|
|
157
|
+
|
|
158
|
+
### src/pages/Home/Home.jsx
|
|
159
|
+
|
|
160
|
+
```jsx
|
|
161
|
+
import "./Home.css";
|
|
162
|
+
import MainLayout from "@/layouts/MainLayout";
|
|
163
|
+
|
|
164
|
+
export default function Home() {
|
|
165
|
+
return (
|
|
166
|
+
<MainLayout>
|
|
167
|
+
<div className="home-page">
|
|
168
|
+
<h1>Home</h1>
|
|
169
|
+
</div>
|
|
170
|
+
</MainLayout>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### src/pages/Home/Home.css
|
|
176
|
+
|
|
177
|
+
```css
|
|
178
|
+
.home-page {
|
|
179
|
+
padding: 2rem;
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## 8. Services Layer
|
|
184
|
+
|
|
185
|
+
### src/services/apiClient.js
|
|
186
|
+
|
|
187
|
+
```javascript
|
|
188
|
+
import axios from "axios";
|
|
189
|
+
import { API_BASE_URL } from "@/globals/config";
|
|
190
|
+
|
|
191
|
+
export const apiClient = axios.create({ baseURL: API_BASE_URL });
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## 9. Environment setup
|
|
195
|
+
|
|
196
|
+
### .env.example
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
VITE_APP_ENV=development
|
|
200
|
+
VITE_API_URL=
|
|
201
|
+
VITE_ENABLE_ANALYTICS=false
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### src/globals/config.js
|
|
205
|
+
|
|
206
|
+
```javascript
|
|
207
|
+
export const APP_NAME = "Achira Project";
|
|
208
|
+
export const API_BASE_URL = import.meta.env.VITE_API_URL || "";
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## 10. Testing Setup
|
|
212
|
+
|
|
213
|
+
### src/test/setup.js
|
|
214
|
+
|
|
215
|
+
```javascript
|
|
216
|
+
import "@testing-library/jest-dom";
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### src/pages/Home/Home.test.jsx
|
|
220
|
+
|
|
221
|
+
```jsx
|
|
222
|
+
import { render, screen } from "@testing-library/react";
|
|
223
|
+
import { describe, it, expect } from "vitest";
|
|
224
|
+
import Home from "./Home";
|
|
225
|
+
|
|
226
|
+
describe("Home", () => {
|
|
227
|
+
it("renders the heading", () => {
|
|
228
|
+
render(<Home />);
|
|
229
|
+
expect(screen.getByText("Home")).toBeInTheDocument();
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Add this to `package.json` scripts:
|
|
235
|
+
|
|
236
|
+
```json
|
|
237
|
+
"scripts": {
|
|
238
|
+
"test": "vitest"
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## 11. Linter & Formatter Config
|
|
243
|
+
|
|
244
|
+
### .eslintrc.cjs
|
|
245
|
+
|
|
246
|
+
```javascript
|
|
247
|
+
module.exports = {
|
|
248
|
+
root: true,
|
|
249
|
+
env: { browser: true, es2020: true },
|
|
250
|
+
extends: [
|
|
251
|
+
"eslint:recommended",
|
|
252
|
+
"plugin:react/recommended",
|
|
253
|
+
"plugin:react/jsx-runtime",
|
|
254
|
+
"plugin:react-hooks/recommended",
|
|
255
|
+
"prettier",
|
|
256
|
+
],
|
|
257
|
+
parserOptions: { ecmaVersion: "latest", sourceType: "module" },
|
|
258
|
+
settings: { react: { version: "detect" } },
|
|
259
|
+
rules: {
|
|
260
|
+
"react/prop-types": "off",
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### .prettierrc
|
|
266
|
+
|
|
267
|
+
```json
|
|
268
|
+
{
|
|
269
|
+
"semi": true,
|
|
270
|
+
"singleQuote": false,
|
|
271
|
+
"tabWidth": 2,
|
|
272
|
+
"trailingComma": "all",
|
|
273
|
+
"printWidth": 100
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## 12. Clean up & Execute
|
|
278
|
+
|
|
279
|
+
- Remove `src/App.css`, `src/index.css`, `src/App.jsx`.
|
|
280
|
+
- Run `npm run dev`.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Display agent and project status. Progress tracking and status board.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /status - Show Status
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Task
|
|
12
|
+
|
|
13
|
+
Show current project and agent status.
|
|
14
|
+
|
|
15
|
+
### What It Shows
|
|
16
|
+
|
|
17
|
+
1. **Project Info**
|
|
18
|
+
- Project name and path
|
|
19
|
+
- Tech stack
|
|
20
|
+
- Current features
|
|
21
|
+
|
|
22
|
+
2. **Agent Status Board**
|
|
23
|
+
- Which agents are running
|
|
24
|
+
- Which tasks are completed
|
|
25
|
+
- Pending work
|
|
26
|
+
|
|
27
|
+
3. **File Statistics**
|
|
28
|
+
- Files created count
|
|
29
|
+
- Files modified count
|
|
30
|
+
|
|
31
|
+
4. **Preview Status**
|
|
32
|
+
- Is server running
|
|
33
|
+
- URL
|
|
34
|
+
- Health check
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Example Output
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
=== Project Status ===
|
|
42
|
+
|
|
43
|
+
๐ Project: my-ecommerce
|
|
44
|
+
๐ Path: C:/projects/my-ecommerce
|
|
45
|
+
๐ท๏ธ Type: nextjs-ecommerce
|
|
46
|
+
๐ Status: active
|
|
47
|
+
|
|
48
|
+
๐ง Tech Stack:
|
|
49
|
+
Framework: next.js
|
|
50
|
+
Database: postgresql
|
|
51
|
+
Auth: clerk
|
|
52
|
+
Payment: stripe
|
|
53
|
+
|
|
54
|
+
โ
Features (5):
|
|
55
|
+
โข product-listing
|
|
56
|
+
โข cart
|
|
57
|
+
โข checkout
|
|
58
|
+
โข user-auth
|
|
59
|
+
โข order-history
|
|
60
|
+
|
|
61
|
+
โณ Pending (2):
|
|
62
|
+
โข admin-panel
|
|
63
|
+
โข email-notifications
|
|
64
|
+
|
|
65
|
+
๐ Files: 73 created, 12 modified
|
|
66
|
+
|
|
67
|
+
=== Agent Status ===
|
|
68
|
+
|
|
69
|
+
โ
database-architect โ Completed
|
|
70
|
+
โ
backend-specialist โ Completed
|
|
71
|
+
๐ frontend-specialist โ Dashboard components (60%)
|
|
72
|
+
โณ test-engineer โ Waiting
|
|
73
|
+
|
|
74
|
+
=== Preview ===
|
|
75
|
+
|
|
76
|
+
๐ URL: http://localhost:3000
|
|
77
|
+
๐ Health: OK
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Technical
|
|
83
|
+
|
|
84
|
+
Status uses these scripts:
|
|
85
|
+
- `python .achira/scripts/session_manager.py status`
|
|
86
|
+
- `python .achira/scripts/auto_preview.py status`
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Test generation and test running command. Creates and executes tests for code.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /test - Test Generation and Execution
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
This command generates tests, runs existing tests, or checks test coverage.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Sub-commands
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/test - Run all tests
|
|
21
|
+
/test [file/feature] - Generate tests for specific target
|
|
22
|
+
/test coverage - Show test coverage report
|
|
23
|
+
/test watch - Run tests in watch mode
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Behavior
|
|
29
|
+
|
|
30
|
+
### Generate Tests
|
|
31
|
+
|
|
32
|
+
When asked to test a file or feature:
|
|
33
|
+
|
|
34
|
+
1. **Analyze the code**
|
|
35
|
+
- Identify functions and methods
|
|
36
|
+
- Find edge cases
|
|
37
|
+
- Detect dependencies to mock
|
|
38
|
+
|
|
39
|
+
2. **Generate test cases**
|
|
40
|
+
- Happy path tests
|
|
41
|
+
- Error cases
|
|
42
|
+
- Edge cases
|
|
43
|
+
- Integration tests (if needed)
|
|
44
|
+
|
|
45
|
+
3. **Write tests**
|
|
46
|
+
- Use project's test framework (Jest, Vitest, etc.)
|
|
47
|
+
- Follow existing test patterns
|
|
48
|
+
- Mock external dependencies
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Output Format
|
|
53
|
+
|
|
54
|
+
### For Test Generation
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
## ๐งช Tests: [Target]
|
|
58
|
+
|
|
59
|
+
### Test Plan
|
|
60
|
+
| Test Case | Type | Coverage |
|
|
61
|
+
|-----------|------|----------|
|
|
62
|
+
| Should create user | Unit | Happy path |
|
|
63
|
+
| Should reject invalid email | Unit | Validation |
|
|
64
|
+
| Should handle db error | Unit | Error case |
|
|
65
|
+
|
|
66
|
+
### Generated Tests
|
|
67
|
+
|
|
68
|
+
`tests/[file].test.ts`
|
|
69
|
+
|
|
70
|
+
[Code block with tests]
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
Run with: `npm test`
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### For Test Execution
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
๐งช Running tests...
|
|
81
|
+
|
|
82
|
+
โ
auth.test.ts (5 passed)
|
|
83
|
+
โ
user.test.ts (8 passed)
|
|
84
|
+
โ order.test.ts (2 passed, 1 failed)
|
|
85
|
+
|
|
86
|
+
Failed:
|
|
87
|
+
โ should calculate total with discount
|
|
88
|
+
Expected: 90
|
|
89
|
+
Received: 100
|
|
90
|
+
|
|
91
|
+
Total: 15 tests (14 passed, 1 failed)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Examples
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
/test src/services/auth.service.ts
|
|
100
|
+
/test user registration flow
|
|
101
|
+
/test coverage
|
|
102
|
+
/test fix failed tests
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Test Patterns
|
|
108
|
+
|
|
109
|
+
### Unit Test Structure
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
describe('AuthService', () => {
|
|
113
|
+
describe('login', () => {
|
|
114
|
+
it('should return token for valid credentials', async () => {
|
|
115
|
+
// Arrange
|
|
116
|
+
const credentials = { email: 'test@test.com', password: 'pass123' };
|
|
117
|
+
|
|
118
|
+
// Act
|
|
119
|
+
const result = await authService.login(credentials);
|
|
120
|
+
|
|
121
|
+
// Assert
|
|
122
|
+
expect(result.token).toBeDefined();
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('should throw for invalid password', async () => {
|
|
126
|
+
// Arrange
|
|
127
|
+
const credentials = { email: 'test@test.com', password: 'wrong' };
|
|
128
|
+
|
|
129
|
+
// Act & Assert
|
|
130
|
+
await expect(authService.login(credentials)).rejects.toThrow('Invalid credentials');
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Key Principles
|
|
139
|
+
|
|
140
|
+
- **Test behavior not implementation**
|
|
141
|
+
- **One assertion per test** (when practical)
|
|
142
|
+
- **Descriptive test names**
|
|
143
|
+
- **Arrange-Act-Assert pattern**
|
|
144
|
+
- **Mock external dependencies**
|