Baseline score: 64.4/100 Silver (26 assessed, 7 skipped/N/A) Branch: KFLUXDP-982 (commit 076b1ef3) Date: 2026-05-19
Passes (15): claude_md_file (100), test_execution (100), lock_files (100), one_command_setup (100), separation_of_concerns (100), structured_logging (100), file_size_limits (100), inline_documentation (100), type_annotations (95), standard_layout (95), deterministic_enforcement (60), container_setup (50), dependency_security (35)
Fails (13): single_file_verification (0), conventional_commits (0), repomix_config (0), architecture_decisions (0), openapi_specs (0), code_smells (0), issue_pr_templates (0), gitignore_completeness (8), design_intent (30), concise_documentation (64), readme_structure (67), ci_quality_gates (80)
Actions are ordered by effort-to-impact ratio. Items marked N/A for this repo are false positives from a tool not fully tuned to Go CLI projects.
Action: Add single-file lint and vet commands to CLAUDE.md Build section. The commands work today but aren't documented in the format the tool expects.
# Lint a single file
golangci-lint run --config .golang-ci.yml cmd/prowjob/periodicSlackReport.go
# Vet a single package
go vet ./cmd/prowjob/...
# Run tests for a single package
go test ./cmd/prowjob/... -vAction: README is 21 lines with only Installation and Development sections. Add a Usage section with examples of running subcommands. The content exists in CLAUDE.md but the tool checks README specifically.
## Usage
```bash
# Estimate PR review time
qe-tools estimate-review --owner konflux-ci --repo qe-tools --pr-number 42
# Generate Prow job report
ARTIFACT_DIR=./output qe-tools prowjob create-report
# Download OCI artifacts
qe-tools download --repository quay.io/org/repo --tag latest
```
Action: The repo has lint (lint.yml) and test (test.yml) gates but no type-check gate. Go doesn't have a separate type-check step (the compiler does it), but the tool expects one. Options:
- Quick fix: Add
go vet ./...as a named step in the lint workflow (go vet does static analysis including type checking) - Alternative: Add
staticcheckas a separate CI job, which the tool is more likely to detect
Action: The repo already has commitlint.yml in CI and .pre-commit-config.yaml, but the tool didn't detect the commitlint configuration. The workflow uses wagoid/commitlint-github-action which reads from a separate config. Options:
- Add
.commitlintrc.jsonto the repo root (the tool checks for this file):
{
"extends": ["@commitlint/config-conventional"]
}- Or add
conventional-pre-committo.pre-commit-config.yaml
Action: Only 1/12 expected patterns present. Add Go-specific and editor patterns:
# Go
*.exe
*.exe~
*.dll
*.so
*.dylib
*.test
*.out
cover.out
# IDE
.idea/
.vscode/
*.swp
*.swo
Action: README has 3 headings in 21 lines (14.3 headings per 100 lines, target 3-5). The issue is that the README is very short, making the heading ratio look inflated. Adding the Usage section (above) will naturally fix this ratio by adding content.
Action: Create docs/adr/ with initial decisions. Good candidates:
- ADR-0001: Cobra + Viper pattern for all subcommands
- ADR-0002: OCI artifact handling via ORAS library
- ADR-0003: Prow job artifact scanning from GCS buckets
Action: CLAUDE.md Design Choices section partially covers this but lacks preconditions/invariants format. Add docs/design/ with:
oci-architecture.md-- invariants for the OCI controller (Quay-only, semaphore concurrency, tag pagination)review-estimation.md-- preconditions for the estimation formula (config file location, GitHub token scope)
Action: Low priority. Repomix generates AI-friendly context from code. If desired: agentready repomix-generate --init. The CLAUDE.md + AGENTS.md files already serve this purpose for this repo.
N/A for this repo. This is a CLI tool, not a web API. No REST endpoints to document. Can be excluded via .agentready-config.yaml:
excluded_attributes:
- openapi_specsAction: The repo uses golangci-lint with .golang-ci.yml but the tool didn't detect it (expects standard config file names). Options:
- Rename
.golang-ci.ymlto.golangci.yml(standard name) - Add
actionlintfor GitHub Actions andmarkdownlintfor docs
Action: Add .github/PULL_REQUEST_TEMPLATE.md and .github/ISSUE_TEMPLATE/ with bug report and feature request templates. Standard GitHub hygiene.
Action: Dockerfile exists and scores 50. To reach 100, add a docker-compose.yml or document container usage in README. Low impact for agent readiness.
| Change | Points | Effort |
|---|---|---|
| Single-file verification (document commands) | +5 | 10 min |
| README Usage section | +5 | 15 min |
| CI type-check gate (go vet step) | +2-5 | 15 min |
| Conventional commits config file | +3 | 5 min |
| .gitignore completeness | +1-2 | 5 min |
| ADRs (initial 1-3) | +1-2 | 1 hr |
Estimated new score: ~83-86/100 (Gold) with Tier 1+2 actions. OpenAPI exclusion would remove a false-positive failure and potentially push higher.
| Attribute | Reason |
|---|---|
| OpenAPI Specs | CLI tool, no REST API |
| dbt (4 attributes) | Not a dbt project |
| Progressive Disclosure | Not applicable to Go |
| Branch Protection | Requires GitHub API (can't assess locally) |
| Cyclomatic Complexity | Skipped (missing gocyclo tool) |