Add project documentation and update workflow plan

Adds AGENTS.md, DESIGN.md, and docs/* covering architecture,
conventions, decisions, checklists, branching, release process,
and prompts. Updates README and workflow-feedback-plan to reflect
the decoupled GroupName nomination model.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
AzuTear
2026-06-28 23:31:13 +02:00
parent 18b61bed52
commit fc5c13a4fd
13 changed files with 1670 additions and 15 deletions
+130
View File
@@ -0,0 +1,130 @@
# Engineering Conventions
This document defines project engineering standards. It should stay practical,
specific, and enforceable. For architecture boundaries, see
[ARCHITECTURE.md](ARCHITECTURE.md). For quality gates, see
[CHECKLISTS.md](CHECKLISTS.md).
## General Rules
- Prefer correctness, maintainability, and clear ownership over speed.
- Read nearby code and docs before editing.
- Keep changes scoped; do not mix unrelated cleanup with behavior changes.
- Preserve user work and unrelated local changes.
- Treat missing business logic as an unknown, not as permission to invent it.
- Update documentation when setup, architecture, operations, or public behavior
changes.
## Naming
- Use domain terms over technical shorthand.
- Name Vue components in `PascalCase.vue`.
- Name composables as `useThing.ts`.
- Name API helpers by feature or API area.
- Name backend endpoints, contracts, services, and repositories by feature.
- Name booleans as predicates, such as `isEnabled`, `hasPermission`, or
`canSubmit`.
## Frontend
- Use Vue 3 single-file components with TypeScript.
- Keep `.vue` files focused; split large admin or workflow screens into smaller
components and composables.
- Keep route-level views in `frontend/src/views`.
- Keep reusable UI in `frontend/src/components`.
- Keep API calls in `frontend/src/lib/api` or established API helpers.
- Keep local state limited to UI interaction and unsaved form state when backend
data exists.
- Public pages should use backend/admin truth instead of duplicated demo data.
- Admin pages should be dense, scannable, permission-aware, and operationally
clear.
- Use existing design guidance in [../DESIGN.md](../DESIGN.md) before creating
new visual patterns.
## Backend
- Use nullable-enabled C# with implicit usings.
- Keep endpoint groups focused on HTTP shape, mapping, authorization, and
orchestration.
- Put reusable use-case behavior in services.
- Put persistence-specific behavior in repositories when it is repeated,
cross-feature, or domain-significant.
- Keep request/response DTOs in `Backend/Contracts`; do not expose persistence
entities as public contracts by default.
- Keep auth and permission behavior server-side, even when the frontend hides
controls.
- Prefer explicit validation responses over relying on database exceptions for
expected user errors.
## Database And Migrations
- Use EF Core migrations for schema changes.
- Review migration names and generated operations before committing.
- Consider indexes, constraints, backfill, and rollback/recovery before schema
changes.
- Production migrations are applied by the deploy workflow; do not add
production startup auto-migrations without an explicit decision.
- Keep demo/presentation seed behavior controlled by environment flags.
## Configuration And Secrets
- Use `Backend/appsettings.Development.json` only for local defaults.
- Keep `Backend/appsettings.json` production-safe.
- Use `VTSA_POSTGRES` or `ConnectionStrings__Postgres` outside local defaults.
- Never hardcode secrets, tokens, API keys, production credentials, or private
URLs in source.
- Non-development CORS origins must be explicit HTTP(S) origins.
## Validation
Default validation before pushing application changes:
```bash
cd frontend
npm run build
cd ..
dotnet build Backend/Backend.csproj --configuration Release
git diff --check
```
Add targeted checks when risk is higher:
- API `curl` checks for endpoint behavior.
- Browser checks for public/admin UI changes.
- Mobile width checks at `360px`, `390px`, `768px`, and desktop for responsive
UI changes.
- Authenticated admin checks for permission or team-management changes.
- Live health checks only when the user explicitly moves the task to live or a
release/deploy task requires it.
## Git And PRs
- Keep commits focused and imperative, for example `Fix team profile auth recovery`.
- Use PR descriptions with summary, validation, risks, screenshots for UI
changes, and migration/deployment notes when relevant.
- Do not commit generated output such as `frontend/dist`, `Backend/bin`,
`Backend/obj`, archives, prototype exports, or handoff documents.
- Explain failed or skipped validation clearly.
## Documentation
- Keep one authoritative source per topic and link to it instead of duplicating
large sections.
- Use [PROJECT.md](PROJECT.md) for project facts and runtime expectations.
- Use [ARCHITECTURE.md](ARCHITECTURE.md) for system structure and boundaries.
- Use [DECISIONS.md](DECISIONS.md) for durable trade-offs.
- Use [workflow-feedback-plan.md](workflow-feedback-plan.md) and similar docs
for scoped product plans.
## Review Priorities
Reviews should prioritize:
- user-visible correctness;
- security and authorization;
- data integrity and migrations;
- backend/admin truth versus duplicated state;
- operational risk and deploy safety;
- maintainability and file size;
- adequate validation evidence.