Add initial project structure including: - Go module with Cobra CLI dependency - Root command and main entrypoint - Basic documentation (README, AGENTS.md, architecture, decisions, development, roadmap) - Configuration example and gitignore - Tool version management with mise - Comprehensive project rules and conventions
1.9 KiB
1.9 KiB
AGENTS.md — MyGO Backend
Project Essentials
- Module:
github.com/dhao2001/mygo, Go 1.26.2 - WebDisk (cloud drive) backend; roadmap in
docs/roadmap.md - CLI framework:
github.com/spf13/cobra - Go version pinned in
mise.toml
Agent Workflow
- Read the task
- Read relevant
docs/files for context - Explore existing code before writing new code
- Implement following the conventions below
- Verify:
go vet ./... && go test ./... - Update
docs/roadmap.md,docs/decisions.md, ordocs/architecture.mdif anything changed
Go Conventions
- Format:
go fmt ./...before every commit - Imports: stdlib / third-party / internal, blank-line separated
- Errors: wrap with
fmt.Errorf("context: %w", err) - Context: first param in I/O, storage, lifecycle funcs
- Exported names: doc-commented
init(): only in cobra cmd files for flag registrationcmd/is thin; business logic goes ininternal/
Documentation
| File | Read Before | Update After |
|---|---|---|
docs/architecture.md |
Adding new packages | Adding new packages |
docs/decisions.md |
Making technical decisions | Making technical decisions |
docs/roadmap.md |
Every task | Completing a feature |
docs/development.md |
Build/test/debug setup | Changing workflow |
Commands
go build ./... # build all packages
go test ./... # all tests
go vet ./... # static analysis
go fmt ./... # format
go mod tidy # clean deps after add/remove
DO / DON'T
- DO put business logic in
internal/, keepcmd/thin - DO write all code, comments, and documentation in English
- DON'T read
go.sumentirely into context — usegrepor other tools to search specific patterns if needed - DON'T skip
go vet ./...before finishing work - DON'T commit without explicit user request