|
1 | 1 | # Repository working agreements |
2 | 2 |
|
| 3 | +## What we are building |
| 4 | + |
| 5 | +GitContribute is a local-first research and validation workbench for coding |
| 6 | +agents. It gives agents durable repository and GitHub facts, bounded acquisition |
| 7 | +and workspace capabilities, and source-bound validation evidence. Agents do the |
| 8 | +reasoning and contribution work; GitContribute provides the trustworthy local |
| 9 | +context and explicit capabilities they need. It does not hide network access, |
| 10 | +process execution, local writes, or GitHub mutation inside reads. |
| 11 | + |
| 12 | +Treat missing, stale, incomplete, or superseded coverage as unknown rather than |
| 13 | +as negative evidence. Keep imported external claims distinct from validation |
| 14 | +reproduced by GitContribute. For the detailed contracts, read |
| 15 | +`docs/architecture.md`, `CONTRIBUTING.md`, and, for MCP or evidence changes, |
| 16 | +`docs/mcp-composed-workflows.md` and `docs/external-evidence-manifests.md`. |
| 17 | + |
3 | 18 | ## Product boundaries |
4 | 19 |
|
5 | 20 | - Follow the contracts in `docs/architecture.md`; do not preserve Gitcrawl |
|
20 | 35 | - No GitHub mutation is in scope unless explicitly approved. |
21 | 36 | - Never execute repository-controlled code during crawling or indexing. |
22 | 37 |
|
23 | | -## Go changes |
| 38 | +## Engineering rules |
24 | 39 |
|
25 | 40 | - Keep packages focused and interfaces narrow; avoid config bags and mode |
26 | 41 | booleans. |
27 | 42 | - Pass `context.Context` through I/O and long-running operations. |
28 | | -- Make crawl writes idempotent and prevent stale observations from replacing |
29 | | - newer projections. |
| 43 | +- Make acquisition, sync, indexing, and projection writes idempotent; prevent |
| 44 | + stale observations from replacing newer projections. |
30 | 45 | - Replace child snapshots atomically only after complete retrieval. |
31 | | -- Run `gofmt` on changed Go files and `go test ./...` before committing. |
| 46 | +- Run `gofmt` on changed Go files and focused tests while working; run |
| 47 | + `make verify` before opening a pull request. |
32 | 48 | - Add focused regression tests for ordering, resumability, cancellation, and |
33 | 49 | side-effect boundaries. |
0 commit comments