kroot

Kroot — Enterprise Engineering Charter

This repository is maintained to enterprise-grade standards. Every contributor — human or automated — must comply with the rules below. Where this charter and a local habit disagree, the charter wins. Deviations require an ADR in docs/adr/.

0. Scope

Kroot is a full-stack product:

Everything that ships from this repository is typed, tested, observable, secure and reproducible. “It works on my machine” is not a delivery standard.

1. Stack & toolchain

Layer Choice Status
Language (backend) Go 1.23.12 (go.mod) frozen
Language (frontend) TypeScript, strict: true frozen
UI framework React 18 + Vite + Tailwind CSS frozen
JS package manager pnpm (never npm/yarn) frozen
Documentation Markdown under docs/ frozen
HTTP layer Go standard library first to decide (ADR)
Persistence none yet to decide (ADR)

Rules:

2. Naming

3. Code standards

Go — enforced by make ci:

TypeScript (when web/ lands):

Details: docs/enterprise/coding-standards.md.

4. Testing

Details: docs/enterprise/testing-strategy.md.

5. Security

Details: docs/enterprise/security-policy.md.

6. Observability

Details: docs/enterprise/observability.md.

7. Quality gates

A change is not mergeable until every gate passes. make ci is the local definition of done; the CI workflow is authoritative.

Gate Command
Formatting make fmt-check
Static analysis make vet
Lint make lint
Tests + race + coverage make test-race
Vulnerability scan make vuln
Build make build

8. Git & delivery

9. Documentation