Initialize project skeleton with CLI and documentation

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
This commit is contained in:
2026-04-25 17:18:16 +00:00
commit e8a0c48658
14 changed files with 312 additions and 0 deletions

8
docs/README.md Normal file
View File

@@ -0,0 +1,8 @@
# Docs
| File | Content |
|------|---------|
| `architecture.md` | Module layout, package boundaries |
| `decisions.md` | Technical decisions (ADR) |
| `roadmap.md` | Feature progress and status |
| `development.md` | Build, test, debug workflow |

22
docs/architecture.md Normal file
View File

@@ -0,0 +1,22 @@
# Architecture
## Code Layout
```
main.go — entrypoint, calls cmd.Execute()
cmd/ — cobra commands (root + subcommands)
internal/ — private application packages
docs/ — project documentation
```
## Packages
| Package | Purpose | Status |
|---------|---------|--------|
| `cmd` | CLI command definitions | ✅ skeleton |
| `internal/config` | Configuration loading and parsing | ⬜ planned |
| `internal/controllers` | HTTP request handlers | ⬜ planned |
| `internal/auth` | Authentication (JWT) | ⬜ planned |
| `internal/storage` | File storage abstraction | ⬜ planned |
Add new rows as packages are created.

19
docs/decisions.md Normal file
View File

@@ -0,0 +1,19 @@
# Technical Decisions
Record significant technical decisions as they are made. Use the format below.
## Template
```
## YYYY-MM-DD: Title
**Context**: Why this decision was needed.
**Decision**: What was decided.
**Consequences**: What this means for the project.
```
## Decisions
*(None yet. Add entries as decisions are made.)*

37
docs/development.md Normal file
View File

@@ -0,0 +1,37 @@
# Development
## Prerequisites
- Go 1.26.2 (pinned in `mise.toml`)
- `mise` (https://mise.jdx.dev) — run `mise install` to install toolchain
## Build
```bash
go build ./...
go build -o mygo .
```
## Test
```bash
go test ./...
go test -v -run TestName ./internal/...
```
## Lint & Format
```bash
go vet ./...
go fmt ./...
```
## Config
Server config is in `config.yaml` (symlink to `config.example.yaml` in development environment).
```
server:
host: 0.0.0.0
port: 10086
```

24
docs/roadmap.md Normal file
View File

@@ -0,0 +1,24 @@
# Roadmap
See `README.md` for high-level feature list. This file tracks detailed progress.
## v0
| Feature | Status | Notes |
|---------|--------|-------|
| CLI config management | ⬜ planned | |
| JWT authentication | ⬜ planned | |
| File upload/download/manage APIs | ⬜ planned | |
| Admin endpoints | ⬜ planned | |
| WebDAV | ⬜ planned | |
## Future
| Feature | Status | Notes |
|---------|--------|-------|
| Image server | ⬜ planned | |
| Pastebin & code snippets | ⬜ planned | |
| S3 storage backend | ⬜ planned | |
| Nextcloud-compatible API | ⬜ planned | |
Update status after completing related work.