Skip to content

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:

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.