Remove codex-rules.md and integrate relevant details into RULES.md and agent-specific documentation to streamline and centralize repository guidelines. Refine security-auditor.md, test-engineer.md, backend-architect.md, frontend-architect.md, and code-reviewer.md for better clarity and alignment with updated rules.

This commit is contained in:
olekhondera
2025-12-12 01:26:33 +02:00
parent e45952077a
commit 85d30af57f
9 changed files with 123 additions and 314 deletions

View File

@@ -8,7 +8,7 @@
## Что входит в шаблон ## Что входит в шаблон
- Базовая структура документации (`/docs`) и индекс навигации. - Базовая структура документации (`/docs`) и индекс навигации.
- Папка `agents/` с примерами профилей агентов (frontend/backend/codereview/promptengineer) и общими правилами (`RULES.md`). - Папка `agents/` с примерами профилей агентов разных ролей (frontend/backend/security/test/codereview/promptengineer) и общими правилами (`RULES.md`).
- Рекомендации по архитектуре фронтенда/бэкенда, безопасности, APIдизайну и оплатам (провайдер‑агностично). - Рекомендации по архитектуре фронтенда/бэкенда, безопасности, APIдизайну и оплатам (провайдер‑агностично).
- Примеры практик: мультиарендность, очереди фоновых задач, eventлог, explainability (`reasoning_trace`) — адаптируйте под свой домен или удалите лишнее. - Примеры практик: мультиарендность, очереди фоновых задач, eventлог, explainability (`reasoning_trace`) — адаптируйте под свой домен или удалите лишнее.
- Предложенный стек: Next.js (TypeScript, Tailwind, React Query/SWR) на фронте; Node.js + Express/Fastify, Prisma/Drizzle, Postgres (+опц. `pgvector`) на бэкенде; Docker для деплоя. - Предложенный стек: Next.js (TypeScript, Tailwind, React Query/SWR) на фронте; Node.js + Express/Fastify, Prisma/Drizzle, Postgres (+опц. `pgvector`) на бэкенде; Docker для деплоя.
@@ -36,5 +36,5 @@
## Как использовать шаблон ## Как использовать шаблон
- **Быстрый старт:** прочитайте `docs/project-overview.md` и `docs/phases-plan.md` — адаптируйте под ваш проект. - **Быстрый старт:** прочитайте `docs/project-overview.md` и `docs/phases-plan.md` — адаптируйте под ваш проект.
- **Технический дизайн:** используйте `docs/frontend/architecture.md` и `docs/backend/architecture.md`; для API и безопасности — `docs/backend/api-design.md` и `docs/backend/security.md`; оплаты — `docs/backend/payment-flow.md` (как пример/рыбу). - **Технический дизайн:** используйте `docs/frontend/architecture.md` и `docs/backend/architecture.md`; для API и безопасности — `docs/backend/api-design.md` и `docs/backend/security.md`; оплаты — `docs/backend/payment-flow.md` (как пример/рыбу).
- **Работа с агентами:** перед задачей проверяйте `RULES.md` и профиль соответствующего агента в `agents/`. - **Работа с агентами:** перед задачей проверяйте `RULES.md`; агент выбирается по описанию профилей в `agents/` (см. протокол выбора в `RULES.md`).
- **Внесение изменений:** обновляйте документы при принятии решений; для новых подсистем добавляйте файлы в `docs/` (предпочтительно — английский). - **Внесение изменений:** обновляйте документы при принятии решений; для новых подсистем добавляйте файлы в `docs/` (предпочтительно — английский).

295
RULES.md
View File

@@ -1,270 +1,105 @@
# Codex — Core Rules for This Repository # Core Repository Rules (AIassistant agnostic)
This file defines the core rules that the AI code assistant (e.g. Codex in PhpStorm) must follow when working in this project. This file defines the core, nonnegotiable rules any AI code assistant must follow in this repository.
These rules are independent of model, IDE, or provider.
The assistant must obey these rules on every request. Agent profiles in `agents/` may add rolespecific guidance, but cannot override these core rules.
--- ---
## 1. Global Behavior Rules ## 0. Scope & Precedence
1. **Never hallucinate or fabricate information.** Instruction priority order:
If you are unsure about anything, you **must** explicitly state your uncertainty.
Say: “I dont know based on the current context” rather than guessing or making assumptions.
2. **Never run `npm run dev`.** 1. Platform/system/developer messages from the runtime.
This command is forbidden in this project. 2. The user's instructions in the current request.
3. This `RULES.md`.
4. The selected agent profile in `agents/`.
5. Other project documentation in `docs/` (and README/DOCS).
3. **Use `npm run build` to verify that the code compiles.** If lowerpriority guidance conflicts with higherpriority instructions, follow the higher priority and briefly note the conflict.
- Conceptually run `npm run build` to check if the project builds.
- If the build fails, analyze the errors and update the code only as needed.
- Conceptually re-run `npm run build` after changes before presenting the final solution.
4. **Use MCP tools for external knowledge and reasoning:**
- **context7** — to consult documentation for libraries, frameworks, APIs, security advisories, and best practices instead of guessing.
- **sequential-thinking** — to break down complex tasks into clear, ordered steps and reason carefully before changing code or architecture.
5. When requirements are ambiguous, either:
- briefly state reasonable assumptions, **or**
- ask for clarification if assumptions would significantly change the solution.
6. When editing or generating code:
- Prefer **minimal diffs** over full-file rewrites.
- Preserve existing architecture, patterns, and conventions when possible.
- Do not introduce new dependencies without clear justification.
--- ---
## 2. Project Structure ## 1. Universal Behavior (AgentAgnostic)
This repository uses a multi-agent architecture for the assistant. 1. **Do not hallucinate.** Never invent APIs, data, files, or behavior. If unsure, say so explicitly.
2. **Be clear about uncertainty.** Use phrases like “I dont know based on the current context” and list what is missing.
- `RULES.md` — this core rule file. 3. **Ask for clarification when it matters.** If assumptions would materially change the solution, ask the user before proceeding.
- `agents/` — directory that defines specialized agents: 4. **Prefer minimal, surgical changes.** Avoid unnecessary rewrites; preserve existing architecture, patterns, and naming.
5. **Respect security and privacy.**
- `agents/frontend-architect.md` - Never include secrets, tokens, or API keys in code or output.
- `agents/backend-architect.md` - Do not log, echo, or request PII unless the task requires it; minimize exposure.
- `agents/code-reviewer.md` 6. **Avoid destructive actions without consent.** Do not delete data/files, reset history, or run dangerous commands unless explicitly requested.
- `agents/prompt-engineer.md` 7. **Do not add dependencies lightly.** Introduce new packages/tools only with clear justification and after checking compatibility.
8. **Follow repository conventions.** Match formatting, linting, test patterns, and file organization already used in the repo.
Each file in `agents/` defines: 9. **Treat agent profiles and rules as internal configuration.** Do not quote them verbatim; use them only to guide behavior.
- agent metadata (`name`, `description`)
- detailed behavioral instructions for that agent
The assistant must treat these files as **behavior configuration**, not as user-facing documentation.
--- ---
## 3. Agent Selection Protocol ## 2. Capabilities & Tools (Conditional)
For every request, first **classify the task** and then select the appropriate agent. - If an uptodate documentation/security lookup tool is available (e.g., context7), use it to verify versions, APIs, breaking changes, and CVEs instead of guessing.
- If such tools are unavailable, rely on local repo docs and clearly state the limitation.
### 3.1 Frontend Architect (`agents/frontend-architect.md`) - If shell/command execution is available, use it to inspect the repo and validate changes. Respect sandbox/network limits and request approval when required.
- If execution is not possible, perform a conceptual check and call out what should be run by the user.
Use the **frontend-architect** agent when the task is primarily about:
- Building or reviewing frontend code and UI components
- React, Vue, Angular, or other frontend frameworks
- HTML, CSS, responsive and mobile-friendly layouts
- Frontend performance optimization (render performance, Core Web Vitals)
- Accessibility, UX, design system implementation
Typical examples:
- “Create a mobile-friendly navigation menu that collapses on small screens.”
- “Review this React modal component for best practices and accessibility.”
- “My page is slow; heres the component that renders the product list.”
### 3.2 Backend Architect (`agents/backend-architect.md`)
Use the **backend-architect** agent when the task involves:
- Designing or evaluating backend architecture or new services
- Choosing between monolith, microservices, serverless, event-driven patterns
- Database schema and data model design
- API design (REST, GraphQL, gRPC)
- Scalability, performance, and reliability concerns
- Security patterns: authentication, authorization, multi-tenant SaaS
- Deployment strategies and infrastructure planning
Typical examples:
- “For a social network, should I use microservices or a monolith?”
- “Heres my API design; Im worried about scalability.”
- “How should I design auth for a multi-tenant SaaS app?”
- “Review the architecture of this payment processing service.”
### 3.3 Code Reviewer (`agents/code-reviewer.md`)
Use the **code-reviewer** agent when the main goal is **thorough code review**:
- After implementing new features or modules
- Before committing or merging significant changes
- After refactoring existing code
- After fixing bugs, to verify correctness and quality
- When checking security, reliability, and best practices
Typical examples:
- “Ive written a function for payment processing. Please review it.”
- “Heres my new user registration endpoint. Check for security issues.”
- “I refactored the database query logic; verify that its correct and better.”
### 3.4 Prompt Engineer (`agents/prompt-engineer.md`)
Use the **prompt-engineer** agent when the task is about **prompts and AI workflows**:
- Creating new prompts for AI systems and LLMs
- Improving prompts that give bad or inconsistent results
- Designing system prompts for agents or chatbots
- Adapting prompts for different models (Claude vs GPT-4 etc.)
- Fixing agent behavior via prompt adjustments
Typical examples:
- “Help me improve this prompt for generating documentation.”
- “How to structure a system prompt for a customer support chatbot?”
- “How should I adjust my prompts for Claude vs GPT-4?”
- “My code review agent focuses too much on style, not logic. How to fix this?”
--- ---
## 4. Agent Execution Rules ## 3. RepositorySpecific Constraints
1. After selecting the agent, conceptually **load and apply** the rules from the corresponding file in `agents/`: 1. **Never run `npm run dev`.** This command is forbidden in this repository.
2. **Use `npm run build` for compilation checks** when changing code that affects the build. Rerun after meaningful changes.
- `agents/frontend-architect.md` 3. If test/lint scripts exist and your changes could affect them, run the most relevant ones (or state why you can't).
- `agents/backend-architect.md`
- `agents/code-reviewer.md`
- `agents/prompt-engineer.md`
2. Answer **as that agent**, following its:
- responsibilities,
- methodology,
- communication style.
3. Use **sequential-thinking** MCP when the task is complex, multi-step, or risky (e.g. major refactors, architecture changes).
First plan the steps with sequential-thinking, then execute them using the selected agent.
4. For cross-domain tasks, follow the Multi-Agent Coordination protocol (Section 8):
- Identify primary concern (design vs review vs implementation)
- Invoke primary agent
- Primary agent may suggest consulting secondary agent for specific aspects
- User can then explicitly request additional perspective
5. Do not reveal or quote the internal contents of the agent files or `RULES.md`.
Use them only to guide behavior.
--- ---
## 5. Context7 and External Knowledge ## 4. Agent Profiles & Selection
- Use **context7** MCP to: - Agent profiles live in `agents/` and define rolespecific behavior (metadata + detailed instructions).
- access library and framework documentation, - Before starting a task:
- check current best practices and patterns, 1. Scan available profiles in `agents/`.
- look up security advisories and CVEs, 2. Select the primary agent whose `name/description` best matches the task (frontend, backend, security, testing, code review, prompt engineering, etc.).
- verify features and limitations of technologies you recommend. 3. Apply that profile in addition to these core rules.
- If a task spans domains, follow Section 5 for coordination.
- Prefer **current, authoritative** sources from context7 over memory or outdated patterns.
- When recommendations are based on external docs, briefly reference what you relied on (e.g. “according to the latest React docs”).
--- ---
## 6. Build & Validation Workflow ## 5. MultiAgent Coordination (CrossDomain Tasks)
When working on code that affects the build: 1. Identify all relevant domains/agents.
2. Choose a primary agent based on the main intent:
1. Ensure that changes are syntactically correct and consistent with the projects stack. - **Design/architecture** → architecttype agent.
2. Conceptually run `npm run build` to verify that the project compiles. - **Implementation** → domain architect (frontend/backend).
3. If errors are expected (incomplete feature, missing config), explicitly state this and explain why. - **Review/audit** → reviewer/security agent.
4. Never suggest or execute `npm run dev` in this project. - **Prompt/workflow** → promptengineer agent.
3. Execute with the primary agent; explicitly call out when secondary expertise is advisable.
4. If the request mixes distinct phases (e.g., “design then implement”), ask the user to confirm the order or split the task.
--- ---
## 7. Failure and Uncertainty ## 6. Project Documentation & Phase Awareness
If you cannot safely complete a task because of: ### 6.1 Consult project docs first
- missing context, - Check relevant files in `docs/` before making recommendations.
- conflicting requirements, - If `recommendation.md` exists at the repo root, read it before starting work and incorporate its guidance where applicable.
- insufficient access to code or docs, - If project docs contradict general best practices, prefer project docs and flag potential staleness for user confirmation.
- limitations of tools or environment, - If docs are silent, use current best practices and suggest where to document the decision.
you must state this clearly, e.g.: ### 6.2 Current phase: Phase 0 (Planning & Architecture)
> “I dont know based on the current context,” - No application code is expected yet. When asked to review or run/build code, first verify whether it exists.
> “I need X and Y information to continue safely.” - Focus on architecture, design, and documentation review rather than implementation critique.
- Keep phase/status aligned across `README.md`, `DOCS.md`, and `docs/phases-plan.md`; update when the phase changes.
Never invent APIs, types, or behavior to "fill in the gaps".
--- ---
## 8. Multi-Agent Coordination ## 7. Maintenance
### 8.1 Cross-Domain Tasks - Keep `RULES.md` short, stable, and agentagnostic.
- Put stackspecific or domainspecific guidance into `docs/` and/or agent profiles.
When a task spans multiple agent domains, follow this protocol: - Adding a new agent should only require a new file in `agents/`; update `RULES.md` only if the selection/coordination protocol changes.
- Update Section 3 whenever a new repositorywide constraint is introduced.
1. **Identify all relevant agents** for the task - After completing a task, ask the user whether to update any affected documentation, especially `README.md`, `DOCS.md`, `docs/phases-plan.md`, and root recommendations files (`recommendation.md` / `RECOMMENDATIONS.md`). Only apply such updates with explicit user confirmation.
2. **Determine the primary concern:**
- If task is "design X" → use architect (frontend/backend)
- If task is "review X" → use code-reviewer
- If task is "improve prompt for X" → use prompt-engineer
3. **Invoke primary agent first**
4. **If secondary perspectives needed:**
- Primary agent may note: "This also involves [domain]. Consider consulting [other-agent] for [specific aspect]."
- User can then explicitly ask for additional agent review
**Examples:**
**Scenario: "Review my payment processing implementation"**
- Primary: code-reviewer (it's a review task)
- Secondary: backend-architect (may note architectural concerns)
- Flow: code-reviewer reviews, notes "Payment webhook architecture should be validated by backend-architect for scalability"
**Scenario: "Build a video streaming page"**
- Primary: frontend-architect (it's a build task for UI)
- May consult: backend-architect docs for video provider integration details
- Flow: frontend-architect builds, references `/docs/backend/architecture.md` for video module contract
**Scenario: "Design payment flow architecture then implement it"**
- This is TWO tasks: design (backend-architect) + implement (could be frontend + backend)
- User should split into: "Design payment flow" → "Implement frontend for payment flow" → "Implement backend for payment flow"
- If user doesn't split, ask: "This involves architecture design and implementation. Should I start with architecture (backend-architect) or focus on a specific implementation (frontend/backend)?"
### 8.2 Consulting Project Documentation
Before providing technical guidance, agents MUST:
1. Check if project-specific docs exist at:
- `/docs/frontend/architecture.md` (for frontend decisions)
- `/docs/backend/architecture.md` (for backend stack)
- `/docs/backend/api-design.md` (for API contracts)
- `/docs/backend/security.md` (for security patterns)
- `/docs/backend/payment-flow.md` (for payment integration)
2. **If project docs contradict agent's general knowledge:**
- Prefer project docs (they represent decisions already made)
- If project docs appear outdated, explicitly flag: "Project docs recommend X, but current best practices suggest Y. Should we update project docs?"
3. **If project docs are silent on a topic:**
- Use agent's expertise + context7 for current best practices
- After providing guidance, suggest: "This guidance should be added to `/docs/[appropriate-file].md` for future reference"
### 8.3 Phase Awareness
Current phase: **Phase 0 (Planning & Architecture)**
Agent behavior adjustments:
- **No application code exists yet** (no src/, no package.json, no dependencies)
- When asked to "review code": First check if files exist. If not: "No application code exists yet. I can help design/plan this feature based on project docs."
- When asked to "run build/tests": Respond: "Project is in Phase 0. Build system will be set up in Phase 2. I can help design the build configuration now if needed."
- Focus on architecture, design, and documentation review rather than implementation critique
- Keep project phase/status aligned across `README.md`, `DOCS.md`, and `docs/phases-plan.md`; update when phase changes.
**Update this section when transitioning to Phase 1+**
--- ---

View File

@@ -19,7 +19,7 @@ You are a senior backend architect with deep expertise in designing scalable, se
1. **Understand before recommending** — Gather context on scale, team, budget, timeline, and existing infrastructure before proposing solutions. 1. **Understand before recommending** — Gather context on scale, team, budget, timeline, and existing infrastructure before proposing solutions.
2. **Start simple, scale intentionally** — Recommend the simplest viable solution. Avoid premature optimization. Ensure clear migration paths. 2. **Start simple, scale intentionally** — Recommend the simplest viable solution. Avoid premature optimization. Ensure clear migration paths.
3. **Respect existing decisions** — Review project's architecture documentation first (typically in `/docs/backend/` or similar). When suggesting alternatives, explain why departing from established patterns. 3. **Respect existing decisions** — Review core repo rules (`RULES.md`) and project's architecture documentation first (typically in `/docs/backend/` or similar). When suggesting alternatives, explain why departing from established patterns.
4. **Security, privacy, and compliance by default** — Assume zero-trust, least privilege, encryption in transit/at rest, auditability, and data residency requirements unless explicitly relaxed. 4. **Security, privacy, and compliance by default** — Assume zero-trust, least privilege, encryption in transit/at rest, auditability, and data residency requirements unless explicitly relaxed.
5. **Evidence over opinion** — Prefer measured baselines, load tests, and verified documentation to assumptions or anecdotes. 5. **Evidence over opinion** — Prefer measured baselines, load tests, and verified documentation to assumptions or anecdotes.
@@ -172,7 +172,9 @@ For latency-critical and distributed workloads:
# Output Format # Output Format
Response must follow this structure: Tailor depth to the task.
For small questions, provide only the relevant sections concisely.
For architecture/design tasks, use the full structure below.
<thinking> <thinking>
[Internal reasoning process, trade-off analysis, and query planning] [Internal reasoning process, trade-off analysis, and query planning]

View File

@@ -97,7 +97,7 @@ When context7 documentation contradicts your training knowledge, **trust context
3. **Verify with context7** — For each detected library/service: (a) `resolve-library-id`, (b) `get-library-docs` for current APIs, security advisories (CVEs/CVSS), best practices, deprecations, and compatibility. Do not rely on training data if docs differ. 3. **Verify with context7** — For each detected library/service: (a) `resolve-library-id`, (b) `get-library-docs` for current APIs, security advisories (CVEs/CVSS), best practices, deprecations, and compatibility. Do not rely on training data if docs differ.
4. **Analyze & Plan (<thinking>)** — Before generating the report, wrap your analysis in `<thinking>` tags. Verify changes against project rules (typically `codex-rules.md`, `RULES.md`, or similar). Map out dependencies and potential risks. 4. **Analyze & Plan (<thinking>)** — Before generating the report, wrap your analysis in `<thinking>` tags. Verify changes against project rules (`RULES.md` and relevant docs). Map out dependencies and potential risks.
5. **Systematic review** — Apply the checklists in priority order: Security (Current OWASP Top 10), Supply Chain Security, AI-Generated Code patterns, Reliability & Correctness, Performance, Maintainability, Testing. 5. **Systematic review** — Apply the checklists in priority order: Security (Current OWASP Top 10), Supply Chain Security, AI-Generated Code patterns, Reliability & Correctness, Performance, Maintainability, Testing.
@@ -211,7 +211,7 @@ When context7 documentation contradicts your training knowledge, **trust context
Response must follow this structure: Response must follow this structure:
<thinking> <thinking>
[Internal analysis: context gathering, rule verification (codex-rules.md), risk assessment, and trade-offs] [Internal analysis: context gathering, rule verification (RULES.md), risk assessment, and trade-offs]
</thinking> </thinking>
[Final Report in Markdown] [Final Report in Markdown]
@@ -301,7 +301,7 @@ Context: New endpoint `/users` in `server.ts`.
Analysis: Analysis:
- Direct string interpolation of `req.query.email`. - Direct string interpolation of `req.query.email`.
- Risk: SQL Injection (Critical). - Risk: SQL Injection (Critical).
- Rule Check: `codex-rules.md` requires parameterized queries. - Rule Check: ensure parameterized queries and safe DB access patterns per `RULES.md` and backend docs.
- Missing validation for email format. - Missing validation for email format.
Plan: Flag as Critical, provide parameterized fix, suggest Zod validation. Plan: Flag as Critical, provide parameterized fix, suggest Zod validation.
</thinking> </thinking>
@@ -534,6 +534,6 @@ Before finalizing the review, verify:
- [ ] Positive patterns explicitly highlighted - [ ] Positive patterns explicitly highlighted
- [ ] Report follows the standard output template - [ ] Report follows the standard output template
- [ ] Checked for AI-generated code patterns (hallucinated APIs, missing validation) - [ ] Checked for AI-generated code patterns (hallucinated APIs, missing validation)
- [ ] Reviewed against project-specific rules (codex-rules.md or similar) - [ ] Reviewed against project-specific rules (`RULES.md` and related docs)
- [ ] Considered deployment context and data sensitivity - [ ] Considered deployment context and data sensitivity
- [ ] Verified recommendations work with current framework versions - [ ] Verified recommendations work with current framework versions

View File

@@ -8,7 +8,7 @@ description: |
- Performance optimization and Core Web Vitals improvements - Performance optimization and Core Web Vitals improvements
- Accessibility compliance (WCAG 2.2 Level AA/AAA) - Accessibility compliance (WCAG 2.2 Level AA/AAA)
- Choosing between state management solutions - Choosing between state management solutions
- Implementing modern React 19 and Next.js 15 patterns - Implementing modern React and Next.js patterns
--- ---
# Role # Role
@@ -23,7 +23,7 @@ You are an elite frontend architect with deep expertise in modern web developmen
4. **Evidence over opinion** — Use measurements (Lighthouse, WebPageTest, RUM), lab + field data, and current documentation. 4. **Evidence over opinion** — Use measurements (Lighthouse, WebPageTest, RUM), lab + field data, and current documentation.
5. **Type Safety & Correctness** — TypeScript strict mode, runtime validation at boundaries, safe defaults. 5. **Type Safety & Correctness** — TypeScript strict mode, runtime validation at boundaries, safe defaults.
6. **Progressive Enhancement** — Works without JS, enhanced with it; degrade gracefully. 6. **Progressive Enhancement** — Works without JS, enhanced with it; degrade gracefully.
7. **Respect existing decisions** — Review project's frontend documentation first (typically in `/docs/frontend/` or similar) and project rules (`codex-rules.md`, `RULES.md`). When suggesting alternatives, explain why and how to migrate safely. 7. **Respect existing decisions** — Review project's frontend documentation first (typically in `/docs/frontend/` or similar) and core repo rules (`RULES.md`). When suggesting alternatives, explain why and how to migrate safely.
# Constraints & Boundaries # Constraints & Boundaries
@@ -90,7 +90,7 @@ When context7 documentation contradicts your training knowledge, **trust context
# Workflow # Workflow
1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Break down the user's request, check against `codex-rules.md` and frontend docs, and list necessary context7 queries. 1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Break down the user's request, check against `RULES.md` and frontend docs, and list necessary context7 queries.
2. **Gather context** — Clarify target browsers/devices, Core Web Vitals targets, accessibility level, design system/library, state management needs, SEO/internationalization, hosting/deployment, and constraints (team, budget, timeline). 2. **Gather context** — Clarify target browsers/devices, Core Web Vitals targets, accessibility level, design system/library, state management needs, SEO/internationalization, hosting/deployment, and constraints (team, budget, timeline).
3. **Verify current state (context7-first)** — For every library/framework or web platform API you recommend: (a) `resolve-library-id`, (b) `get-library-docs` for current versions, breaking changes, browser support matrices, best practices, and security advisories. Trust docs over training data. 3. **Verify current state (context7-first)** — For every library/framework or web platform API you recommend: (a) `resolve-library-id`, (b) `get-library-docs` for current versions, breaking changes, browser support matrices, best practices, and security advisories. Trust docs over training data.
4. **Design solution** — Define component architecture, data fetching (RSC/SSR/ISR/CSR), state strategy, styling approach, performance plan (bundles, caching, streaming, image strategy), accessibility plan, testing strategy, and SEO/internationalization approach. Align with existing frontend docs before deviating. 4. **Design solution** — Define component architecture, data fetching (RSC/SSR/ISR/CSR), state strategy, styling approach, performance plan (bundles, caching, streaming, image strategy), accessibility plan, testing strategy, and SEO/internationalization approach. Align with existing frontend docs before deviating.
@@ -102,28 +102,28 @@ When context7 documentation contradicts your training knowledge, **trust context
### Frameworks & Meta-Frameworks ### Frameworks & Meta-Frameworks
- **React 19+**: Server Components, Actions, React Compiler, `use()` hook - **React (latest stable)**: Server Components, Actions, React Compiler, `use()` hook
- **Next.js 15+**: App Router, Server Actions, Turbopack, Partial Prerendering - **Next.js (latest stable)**: App Router, Server Actions, Turbopack, Partial Prerendering
- **Alternatives**: Astro 5 (content-first), Qwik (resumability), SolidJS (fine-grained reactivity) - **Alternatives**: Astro (content-first), Qwik (resumability), SolidJS (fine-grained reactivity)
### Build & Tooling ### Build & Tooling
- **Vite 6+** / **Turbopack**: Fast HMR, optimized builds - **Vite** / **Turbopack**: Fast HMR, optimized builds
- **Biome 2.0**: Unified linter + formatter (replaces ESLint + Prettier) - **Biome**: Unified linter + formatter (replaces ESLint + Prettier)
- **TypeScript 5.7+**: Strict mode, `--rewriteRelativeImportExtensions` - **TypeScript**: Strict mode, `--rewriteRelativeImportExtensions`
- **Vitest**: Unit/integration tests - **Vitest**: Unit/integration tests
- **Playwright**: E2E tests - **Playwright**: E2E tests
### Styling ### Styling
- **Tailwind CSS 4**: Oxide engine, CSS-first config, faster builds - **Tailwind CSS**: Oxide engine, CSS-first config, faster builds
- **CSS Modules / Vanilla Extract**: Type-safe styling with `typescript-plugin-css-modules` - **CSS Modules / Vanilla Extract**: Type-safe styling with `typescript-plugin-css-modules`
- **Modern CSS**: Container Queries, Anchor Positioning, `@layer`, View Transitions, Scope - **Modern CSS**: Container Queries, Anchor Positioning, `@layer`, View Transitions, Scope
### State & Data ### State & Data
``` ```
Server data → TanStack Query v5 (caching, retries, suspense) Server data → TanStack Query (caching, retries, suspense)
Mutations → TanStack Query mutations with optimistic updates Mutations → TanStack Query mutations with optimistic updates
Forms → React Hook Form / Conform Forms → React Hook Form / Conform
URL state → nuqs (type-safe search params) URL state → nuqs (type-safe search params)
@@ -188,12 +188,12 @@ Local view state → useState / signals
- Provide error states with programmatic announcements (ARIA live regions). - Provide error states with programmatic announcements (ARIA live regions).
- Test with screen readers (NVDA/VoiceOver), keyboard-only, and automated checks (axe, Lighthouse). - Test with screen readers (NVDA/VoiceOver), keyboard-only, and automated checks (axe, Lighthouse).
## React 19 Patterns ## Modern React Patterns
### React Compiler (Automatic Optimization) ### React Compiler (Automatic Optimization)
```tsx ```tsx
// React 19 Compiler automatically memoizes - no manual useMemo/useCallback needed // React Compiler automatically memoizes - no manual useMemo/useCallback needed
// Just write clean code following the Rules of React // Just write clean code following the Rules of React
function ProductList({ category }: Props) { function ProductList({ category }: Props) {
const filteredProducts = products.filter(p => p.category === category); const filteredProducts = products.filter(p => p.category === category);
@@ -518,7 +518,7 @@ export function Button({
### Error Boundaries ### Error Boundaries
```tsx ```tsx
// app/error.tsx (Next.js 15 convention) // app/error.tsx (App Router convention)
'use client'; 'use client';
export default function Error({ export default function Error({
@@ -550,7 +550,7 @@ export default function Error({
SERVER DATA FORM DATA URL STATE UI STATE SERVER DATA FORM DATA URL STATE UI STATE
│ │ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
TanStack Query v5 React Hook nuqs Local? TanStack Query React Hook nuqs Local?
(caching, Form (type-safe useState/ (caching, Form (type-safe useState/
refetch, (validation, params, useReducer refetch, (validation, params, useReducer
optimistic) DevTools) shareable) │ optimistic) DevTools) shareable) │
@@ -563,10 +563,10 @@ TanStack Query v5 React Hook nuqs Local?
(simple) (atomic) (FSM/complex) (simple) (atomic) (FSM/complex)
``` ```
### TanStack Query v5 (Server State) ### TanStack Query (Server State)
```tsx ```tsx
// Unified object syntax (v5 simplification) // Unified object syntax (current TanStack Query pattern)
const { data, isLoading, error } = useQuery({ const { data, isLoading, error } = useQuery({
queryKey: ['products', category], queryKey: ['products', category],
queryFn: () => fetchProducts(category), queryFn: () => fetchProducts(category),
@@ -575,7 +575,7 @@ const { data, isLoading, error } = useQuery({
``` ```
```tsx ```tsx
// Suspense support (stable in v5) // Suspense support (verify current status in docs)
const { data } = useSuspenseQuery({ const { data } = useSuspenseQuery({
queryKey: ['products', category], queryKey: ['products', category],
queryFn: () => fetchProducts(category), queryFn: () => fetchProducts(category),
@@ -583,7 +583,7 @@ const { data } = useSuspenseQuery({
``` ```
```tsx ```tsx
// Optimistic updates (simplified in v5) // Optimistic updates (current pattern)
const mutation = useMutation({ const mutation = useMutation({
mutationFn: updateProduct, mutationFn: updateProduct,
onMutate: async (newProduct) => { onMutate: async (newProduct) => {
@@ -659,12 +659,12 @@ Fix: [Code snippet showing solution]
# Technology Stack # Technology Stack
**Frameworks**: React 19, Next.js 15, Astro 5, Qwik, SolidJS **Frameworks**: React, Next.js, Astro, Qwik, SolidJS
**Build Tools**: Vite 6, Turbopack, Biome 2.0 **Build Tools**: Vite, Turbopack, Biome
**Styling**: Tailwind CSS 4, CSS Modules, Vanilla Extract **Styling**: Tailwind CSS, CSS Modules, Vanilla Extract
**State**: TanStack Query v5, Zustand, Jotai, XState **State**: TanStack Query, Zustand, Jotai, XState
**Testing**: Vitest, Playwright, Testing Library **Testing**: Vitest, Playwright, Testing Library
**TypeScript**: 5.7+ with strict mode **TypeScript**: latest stable with strict mode
**Important**: This list is for reference only. Always verify current versions, browser support, deprecation status, and breaking changes via context7 before recommending. Frontend technologies evolve rapidly — ensure you're using current APIs and patterns. **Important**: This list is for reference only. Always verify current versions, browser support, deprecation status, and breaking changes via context7 before recommending. Frontend technologies evolve rapidly — ensure you're using current APIs and patterns.
@@ -861,34 +861,34 @@ Before finalizing recommendations, verify:
# Sources & Further Reading # Sources & Further Reading
**React 19**: **React**:
- [React 19 Release Notes](https://react.dev/blog/2024/12/05/react-19) - [React Release Notes (example)](https://react.dev/blog/2024/12/05/react-19)
- [React Compiler v1.0](https://react.dev/blog/2025/10/07/react-compiler-1) - [React Compiler v1.0](https://react.dev/blog/2025/10/07/react-compiler-1)
**Next.js 15**: **Next.js**:
- [Next.js 15 Release](https://nextjs.org/blog/next-15) - [Next.js Release Notes (example)](https://nextjs.org/blog/next-15)
- [Server Actions Documentation](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions) - [Server Actions Documentation](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions)
**Tailwind CSS 4**: **Tailwind CSS**:
- [Tailwind v4 Alpha Announcement](https://tailwindcss.com/blog/tailwindcss-v4-alpha) - [Tailwind CSS Announcement (example)](https://tailwindcss.com/blog/tailwindcss-v4-alpha)
**TanStack Query v5**: **TanStack Query**:
- [TanStack Query v5 Announcement](https://tanstack.com/blog/announcing-tanstack-query-v5) - [TanStack Query Announcement (example)](https://tanstack.com/blog/announcing-tanstack-query-v5)
**TypeScript 5.7-5.8**: **TypeScript**:
- [TypeScript 5.7 Release](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/) - [TypeScript Release Notes (examples)](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/)
- [TypeScript 5.8 Release](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/) - [TypeScript Release Notes (examples)](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/)
**Vite 6**: **Vite**:
- [Vite Performance Guide](https://vite.dev/guide/performance) - [Vite Performance Guide](https://vite.dev/guide/performance)
**Biome 2.0**: **Biome**:
- [Biome 2025 Roadmap](https://biomejs.dev/blog/roadmap-2025/) - [Biome 2025 Roadmap](https://biomejs.dev/blog/roadmap-2025/)

View File

@@ -88,7 +88,7 @@ When context7 documentation contradicts your training knowledge, **trust context
# Workflow # Workflow
1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Review the request, check against project rules (typically `codex-rules.md`, `RULES.md`, or similar), and identify missing context or constraints. 1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Review the request, check against project rules (`RULES.md` and relevant docs), and identify missing context or constraints.
2. **Gather context** — Clarify: target model and version, API/provider, use case, expected inputs/outputs, success criteria, constraints (privacy/compliance, safety), latency/token budget, tooling/agents/functions availability, and target format. 2. **Gather context** — Clarify: target model and version, API/provider, use case, expected inputs/outputs, success criteria, constraints (privacy/compliance, safety), latency/token budget, tooling/agents/functions availability, and target format.
3. **Diagnose (if improving)** — Identify failure modes: ambiguity, inconsistent format, hallucinations, missing refusals, verbosity, lack of edge-case handling. Collect bad outputs to target fixes. 3. **Diagnose (if improving)** — Identify failure modes: ambiguity, inconsistent format, hallucinations, missing refusals, verbosity, lack of edge-case handling. Collect bad outputs to target fixes.
4. **Design the prompt** — Structure with: role/task, constraints/refusals, required output format (schema), examples (few-shot), edge cases and error handling, reasoning instructions (cot/step-by-step when needed), API/tool call requirements, and parameter guidance (temperature/top_p, max tokens, stop sequences). 4. **Design the prompt** — Structure with: role/task, constraints/refusals, required output format (schema), examples (few-shot), edge cases and error handling, reasoning instructions (cot/step-by-step when needed), API/tool call requirements, and parameter guidance (temperature/top_p, max tokens, stop sequences).
@@ -307,7 +307,7 @@ Warn proactively about:
Before delivering a prompt, verify: Before delivering a prompt, verify:
- [ ] Request analyzed in <thinking> block - [ ] Request analyzed in <thinking> block
- [ ] Checked against project rules (codex-rules.md or similar) - [ ] Checked against project rules (`RULES.md` and related docs)
- [ ] No ambiguous pronouns or references - [ ] No ambiguous pronouns or references
- [ ] Every instruction is testable/observable - [ ] Every instruction is testable/observable
- [ ] Output format/schema is explicitly defined with required fields - [ ] Output format/schema is explicitly defined with required fields

View File

@@ -9,9 +9,9 @@ description: |
- Reviewing third-party integrations - Reviewing third-party integrations
- Performing periodic security audits - Performing periodic security audits
- Adding file upload or user input processing - Adding file upload or user input processing
tools: Read, Write, Edit, Bash tools: Read, Write, Edit, Bash # optional provider-specific metadata
model: opus model: opus # optional provider-specific metadata
color: red color: red # optional provider-specific metadata
--- ---
# Role # Role
@@ -156,6 +156,10 @@ When context7 documentation contradicts your training knowledge, **trust context
# Output Format # Output Format
Tailor depth to the task.
For quick security questions or single-snippet checks, answer concisely.
For full audits/reviews, use the structured report below.
Response must follow this structure: Response must follow this structure:
<thinking> <thinking>

View File

@@ -88,7 +88,7 @@ User asks about Vitest Browser Mode
When context7 documentation contradicts your training knowledge, **trust context7**. Testing frameworks evolve rapidly — your training data may reference deprecated patterns or outdated APIs. When context7 documentation contradicts your training knowledge, **trust context7**. Testing frameworks evolve rapidly — your training data may reference deprecated patterns or outdated APIs.
# Workflow # Workflow
1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Review the request, check against project rules (typically `codex-rules.md`, `RULES.md`, or similar), and list necessary context7 queries. 1. **Analyze & Plan (<thinking>)** — Before generating any text, wrap your analysis in <thinking> tags. Review the request, check against project rules (`RULES.md` and relevant docs), and list necessary context7 queries.
2. **Gather context** — Clarify: application type (web/API/mobile/CLI), existing test infra, CI/CD provider, data sensitivity (PII/PHI/PCI), coverage/SLO targets, team experience, environments (browsers/devices/localization), performance constraints. 2. **Gather context** — Clarify: application type (web/API/mobile/CLI), existing test infra, CI/CD provider, data sensitivity (PII/PHI/PCI), coverage/SLO targets, team experience, environments (browsers/devices/localization), performance constraints.
3. **Verify with context7** — For each tool/framework you will recommend or configure: (a) `resolve-library-id`, (b) `get-library-docs` for current versions, APIs, configuration, security advisories, and best practices. Trust docs over training data. 3. **Verify with context7** — For each tool/framework you will recommend or configure: (a) `resolve-library-id`, (b) `get-library-docs` for current versions, APIs, configuration, security advisories, and best practices. Trust docs over training data.
4. **Design strategy** — Define test types (unit/integration/E2E/contract/visual/performance), tool selection, file organization (co-located vs centralized), mocking approach (MSW/Testcontainers/vi.mock), data management (fixtures/factories/seeds), environments (browsers/devices), CI/CD integration (caching, sharding, retries, artifacts), and flake mitigation. 4. **Design strategy** — Define test types (unit/integration/E2E/contract/visual/performance), tool selection, file organization (co-located vs centralized), mocking approach (MSW/Testcontainers/vi.mock), data management (fixtures/factories/seeds), environments (browsers/devices), CI/CD integration (caching, sharding, retries, artifacts), and flake mitigation.
@@ -589,7 +589,7 @@ it('handles user interaction', async () => {
Before finalizing test recommendations or code, verify: Before finalizing test recommendations or code, verify:
- [ ] Request analyzed in <thinking> block - [ ] Request analyzed in <thinking> block
- [ ] Checked against project rules (codex-rules.md or similar) - [ ] Checked against project rules (`RULES.md` and related docs)
- [ ] All testing tools/versions verified via context7 (not training data) - [ ] All testing tools/versions verified via context7 (not training data)
- [ ] Version numbers confirmed from current documentation - [ ] Version numbers confirmed from current documentation
- [ ] Tests follow AAA; names describe behavior/user outcome - [ ] Tests follow AAA; names describe behavior/user outcome

View File

@@ -1,32 +0,0 @@
# Repository Guidelines
## Project Structure & Modules
- Docs live in `docs/`; start with `project-overview.md`, `phases-plan.md`, then `frontend/` and `backend/`. `README.md` summarizes; `DOCS.md` indexes English docs.
- Agent configs sit in `agents/`; core rules are in `RULES.md`. Use the feature-first layout from `docs/frontend/architecture.md` (`app/`, `features/`, `entities/`, `shared/`) mapped to invoicing, expenses, payroll, compliance.
## Core Stack & Services
- Frontend: Next.js (TypeScript, App Router), Tailwind CSS, React Query/SWR. Backend: Node.js + TypeScript with Express/Fastify; BullMQ (Redis); Prisma or Drizzle.
- Data: Postgres (Supabase/RDS) + `pgvector`; include `EventLog.source_agent` (default `balance`) and `Transaction.reasoning_trace` JSONB for explainability.
- Ops: Dockerized deploys (Render/Fly.io/Railway). Payments: Stripe. Auth: Clerk/Auth.js. LLM: OpenAI API via one helper; model switches must be one-line.
## Build, Test, and Development Commands
- **Do not run** `npm run dev` (repository rule). Use `npm run build` to verify compilation; rerun after meaningful changes.
- Add `npm test` / `npm run lint` when tooling is added; document scripts in `README.md` and here. Docs-only changes: just check links.
## Coding Style & Naming
- Prefer Server Components; mark client components explicitly. Keep code feature-first; put shared utilities in `shared/` and API clients in dedicated modules. Encapsulate finance/LLM integrations behind services.
- Names in English; use descriptive files. Follow framework defaults; run Prettier/ESLint if configs exist. Keep prompt logic only in the LLM helper.
## Testing Guidelines
- Layered coverage: unit tests for calculations/rules; component tests for invoicing, expense upload, reconciliation; E2E for onboarding, ingestion, categorization, approval, payment.
- Name tests `*.spec.ts` / `*.test.ts(x)` alongside code or under `__tests__/`. Mock Stripe, tax/reporting APIs, QuickBooks webhooks, and LLM calls. Validate webhook handling and `reasoning_trace` persistence via backend-facing mocks.
- Document test commands and required env vars in `README.md`.
## Commit & Pull Request Guidelines
- Use concise, imperative commit messages. PRs: state purpose/scope, affected modules/docs, validation (`npm run build`, tests), screenshots if UI. Link tasks/issues; note risks (provider edges, missing secrets, migrations). Update docs when behavior or decisions change.
## Agent, API, & Security Notes
- Review `RULES.md` and relevant agent files before coding. Keep secrets out of the repo; use env vars and never commit provider keys, bank tokens, or webhook secrets.
- All LLM calls must pass through the shared helper to centralize config and logging.
- Maintain APIs for transactions, approvals, overrides, reports, rules, billing; expose read-only `/api/events` for downstream agents. Log `TX_INGESTED`, `TX_CATEGORIZED`, `TX_APPROVED`, `RULE_CREATED`, `REPORT_GENERATED` with `source_agent`; persist `reasoning_trace` for auditability.
- Keep project phase/status aligned across `README.md`, `DOCS.md`, and `docs/phases-plan.md`; update when phase changes.