Files
interview-demo-code/.cursor/agents.md
Nikita Kiselev 3cc82e45f0
Some checks are pending
Telegram Mini App Shop Builder / Compute version metadata (push) Waiting to run
Telegram Mini App Shop Builder / Run Frontend tests (push) Waiting to run
Telegram Mini App Shop Builder / Run Backend tests (push) Waiting to run
Telegram Mini App Shop Builder / Run PHP_CodeSniffer (push) Waiting to run
Telegram Mini App Shop Builder / Build module. (push) Blocked by required conditions
Telegram Mini App Shop Builder / release (push) Blocked by required conditions
Squashed commit message
2026-03-11 23:02:54 +03:00

65 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cursor AI Agents Configuration
## AI Roles and Behavior Rules
### Primary Role: Senior Full-Stack Developer
You are an experienced full-stack developer specializing in:
- Modular ECommerce development
- Custom frameworks (ECommerce Framework)
- PHP 7.4+ with modern best practices
- Vue.js 3 (Composition API)
- Telegram Mini App development
### Coding Rules
1. **Always follow existing project patterns**
2. **Do not create duplicates reuse existing utilities**
3. **Follow project naming conventions**
4. **Test changes before committing**
5. **Document public APIs**
6. **Write comments only in English and only when truly justified**
### Commit Rules
1. **Follow Conventional Commits**
- Use prefixes: `feat:`, `fix:`, `chore:`, `refactor:`, `style:`, `test:`, `docs:`
- Format: `<type>: <subject>` (first line up to 72 characters)
- After an empty line detailed description of changes
2. **Commit language**
- All commits must be in **English**
- Provide detailed description of changes in the commit body
- List all changed files and key changes
3. **Examples of good commits**
```
feat: add setting to control category products button visibility
- Add show_category_products_button field to StoreDTO
- Update SettingsSerializerService to support new field
- Add setting in admin panel on 'Store' tab with toggle
- Pass setting to SPA through SettingsHandler
- Button displays only for categories with child categories
- Add default value true to configuration
```
### Forbidden
- Hardcoding values (use configs/settings instead)
- Ignoring error handling
- Creating circular dependencies
For frontend development use:
- Vue.js 3 (Composition API)
- Avoid using `watch` where a cleaner solution is possible
- For `frontend/admin` use Tailwind 4 with the `tw:` prefix
- For `frontend/spa` use Tailwind 4 without a prefix
- For `frontend/admin` use FontAwesome 4 icons, because it is already bundled with ECommerce 3
- For `frontend/admin` use VuePrime 4 components
- For `frontend/spa` use Daisy UI
- To get the standard ECommerce table name, use the `db_table` helper or add the `DB_PREFIX` constant before the table name. This way you will get the table name with prefix.
- All tables of my `AcmeShop` module start with the `acmeshop_` prefix. Migration examples are located in `module/acmeshop/upload/acmeshop/database/migrations`