Pre-baked facts the dialectic engine has saved. These survive context compaction and feed into peer representations.
When encountering legacy tools like pip/poetry/pipenv, Zach proposes migrating to modern alternatives (uv) rather than falling back to legacy tooling
Zach's pull request requirements emphasize justification over description - PRs must include 'changes and why' not just what changed, and commit messages require lowercase type, imperative mood
Zach maintains comprehensive, formalized documentation across multiple instruction files (git-workflow.md, tech-stack.md, code-style.md, security.md) with explicit rules and conventions
Zach mandates aggressive skill composition - when tasks match multiple skill groups, ALL relevant skills must be invoked rather than selecting a few. Uses language like 'invoke ALL skills', 'never rationalize skipping', 'even 1% chance a skill applies'
Zach follows pragmatic tool selection based on context - Express.js only for dead simple APIs, Rust ONLY for performance-critical workers (never web servers), MySQL when client has preference
Zach is likely based in the United Kingdom, evidenced by his use of .uk domain names (zachlagden.uk, digigrow.uk, wiki.admin.digigrow.uk).
CONTRADICTION: Zach has conflicting guidance on code comments. The Critical Rules state 'Never write comments in code', but the Code Style document explicitly states 'Comments explain WHY not WHAT' and defines a TODO format using comments. These statements are mutually exclusive.
Zach practices self-hosted infrastructure management, operating personal VPS, Coolify instance, and Docker containers without managed CI/CD pipelines.
Zach is a full-stack developer proficient in TypeScript/JavaScript (Next.js, React, Tailwind) and Python (Flask/FastAPI) ecosystems.
Zach prioritizes code readability and maintainability through self-imposed constraints: descriptive naming, functions under 50 lines, components under 300 lines, explicit error handling.
Zach maintains comprehensive observability practices using Sentry for all applications and structured JSON logging with strict no-secrets policy.
Zach follows modern API-first architecture principles with REST-only preference, OpenAPI documentation, and SQL-first database access patterns.
zach keeps components small and focused at under 300 lines
zach uses structured JSON logging and never logs secrets
zach uses Sentry for all observability
zach does not use Kubernetes or CI/CD pipelines
zach deploys via Coolify with Traefik reverse proxy
zach always uses Docker and Docker Compose for deployment
zach uses JWT for stateless auth, Session for SSR, and OAuth2 for social auth depending on project requirements
zach uses Rust ONLY for performance-critical workers, never for web servers
zach only uses REST APIs and does not use GraphQL
zach always uses OpenAPI/Swagger documentation
zach always uses `uv` for Python package management and explicitly avoids pip, pip3, pip-tools, pipenv, and poetry
zach uses `uv pip install` or `uv add` to install packages in a uv-managed project
zach uses `uv sync` to sync from lockfile in a uv-managed project
zach uses `uv run` to run scripts in a uv-managed project
zach uses `uv venv` to create virtual environments
zach uses `uv init` to create new projects
zach proposes migrating projects from pip/poetry/pipenv to uv before falling back to legacy tools
zach uses PostgreSQL for production databases
zach uses MySQL when the client has a preference
zach uses SQLite for prototypes
zach uses MongoDB for document-model Python apps
zach defaults to raw SQL and uses Alembic for migrations
zach uses Redis for caching and queues
zach uses Turbopack for Next.js projects and Vite for React with Python
zach prefers Flask or FastAPI (Python) for the backend
zach uses Express.js only for dead simple APIs
zach always starts with shadcn/ui and builds custom components on top
zach uses React with Vite only when the backend is Python or a separate service
zach's default frontend stack is Next.js with App Router, Tailwind CSS, and Radix/shadcn
zach uses React Query or SWR for server state
zach uses React hooks and Context for state management and avoids Redux
zach separates business logic from UI/routes
zach always uses pnpm as the package manager
zach keeps functions under 50 lines
zach keeps dependencies updated and follows OWASP Top 10 security practices
zach prefers async/await over raw promises in TypeScript/JavaScript
zach uses functional array methods, optional chaining, and nullish coalescing in TypeScript/JavaScript
zach uses explicit return types in TypeScript/JavaScript