-
-
Notifications
You must be signed in to change notification settings - Fork 135
feat: Comprehensive Claude Agent Enhancements #1733
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Updated the blog writer agent to better align with Atmos blog post standards: **Scope Clarification:** - Explicitly for blog announcements only (not technical documentation) - Clear guidance on when to use vs. when NOT to use this agent - Distinction between user-facing and contributor-facing content **Writing Philosophy Updates:** - Emphasis on problem-first narrative without hyperbole - Measured length - concise posts without unnecessary padding - Minimal, verifiable examples (avoid complex untested syntax) - Link to documentation instead of replicating content - Only include migration guides when actually needed **Audience Awareness:** - Two distinct audiences: Atmos users vs. core developers - Appropriate tagging (feature/enhancement/bugfix vs. contributors) - Adjust depth and language based on audience **Quality Standards:** - 10-point checklist before finalizing posts - Mandatory documentation link verification process - Reference to existing blog posts as style examples - Integration with CLAUDE.md requirements (file naming, front matter, tags) **Removed:** - Overly prescriptive structure that forced rigid formats - Emphasis on "revolutionary" and "game-changing" language - Deep technical implementation details better suited for docs The agent now produces concise, focused announcements that explain what changed and why users should care, with clear links to complete documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Renamed from atmos-blog-writer to changelog-writer for clarity: - Removed "atmos" prefix (repository context makes it obvious) - "Changelog Writer" better describes the agent's purpose (changelog-style announcements) Added Docusaurus author requirements: - Must use PR opener's GitHub username as author - If new author, must add to website/blog/authors.yml - Provided example format for new authors - Updated content quality checklist to verify author setup Emphasized Docusaurus MDX format: - All blog posts must be .mdx (not .md) - Proper YAML front matter required - Updated checklist to verify format compliance Updated all references throughout agent file: - Agent name in front matter - Description text - Example usages - Internal documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Renamed agent for clarity and consistency: - Removed "atmos" prefix (repository context makes it obvious) - "PRD Writer" better describes the agent's dual purpose: 1. Writing/updating Product Requirement Documents 2. Providing architectural guidance for features Added PRD writing guidelines: - Location: All PRDs must be in docs/prd/ - Naming: Use kebab-case (e.g., command-registry-pattern.md) - Structure requirements (overview, problem, solution, technical details, etc.) - Reference existing PRDs for style consistency - Ensure alignment with CLAUDE.md patterns Updated all references throughout agent file: - Agent name in front matter - Description and examples - Added example for PRD creation workflow - Removed "Atmos" references to be repo-agnostic 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…security Created three high-priority agents to complete the software delivery pipeline: ## 1. Test Strategy Architect (test-strategy-architect.md) **Purpose:** Design comprehensive test strategies ensuring 80%+ coverage **Key Features:** - Analyzes code testability before designing tests - Collaborates with Refactoring Architect to make code testable - Enforces CLAUDE.md testing requirements (cmd.NewTestKit, mocks, golden snapshots) - Designs unit tests with mocks (80% of coverage) - Minimal integration tests (20% or less) - Table-driven test patterns - Mock generation with go.uber.org/mock/mockgen - Golden snapshot testing for CLI output **Collaboration:** - Works with Refactoring Architect when code isn't testable - Works with Feature Development Orchestrator for new feature test design - Works with Bug Investigator for reproduction test strategies ## 2. Refactoring Architect (refactoring-architect.md) **Purpose:** Systematic refactoring to modern patterns with zero regression **Key Features:** - Enforces all CLAUDE.md MANDATORY patterns: - Registry pattern for commands/providers - Interface-driven design with DI - Options pattern (no parameter drilling) - Comment preservation (NEVER delete comments) - Performance tracking (defer perf.Track()) - File organization (<600 lines) - Package organization (avoid utils bloat) - Test-driven refactoring (write tests first, then refactor) - Incremental, safe changes over big rewrites - Reduces cognitive complexity (<15 per function) - Expands test coverage during refactoring **Collaboration:** - Works with Test Strategy Architect to ensure testability - Responds to Lint Resolver complexity escalations - Works with Bug Investigator on design-issue bugs ## 3. Security Auditor (security-auditor.md) **Purpose:** Review code for security vulnerabilities and credential exposure **Key Features:** - Credential security (no hardcoded secrets, no secrets in logs) - Keyring security (system/file/memory backends) - Authentication flow security (OAuth2, SAML, state validation) - Encryption security (AES-256, proper key derivation) - Input validation (path traversal, injection prevention) - Secure defaults (system keyring, HTTPS only) - Security logging (audit events without secrets) - Atmos-specific security context (AWS IAM Identity Center, credential lifecycle) **Collaboration:** - Works with Feature Development Orchestrator on auth features - Works with Bug Investigator on security vulnerabilities - Reviews PR security comments with PR Review Resolver ## Analysis Document (AGENT_ANALYSIS.md) Comprehensive analysis of existing agents against CLAUDE.md requirements: **Gaps Identified in Existing Agents:** - Comment Preservation missing from several agents - Performance Tracking underemphasized - Schema update requirements not mentioned - Golden Snapshot testing missing - Error handling requirements incomplete **Recommendations for Updates:** - prd-writer: Add comment preservation, performance tracking, schema updates - bug-investigator: Add error handling requirements, comment preservation - feature-development-orchestrator: Strengthen registry pattern, add schemas - tech-docs-writer: Add documentation link verification **Agent Collaboration Workflows:** Documented three key workflows: 1. Feature Development with Tests 2. Refactoring with Test Improvement 3. Security-Critical Feature Development 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…iter with Mermaid Created two new specialized agents and enhanced tech-docs-writer: **New Agents:** 1. code-reviewer: Pre-commit code review ensuring standards compliance - Validates against CLAUDE.md patterns (Registry, Interface-Driven, Options) - Verifies linting, function naming, and code reuse - Ensures 80%+ test coverage and test quality - Provides detailed feedback with fix suggestions - Blocks commits when critical issues found 2. frontend-developer: React/Docusaurus website development expert - Deep expertise in Docusaurus 3.x, React, TypeScript, Tailwind - Component reuse philosophy (enhance vs create new) - Accessibility (WCAG 2.1 AA), dark mode, performance optimization - Collaborates with tech-docs-writer for component needs - Inventories existing components (Card, Terminal, File, etc.) **Enhanced tech-docs-writer:** - Added Mermaid diagram expertise as core responsibility - Comprehensive Mermaid guidelines with diagram type examples - Best practices for flowcharts, sequence, class, and state diagrams - When to use diagrams vs text explanations - Visual clarity as quality standard These agents complete the software delivery automation workflow: - code-reviewer validates before commits - frontend-developer handles website/documentation components - tech-docs-writer creates documentation with visual diagrams Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Adds administrative review requirement for the `.claude/` directory to protect Claude agent configurations from unauthorized changes. This follows the same strict protection pattern used for critical files like: - .github/mergify.yml - .github/CODEOWNERS Changes to Claude agents now require @cloudposse/admins approval before merging. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…t, example-builder, cli-developer **Agent Renames:** - tech-docs-writer → documentation-writer (expanded role) - test-strategy-architect → test-automation-expert (focus on implementation) **New Agents:** 1. **documentation-writer** (renamed from tech-docs-writer): - Ensures documentation stays synchronized with code changes - Collaborates with prd-writer to keep PRDs current - Works with changelog-writer for proper announcements - Coordinates with example-builder for working examples - Proactively verifies documentation completeness 2. **test-automation-expert** (renamed from test-strategy-architect): - Creates and maintains automated tests for all new functionality - Ensures 80%+ test coverage through intelligent test design - Implements unit tests with mocks (90%) and integration tests (10%) - Creates regression tests for bug fixes - Uses TestKit, Sandbox, and golden snapshots (CLAUDE.md compliant) 3. **example-builder**: - Creates testable, functioning examples (no pseudocode) - Each example demonstrates one specific use case - Located in examples/ folder with lightweight README - Works with documentation-writer to support docs - Enriches existing examples when sensible 4. **cli-developer**: - Expert in Charm Bracelet libraries (Bubble Tea, Lip Gloss, Bubbles) - Expert in Cobra, Viper, and modern CLI conventions - Focuses on developer experience (DX) and visual presentation - Handles TTY detection, headless terminals, line wrapping - Questions flag proliferation, ensures intuitive commands - Critical evaluation of visual output and error helpfulness **Updated References:** - Updated frontend-developer to reference documentation-writer - Updated refactoring-architect to reference test-automation-expert - All collaboration workflows updated to use new agent names These agents complete the documentation and CLI development workflows: - documentation-writer ensures all docs stay current - test-automation-expert ensures all code is tested - example-builder provides hands-on learning materials - cli-developer ensures excellent terminal UX 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Adds administrative review requirement for CLAUDE.md to protect coding standards and architectural patterns from unauthorized changes. CLAUDE.md defines mandatory patterns including: - Registry Pattern - Interface-Driven Design - Options Pattern - Context Usage - Package Organization - Error Handling - Testing Strategy Changes to coding standards now require @cloudposse/admins approval, matching the protection level for other critical configuration files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Establishes convention for handling temporary analysis, planning, and working documents that don't belong in permanent codebase locations. **Changes:** - Created `.scratch/` directory for temporary files - Added `.scratch/README.md` explaining purpose and conventions - Updated `.gitignore` to ignore `.scratch/*` but keep README - Moved working files from `.claude/agents/` to `.scratch/`: - ADDITIONAL_CONTEXT.md (already applied to test-automation-expert) - AGENT_ANALYSIS.md (gap analysis completed) - FINAL_UPDATES_SUMMARY.md (changes implemented) **Convention:** The `.scratch/` directory is for: - Planning documents and analysis - Working notes during development - Research and investigation findings - Draft documents that may move to permanent locations Files in `.scratch/` are temporary and gitignored (except README). **Benefits:** - Keeps permanent directories clean (no temporary files) - Clear separation between working and production content - Hidden directory (starts with `.`) to avoid clutter - Documented convention for future use 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…requirements **Security-Auditor Enhancements:** 1. **CISO-Level Perspective:** - Added compliance framework considerations (SOC 2, HIPAA, PCI DSS, GDPR) - Comprehensive audit logging requirements - Information leakage prevention and masking patterns - Compliance posture recommendations 2. **Library Selection and Best Practices:** - Mandate mainstream, idiomatic security approaches - Approved crypto libraries (standard Go crypto, golang.org/x/crypto) - Keyring library requirements (github.com/99designs/keyring) - HTTP client security (TLS 1.2+, no InsecureSkipVerify) - AWS SDK v2 for authentication flows 3. **Cross-Platform Security:** - **Linux:** File permissions (0600), symlink protection, secure temp files - **macOS:** Keychain integration, Gatekeeper considerations - **Windows:** Credential Manager, ACL handling, long path support - Atomic file writes and directory permissions 4. **Information Masking:** - Credential masking patterns (AWS keys, tokens) - URL masking for query parameters - Struct masking with custom JSON marshalers - Never log secrets, always mask sensitive data **Code-Reviewer Enhancements:** 1. **Comprehensive Error Handling (NEW SECTION):** - **Sentinel errors:** ALWAYS use static errors from errors/errors.go - **Error wrapping:** ALWAYS wrap with context using %w - **Error comparison:** ALWAYS use errors.Is() / errors.As(), NEVER string comparison - **Error types:** Use custom types with metadata when needed - **No deep exits:** NEW code MUST NOT use os.Exit() or log.Fatal() - **Semantic logging:** Structured logging with key-value pairs 2. **Registry Pattern Verification (NEW SECTION):** - Command registry (MANDATORY for new commands) - Component registry verification - Store registry verification - Block direct registration patterns 3. **Enhanced Checks:** - Verify no os.Exit() in new code paths - Verify structured logging (not fmt.Sprintf in logs) - Verify registry pattern usage for extensible features - Check for proper error wrapping with context Both agents now enforce: - Mainstream, proven approaches (no "clever" solutions) - Cross-platform compatibility (Linux, macOS, Windows) - Comprehensive audit and compliance requirements - Modern Go error handling idioms - Registry pattern for extensibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
… agent Establishes project-wide convention for temporary working files to prevent pollution of the filesystem with non-deliverable content. **CLAUDE.md Updates:** Added "Scratch Folder Convention (MANDATORY)" section: - ALL temporary, working, and non-deliverable files MUST go in `.scratch/` - Clear guidelines on what goes in .scratch (planning, analysis, drafts) - Clear guidelines on what does NOT go in .scratch (code, tests, docs, PRDs) - Migration path from .scratch to permanent locations - NEVER write temporary files across the filesystem **What goes in `.scratch/`:** - Planning documents and analysis - Working notes during development - Research and investigation findings - Draft documents before moving to permanent location - Any file not part of final deliverable **Migration paths:** - PRDs → `docs/prd/` - Documentation → `website/docs/` - Examples → `examples/` - Agent definitions → `.claude/agents/` - Code → appropriate package directories **prd-writer Agent Updates:** Added "PRD Location and Naming (MANDATORY)" section: - ALL PRDs MUST be written to `docs/prd/` directory - Use kebab-case naming (e.g., `oauth2-authentication.md`) - NEVER write PRDs to .scratch, docs root, or other locations - Use .scratch only for planning/drafts BEFORE writing final PRD - Updated Critical Constraints to enforce PRD location and scratch usage **Benefits:** - Prevents temporary files from polluting the codebase - Clear separation between working files and deliverables - Consistent location for all temporary work - Easy cleanup (entire .scratch can be deleted safely) - Enforced through CLAUDE.md and agent instructions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…compliance
Security-auditor now comprehensively vets all library dependencies before approval.
**Library Vetting Requirements (NEW SECTION):**
1. **Maintenance Status:**
- Actively maintained (commits within 6 months)
- Not archived or deprecated
- Active issue triage and security responses
- Forbidden libraries listed (archived github.com/golang/mock, etc.)
2. **License Compatibility (MANDATORY):**
- ALL dependencies MUST be Apache 2.0 compatible
- Compatible: Apache 2.0, MIT, BSD, ISC, MPL 2.0
- FORBIDDEN: GPL/LGPL/AGPL (copyleft incompatible)
- FORBIDDEN: Proprietary or unknown licenses
- Verification with go-licenses tool
3. **Security Track Record:**
- CVEs addressed promptly (within 30 days)
- Security policy documented (SECURITY.md)
- No unpatched vulnerabilities
- Verify with govulncheck and GitHub Advisory Database
- Check Snyk vulnerability database
4. **Code Quality Standards (CodeQL Compliance):**
- Library code quality aligns with .golangci.yml standards
- **Go quality checks:**
- errorlint: Proper %w wrapping, errors.Is/As usage
- gosec: No security vulnerabilities
- cyclop: Cognitive complexity < 15
- forbidigo: No forbidden patterns (os.Getenv, path.Join, archived deps)
- bodyclose, err113, loggercheck compliance
- **JavaScript/TypeScript quality checks:**
- No XSS, prototype pollution
- Proper input validation
- CSP compliant
**Decision Matrix:**
- ✅ APPROVED: Actively maintained, Apache 2.0 compatible, good security, passes CodeQL
- ⚠️ NEEDS REVIEW: Minor issues requiring legal/security review
- ❌ BLOCKED: Archived, incompatible license, vulnerabilities, poor quality
**References CodeQL Workflow:**
- .github/workflows/codeql.yml (Go and JavaScript/TypeScript analysis)
- .golangci.yml (linter configuration with custom plugins)
- Enforces code quality standards across all dependencies
Security-auditor now acts as gatekeeper ensuring:
- Only maintained, secure libraries are used
- All licenses are Apache 2.0 compatible
- Code quality meets project standards
- No archived or vulnerable dependencies
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
…requirements Add comprehensive flag design guidelines: - Question flag proliferation (avoid too many flags) - Avoid negative flags (no --disable-*, prefer positive flags) - Exception for CLI conventions (--no-color, --no-verify allowed) - Make flags flexible and reusable - Use conventional flag names Add environment variable handling: - Always use viper.BindEnv instead of os.Getenv - Document configuration precedence Enhance testability requirements: - Work closely with test-automation-expert - Design for testability (interfaces, DI) - Avoid hard-to-test patterns 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…lver Add validated and optimized GitHub CLI commands reference: - Get PR information and head SHA - Find CodeRabbit review comments efficiently (paginated, per_page=100) - Reply to review comments with GraphQL API - Find failing CI checks and get test output - Complete workflow examples Rate limit management improvements: - Mandatory automatic retry with backoff (up to 1 hour) - Rate limit checking command - Clear protocol for 5-minute intervals, 12 max retries - Token-efficient pagination strategies Command optimization tips: - Use --paginate with per_page=100 for lists - Filter with JQ after fetching to minimize API calls - Batch operations, cache results - Distinguish review comments (code-level) vs issue comments (general) All commands tested and validated against cloudposse/atmos PR #712. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add comprehensive "Global Flags Consistency (MANDATORY)" section: - Core global flags reference (navigation, identity, output, debugging) - When to support each flag (context-specific guidance) - Example: Adding --identity to new commands with NoOptDefVal pattern - Example: Respecting --no-color in visual output - Example: Interactive selection with --identity - Global flag testing requirements with table-driven tests - Common mistakes to avoid (local vs persistent flags, ignoring --no-color) Key requirements: - EVERY new command MUST support applicable global flags - --chdir/-C, --no-color, --logs-level always supported (via RootCmd) - --identity for authentication-aware commands (AWS, Azure, GCP) - --pager for long output commands - PersistentFlags for parent commands (affects subcommands) - NoOptDefVal pattern for interactive selection (--identity without value) - viper.BindEnv integration for config file + env var support Updated Quality Checklist: - Global flags support verification - --no-color respected in all visual output - --identity pattern with PersistentFlags - Global flag tests for --chdir, --no-color, --identity Ensures consistent UX across all Atmos commands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Extend the CLAUDE.md size check workflow to also validate all agent files: - Check all .claude/agents/**/*.md files (not just CLAUDE.md) - Same 40k character limit applies to all files - Workflow triggers on changes to agent files or CLAUDE.md - Clear output showing each file's size and percentage of limit Changes: - Workflow name: "CLAUDE.md" → "Claude Documentation Size Check" - Job name: "Check file size" → "Check file sizes" - Added "Find all agent files" step - Added "Check agent file sizes" step with comprehensive reporting - Updated paths trigger to include .claude/agents/**/*.md Current status (all passing): - cli-developer.md: 38,837 chars (97% of limit) - security-auditor.md: 35,665 chars (89% of limit) - All other agents: < 65% of limit Prevents agent files from growing too large, ensuring they remain within Claude Code's context window constraints. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…li-developer Add three critical sections (compressed to fit 40k limit): ### XDG Base Directory (MANDATORY) - Use pkg/xdg for cache/credentials/data storage - NOT for project files (atmos.yaml, stacks/*, components/*) - Three functions: GetXDGCacheDir, GetXDGDataDir, GetXDGConfigDir - Precedence: ATMOS_XDG_*_HOME → XDG_*_HOME → platform defaults ### Cross-Platform File Operations (MANDATORY) - Always use filepath.Join (never hardcoded "/" separators) - Use filepath.Clean, .Abs, .Dir, .Base, .Ext - Named constants for file permissions (not magic numbers) - Example: FilePermissionUserReadWrite = 0600 ### Terminal Width - Use templates.GetTerminalWidth() for dynamic sizing - Named constants for layout (MinTerminalWidth, DefaultTerminalWidth, etc.) - Returns terminal width - 2, or 80 if not TTY Updated Quality Checklist: - ✅ XDG usage (pkg/xdg for cache/data, not project files) - ✅ filepath functions (Join, Clean, etc - no hardcoded separators) - ✅ Named constants (no magic numbers for permissions/widths) - ✅ Terminal width (templates.GetTerminalWidth() for dynamic sizing) File size: 39,998 chars (99.9% of 40k limit) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…uirements Update three agents with environment variable and configuration precedence requirements: ### cli-developer Enhanced environment variables section: - Mandatory ATMOS_ prefix for all environment variables - Format: ATMOS_<FLAG_NAME> (uppercase, underscores) - Example: --base-path → ATMOS_BASE_PATH - Configuration precedence: CLI flags → ENV vars → Config files → Defaults - ALWAYS viper.BindEnv (NEVER os.Getenv - linter will flag) - Bind flags with viper.BindPFlag for precedence Compressed section by 432 bytes while adding requirements. File size: 39,566 chars (98.9% of 40k limit) ### code-reviewer Enhanced "Additional Standards Checks" section: **Environment Variables (CRITICAL)** - Check: Every flag MUST have ATMOS_ prefixed env var - Check: Configuration precedence MUST be maintained - Check: viper.BindPFlag used for flag-to-config binding - Flag: os.Getenv usage (forbidden) - Flag: Missing ATMOS_ prefix - Flag: Missing BindPFlag (breaks precedence) **Cross-Platform Compatibility (CRITICAL)** - Check: XDG functions for cache/data (not project files) - Check: Named constants for permissions (no magic numbers) - Check: Terminal width uses templates.GetTerminalWidth() - Flag: XDG for project-specific files (stacks, components) - Flag: Magic numbers (0600, 0755, etc.) - Flag: Hardcoded terminal width ### documentation-writer Enhanced documentation standards: - MANDATORY: Document ATMOS_ env var for EVERY flag - Document configuration precedence - Updated flag documentation template with environment variable field Example: ```markdown <dt>--base-path</dt> <dd> Base path for Atmos configuration **Environment variable:** `ATMOS_BASE_PATH` </dd> ``` Ensures consistency: CLI Developer implements conventions, Code Reviewer enforces them, Documentation Writer documents them. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…i-developer agent Enhanced cli-developer agent with: - Zero-config philosophy: Everything works out-of-the-box with sensible defaults - Code organization patterns: - Use cmd/markdown/*.md for help/examples (not inline strings) - Use go:embed for multi-line text blocks - Wrap errors with context (not generic errors) - Updated Core Philosophy to emphasize error wrapping with context - Compressed existing sections to stay under 40k limit (39,992 chars - 99%) These additions ensure CLI commands are: - Zero-config by default (configuration is optional, not required) - Properly organized with external markdown files - Error messages provide context for debugging File size: 39,992 / 40,000 chars (99%) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
|
Warning This PR is blocked from merging because a required semver label is missing. You'll need to add one before this PR can be merged. |
|
Warning This PR exceeds the recommended limit of 1,000 lines.Large PRs are difficult to review and may be rejected due to their size. Please verify that this PR does not address multiple issues. |
|
Important Cloud Posse Engineering Team Review RequiredThis pull request modifies files that require Cloud Posse's review. Please be patient, and a core maintainer will review your changes. To expedite this process, reach out to us on Slack in the |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
📝 WalkthroughWalkthroughThis PR introduces a comprehensive agent specification framework by adding 16 new Claude agent definition documents to Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (12)
.claude/agents/bug-investigator.md (1)
1-125: Strong diagnostic workflow with minor punctuation inconsistencies.The phased approach (Initial Diagnosis → Reproduction → Solution Planning → Implementation) is methodical and thorough. The emphasis on test-driven bug fixing aligns well with CLAUDE.md testing standards.
Minor issue: Static analysis flags missing punctuation at lines 40, 54, and 107. While these are in list items, CLAUDE.md emphasizes that "all comments must end with periods (enforced by
godotlinter)." For consistency with the project's punctuation standards, consider adding periods to complete sentences in the workflow phases.CLAUDE.md (1)
372-408: Comprehensive scratch folder convention with clear migration paths.The addition clarifies where temporary work belongs and prevents filesystem clutter. The explicit lists of what goes in vs what doesn't go in
.scratch/will help developers make correct decisions.Minor fix: Add a language identifier to the code block starting at line 375 to satisfy markdown linting (MD040).
Apply this diff:
-``` +```plaintext .scratch/ # Temporary working files (gitignored except README) ├── README.md # Documents scratch folder purpose (committed) ├── analysis.md # Temporary analysis (not committed).claude/agents/code-reviewer.md (1)
99-353: Outstanding error handling guidance with concrete examples.The error handling section is particularly strong, covering:
- Sentinel errors vs dynamic errors
- Error wrapping with context
- Proper use of
errors.Is()anderrors.As()- Semantic logging with structured key-value pairs
The good/bad code examples make it crystal clear what patterns to follow. This will significantly improve error handling consistency across the codebase.
Minor: Static analysis notes missing punctuation at lines 66, 74 (end of list sections). Consider adding periods for consistency with CLAUDE.md's punctuation standards.
.claude/agents/refactoring-architect.md (1)
455-513: Strong collaboration patterns with other agents.The collaboration sections show how Refactoring Architect integrates with:
- Test Strategy Architect (for testability improvements)
- Lint Resolver (for complexity reduction)
- Bug Investigator (when bugs indicate design issues)
These workflows demonstrate good agent coordination. Static analysis notes missing language identifiers for the text blocks at lines 460, 471, 488, 503. Consider adding identifiers for consistency.
.claude/agents/example-builder.md (1)
56-71: Add language specifiers to fenced code blocks (MD040).Several code blocks lack language identifiers, making them harder to read and causing linting failures. Review lines 56–71, 127–130, 169–169, and others where fenced blocks appear without language tags.
Example fix for line 56–71:
-``` +```yaml examples/ ├── stack-inheritance/Apply consistently throughout the file to all code examples.
.scratch/ADDITIONAL_CONTEXT.md (1)
70-112: Add language specifiers to code blocks (MD040 compliance).Fenced code blocks at lines 71–91, 116–152, 167–209, 224–235, 247–259 need language identifiers. Add
```go,```markdown,```bashas appropriate.This is a scratch planning document, so formatting is secondary. Only fix if you're updating related agent files based on this guidance.
.claude/agents/feature-development-orchestrator.md (1)
98-98: Use proper Markdown headings for Phase sections instead of bold emphasis.Lines 98, 105, 112, 119, 128, 136, and 145 use
**Phase N: ...**(emphasis) when they should use### Phase N: ...(Markdown heading). This improves document structure and consistency across agent specifications.Apply this diff to fix the formatting:
-**Phase 1: Foundation** +### Phase 1: FoundationRepeat for all 7 Phase sections. This ensures proper semantic structure and document navigation.
Also applies to: 105-105, 112-112, 119-119, 128-128, 136-136, 145-145
.claude/agents/cli-developer.md (2)
677-677: Use proper heading syntax for "Exception: Standard CLI conventions".Line 677 uses emphasis (
**Exception: Standard CLI conventions**) but should use a Markdown heading (### Exception: Standard CLI conventions) for proper document structure.
501-501: Add language tags to fenced code blocks.Multiple code blocks lack language identifiers (e.g.,
```bashor```go). Add appropriate language tags for better syntax highlighting and accessibility:
- Line 501:
```→```bash- Line 519:
```→```(plain text example, acceptable as-is)- Lines 1233, 1247, 1265, 1286, 1300, 1311, 1323: Similar pattern
Also applies to: 519-519, 1233-1233, 1247-1247, 1265-1265, 1286-1286, 1300-1300, 1311-1311, 1323-1323
.claude/agents/frontend-developer.md (1)
94-94: Add language identifiers to fenced code blocks.Several code blocks lack language tags. Add appropriate identifiers for syntax highlighting:
- Line 94:
```→```yaml- Line 417:
```→```(text or bash)- Line 527:
```→```markdown- Line 577:
```→```markdownAlso applies to: 417-417, 527-527, 577-577
.claude/agents/documentation-writer.md (1)
255-255: Convert indented code block to fenced code block (line 255).Line 255 uses indented code block syntax. Convert to fenced block with language tag for consistency and better rendering:
- ```yaml - # atmos.yaml - integration: - setting: value - ``` +```yaml +# atmos.yaml +integration: + setting: value +```.claude/agents/pr-manager.md (1)
36-36: Fix emphasis spacing in line 36.Remove extra spaces inside emphasis markers:
-- **ONLY making documentation changes (*.md, *.mdx files)** +- **ONLY** making documentation changes (*.md, *.mdx files)Or better yet, remove the emphasis entirely since it's not needed for emphasis here:
-- **ONLY making** documentation changes (*.md, *.mdx files) +- Only documentation changes (*.md, *.mdx files)
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (24)
.claude/agents/bug-investigator.md(1 hunks).claude/agents/changelog-writer.md(1 hunks).claude/agents/ci-failure-resolver.md(1 hunks).claude/agents/cli-developer.md(1 hunks).claude/agents/code-reviewer.md(1 hunks).claude/agents/documentation-writer.md(1 hunks).claude/agents/example-builder.md(1 hunks).claude/agents/feature-development-orchestrator.md(1 hunks).claude/agents/frontend-developer.md(1 hunks).claude/agents/lint-resolver.md(1 hunks).claude/agents/pr-manager.md(1 hunks).claude/agents/pr-review-resolver.md(1 hunks).claude/agents/prd-writer.md(1 hunks).claude/agents/refactoring-architect.md(1 hunks).claude/agents/security-auditor.md(1 hunks).claude/agents/test-automation-expert.md(1 hunks).github/CODEOWNERS(1 hunks).github/workflows/claude.yml(2 hunks).gitignore(1 hunks).scratch/ADDITIONAL_CONTEXT.md(1 hunks).scratch/AGENT_ANALYSIS.md(1 hunks).scratch/FINAL_UPDATES_SUMMARY.md(1 hunks).scratch/README.md(1 hunks)CLAUDE.md(1 hunks)
🧰 Additional context used
🧠 Learnings (30)
📚 Learning: 2025-01-25T03:51:57.689Z
Learnt from: Listener430
Repo: cloudposse/atmos PR: 934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.
Applied to files:
.github/CODEOWNERS.claude/agents/feature-development-orchestrator.md.claude/agents/changelog-writer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to website/** : Keep CLI and website documentation in sync; document new features with examples and use cases
Applied to files:
.claude/agents/cli-developer.md.claude/agents/documentation-writer.md.claude/agents/example-builder.mdCLAUDE.md.claude/agents/changelog-writer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to website/** : Ensure consistency between CLI help text and website documentation
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to README.md : Update README.md when adding new commands and features
Applied to files:
.claude/agents/cli-developer.mdCLAUDE.md
📚 Learning: 2025-09-13T18:06:07.674Z
Learnt from: samtholiya
Repo: cloudposse/atmos PR: 1466
File: toolchain/list.go:39-42
Timestamp: 2025-09-13T18:06:07.674Z
Learning: In the cloudposse/atmos repository, for UI messages in the toolchain package, use utils.PrintfMessageToTUI instead of log.Error or fmt.Fprintln(os.Stderr, ...). Import pkg/utils with alias "u" to follow the established pattern.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-10-11T19:11:58.965Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1599
File: internal/exec/terraform.go:0-0
Timestamp: 2025-10-11T19:11:58.965Z
Learning: For terraform apply interactivity checks in Atmos (internal/exec/terraform.go), use stdin TTY detection (e.g., `IsTTYSupportForStdin()` or checking `os.Stdin`) to determine if user prompts are possible. This is distinct from stdout/stderr TTY checks used for output display (like TUI rendering). User input requires stdin to be a TTY; output display requires stdout/stderr to be a TTY.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to cmd/**/*.go : Provide meaningful user feedback and include progress indicators for long-running operations
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2024-10-23T21:36:40.262Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 740
File: cmd/cmd_utils.go:340-359
Timestamp: 2024-10-23T21:36:40.262Z
Learning: In the Go codebase for Atmos, when reviewing functions like `checkAtmosConfig` in `cmd/cmd_utils.go`, avoid suggesting refactoring to return errors instead of calling `os.Exit` if such changes would significantly increase the scope due to the need to update multiple call sites.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2024-10-31T19:25:41.298Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 727
File: internal/exec/terraform_clean.go:233-235
Timestamp: 2024-10-31T19:25:41.298Z
Learning: When specifying color values in functions like `confirmDeleteTerraformLocal` in `internal/exec/terraform_clean.go`, avoid hardcoding color values. Instead, use predefined color constants or allow customization through configuration settings to improve accessibility and user experience across different terminals and themes.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2024-12-07T16:16:13.038Z
Learnt from: Listener430
Repo: cloudposse/atmos PR: 825
File: internal/exec/helmfile_generate_varfile.go:28-31
Timestamp: 2024-12-07T16:16:13.038Z
Learning: In `internal/exec/helmfile_generate_varfile.go`, the `--help` command (`./atmos helmfile generate varfile --help`) works correctly without requiring stack configurations, and the only change needed was to make `ProcessCommandLineArgs` exportable by capitalizing its name.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2024-12-05T22:33:40.955Z
Learnt from: aknysh
Repo: cloudposse/atmos PR: 820
File: cmd/list_components.go:53-54
Timestamp: 2024-12-05T22:33:40.955Z
Learning: In the Atmos CLI Go codebase, using `u.LogErrorAndExit` within completion functions is acceptable because it logs the error and exits the command execution.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to cmd/**/*.go : Provide clear error messages to users and troubleshooting hints where appropriate
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-05T14:57:37.360Z
Learnt from: RoseSecurity
Repo: cloudposse/atmos PR: 1448
File: cmd/ansible.go:26-28
Timestamp: 2025-09-05T14:57:37.360Z
Learning: The Atmos codebase uses a consistent pattern for commands that delegate to external tools: `PersistentFlags().Bool("", false, doubleDashHint)` where doubleDashHint provides help text about using double dashes to separate Atmos options from native command arguments. This pattern is used across terraform, packer, helmfile, atlantis, aws, and ansible commands.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-10-11T19:12:23.475Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1599
File: pkg/ui/markdown/renderer.go:143-182
Timestamp: 2025-10-11T19:12:23.475Z
Learning: High-frequency utility and formatting functions (e.g., markdown renderers, formatters) that are called repeatedly during command execution should not have `defer perf.Track()` even if they are public methods. Performance tracking at these levels introduces unnecessary overhead without meaningful insights, as tracking is already present at higher command-execution levels where it provides actionable data.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-13T16:39:20.007Z
Learnt from: samtholiya
Repo: cloudposse/atmos PR: 1466
File: cmd/markdown/atmos_toolchain_aliases.md:2-4
Timestamp: 2025-09-13T16:39:20.007Z
Learning: In the cloudposse/atmos repository, CLI documentation files in cmd/markdown/ follow a specific format that uses " $ atmos command" (with leading space and dollar sign prompt) in code blocks. This is the established project convention and should not be changed to comply with standard markdownlint rules MD040 and MD014.
Applied to files:
.claude/agents/cli-developer.md.claude/agents/changelog-writer.md
📚 Learning: 2025-10-07T00:25:16.333Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1498
File: website/src/components/Screengrabs/atmos-terraform-metadata--help.html:25-55
Timestamp: 2025-10-07T00:25:16.333Z
Learning: In Atmos CLI, subcommands inherit flags from their parent commands via Cobra's command inheritance. For example, `atmos terraform metadata --help` shows `--affected` and related flags inherited from the parent `terraform` command (defined in cmd/terraform.go), even though the metadata subcommand doesn't explicitly define these flags. This is expected Cobra behavior and auto-generated help screengrabs accurately reflect this inheritance.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to cmd/**/*.go : Keep separation of concerns between CLI interface (cmd) and business logic
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-01-30T19:30:59.120Z
Learnt from: samtholiya
Repo: cloudposse/atmos PR: 959
File: cmd/workflow.go:74-74
Timestamp: 2025-01-30T19:30:59.120Z
Learning: Error handling for `cmd.Usage()` is not required in the Atmos CLI codebase, as confirmed by the maintainer.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to cmd/**/*.go : Use Viper for managing configuration, environment variables, and flags in the CLI
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-02-03T05:57:18.407Z
Learnt from: samtholiya
Repo: cloudposse/atmos PR: 959
File: cmd/cmd_utils.go:121-148
Timestamp: 2025-02-03T05:57:18.407Z
Learning: The Atmos CLI should fail fast (exit) when encountering configuration errors, including command alias configuration issues, to prevent undefined behavior. Use LogErrorAndExit instead of returning errors in such cases.
Applied to files:
.claude/agents/cli-developer.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Before submitting PRs, ensure tests pass, coverage targets met, run golangci-lint, and update documentation
Applied to files:
.claude/agents/code-reviewer.md.claude/agents/test-automation-expert.md.claude/agents/lint-resolver.md.claude/agents/prd-writer.mdCLAUDE.md.scratch/FINAL_UPDATES_SUMMARY.md.scratch/ADDITIONAL_CONTEXT.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: All pull requests must pass CI checks (unit tests, integration tests, golangci-lint, coverage reporting)
Applied to files:
.claude/agents/code-reviewer.md.claude/agents/test-automation-expert.mdCLAUDE.md.scratch/FINAL_UPDATES_SUMMARY.md
📚 Learning: 2025-01-08T19:01:32.938Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 899
File: examples/tests/test-vendor/test-components/main.tf:1-7
Timestamp: 2025-01-08T19:01:32.938Z
Learning: In the examples/tests directory of the atmos project, code examples are intentionally kept minimal and simple to facilitate understanding. Avoid suggesting additional complexity or validations that might make the examples harder to follow.
Applied to files:
.claude/agents/example-builder.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Target >80% code coverage for all packages
Applied to files:
.claude/agents/test-automation-expert.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to **/*_test.go : Every new feature must include comprehensive unit tests
Applied to files:
.claude/agents/test-automation-expert.md.scratch/ADDITIONAL_CONTEXT.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to **/*.go : All code must pass golangci-lint checks
Applied to files:
.claude/agents/lint-resolver.mdCLAUDE.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: PR descriptions must clearly describe changes, reference issues, and include before/after examples if UI changes
Applied to files:
.claude/agents/pr-manager.md.claude/agents/prd-writer.md
📚 Learning: 2025-03-25T12:23:42.649Z
Learnt from: Listener430
Repo: cloudposse/atmos PR: 1149
File: internal/exec/go_getter_utils.go:104-104
Timestamp: 2025-03-25T12:23:42.649Z
Learning: Listener430 plans to add a test for verifying that token injection is skipped for unsupported hosts in a future review or refactoring iteration. This relates to the CustomGitDetector.Detect method in internal/exec/go_getter_utils.go.
Applied to files:
.scratch/ADDITIONAL_CONTEXT.md
📚 Learning: 2025-09-23T02:30:42.362Z
Learnt from: CR
Repo: cloudposse/atmos PR: 0
File: .cursor/rules/atmos-rules.mdc:0-0
Timestamp: 2025-09-23T02:30:42.362Z
Learning: Applies to CHANGELOG.md : Update CHANGELOG.md with each release
Applied to files:
.claude/agents/changelog-writer.md
📚 Learning: 2025-10-27T01:54:35.665Z
Learnt from: osterman
Repo: cloudposse/atmos PR: 1714
File: website/blog/2025-10-26-zero-config-terminal-output.md:6-6
Timestamp: 2025-10-27T01:54:35.665Z
Learning: In the Atmos blog (website/blog/), blog post authors in frontmatter should always be set to the actual committer or PR opener (e.g., "osterman"), not generic organization names like "cloudposse" or "atmos". Authors must exist in website/blog/authors.yml.
Applied to files:
.claude/agents/changelog-writer.md
🪛 LanguageTool
.claude/agents/cli-developer.md
[typographical] ~941-~941: In American English, use a period after an abbreviation.
Context: ...olor(theme.WarningColor)) ) ``` ### UI vs Data Output (MANDATORY) **UI to stderr...
(MISSING_PERIOD_AFTER_ABBREVIATION)
[grammar] ~1009-~1009: Please add a punctuation mark at the end of paragraph.
Context: ...ogging - --version - Available on all commands Support when authentication-aware:...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~1455-~1455: In American English, use a period after an abbreviation.
Context: ...Y detection**: Different output for TTY vs non-TTY - ✅ Theme styles: Uses them...
(MISSING_PERIOD_AFTER_ABBREVIATION)
[style] ~1466-~1466: In American English, abbreviations like “etc.” require a period.
Context: ...Uses filepath.Join, filepath.Clean, etc (no hardcoded separators) - ✅ **Named c...
(ETC_PERIOD)
[style] ~1467-~1467: In American English, abbreviations like “etc.” require a period.
Context: ... magic numbers for permissions, widths, etc - ✅ Terminal width: Uses `templates...
(ETC_PERIOD)
[grammar] ~1472-~1472: Please add a punctuation mark at the end of paragraph.
Context: ...y --chdir, --no-color, --identity behavior ## Success Criteria Excellent CLI imp...
(PUNCTUATION_PARAGRAPH_END)
[style] ~1487-~1487: This phrase is redundant (‘I’ stands for ‘interfaces’). Use simply “CLIs”.
Context: ...uardian of developer experience. Create CLI interfaces that developers love to use.
(ACRONYM_TAUTOLOGY)
.claude/agents/code-reviewer.md
[typographical] ~64-~64: Consider using a typographic opening quote here.
Context: ...ly sorted - ✅ Performance Tracking: defer perf.Track(atmosConfig, "pkg.FuncName")() in public functions - ...
(EN_QUOTES)
[grammar] ~66-~66: Please add a punctuation mark at the end of paragraph.
Context: ...ed files (<600 lines), one cmd/impl per file #### Testing Requirements - ✅ **Test C...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~74-~74: Please add a punctuation mark at the end of paragraph.
Context: ...actual production code, never duplicate logic ### 2. Linting Verification (MANDATORY...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~101-~101: Use a hyphen to join words.
Context: ...viewer is deeply familiar with error handling conventions from docs folder. ...
(QB_NEW_EN_HYPHEN)
[grammar] ~195-~195: Please add a punctuation mark at the end of paragraph.
Context: ...`` ✅ GOOD: Using errors.As for error types ```go var validationErr *ValidationEr...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~346-~346: Consider using a typographic close quote here.
Context: ... "key", value - Use descriptive keys: "stack_name" not "s" - Always include ...
(EN_QUOTES)
[typographical] ~465-~465: Consider using typographic quotation marks here.
Context: ...erID→user.ID- Getter methods omit "Get":config.GetName()→config.Name()` -...
(EN_QUOTES)
[typographical] ~660-~660: In American English, use a period after an abbreviation.
Context: ...lag("base_path", ...) #### Logging vs UIgo // GOOD: UI to stderr, data to...
(MISSING_PERIOD_AFTER_ABBREVIATION)
[typographical] ~873-~873: Consider using a typographic opening quote here.
Context: ...code changes 2. User requests commit or "ready to commit" 3. Code Reviewer agent ...
(EN_QUOTES)
[typographical] ~873-~873: Consider using a typographic close quote here.
Context: ...User requests commit or "ready to commit" 3. Code Reviewer agent automatically in...
(EN_QUOTES)
[typographical] ~882-~882: Consider using a typographic opening quote here.
Context: ...cit Review Request ``` 1. User requests "review this code" 2. Code Reviewer agent...
(EN_QUOTES)
[typographical] ~882-~882: Consider using a typographic close quote here.
Context: ...t ``` 1. User requests "review this code" 2. Code Reviewer agent invoked 3. Compr...
(EN_QUOTES)
.claude/agents/bug-investigator.md
[grammar] ~40-~40: Please add a punctuation mark at the end of paragraph.
Context: ...tions that describe expected vs. actual behavior 4. **Execute and Validate Reproduction...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~54-~54: Please add a punctuation mark at the end of paragraph.
Context: ... Consider impacts on other parts of the system 6. Develop Fix Strategy: - Prop...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~107-~107: Please add a punctuation mark at the end of paragraph.
Context: ...formance**: Don't introduce performance regressions ## Communication Style - Be methodica...
(PUNCTUATION_PARAGRAPH_END)
.claude/agents/example-builder.md
[typographical] ~273-~273: Consider using a typographic opening quote here.
Context: ...ed) - ✅ Include all necessary files (no "etc." or "more files...") - ✅ Work from ...
(EN_QUOTES)
[typographical] ~273-~273: Consider using a typographic close quote here.
Context: ... ✅ Include all necessary files (no "etc." or "more files...") - ✅ Work from clean...
(EN_QUOTES)
[typographical] ~273-~273: Consider using a typographic opening quote here.
Context: ...clude all necessary files (no "etc." or "more files...") - ✅ Work from clean slat...
(EN_QUOTES)
[style] ~273-~273: Consider using the typographical ellipsis character here instead.
Context: ...ecessary files (no "etc." or "more files...") - ✅ Work from clean slate (no assumpt...
(ELLIPSIS)
[typographical] ~273-~273: Consider using a typographic close quote here.
Context: ...ssary files (no "etc." or "more files...") - ✅ Work from clean slate (no assumpti...
(EN_QUOTES)
[typographical] ~340-~340: Consider using a typographic opening quote here.
Context: ...Quick to read and understand - Focus on "how to run" not "how it works internally...
(EN_QUOTES)
[typographical] ~340-~340: Consider using a typographic close quote here.
Context: ...ad and understand - Focus on "how to run" not "how it works internally" - Link to...
(EN_QUOTES)
[typographical] ~340-~340: Consider using a typographic opening quote here.
Context: ... understand - Focus on "how to run" not "how it works internally" - Link to full ...
(EN_QUOTES)
[typographical] ~340-~340: Consider using a typographic close quote here.
Context: ...how to run" not "how it works internally" - Link to full documentation for detail...
(EN_QUOTES)
.claude/agents/test-automation-expert.md
[grammar] ~134-~134: Ensure spelling is correct
Context: ...ter:** - Capture exact output including lipgloss formatting, ANSI codes, trailing whites...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[typographical] ~257-~257: In American English, use a period after an abbreviation.
Context: ...nt:") } **Decision tree: Unit test vs Integration test:** Can I mock exte...
(MISSING_PERIOD_AFTER_ABBREVIATION)
[grammar] ~562-~562: Use a hyphen to join words.
Context: ...ity) 2. All error paths (catch error handling bugs) 3. **All conditional bran...
(QB_NEW_EN_HYPHEN)
.claude/agents/lint-resolver.md
[style] ~7-~7: Consider a different adjective to strengthen your wording.
Context: ...ecialist and code quality enforcer with deep knowledge of golangci-lint, custom lint...
(DEEP_PROFOUND)
[grammar] ~15-~15: Please add a punctuation mark at the end of paragraph.
Context: ...estability - Early detection of quality issues Critical Rules: 1. **Never suggest...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~32-~32: Please add a punctuation mark at the end of paragraph.
Context: ...rule exists and its importance for code quality ### 2. Resolve Violations Through Refa...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~80-~80: Consider using typographic quotation marks here.
Context: ...sn't help (CI will fail) - Clarify what "pre-existing" actually means (main branch only) - Emp...
(EN_QUOTES)
[typographical] ~83-~83: Consider using typographic quotation marks here.
Context: ...ntainability - Never make excuses about "whose fault" the lint error is - just fix it ### 5....
(EN_QUOTES)
[style] ~121-~121: To elevate your writing, try using an alternative expression here.
Context: ...und 2. Analysis: Why each violation matters for code quality 3. Refactored Code...
(MATTERS_RELEVANT)
.claude/agents/feature-development-orchestrator.md
[style] ~28-~28: ‘Clearly articulate’ might be wordy. Consider a shorter alternative.
Context: ...ant patterns Problem Definition: - Clearly articulate what problem this feature solves - Iden...
(EN_WORDINESS_PREMIUM_CLEARLY_ARTICULATE)
[grammar] ~126-~126: Please add a punctuation mark at the end of paragraph.
Context: ...ge - [ ] Run make lint to ensure code quality Phase 5: Documentation - [ ] Creat...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~163-~163: Please add a punctuation mark at the end of paragraph.
Context: ...erve existing comments unless factually incorrect Code Quality Standards: - Files mu...
(PUNCTUATION_PARAGRAPH_END)
[style] ~194-~194: Consider using the typographical ellipsis character here instead.
Context: ...make lint passes without errors - [ ] go build . && go test ./... succeeds - [ ] No //revive:disable c...
(ELLIPSIS)
[grammar] ~228-~228: Please add a punctuation mark at the end of paragraph.
Context: ... potential compatibility or maintenance concerns When you identify missing information ...
(PUNCTUATION_PARAGRAPH_END)
.claude/agents/pr-manager.md
[typographical] ~68-~68: Consider using typographic quotation marks here.
Context: ...haracters ideal) - Use imperative mood ("Add feature" not "Adds feature" or "Added feature") ...
(EN_QUOTES)
[typographical] ~68-~68: Consider using typographic quotation marks here.
Context: ... Use imperative mood ("Add feature" not "Adds feature" or "Added feature") - Clearly indicate ...
(EN_QUOTES)
[typographical] ~68-~68: Consider using typographic quotation marks here.
Context: ...od ("Add feature" not "Adds feature" or "Added feature") - Clearly indicate the primary change ...
(EN_QUOTES)
[typographical] ~72-~72: Consider using a typographic opening quote here.
Context: ...nges in the description - Examples: - "Add AWS credential rotation support" -...
(EN_QUOTES)
[typographical] ~72-~72: Consider using a typographic close quote here.
Context: ... - "Add AWS credential rotation support" - "Fix config loader crash on empty f...
(EN_QUOTES)
[typographical] ~73-~73: Consider using a typographic opening quote here.
Context: ...dd AWS credential rotation support" - "Fix config loader crash on empty files" ...
(EN_QUOTES)
[typographical] ~73-~73: Consider using a typographic close quote here.
Context: ... "Fix config loader crash on empty files" - "Update CLAUDE.md with testing guid...
(EN_QUOTES)
[typographical] ~74-~74: Consider using a typographic opening quote here.
Context: ...config loader crash on empty files" - "Update CLAUDE.md with testing guidelines...
(EN_QUOTES)
[typographical] ~74-~74: Consider using a typographic close quote here.
Context: ...Update CLAUDE.md with testing guidelines" ### 5. Description Quality Checks Befo...
(EN_QUOTES)
.claude/agents/frontend-developer.md
[grammar] ~128-~128: Please add a punctuation mark at the end of paragraph.
Context: ... - Review component usage in existing docs 3. **Can we enhance an existing compon...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~133-~133: Please add a punctuation mark at the end of paragraph.
Context: ...end with composition - Use component variants 4. **Is a plugin better than custom co...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~138-~138: Please add a punctuation mark at the end of paragraph.
Context: ...mmunity solutions - Official plugins preferred Only create new components when: -...
(PUNCTUATION_PARAGRAPH_END)
[style] ~552-~552: Consider using the typographical ellipsis character here instead.
Context: ...` ### Option 2: [Alternative solution] ... ## Accessibility Considerations - Keyb...
(ELLIPSIS)
[style] ~575-~575: Consider using the typographical ellipsis character here instead.
Context: ... changing existing) 1. Step 1 2. Step 2 ... ``` ## Success Metrics A great fronte...
(ELLIPSIS)
.claude/agents/refactoring-architect.md
[style] ~182-~182: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...NEVER delete existing comments without very strong reason.* ```go // WRONG: Deleting help...
(EN_WEAK_ADJECTIVE)
.claude/agents/security-auditor.md
[typographical] ~85-~85: Consider using typographic quotation marks here.
Context: ... community standards - Avoid unusual or "clever" security implementations - Use proven p...
(EN_QUOTES)
[grammar] ~212-~212: Please add a punctuation mark at the end of paragraph.
Context: ...s - loggercheck: Structured logging patterns **JavaScript/TypeScript quality checks...
(PUNCTUATION_PARAGRAPH_END)
[style] ~285-~285: Since ownership is already implied, this phrasing may be redundant.
Context: ...roper permissions ❌ **BAD: Rolling your own secrets storage**go // DON'T create...
(PRP_OWN)
[uncategorized] ~1213-~1213: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ponential backoff after failures **Low Priority Issues (Nice to Have):**markdown ##...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
.scratch/AGENT_ANALYSIS.md
[grammar] ~51-~51: Use a hyphen to join words.
Context: ...UPDATES Strengths: - Test-driven bug fixing approach - Mentions `cmd.NewTestK...
(QB_NEW_EN_HYPHEN)
[grammar] ~53-~53: Please add a punctuation mark at the end of paragraph.
Context: ...)` for test isolation - References mock generation Missing CLAUDE.md Context: - ❌ Sho...
(PUNCTUATION_PARAGRAPH_END)
[uncategorized] ~176-~176: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...uired ### 1. Test Strategy Architect ⭐ HIGH PRIORITY Purpose: Design comprehensive test ...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~193-~193: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...gy --- ### 2. Refactoring Architect ⭐ HIGH PRIORITY Purpose: Systematic refactoring to ...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[uncategorized] ~212-~212: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... issues --- ### 3. Security Auditor ⭐ MEDIUM PRIORITY Purpose: Review code for security v...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
.claude/agents/prd-writer.md
[style] ~8-~8: Consider a different adjective to strengthen your wording.
Context: ...g practices. Your expertise encompasses deep knowledge of the codebase architecture,...
(DEEP_PROFOUND)
[grammar] ~65-~65: Please add a punctuation mark at the end of paragraph.
Context: ...s/errors.go, use fmt.Errorf with %w for chaining 4. **Ensure Code Quality and Maintaina...
(PUNCTUATION_PARAGRAPH_END)
[style] ~70-~70: Consider using a different verb for a more formal wording.
Context: ...inimize use of lint ignore directives - fix issues properly - Preserve existing ...
(FIX_RESOLVE)
.claude/agents/ci-failure-resolver.md
[typographical] ~30-~30: Consider using a typographic opening quote here.
Context: ...tify all test failures by searching for "FAIL:" markers and panic stack traces ...
(EN_QUOTES)
[typographical] ~30-~30: Consider using a typographic close quote here.
Context: ...ll test failures by searching for "FAIL:" markers and panic stack traces - Cat...
(EN_QUOTES)
[grammar] ~48-~48: Please add a punctuation mark at the end of paragraph.
Context: ...oduction code paths and not duplicating logic 4. Propose High-Quality Fixes -...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~63-~63: Use a hyphen to join words.
Context: ...FromSlash()appropriately - For line ending issues: Usebufio.Scanner` or no...
(QB_NEW_EN_HYPHEN)
[grammar] ~66-~66: Please add a punctuation mark at the end of paragraph.
Context: ...ests and os.MkdirTemp() in production code 6. Respect GitHub API Rate Limits ...
(PUNCTUATION_PARAGRAPH_END)
[style] ~139-~139: Consider using a different verb for a more formal wording.
Context: ...fixes that only make tests pass without fixing the underlying issue - NEVER reduce...
(FIX_RESOLVE)
[grammar] ~145-~145: Please add a punctuation mark at the end of paragraph.
Context: ...at fixes maintain code quality and test coverage ## Success Criteria You have successf...
(PUNCTUATION_PARAGRAPH_END)
[style] ~158-~158: You have used the passive voice repeatedly in nearby sentences. To make your writing clearer and easier to read, consider using active voice.
Context: ...improved 8. Code quality standards have been upheld You are the guardian of CI pipeline he...
(REP_PASSIVE_VOICE)
.claude/agents/pr-review-resolver.md
[typographical] ~65-~65: Consider using typographic quotation marks here.
Context: ...* (HTTP 403, 429, or message containing "rate limit"): - Extract reset timestamp: `gh api ...
(EN_QUOTES)
[typographical] ~67-~67: Consider using a typographic opening quote here.
Context: ...estamp '+%Y-%m-%d %H:%M:%S'(macOS) ordate -d "@$timestamp"` (Linux) - Log clear wait...
(EN_QUOTES)
[typographical] ~318-~318: Consider using a typographic opening quote here.
Context: ...ng (PRIORITY) ### Special Attention to "Prompt for AI Agents" Sections CodeRabbi...
(EN_QUOTES)
[typographical] ~318-~318: Consider using a typographic close quote here.
Context: ...ecial Attention to "Prompt for AI Agents" Sections CodeRabbit review comments oft...
(EN_QUOTES)
[typographical] ~319-~319: Consider using a typographic opening quote here.
Context: ...ts often contain a details block titled "Prompt for AI Agents" or similar. This s...
(EN_QUOTES)
[typographical] ~319-~319: Consider using a typographic close quote here.
Context: ...tails block titled "Prompt for AI Agents" or similar. This section provides: - Mo...
(EN_QUOTES)
[grammar] ~323-~323: Please add a punctuation mark at the end of paragraph.
Context: ...rioritize and follow these instructions precisely** ### CodeRabbit Comment Analysis Work...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~328-~328: Consider using a typographic opening quote here.
Context: ...ack** from the comment body 2. Locate "Prompt for AI Agents" section if prese...
(EN_QUOTES)
[typographical] ~328-~328: Consider using a typographic close quote here.
Context: ...t body 2. Locate "Prompt for AI Agents" section if present 3. **Cross-referen...
(EN_QUOTES)
[grammar] ~337-~337: Please add a punctuation mark at the end of paragraph.
Context: ...spectfully explain why feedback doesn't apply ## Resolution Process ### Phase 1: Di...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~368-~368: Consider using a typographic opening quote here.
Context: ...e what was changed and why - Format: "fix: [brief description] (addresses revi...
(EN_QUOTES)
[typographical] ~368-~368: Consider using a typographic close quote here.
Context: ...scription] (addresses review comment #N)" 4. Track progress: Maintain checkli...
(EN_QUOTES)
[typographical] ~381-~381: Consider using a typographic opening quote here.
Context: ...ic code changes if helpful - Format: "This was addressed in commit [SHA]. [Bri...
(EN_QUOTES)
[typographical] ~381-~381: Consider using a typographic close quote here.
Context: ...f explanation of fix]. Please re-review." 3. Final validation: - Ensure al...
(EN_QUOTES)
[grammar] ~385-~385: Please add a punctuation mark at the end of paragraph.
Context: ...s were introduced - Confirm CI/tests pass ## Quality Assurance Standards ### Ev...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~393-~393: Please add a punctuation mark at the end of paragraph.
Context: ...uest clarification from reviewer before implementing ### When to Push Back Respectfully If ...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~435-~435: Consider using a typographic opening quote here.
Context: ...ve operations - ✓ Prioritize CodeRabbit "Prompt for AI Agents" sections - ✓ Creat...
(EN_QUOTES)
[typographical] ~435-~435: Consider using a typographic close quote here.
Context: ...oritize CodeRabbit "Prompt for AI Agents" sections - ✓ Create comprehensive plans...
(EN_QUOTES)
.scratch/FINAL_UPDATES_SUMMARY.md
[grammar] ~11-~11: Please add a punctuation mark at the end of paragraph.
Context: ....Args) - Works with subtests and nested tests Sandbox: `testhelpers.SetupSandbox...
(PUNCTUATION_PARAGRAPH_END)
[style] ~61-~61: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+) ALWAYS use t.Chdir() instead of os.Chdir() in tests ```go // CORRECT: Automat...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~61-~61: Please add a punctuation mark at the end of paragraph.
Context: ... use t.Chdir() instead of os.Chdir() in tests** ```go // CORRECT: Automatic cleanup ...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~202-~202: In American English, use a period after an abbreviation.
Context: ...uiring isolated filesystem ### Sandbox vs TestKit - TestKit: Cleans RootCmd s...
(MISSING_PERIOD_AFTER_ABBREVIATION)
[typographical] ~250-~250: Consider using typographic quotation marks here.
Context: ...e Sparingly (10%) Integration tests ("smoke tests") are for: - End-to-end CLI behavior v...
(EN_QUOTES)
[typographical] ~327-~327: Consider using typographic quotation marks here.
Context: ... formatting bug - Tests fail in CI with "snapshot mismatch"
(EN_QUOTES)
.scratch/ADDITIONAL_CONTEXT.md
[typographical] ~13-~13: Consider using typographic quotation marks here.
Context: ...- Difference between integration tests ("smoke tests") vs pure Go tests - Preference for pure...
(EN_QUOTES)
[grammar] ~41-~41: Please add a punctuation mark at the end of paragraph.
Context: ... with Refactoring Architect for complex issues Where to Add: - lint-resolver.md...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~44-~44: Consider using a typographic opening quote here.
Context: ...ready has this but could strengthen the "propose plan first" guidance ### 4. CI/...
(EN_QUOTES)
[typographical] ~44-~44: Consider using a typographic close quote here.
Context: ...could strengthen the "propose plan first" guidance ### 4. CI/CD Debugger Concept...
(EN_QUOTES)
[typographical] ~49-~49: Consider using typographic quotation marks here.
Context: ...(Fix Agent) New Agent Concept: The "fix" instructions suggest a CI/CD debugging ...
(EN_QUOTES)
[grammar] ~94-~94: Please add a punctuation mark at the end of paragraph.
Context: ...Use for:* Tests that need environment variables ```go func TestEnvVarHandling(t *testin...
(PUNCTUATION_PARAGRAPH_END)
[grammar] ~110-~110: Please add a punctuation mark at the end of paragraph.
Context: ...er t.Chdir() and t.Setenv() over manual management** ``` #### Add TestKit Deep Dive Secti...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~239-~239: Consider using typographic quotation marks here.
Context: ... Smoke Tests (10%) Integration tests ("smoke tests") are for: - End-to-end CLI behavior -...
(EN_QUOTES)
.claude/agents/changelog-writer.md
[grammar] ~62-~62: Please add a punctuation mark at the end of paragraph.
Context: ...umentation** for complete configuration details ### 2. Atmos Core Developers (Less Com...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~66-~66: Consider using a typographic opening quote here.
Context: ...ernal architectural improvements (e.g., "Command Registry Pattern") - Refactoring...
(EN_QUOTES)
[typographical] ~66-~66: Consider using a typographic close quote here.
Context: ...vements (e.g., "Command Registry Pattern") - Refactoring efforts that improve mai...
(EN_QUOTES)
[grammar] ~69-~69: Please add a punctuation mark at the end of paragraph.
Context: ...ments - CI/CD or testing infrastructure changes Tag distinction: User-facing posts...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~77-~77: Consider using typographic quotation marks here.
Context: ...Avoid Hyperbole**: Not every feature is "revolutionary" or "game-changing." Focus on **what mak...
(EN_QUOTES)
[typographical] ~77-~77: Consider using a typographic opening quote here.
Context: ...Not every feature is "revolutionary" or "game-changing." Focus on **what makes th...
(EN_QUOTES)
[typographical] ~77-~77: Consider using a typographic close quote here.
Context: ...re is "revolutionary" or "game-changing." Focus on what makes this important ...
(EN_QUOTES)
[typographical] ~85-~85: Consider using typographic quotation marks here.
Context: ...r-Centric Voice**: Write as a peer. Use "we" and "you" naturally. Acknowledge real c...
(EN_QUOTES)
[typographical] ~85-~85: Consider using typographic quotation marks here.
Context: ... Voice**: Write as a peer. Use "we" and "you" naturally. Acknowledge real challenges ...
(EN_QUOTES)
[grammar] ~115-~115: Please add a punctuation mark at the end of paragraph.
Context: ... affected by breaking changes - Keep it concise ### Examples (Keep Minimal) Show real-...
(PUNCTUATION_PARAGRAPH_END)
[typographical] ~170-~170: Consider using typographic quotation marks here.
Context: ...u removed unnecessary superlatives like "revolutionary" or "amazing"? 10. ✅ Migration guide...
(EN_QUOTES)
[typographical] ~170-~170: Consider using typographic quotation marks here.
Context: ...ry superlatives like "revolutionary" or "amazing"? 10. ✅ Migration guide: Is it inclu...
(EN_QUOTES)
🪛 markdownlint-cli2 (0.18.1)
.claude/agents/cli-developer.md
501-501: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
519-519: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
677-677: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
1233-1233: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1247-1247: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1265-1265: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1286-1286: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1300-1300: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1311-1311: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1323-1323: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/bug-investigator.md
94-94: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
95-95: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
96-96: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
97-97: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
98-98: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
.claude/agents/documentation-writer.md
255-255: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
268-268: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
280-280: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
321-321: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
347-347: Multiple headings with the same content
(MD024, no-duplicate-heading)
354-354: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
378-378: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
400-400: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
416-416: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
433-433: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/example-builder.md
56-56: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
127-127: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
169-169: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
363-363: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
397-397: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
411-411: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
424-424: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
463-463: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
471-471: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
479-479: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
487-487: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/feature-development-orchestrator.md
98-98: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
105-105: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
112-112: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
119-119: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
128-128: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
136-136: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
145-145: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
.claude/agents/pr-manager.md
36-36: Spaces inside emphasis markers
(MD037, no-space-in-emphasis)
.claude/agents/frontend-developer.md
94-94: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
123-123: Bare URL used
(MD034, no-bare-urls)
124-124: Bare URL used
(MD034, no-bare-urls)
417-417: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
454-454: Bare URL used
(MD034, no-bare-urls)
455-455: Bare URL used
(MD034, no-bare-urls)
456-456: Bare URL used
(MD034, no-bare-urls)
457-457: Bare URL used
(MD034, no-bare-urls)
458-458: Bare URL used
(MD034, no-bare-urls)
577-577: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/refactoring-architect.md
242-242: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
255-255: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
269-269: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
278-278: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
286-286: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
296-296: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
305-305: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
330-330: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
356-356: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
414-414: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
460-460: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
471-471: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
488-488: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
503-503: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/security-auditor.md
111-111: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
163-163: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
209-209: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
276-276: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
356-356: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.scratch/AGENT_ANALYSIS.md
253-253: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
272-272: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
285-285: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/agents/prd-writer.md
56-56: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
127-127: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
CLAUDE.md
375-375: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.scratch/FINAL_UPDATES_SUMMARY.md
61-61: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
83-83: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
146-146: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
147-147: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
219-219: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
276-276: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
290-290: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
392-392: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
402-402: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
453-453: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
- GitHub Check: Lint (golangci)
- GitHub Check: Analyze (javascript-typescript)
- GitHub Check: Analyze (go)
- GitHub Check: Build (linux)
- GitHub Check: Build (macos)
- GitHub Check: Build (windows)
- GitHub Check: Run pre-commit hooks
- GitHub Check: Review Dependency Licenses
- GitHub Check: autofix
- GitHub Check: Lint (golangci)
- GitHub Check: Analyze (go)
- GitHub Check: Summary
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1733 +/- ##
==========================================
+ Coverage 68.70% 68.93% +0.22%
==========================================
Files 381 381
Lines 34822 34930 +108
==========================================
+ Hits 23925 24079 +154
+ Misses 8656 8588 -68
- Partials 2241 2263 +22
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
💥 This pull request now has conflicts. Could you fix it @osterman? 🙏 |
Summary
Comprehensive enhancements to Claude agents for the Atmos project, adding critical requirements for CLI development, code review, testing, documentation, and code organization patterns.
Key Additions:
Agents Enhanced
cli-developer (6 commits)
code-reviewer (2 commits)
documentation-writer (1 commit)
pr-review-resolver (1 commit)
security-auditor (1 commit)
CI Enhancements
.github/workflows/claude.yml (1 commit)
Technical Details
Key Conventions
File Size Management
All agents pass 40k character limit:
Test Plan
References
🤖 Generated with Claude Code
Summary by CodeRabbit
Note: This release contains infrastructure and internal documentation updates only. No user-facing features or changes are included.