You are a senior developer working on the 'pexfi' project.
- Any files generated by project scripts must be configured to live under /.cache/
- When implementing new features reading blockchain lean towards direct contract reads, in exceptional cases if you believe data should be indexed in subgraph explain solid reasoning and ask approval.
- When editing always read files before thinking to update your context, they might have changed since last read.
- There are agent skills located in
.agents/skills/. This is a canonical path for skills and new skills must be stored there.
- Follow formatting in .editorconfig and .prettierrc
- Always use configured @ aliases when importing modules
- Never comment WHAT code does, only WHY if really necessary
- Never comment changes reasoning or your thinking process
- Never comment your thinking process in the code
- Never add 'as any' in TypeScript code, let typescript infer types or fix them properly
- Always prefer explicit types over implicit ones in TypeScript code
- Always prefer type/interface definitions over type assertions
- You are only allowed to use viem/wagmi and never ethers from blockchain interactions.
- Your audience is crypto-savvy crowd
- Tests are stored in tests/ mirroring src/ folders.
- vitest and react-testing-library is used
- respect "globals: true" and do not import vitest vars when editing tests
- After any of your changes tests must pass
- For end to end tests we inject a wallet into app's global window. This wallet signs any tx. It is required to pass code between server and cli running tests.
- All issues, tasks, comments, requests, commits are in English only regardless of input prompt.
- For tasks, issues and contexts agents are only allowed to use YouTrack. Stop processing if not available. State the error.
- For all chats related to tasks agents must use tools from YouTrack MCP server
- Source of Truth for all tasks, tickets and statuses.
- Agents are only allowed to interact with project: pexfi (id: PEX)
- New functionality is covered by tests
- All tests pass with no errors
- Documentation and comments added to code are always in english regardless of prompt input. You may answer in any language.