AGENTS.md
AGENTS.mdAGENTS.mdroot
Quality
96/100
Scores the file, not the repository.Length
788 words
12 headings · 2 code blocksRepository
5
— · pushed 13 days agoLast changed
3 days ago
First indexed 3 days ago.1# Repository Guidelines23### Managing AI-Generated Planning Documents45AI assistants often create planning and design documents during development:67- PLAN.md, IMPLEMENTATION.md, ARCHITECTURE.md8- DESIGN.md, CODEBASE_SUMMARY.md, INTEGRATION_PLAN.md9- TESTING_GUIDE.md, TECHNICAL_DESIGN.md, and similar files1011**Best Practice: Use a dedicated directory for these ephemeral files**1213**Recommended approach:**1415- Create a `history/` directory in the project root16- Store ALL AI-generated planning/design docs in `history/`17- Keep the repository root clean and focused on permanent project files18- Only access `history/` when explicitly asked to review past planning1920**Example .gitignore entry (optional):**2122```23# AI planning documents (ephemeral)24history/25```2627**Benefits:**2829- ✅ Clean repository root30- ✅ Clear separation between ephemeral and permanent documentation31- ✅ Easy to exclude from version control if desired32- ✅ Preserves planning history for archeological research33- ✅ Reduces noise when browsing the project3435### Important Rules3637- ✅ Store AI planning docs in `history/` directory38- ✅ Always run `task build` before claiming work is done39- ❌ Do NOT clutter repo root with planning documents4041### LLM Reference4243Need a quick tour of the shared helpers under `internal/`? Read `docs/internal_llm_reference.md` for package-by-package guidance before writing new utilities.4445## Project Structure & Module Organization4647- `main.go` wires the CLI and dispatches importer subcommands.48- `cmd/` hosts CLI entrypoints per provider (e.g. `cmd/goodreads`, `cmd/steam`).49- `internal/` contains shared services: `cache` for local stores, `datastore` for SQLite/JSON writers, `config` for settings.50- `docs/` is the canonical reference; update it alongside behaviour changes and new flags.51- Generated build and coverage artifacts live in `build/` and `coverage/`; sample exports under `exports/` and `json/` support local runs but keep large fixtures out of commits.5253## Caching5455- Hermes caches provider responses in `cache.db` (SQLite) in the repo root; it is safe to delete and is separate from `hermes.db`.56- Default TTL is `720h` (30 days); override with `--cache-db-file`, `--cache-ttl`, or env vars `CACHE_DBFILE`/`CACHE_TTL`.57- Tables are created automatically per provider (`omdb_cache`, `openlibrary_cache`, `steam_cache`, `letterboxd_cache`, `tmdb_cache`); entries past TTL refresh on next use and malformed entries are retried.58- Warm caches by running the relevant importer once; invalidate selectively with `hermes cache invalidate tmdb|omdb|steam|letterboxd|openlibrary` or delete `cache.db` to clear everything.59- Legacy JSON caches under `cache/` are deprecated and can be removed; negative TMDB results are intentionally not cached to allow future discoveries.6061## Build, Test, and Development Commands6263- `task build` runs lint, tests, and produces `build/hermes` with the current Git SHA embedded.64- `task test` executes `go test -race -coverprofile=coverage/coverage.out ./...` and emits `coverage/coverage.html` for review.65- `task lint` wraps `golangci-lint run ./...`; resolve findings before opening a PR.66- `go run ./cmd/root.go --help` is a quick sanity check for new flags; swap in a provider folder (e.g. `./cmd/goodreads`) to exercise importer flows.6768## Coding Style & Naming Conventions6970- Format Go sources with `gofmt` or goimports integrations; Go defaults to tab-indentation, so avoid manual overrides.71- Keep package names lowercase and singular; exported identifiers use UpperCamelCase, unexported ones use lowerCamelCase.72- Prefer context-aware logging through the `humanlog` helpers and centralize config lookups in `internal/config` to keep importer packages lean.7374## Testing Guidelines7576- Co-locate `_test.go` files with the code under test; favour table-driven cases and `testify` assertions for clarity.77- Run `task test` (or `go test ./...` when iterating) before pushing; inspect `coverage/coverage.html` for critical paths such as `internal/datastore` or importer pipelines.78- Store lightweight fixtures under package-level `testdata/` directories and avoid reusing the large exports shipped at the repo root.7980## Commit & Pull Request Guidelines8182- Follow the existing Title-Case, imperative commit style (`Refactor caching`, `Add Steam importer config`) and keep each commit focused.83- PRs should explain the motivation, list manual verification steps, and link issues; attach screenshots or sample output when behaviour is user-visible.84- Before requesting review, ensure lint/tests pass, docs in `docs/` reflect the change, and configuration updates reference `config.yml` or `.env` expectations.8586## Landing the Plane (Session Completion)8788**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.8990**MANDATORY WORKFLOW:**91921. **Note remaining work** - Capture anything that needs follow-up in the handoff932. **Run quality gates** (if code changed) - Tests, linters, builds943. **PUSH TO REMOTE** - This is MANDATORY:95```bash96 git pull --rebase97 git push98 git status # MUST show "up to date with origin"99```1004. **Clean up** - Clear stashes, prune remote branches1015. **Verify** - All changes committed AND pushed1026. **Hand off** - Provide context for next session103104**CRITICAL RULES:**105- Work is NOT complete until `git push` succeeds106- NEVER stop before pushing - that leaves work stranded locally107- NEVER say "ready to push when you are" - YOU must push108- If push fails, resolve and retry until it succeeds109
Also in lepinkainen/hermes
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| lepinkainen/hermes.cursor/rules/rules.mdc · 5 | Cursor rules | stylearchdo-notagent-behaviour | 51/100 | 3 days ago | |
| lepinkainen/hermes.clinerules/project-rules.md · 5 | Cline rules | testarchapido-not+1 | 71/100 | 3 days ago | |
| lepinkainen/hermes.cursor/rules/mdc.mdc · 5 | Cursor rules | stylearchdo-notagent-behaviour | 69/100 | 3 days ago | |
| lepinkainen/hermes.cursor/rules/project-rules.mdc · 5 | Cursor rules | testlint-formatstylearch+1 | 90/100 | 3 days ago | |
| lepinkainen/hermesCLAUDE.md · 5 | CLAUDE.md | testlint-formatstylearch+1 | 89/100 | 3 days ago | |
| lepinkainen/hermesGEMINI.md · 5 | GEMINI.md | stylearchagent-behaviour | 76/100 | 3 days ago |
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 67k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 2 days ago | |
| OnlyTerp/prompt-cache-skillsAGENTS.md · 111 | AGENTS.md | setupbuildtestlint-format+5 | 100/100 | 3 days ago | |
| wpscanteam/wpscanAGENTS.md · 9.7k | AGENTS.md | setupbuildteststyle+6 | 100/100 | 2 days ago | |
| SkeneTechnologies/skene-cookbookAGENTS.md · 51 | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 2 days ago | |
| aaif-goose/gooseAGENTS.md · 52k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 199k | AGENTS.md | buildteststylearch+3 | 100/100 | 3 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 3 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 3 days ago |
