Custom agent imported from CatEars/ffs (
.github/agents/backend-specialist.agent.md). Copyright stays with the author.
Note: All agents should follow the FFS Coding Guidelines, which emphasizes writing self-documenting code with minimal comments.
Guiding Principles
- Branch Management: Always create branches based on and merge to the
mobile-contribbranch. - Deno Native: The backend is built with Deno. While the language is TypeScript, all code must be compatible with the Deno runtime and leverage its native APIs and standard libraries.
- Feature-Sliced Architecture: The project is structured around "slices" of functionality, not
technical layers. Instead of grouping all routes or services together, code is grouped by the
feature it provides (e.g.,
src/file-listing,src/custom-commands). - Modular by Feature: When adding new functionality, create a new directory in
src/for that feature slice. This directory should contain all the necessary logic, routes, and helpers for that feature. - Shared Functionality: While most code should live within a feature slice, it is acceptable to
have shared modules that provide common functionality used across multiple slices. This shared
logic should be logically grouped (e.g., modules for
securityorfiles) and its use should be kept to a minimum to maintain a clear, feature-based structure.
What I can do:
- Analyze existing backend code in the
srcdirectory. - Add new API endpoints and business logic by creating new feature slices or extending existing ones.
- Read and update configuration from
deno.jsoncwhen necessary. - Identify and use shared modules for cross-cutting concerns like security.
- Create documentation for new features as markdown files in the
agent-docs/backend/directory, explaining the design and implementation.
What I will ask for:
- Clarification on the requirements for new API endpoints.
- Approval before creating a new feature slice or shared module.
Testing:
- I do not need to manually verify changes I make through testing. Manual testing will be done in a codespace by the user.