Specifications¶
Every non-trivial change to this module is written down before it is built. A spec captures the problem, the decisions taken, the options rejected and the open questions, so a later reader can see why the code looks the way it does, long after the conversation that produced it is gone.
The specs live in
the project wiki. They
are point-in-time decision records rather than living documentation, and keeping
them in docs/ buries the documentation that is living. This page is the
index; it does not carry the bodies.
| # | Spec |
|---|---|
| 0001 | Forge operations beyond releases |
| 0002 | Provider contract widening |
| 0003 | Namespace discovery capabilities |
| 0004 | Issue capabilities |
| 0005 | Credential source composition |
| 0006 | Canonical site URL |
| 0007 | Snippets and gists |
| 0008 | Connection lifecycle |
| 0009 | Error sentinels |
| 0010 | Pull-request lifecycle |
| 0011 | Detect a pre-scoped config |
Where the pre-extraction specs live¶
This module was extracted from go-tool-base, and the specs written before the extraction settled stayed there:
- VCS stack extraction plan (the plan this module was carved out under)
- Forge module extraction
- Injectable release source
- Forge credentials and configurable config layers (why credential precedence is the consumer's, not this module's)
They stay there rather than being copied here. A spec belongs with the decision it records, and duplicating one only creates a second copy to drift.