commit 1d38ce90bbd5f15020f182c0cf07b73f3e7172d2 Author: Jerry Yan <792602257@qq.com> Date: Tue Apr 28 12:33:46 2026 +0800 chore: initialize repo skeleton with Makefile and lint config diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..125f361 --- /dev/null +++ b/.env.example @@ -0,0 +1,13 @@ +APP_ENV=development +APP_HTTP_ADDR=:8080 +APP_DATA_DIR=./data + +# Postgres +APP_DB_DSN=postgres://acw:acw@localhost:5432/acw?sslmode=disable + +# Encryption master key(32 字节 hex 编码 = 64 字符) +APP_MASTER_KEY=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff + +# 首次启动管理员账号种子 +APP_BOOTSTRAP_ADMIN_EMAIL=admin@local +APP_BOOTSTRAP_ADMIN_PASSWORD=changeme diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ff8b8fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# Go +/bin/ +/dist/ +*.exe +coverage.out +coverage.html + +# Env / secrets +.env +.env.local + +# Web +/web/node_modules/ +/web/dist/ + +# Editor +.idea/ +.vscode/ +*.swp + +# OS +.DS_Store +Thumbs.db + +# Local dev data +/data/ + +# Internal docs (specs / plans should never be committed) +/docs/superpowers/ diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..fbf5008 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,24 @@ +run: + timeout: 5m + +linters: + enable: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + - contextcheck + - revive + - gosec + - bodyclose + - rowserrcheck + - sqlclosecheck + +issues: + exclude-rules: + - path: _test\.go + linters: + - gosec + - errcheck diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..48306a7 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +.PHONY: help dev build test test-unit lint sqlc migrate fmt clean + +help: + @echo "Targets: dev / build / test / test-unit / lint / sqlc / migrate / fmt / clean" + +dev: + go run ./cmd/server + +build: + cd web && pnpm install && pnpm build + go build -o bin/server ./cmd/server + +test: + go test -race -count=1 ./... + +test-unit: + go test -race -count=1 -short ./... + +lint: + golangci-lint run ./... + +sqlc: + sqlc generate + +migrate: + go run ./cmd/server migrate up + +fmt: + gofmt -s -w . + cd web && pnpm format + +clean: + rm -rf bin dist web/dist coverage.out coverage.html diff --git a/cmd/server/.gitkeep b/cmd/server/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/cmd/server/main.go b/cmd/server/main.go new file mode 100644 index 0000000..38dd16d --- /dev/null +++ b/cmd/server/main.go @@ -0,0 +1,3 @@ +package main + +func main() {} diff --git a/docs/.gitkeep b/docs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..29a940d --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/yan1h/agent-coding-workflow + +go 1.25 diff --git a/internal/.gitkeep b/internal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/migrations/.gitkeep b/migrations/.gitkeep new file mode 100644 index 0000000..e69de29