quality — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited quality (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Orchestrates systematic code quality checks, safe refactoring, and documentation updates across three phases. Use this instead of individual refactoring or documentation skills when full production-readiness is required end-to-end. If unsure which skill applies, use skill-router.
| Metric | Threshold | Action |
|---|---|---|
| Cyclomatic Complexity | > 10 | Extract method |
| Method Length | > 20 lines | Extract method |
| Parameter Count | > 4 | Parameter object |
| Nesting Depth | > 3 levels | Extract method |
| Duplication | > 3 similar blocks | DRY violation |
| Class Length | > 300 lines | Extract class |
Check code against Rails standards via skills/code-quality/apply-code-conventions (DRY/YAGNI/PORO/CoC/KISS compliance, linter as style source of truth, structured logging) and skills/code-quality/apply-stack-conventions (Rails + PostgreSQL patterns, Hotwire + Tailwind conventions, security best practices).
Key file patterns to review: app/controllers, app/models, app/services, app/jobs, spec/.
Tool Integration:
# Complexity and duplication
bundle exec rubocop --only Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/ParameterLists,Metrics/AbcSize,Metrics/PerceivedComplexity
# Security
bundle exec brakeman --no-pager
bundle exec bundle-audit check --updateDecision Gate — Proceed if any threshold from the table above is exceeded; otherwise skip to Phase 3.
If refactoring is needed, follow TDD discipline:
Before any code change:
calculate_discount method to DiscountCalculator class")HARD GATE — Test Verification:
Follow skills/code-quality/refactor-code for specific extraction patterns and safety guidelines.
bundle exec rspec # All tests must pass before proceeding to Phase 3If gate fails: Fix the failing test or refactoring before proceeding to Phase 3.
Document public APIs via skills/ruby-core-skills/write-yard-docs (annotate all public methods with params, return values, and examples; update README/diagrams for architecture or API changes).
Output: Updated YARD comments, refreshed README sections
NEVER open PR before:
bundle exec rubocop # Linter must pass
bundle exec erblint --lint-all # ERB linter must pass
bundle exec rspec # All tests must pass
bundle exec brakeman # Security scan must passPlus: YARD docs complete for all public APIs.
If gate fails: Fix the failing item before opening PR.
# Quality Report — [Date]
## Conventions Check
### Critical Violations (Must Fix)
- [CRITICAL] app/controllers/orders_controller.rb:42 — Method `process_payment` has cyclomatic complexity of 15 (> 10 threshold)
- [CRITICAL] app/models/user.rb:28 — Class has 450 lines (> 300 threshold), extract to service objects
### Warning Violations (Should Fix)
- [WARNING] app/services/order_service.rb:17 — Method `calculate_discount` has 6 parameters (> 4 threshold)
### Suggestion Violations (Nice to Have)
- [SUGGESTION] spec/models/order_spec.rb:12 — Test duplication detected, extract to shared examples
## Refactoring
- [x] / [ ] Required (threshold exceeded)
- Characterization tests added, methods extracted, all tests passing
## Documentation
- YARD coverage: 87% (improved from 65%)
- README updated: YESRuboCop offenses after refactoring:
bundle exec rubocop -a for auto-correctable offensesCharacterization test fails after refactoring:
YARD generation errors:
@param, @return, @raise)yard stats to identify undocumented public methodserblint catches view-layer issues that RuboCop misses~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.