Verifying a Go project: runs every quality check (lint, vet, imports, format, docs, unit, integration, E2E) and returns a single MERGE_READY or NEEDS_FIX verdict. Report-only: never fixes anything. Use for a quick pre-merge or pre-PR check outside a full dev-cycle. Skip when not a Go project, when you want a single command, or when already inside ring:running-dev-cycle (use its gates).
Scanned 9/6/2026
Install to Claude Code
npx -y skills add LerianStudio/ring --skill verifying-code --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Verifying Code?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lerianstudio-verifying-code)More formats (shields.io, HTML) on the badges page.
---
name: ring:verifying-code
description: "Verifying a Go project: runs every quality check (lint, vet, imports, format, docs, unit, integration, E2E) and returns a single MERGE_READY or NEEDS_FIX verdict. Report-only: never fixes anything. Use for a quick pre-merge or pre-PR check outside a full dev-cycle. Skip when not a Go project, when you want a single command, or when already inside ring:running-dev-cycle (use its gates)."
---
# Code Verification
## When to use
- Before creating a pull request
- After completing implementation and wanting to confirm everything passes
- When user wants a quick "is this ready?" check
## Skip when
- Project is not Go (no go.mod found)
- User only wants to run a single specific command
- Already inside a ring:running-dev-cycle execution (use the cycle gates instead)
## Related
**Complementary:** ring:running-dev-cycle, ring:reviewing-code
Run everything. Get a verdict. **This skill only REPORTS — it does NOT fix anything.**
## Step 0: Discover Commands
1. Verify `go.mod` exists → if not, STOP: "Not a Go project."
2. Read `Makefile` to discover available targets
3. Check tool availability: `goimports`, `gofmt`
**Command resolution:**
| Check | Default | Makefile Override |
|-------|---------|------------------|
| Lint | `golangci-lint run ./...` | `make lint` if target exists |
| Vet | `go vet ./...` | `make vet` |
| Imports | `goimports -l .` | `make imports` |
| Format | `gofmt -l .` | `make fmt` or `make format` |
| Docs | `make generate-docs` | `make docs` |
| Unit Tests | `go test ./...` | `make test-unit` or `make test` |
| Integration Tests | `make test-integration` | — |
| E2E Tests | `make test-e2e` | — |
If Makefile target doesn't exist: use default command. If neither exists: SKIP (not a failure).
## Phase 1: Static Analysis + Unit Tests (parallel)
Run all 6 in **parallel**. Capture stdout, stderr, exit code, duration for each.
| # | Check | Fail Condition |
|---|-------|---------------|
| 1 | Lint | Non-zero exit |
| 2 | Vet | Non-zero exit |
| 3 | Imports | Any output (files listed need fixing) |
| 4 | Format | Any output (files listed need formatting) |
| 5 | Docs | Files modified (docs were stale) |
| 6 | Unit Tests | Non-zero exit |
Phase 1 gate: ALL pass → proceed to Phase 2. ANY fails → still run Phase 2, but verdict will be NEEDS_FIX.
## Phase 2: Integration + E2E Tests (sequential)
Run sequentially. Continue even if first fails.
| # | Check | Notes |
|---|-------|-------|
| 7 | Integration Tests | DB, external services, testcontainers |
| 8 | E2E Tests | Full user flows |
If target doesn't exist → SKIP (not a failure).
## Phase 3: Executive Summary
```
============================================
VERIFICATION SUMMARY
============================================
Phase 1 — Static Analysis + Unit Tests: PASS / FAIL
Phase 2 — Integration + E2E Tests: PASS / FAIL / SKIP
Total time: Xs
┌───┬──────────────────────┬────────┬──────────┐
│ # │ Check │ Status │ Duration │
├───┼──────────────────────┼────────┼──────────┤
│ 1 │ lint │ PASS │ 3.2s │
│ 2 │ vet │ PASS │ 1.1s │
│ 3 │ imports │ FAIL │ 0.4s │
│ 4 │ format │ PASS │ 0.3s │
│ 5 │ docs │ PASS │ 2.1s │
│ 6 │ unit tests │ PASS │ 8.5s │
│ 7 │ integration tests │ PASS │ 22.3s │
│ 8 │ e2e tests │ SKIP │ - │
└───┴──────────────────────┴────────┴──────────┘
ERRORS (first 10 lines per failure):
─────────────────────────────────────
#3 imports:
internal/handler/user.go
internal/service/auth.go
VERDICT: NEEDS_FIX
```
## Verdict Rules
| Condition | Verdict |
|-----------|---------|
| All commands PASS (or SKIP for unavailable) | **MERGE_READY** |
| Any command FAIL | **NEEDS_FIX** |
| Target unavailable | **SKIP** — does not count as failure |
## Error Display
For each failed command: show first 10 lines of stderr (or stdout if stderr empty).
- `goimports -l` / `gofmt -l` output = list of files to fix
- `make generate-docs` changed files = list modified files
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!