chore: rename AGENTS.md to CLAUDE.md

This commit is contained in:
Esa Kataja
2026-05-16 19:41:31 +03:00
parent 07f999a338
commit 13f70195c6
+101
View File
@@ -0,0 +1,101 @@
# AGENTS.md
This file provides guidance for agents operating in the videnc-vibe repository.
## Project Overview
Go-based CLI tool for transcoding DVD/Blu-ray to SVT-AV1 with automatic metadata fetching from OMDb and TVmaze.
## Build Commands
```bash
# Build binary
go build -o videnc-vibe ./cmd/videnc/
# Run binary
./videnc-vibe
# With flags
./videnc-vibe -d # Delete original after encode
./videnc-vibe -c /path/to/config.yaml
```
## Code Style Guidelines
### General
- Use Go standard library; minimize external dependencies
- Use `gopkg.in/yaml.v3` for YAML config parsing (already in go.mod)
- Run `go fmt` and `go vet` before commits
### Imports
- Group imports: standard library, external packages, internal packages
- Use aliases for packages: `"videnc-vibe/pkg/types"`
```go
import (
"fmt"
"os"
"gopkg.in/yaml.v3"
"videnc-vibe/pkg/types"
)
```
### Naming
- Packages: lowercase, single word (e.g., `encoder`, `metadata`)
- Types: PascalCase (e.g., `Encoder`, `Job`)
- Functions: PascalCase exported, camelCase unexported
- Variables: camelCase
- Constants: PascalCase for exported, camelCase for unexported
- Acronyms: all caps for 2 letters (e.g., `IMDBID`), mixed for 3+ (e.g., `jpegImage`)
### Error Handling
- Return errors with context: `fmt.Errorf("parsing config: %w", err)`
- Use sentinel errors for known conditions
- Check errors explicitly, don't ignore with `_`
### Types
- Use specific types where appropriate (e.g., `MediaType` string type)
- Define types in `pkg/types/types.go`
### Functions
- Keep functions small and focused
- Prefer multiple small functions over large ones
- Use receivers for methods: `func (e *Encoder) Transcode(...)`
### Concurrency
- Use channels for communication
- Handle shutdown with context or done channels
### Testing
- Write tests in `*_test.go` files alongside implementation
- Use table-driven tests for multiple cases
- Test external dependencies with mocks
### Commit Messages
Follow Conventional Commits:
- `add:` new features
- `fix:` bug fixes
- `refactor:` code restructuring
- `chore:` maintenance
Example: `add: add command line argument support`
## Project Structure
```
cmd/videnc/main.go # CLI entrypoint
internal/
config/ # Config loading
watcher/ # Folder polling
encoder/ # FFmpeg wrapper
metadata/ # OMDb/TVmaze client
mover/ # File operations
logger/ # Logging
pkg/types/types.go # Shared types
```
## Key Dependencies
- `ffmpeg` - video encoding
- `opusenc` - audio encoding
- `gopkg.in/yaml.v3` - config parsing