Files
tiku-backend.net/AGENTS.md

3.1 KiB

Repository Guidelines

Project Structure & Module Organization

TIKU-BACKEND.slnx groups production projects under src and tests under tests. Tiku.Api contains controllers, middleware, authentication, OpenAPI setup, and hosted background processing. Tiku.Application defines use cases and provider interfaces; Tiku.Domain owns entities and enums; Tiku.Infrastructure implements EF Core persistence and external providers. Use Tiku.DbMigrator for schema changes; PostgreSQL-backed background jobs run as hosted services in Tiku.Api. Tests live in Tiku.UnitTests and Tiku.IntegrationTests; architecture decisions and migration notes belong in docs/.

Keep dependencies pointed inward: Domain must remain infrastructure-free, Application expresses abstractions, and provider SDKs or secret access stay in Infrastructure.

Build, Test, and Development Commands

Run commands from the repository root:

dotnet restore TIKU-BACKEND.slnx
dotnet build TIKU-BACKEND.slnx --no-restore
dotnet test TIKU-BACKEND.slnx --no-build
dotnet format TIKU-BACKEND.slnx --verify-no-changes --no-restore
dotnet run --project Tiku.Api
dotnet run --project Tiku.DbMigrator

The API and migrator require PostgreSQL through ConnectionStrings:Database or DATABASE_URL. Generate reviewable migration SQL with dotnet ef migrations script --project Tiku.Infrastructure --startup-project Tiku.DbMigrator. Also run git diff --check before committing.

Coding Style & Naming Conventions

Use standard C# formatting: four-space indentation, file-scoped namespaces, nullable reference types, and implicit usings. Use PascalCase for types and public members, camelCase for locals and parameters, and prefix interfaces with I. Keep async methods suffixed Async. Database identifiers are mapped to snake_case; do not bypass centralized EF configurations or tenant safeguards.

Testing Guidelines

Tests use xUnit and follow *Tests.cs; test methods use descriptive behavior names such as Password_login_can_access_current_user_and_tenant. Add focused unit tests for isolated logic and integration tests for API, EF model, migration, authorization, and tenant-isolation behavior. PostgreSQL-specific invariants must be proven against real PostgreSQL, not only the in-memory provider. No numeric coverage threshold is configured, but every behavior change needs regression coverage.

Commit & Pull Request Guidelines

History follows Conventional Commit subjects such as feat:, fix:, refactor(api):, docs:, and chore:. Keep commits narrow and imperative. Pull requests should explain the behavior and architectural impact, link the issue or migration phase, identify schema/configuration changes, and list verification commands. Include screenshots only for generated API documentation or other visible output; never commit credentials or temporary bootstrap passwords.

Agent-Specific Instructions

When .codegraph/ exists, use codegraph explore "<question or symbol>" before text search for code discovery. Treat tenant context, authorization, migrations, and provider boundaries as security-sensitive changes requiring targeted integration tests.