Architecture decisions
Why kosha is built the way it is: each significant decision as a short record (context, the decision, its consequences), in the ADR format. A decision is never edited away: a later one supersedes it. Sources: docs/adr.
Record architecture decisions
Decisions about how kosha is built (its dependencies, its boundaries, the trade-offs it accepts) were made in conversations and commit messages, where nobody finds them later. A co…
One registry file, in kosha's repository
kosha needs to know every package: where it lives, its kind, what it needs. That could live in each package's repository (a manifest kosha discovers) or in one index.
Install and update release tags, not commits
Tools change often on their main branches. Following main means unreleased work lands on every machine and nobody can say which version they run.
The git checkout is the source of truth
A package manager with its own database can drift from what's on disk: someone updates a tool by hand, or an old installer cloned it.
Never lose local changes
People edit tools in place, and Vayu's own workflow links development checkouts into place.
Python standard library only
kosha installs everything else, so it has to work on a fresh system before anything else is installed.
Show the plan, ask, then do the slow work in parallel
kosha 0.1 printed one line per step and did everything one package at a time: an update of many tools waited on each git fetch in turn, and nothing said what was about to change be…