detached 7b74838

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 VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
3 files · +2 -10
M .gitignore +0 -1
@@ -6,4 +6,3 @@
66 coverage/
77 go.work
88 go.work.sum
9-/.local-deps/
@@ -6,4 +6,3 @@
6 coverage/6 coverage/
7 go.work7 go.work
8 go.work.sum8 go.work.sum
9-/.local-deps/
M AGENTS.md +1 -3
@@ -1,10 +1,8 @@
11 # Repository rules
22
3-- Local-only repository: do not create remotes, publish branches, or access GitHub without explicit permission.
43 - Use Go 1.27; normal builds and tests use CGO_ENABLED=0. Enable CGO only for race tests.
54 - 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.
86 - Sign every commit and tag; commit format: type(scope): description.
97 - Minimize footprint. Bound buffers, queues and subprocess lifetimes. Reuse frame storage; test and benchmark steady-state allocations. Do not claim zero allocations without measurements.
108 - 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 rules1 # 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
5050 - For capture: `zwlr_screencopy_manager_v1`.
5151 - For recording indicators and workspace targets: NeferWL's native capture-session protocol.
5252 - FFmpeg with `libx264` for silent H.264 video in fragmented MP4.
53+- `wl-copy` (wl-clipboard) for clipboard screenshots.
5354
5455 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.
5556
@@ -89,12 +90,6 @@ go test ./... -run '^$' -bench . -benchmem
8990
9091 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.
9192
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-
9893 ## License
9994
10095 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 ## License93 ## License
99 94
100 GPL-3.0. See [LICENSE](LICENSE).95 GPL-3.0. See [LICENSE](LICENSE).

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 9

↑↓ moveenter openesc close