docs(repo): describe contributor rules and requirements for a public checkout
- commit
- 7b74838e32549d372c7b5543f73edfe1a9634083
- author
- brice · · 2026-09-30 15:47 UTC
- parent
- 8802f16
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
3 files · +2 -10
M .gitignore +0 -1
| @@ -6,4 +6,3 @@ | |||
| 6 | 6 | coverage/ | |
| 7 | 7 | go.work | |
| 8 | 8 | go.work.sum | |
| 9 | - | /.local-deps/ | |
| @@ -6,4 +6,3 @@ | |||||
| 6 | coverage/ | 6 | coverage/ | ||
| 7 | go.work | 7 | go.work | ||
| 8 | go.work.sum | 8 | go.work.sum | ||
| 9 | - | /.local-deps/ | |||
M AGENTS.md +1 -3
| @@ -1,10 +1,8 @@ | |||
| 1 | 1 | # Repository rules | |
| 2 | 2 | ||
| 3 | - | - Local-only repository: do not create remotes, publish branches, or access GitHub without explicit permission. | |
| 4 | 3 | - Use Go 1.27; normal builds and tests use CGO_ENABLED=0. Enable CGO only for race tests. | |
| 5 | 4 | - Follow lightweight hexagonal architecture: cmd/nefercap and internal/app wire internal/core, internal/ports, and internal/adapters. Core imports only stdlib and ports; ports contain no framework types. | |
| 6 | - | - Use the exact NeferGUI version pinned in go.mod for layer-shell interfaces, and zerowrap with a component field for logging. Local signed commits may be pinned with Go pseudo-versions; do not invent release tags. Reuse NeferWL dependency versions where applicable; do not copy unrelated compositor dependencies. | |
| 7 | - | - Work in .worktrees/ branches, not directly on main. Merge locally only after checks and review pass. | |
| 5 | + | - Use the NeferGUI version pinned in go.mod for layer-shell interfaces, and zerowrap with a component field for logging. Reuse NeferWL dependency versions where applicable; do not add unrelated compositor dependencies. | |
| 8 | 6 | - Sign every commit and tag; commit format: type(scope): description. | |
| 9 | 7 | - Minimize footprint. Bound buffers, queues and subprocess lifetimes. Reuse frame storage; test and benchmark steady-state allocations. Do not claim zero allocations without measurements. | |
| 10 | 8 | - Test doubles are generated by Mockery v3 with the testify template. No handwritten fakes, stubs, spies or function-field replacements. Cross-layer interfaces live in internal/ports; generated mocks in internal/mocks/ports. Adapter-private seams stay in the adapter with generated *_mock_test.go files. Use .EXPECT(). | |
| @@ -1,10 +1,8 @@ | |||||
| 1 | # Repository rules | 1 | # Repository rules | ||
| 2 | 2 | ||||
| 3 | - | - Local-only repository: do not create remotes, publish branches, or access GitHub without explicit permission. | |||
| 4 | - Use Go 1.27; normal builds and tests use CGO_ENABLED=0. Enable CGO only for race tests. | 3 | - Use Go 1.27; normal builds and tests use CGO_ENABLED=0. Enable CGO only for race tests. | ||
| 5 | - Follow lightweight hexagonal architecture: cmd/nefercap and internal/app wire internal/core, internal/ports, and internal/adapters. Core imports only stdlib and ports; ports contain no framework types. | 4 | - Follow lightweight hexagonal architecture: cmd/nefercap and internal/app wire internal/core, internal/ports, and internal/adapters. Core imports only stdlib and ports; ports contain no framework types. | ||
| 6 | - | - Use the exact NeferGUI version pinned in go.mod for layer-shell interfaces, and zerowrap with a component field for logging. Local signed commits may be pinned with Go pseudo-versions; do not invent release tags. Reuse NeferWL dependency versions where applicable; do not copy unrelated compositor dependencies. | 5 | + | - Use the NeferGUI version pinned in go.mod for layer-shell interfaces, and zerowrap with a component field for logging. Reuse NeferWL dependency versions where applicable; do not add unrelated compositor dependencies. |
| 7 | - | - Work in .worktrees/ branches, not directly on main. Merge locally only after checks and review pass. | |||
| 8 | - Sign every commit and tag; commit format: type(scope): description. | 6 | - Sign every commit and tag; commit format: type(scope): description. | ||
| 9 | - Minimize footprint. Bound buffers, queues and subprocess lifetimes. Reuse frame storage; test and benchmark steady-state allocations. Do not claim zero allocations without measurements. | 7 | - Minimize footprint. Bound buffers, queues and subprocess lifetimes. Reuse frame storage; test and benchmark steady-state allocations. Do not claim zero allocations without measurements. | ||
| 10 | - Test doubles are generated by Mockery v3 with the testify template. No handwritten fakes, stubs, spies or function-field replacements. Cross-layer interfaces live in internal/ports; generated mocks in internal/mocks/ports. Adapter-private seams stay in the adapter with generated *_mock_test.go files. Use .EXPECT(). | 8 | - Test doubles are generated by Mockery v3 with the testify template. No handwritten fakes, stubs, spies or function-field replacements. Cross-layer interfaces live in internal/ports; generated mocks in internal/mocks/ports. Adapter-private seams stay in the adapter with generated *_mock_test.go files. Use .EXPECT(). | ||
M README.md +1 -6
| @@ -50,6 +50,7 @@ Opening screenshot selection while a recording is active is refused: its overlay | |||
| 50 | 50 | - For capture: `zwlr_screencopy_manager_v1`. | |
| 51 | 51 | - For recording indicators and workspace targets: NeferWL's native capture-session protocol. | |
| 52 | 52 | - FFmpeg with `libx264` for silent H.264 video in fragmented MP4. | |
| 53 | + | - `wl-copy` (wl-clipboard) for clipboard screenshots. | |
| 53 | 54 | ||
| 54 | 55 | A standard compositor can support monitor/region screenshots. Recording refuses to start without native session support rather than capture its own controls. Standard capture clients keep their normal behavior and see the HUD and border. | |
| 55 | 56 | ||
| @@ -89,12 +90,6 @@ go test ./... -run '^$' -bench . -benchmem | |||
| 89 | 90 | ||
| 90 | 91 | Mockery v3 generates test doubles. Allocation guards cover frame views, selection state, unchanged overlay geometry, HUD refresh, video rows, encoder writes and output lookup. Protocol capture has a measured allocation budget; the application does not claim zero total allocations. | |
| 91 | 92 | ||
| 92 | - | ## Local dependencies | |
| 93 | - | ||
| 94 | - | This repository has no remote. NeferGUI is pinned to a signed local commit with layer-shell support, using a Go pseudo-version rather than an unpublished release tag. Its exact source is cached through an offline file-based module proxy. | |
| 95 | - | ||
| 96 | - | The bootstrap worktree's ignored `.local-deps/` contains source archives and proxy tooling. Builds on this machine work with `GOWORK=off GOPROXY=off`; another machine needs those exact sources or matching module-proxy entries. `go.mod` and `go.sum` pin the versions and hashes. | |
| 97 | - | ||
| 98 | 93 | ## License | |
| 99 | 94 | ||
| 100 | 95 | GPL-3.0. See [LICENSE](LICENSE). | |
| @@ -50,6 +50,7 @@ Opening screenshot selection while a recording is active is refused: its overlay | |||||
| 50 | - For capture: `zwlr_screencopy_manager_v1`. | 50 | - For capture: `zwlr_screencopy_manager_v1`. | ||
| 51 | - For recording indicators and workspace targets: NeferWL's native capture-session protocol. | 51 | - For recording indicators and workspace targets: NeferWL's native capture-session protocol. | ||
| 52 | - FFmpeg with `libx264` for silent H.264 video in fragmented MP4. | 52 | - FFmpeg with `libx264` for silent H.264 video in fragmented MP4. | ||
| 53 | + | - `wl-copy` (wl-clipboard) for clipboard screenshots. | |||
| 53 | 54 | ||||
| 54 | A standard compositor can support monitor/region screenshots. Recording refuses to start without native session support rather than capture its own controls. Standard capture clients keep their normal behavior and see the HUD and border. | 55 | A standard compositor can support monitor/region screenshots. Recording refuses to start without native session support rather than capture its own controls. Standard capture clients keep their normal behavior and see the HUD and border. | ||
| 55 | 56 | ||||
| @@ -89,12 +90,6 @@ go test ./... -run '^$' -bench . -benchmem | |||||
| 89 | 90 | ||||
| 90 | Mockery v3 generates test doubles. Allocation guards cover frame views, selection state, unchanged overlay geometry, HUD refresh, video rows, encoder writes and output lookup. Protocol capture has a measured allocation budget; the application does not claim zero total allocations. | 91 | Mockery v3 generates test doubles. Allocation guards cover frame views, selection state, unchanged overlay geometry, HUD refresh, video rows, encoder writes and output lookup. Protocol capture has a measured allocation budget; the application does not claim zero total allocations. | ||
| 91 | 92 | ||||
| 92 | - | ## Local dependencies | |||
| 93 | - | ||||
| 94 | - | This repository has no remote. NeferGUI is pinned to a signed local commit with layer-shell support, using a Go pseudo-version rather than an unpublished release tag. Its exact source is cached through an offline file-based module proxy. | |||
| 95 | - | ||||
| 96 | - | The bootstrap worktree's ignored `.local-deps/` contains source archives and proxy tooling. Builds on this machine work with `GOWORK=off GOPROXY=off`; another machine needs those exact sources or matching module-proxy entries. `go.mod` and `go.sum` pin the versions and hashes. | |||
| 97 | - | ||||
| 98 | ## License | 93 | ## License | ||
| 99 | 94 | ||||
| 100 | GPL-3.0. See [LICENSE](LICENSE). | 95 | GPL-3.0. See [LICENSE](LICENSE). | ||