Codebase Simplification & Maintenance Guide
This skill provides guidelines on how to keep the repository clean, avoid over-engineering, and maintain high developer velocity.
1. Branch-First Development
[!IMPORTANT] CREATE A LOCAL BRANCH FIRST: Always start by creating a local branch from
main:git switch -c MishraShardendu22/main/<feature-name>Never develop or modify code directly on
main.
2. Core Principles
No Unwanted Infrastructure:
- Do not add Dockerfiles, docker-compose, Kubernetes manifests, Nginx configs, Prometheus/Grafana server setups, or Terraform scripts.
- Everything runs on native Vercel (Next.js, Python FastAPI) and Render (Go Fiber).
No Speculative Abstractions:
- Do not create interfaces or wrapper layers that have only a single implementation unless required for mocking in tests.
- Prefer straightforward, readable standard library code over heavy external frameworks.
Centralized Configuration:
- Never call
os.Getenvorprocess.envin arbitrary component files. - All environment access must go through the dedicated central module (
backend/config,agentic-observatory/config,frontend/src/config/env.ts).
- Never call
Zero Dead Code:
- Remove unused functions, structs, imports, scripts, and commented-out code during every refactoring pass.
Safe Database Practices:
- Never drop or truncate production tables.
- Always write idempotent migrations (
CREATE TABLE IF NOT EXISTS).