MiKode Engineering is the source of truth for cross-project engineering decisions, standards, reusable documentation templates, and shared development practices.
It documents decisions and policies; it does not contain the production implementation of MiKode libraries or applications. Reusable tooling belongs in its own package repository.
MiKode maintainers, contributors, and project teams should use these documents when they start a project, make a cross-project technical decision, or need to apply an existing standard consistently.
ADRs preserve the reasoning behind significant decisions. They are historical records and should not be rewritten to hide the trade-offs of an earlier decision.
ADRs remain in one chronological sequence and use Markdown metadata for their domains and applicability. The ADR index exposes that metadata so decisions can be found by status, domain, or project scope without reorganizing historical files.
See the ADR index.
Standards describe the current rules for MiKode projects. A standard is active when its
status says Active.
See the standards index.
Templates provide reusable starting files with explicit placeholders. A copied template must be completed and validated in the target repository before it becomes effective.
See the templates index.
Accepted decisions and their active standards:
- ADR 0001: Use Prettier for cross-project code formatting
- ADR 0002: Use the Commons Clause with the MIT License for source-available software
- ADR 0003: Use pnpm as the package manager
- ADR 0004: Support Node.js 22 and later
- ADR 0005: Use a strict shared TypeScript configuration via @mikode13/tsconfig
- ADR 0007: Use ESLint 10 with modern React plugins
- ADR 0008: Use Conventional Commits and squash merges with shared Git hooks
- ADR 0009: Use Vitest and Playwright with risk-based testing requirements
- Code formatting standard
- Licensing standard
- Package management standard
- Node.js version standard
- TypeScript standard
- Code quality standard
- Git workflow standard
- Testing standard
Superseded decisions, retained as historical records:
- ADR 0006: Use ESLint with a shared @mikode13/code-quality configuration — superseded by ADR 0007.
Before adding a decision, confirm that it affects more than one MiKode project. Describe
the problem and constraints, research realistic alternatives, and record the proposed
decision in an ADR. Classify it with the controlled domains and an explicit Applies to
scope from the ADR index. Once the decision is confirmed, mark the ADR Accepted, update
the related standard, add or update a template when needed, and update the indexes.
Use relative links for documents in this repository and authoritative links for external facts. Keep historical reasoning in ADRs and active rules in standards.
The documentation in this repository is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
This differs deliberately from the licensing standard: that standard targets MiKode software, while this repository contains documentation and templates intended to be copied and adapted. The LICENSE.template file keeps its own legal text; CC BY 4.0 applies to the surrounding documentation.