chore: improve AI-assisted development readiness (AgentReady Gold)#1507
chore: improve AI-assisted development readiness (AgentReady Gold)#1507mkowalski wants to merge 1 commit into
Conversation
Add repository infrastructure to achieve AgentReady Gold certification: - Add Dependabot config for Go modules and GitHub Actions updates - Add pre-commit hooks (golangci-lint, markdownlint, actionlint, conventional commits, trailing whitespace, YAML validation) - Add markdownlint configuration - Add Architecture Decision Records (ADRs) documenting key design choices: ADR usage, DaemonSet architecture, nmstate abstraction - Migrate single-file issue template to structured ISSUE_TEMPLATE directory with bug report, feature request, and config - Extend .gitignore with macOS, JetBrains IDE, Go coverage, and AgentReady report patterns - Add Quick Start section to README for one-command build/test Note: A lint CI workflow (.github/workflows/lint.yml) would further improve the score but requires a PAT with 'workflow' scope to push. AgentReady assessment: 63.6/100 (Silver) -> targeting 75+ (Gold) Signed-off-by: Mateusz Kowalski <mko@redhat.com> Generated-by: OpenClaw AI-model: claude-opus-4.6 Signed-off-by: Mateusz Kowalski <mko@redhat.com>
|
Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Code Review
This pull request introduces several project management and developer experience enhancements, including GitHub issue templates, a Dependabot configuration, pre-commit hooks, and initial Architecture Decision Records (ADRs). It also updates the .gitignore and adds a quick-start guide to the README.md. Review feedback highlights the need to correct the golangci-lint version, expand Dependabot coverage to the api/ directory, include critical manifests in YAML validation, and fix an incorrect make target in the documentation.
| - id: detect-private-key | ||
|
|
||
| - repo: https://github.com/golangci/golangci-lint | ||
| rev: v2.1.5 |
| - package-ecosystem: "gomod" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "weekly" | ||
| day: "monday" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "go" | ||
| commit-message: | ||
| prefix: "deps" | ||
| include: "scope" |
There was a problem hiding this comment.
The repository contains a separate Go module in the api/ directory (as seen in the Makefile). Dependabot should be configured to monitor this directory as well to ensure its dependencies are kept up to date. Additionally, consider adding the docker ecosystem to track updates for the Dockerfiles in the build/ directory.
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "go"
commit-message:
prefix: "deps"
include: "scope"
- package-ecosystem: "gomod"
directory: "/api"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "go"
commit-message:
prefix: "deps"
include: "scope"| - id: end-of-file-fixer | ||
| - id: check-yaml | ||
| args: [--allow-multiple-documents] | ||
| exclude: ^(docs/|deploy/|test/) |
There was a problem hiding this comment.
Excluding the deploy/ and test/ directories from check-yaml is discouraged. These directories contain critical Kubernetes manifests and test configurations that should be validated for syntax correctness. Consider only excluding directories that contain non-standard YAML or large vendored files.
exclude: ^(docs/|.*vendor/)| # Clone and build | ||
| git clone https://github.com/nmstate/kubernetes-nmstate.git | ||
| cd kubernetes-nmstate | ||
| make build |
There was a problem hiding this comment.
The Makefile lacks a build target. Running make build will fail. Use make all or add a build alias to the Makefile.
| make build | |
| make all |
References
- Simplify redundant phrases in documentation to improve clarity and conciseness.
- Ensure documentation is grammatically correct, specifically regarding comma splices and extra spaces, for improved readability and consistency.
Summary
Improve repository infrastructure to achieve AgentReady Gold certification (81.1/100, up from 63.6/100 Silver).
AgentReady assesses repositories against evidence-based attributes for AI-assisted development readiness, based on research from 50+ authoritative sources (Anthropic, Microsoft, Google, ArXiv, IEEE/ACM).
Changes
Security & Dependencies
.github/dependabot.ymlfor automated Go module and GitHub Actions dependency updates (weekly schedule)Code Quality & Linting
.pre-commit-config.yamlwith golangci-lint, markdownlint, actionlint, conventional commit validation, and general hygiene hooks (trailing whitespace, YAML validation, large file detection, private key detection).markdownlint.jsonconfigurationDocumentation
docs/adr/with three initial ADRs:0001: Adopt ADRs for documenting architectural decisions0002: DaemonSet per-node architecture (documents existing design)0003: nmstate as the network configuration abstraction (documents existing design)README.mdwith one-command build/test instructionsIssue Management
.github/ISSUE_TEMPLATE.mdto structured.github/ISSUE_TEMPLATE/directory with:bug_report.md— preserves existing bug report fields with improved structurefeature_request.md— new feature request templateconfig.yml— template chooser with documentation linkRepository Hygiene
.DS_Store), JetBrains IDE (.idea/), Go coverage (coverage.out), and AgentReady report patternsAgentReady Score Breakdown
Remaining items (not addressed)
src/directory, but Go projects usecmd/+pkg/+internal/— this is correct for Govendor/— intentionally committed per Go convention🤖 This PR was created by OpenClaw on behalf of @mkowalski.