1.6 KiB
1.6 KiB
Conventions
Repository rules that should stay true as the project changes.
Layout
- Shippable binaries live under
cmd/<name>/. - The bootstrap installer lives under
setup/; shared install logic lives ininternal/installer/. - Shared Go code lives under
internal/. Add no top-levelpkg/until there is an external consumer. README.mdis a short description plus a docs index.VERSIONis the release version source of truth.
Go
- Module path:
gitea.alexandru.macocian.me/amacocian/sherlock. - Target Go version: the
godirective ingo.mod. - One
package mainpercmd/<binary>/. - Non-main packages have a package doc comment in their leading source file.
- New third-party dependencies need a short justification with the change.
Docs
- Keep docs short and functional.
- Prefer links to source files over copied API/tool examples.
- Do not add layout diagrams. Use prose for relationships and source links for details.
- One topic per
docs/*.mdfile; link fromREADME.md.
Naming
- Binaries are kebab-case:
gitea-mcp,gssh-mcp,searxng-mcp. - Agent names match the wrapped CLI:
copilot,claude. - Service names are the config key and wallet key:
gitea,grafana,gssh,searxng.
Commits and CI
- Commit style:
area: short imperative. - Keep one logical change per commit.
.gitea/workflows/release.yamlruns formatting, static analysis, race tests, and build.- Tags are created from
VERSIONonly after the main-branch release workflow passes.
Security
No secrets in the repository. OAuth tokens live in the OS keyring; config files contain deployment metadata only.