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
0012 Pull requests beyond GitLab
0013 Release creation
0014 Labels on pull requests
0015 Release with assets attached
0016 Asset rules the contract does not state
0017 One rule for labels
0018 The address a release asset is fetched from
0019 Repository creation
0020 Reading and writing a wiki
0021 Posting a comment

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.