3.0 KiB
3.0 KiB
Agent Guidelines for awesome-docker
Commands
- Build CLI:
make build(orgo build -o awesome-docker ./cmd/awesome-docker) - Run tests:
make test(runsgo test ./internal/... -v) - Lint README rules:
make lint(runs./awesome-docker lint) - Auto-fix lint issues:
./awesome-docker lint --fix - Check links:
make check(runs./awesome-docker check;GITHUB_TOKENenables GitHub repo checks) - PR validation:
./awesome-docker validate(lint + external link checks in PR mode) - Build website:
./awesome-docker build(generateswebsite/index.htmlfromREADME.md) - Health scoring:
make health(requiresGITHUB_TOKEN, updatesconfig/health_cache.yaml) - Generate health report:
make report
Architecture
- Main content:
README.md(curated Docker/container resources) - CLI entrypoint:
cmd/awesome-docker/main.go(Cobra commands) - Core packages:
internal/parser- parse README sections and entriesinternal/linter- alphabetical/order/format validation + autofixinternal/checker- HTTP and GitHub link checksinternal/scorer- repository health scoring and report generationinternal/cache- exclude list and health cache read/writeinternal/builder- render README to website HTML from template
- Config:
config/exclude.yaml- known link-check exclusionsconfig/website.tmpl.html- HTML template for site generationconfig/health_cache.yaml- persisted health scoring cache
- Website output:
website/index.html
Code Style
- Language: Go
- Formatting: Keep code
gofmt-clean - Testing: Add/adjust table-driven tests in
internal/*_test.gofor behavior changes - Error handling: Return wrapped errors (
fmt.Errorf("context: %w", err)) from command handlers - CLI conventions: Keep command behavior consistent with existing Cobra commands (
lint,check,health,build,report,validate)
CI/Automation
- PR + weekly validation:
.github/workflows/pull_request.yml- Triggers on pull requests to
masterand weekly schedule - Builds Go CLI and runs
./awesome-docker validate
- Triggers on pull requests to
- Weekly broken links issue:
.github/workflows/broken_links.yml- Runs
./awesome-docker check - Opens/updates
broken-linksissue when failures are found
- Runs
- Weekly health report issue:
.github/workflows/health_report.yml- Runs
./awesome-docker healththen./awesome-docker report - Opens/updates
health-reportissue
- Runs
- GitHub Pages deploy:
.github/workflows/deploy-pages.yml- On push to
master, builds CLI, runs./awesome-docker build, deployswebsite/
- On push to
Content Guidelines (from CONTRIBUTING.md)
- Use one link per entry
- Prefer project/repository URLs over marketing pages
- Keep entries alphabetically ordered within each section
- Keep descriptions concise and concrete
- Use
:heavy_dollar_sign:only for paid/commercial services - Remove archived/deprecated projects instead of tagging them
- Avoid duplicate links and redirect variants