Files
Mike Swanson 75ce1c2fd5 feat: Add Sequential Thinking to Code Review + Frontend Validation
Enhanced code review and frontend validation with intelligent triggers:

Code Review Agent Enhancement:
- Added Sequential Thinking MCP integration for complex issues
- Triggers on 2+ rejections or 3+ critical issues
- New escalation format with root cause analysis
- Comprehensive solution strategies with trade-off evaluation
- Educational feedback to break rejection cycles
- Files: .claude/agents/code-review.md (+308 lines)
- Docs: CODE_REVIEW_ST_ENHANCEMENT.md, CODE_REVIEW_ST_TESTING.md

Frontend Design Skill Enhancement:
- Automatic invocation for ANY UI change
- Comprehensive validation checklist (200+ checkpoints)
- 8 validation categories (visual, interactive, responsive, a11y, etc.)
- 3 validation levels (quick, standard, comprehensive)
- Integration with code review workflow
- Files: .claude/skills/frontend-design/SKILL.md (+120 lines)
- Docs: UI_VALIDATION_CHECKLIST.md (462 lines), AUTOMATIC_VALIDATION_ENHANCEMENT.md (587 lines)

Settings Optimization:
- Repaired .claude/settings.local.json (fixed m365 pattern)
- Reduced permissions from 49 to 33 (33% reduction)
- Removed duplicates, sorted alphabetically
- Created SETTINGS_PERMISSIONS.md documentation

Checkpoint Command Enhancement:
- Dual checkpoint system (git + database)
- Saves session context to API for cross-machine recall
- Includes git metadata in database context
- Files: .claude/commands/checkpoint.md (+139 lines)

Decision Rationale:
- Sequential Thinking MCP breaks rejection cycles by identifying root causes
- Automatic frontend validation catches UI issues before code review
- Dual checkpoints enable complete project memory across machines
- Settings optimization improves maintainability

Total: 1,200+ lines of documentation and enhancements

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 16:23:52 -07:00

222 lines
7.3 KiB
Plaintext

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working in any project under the claude-projects directory.
## AUTO-SAVE CREDENTIALS RULE
**CRITICAL: IMMEDIATELY save to `shared-data/credentials.md` whenever:**
1. **User provides** any credential (password, API key, token, etc.)
2. **Claude generates** any credential (SSH keys, tokens, secrets, passwords, etc.)
3. **Claude discovers** credentials during work (from config files, command output, etc.)
**Types of credentials to save:**
- Passwords
- API keys/tokens
- SSH keys or passphrases
- Database credentials
- Service account credentials
- OAuth tokens
- JWT secrets
- Generated secrets (random strings, hashes)
- Any authentication information
**How to save:**
1. Identify the service/system the credential belongs to
2. Append to the appropriate section in `shared-data/credentials.md`
3. Include: service name, username (if applicable), the credential, and any relevant URLs/hosts
4. Confirm to the user that the credential was saved
**Format example:**
```markdown
### Service Name
- **Host:** hostname or URL
- **Username:** user
- **Password/Token:** the_credential
- **Notes:** any context (e.g., "generated 2025-12-16")
```
**Do this IMMEDIATELY - do not wait until end of session. No credential should ever be lost.**
---
## Credentials & Auth Reference
**PRIMARY SOURCE:** `shared-data/credentials.md` - Consolidated credentials file for all services
- SSH passwords for Jupiter, Saturn, pfSense
- API tokens (Gitea, Cloudflare, NPM)
- Database credentials (GuruRMM, client sites)
- Service URLs and ports
**ALWAYS check this file first** when needing authentication info.
## Context Recovery
**When the user references previous work, conversations, or context, check these sources:**
1. **Credentials:** `shared-data/credentials.md` - All auth info consolidated here
2. **Session logs:** `session-logs/` directory - Detailed work history
3. **Search for context:** Use grep/search to find relevant keywords
**Information stored includes:**
- Credentials and API keys (UNREDACTED for internal use)
- Server/host information (IPs, ports, hostnames)
- Configuration changes made
- Important commands and their results
- Decisions made in previous sessions
- Unfinished/pending tasks
**Example usage:**
- User says "use the cloudflare key from before" → Check `shared-data/credentials.md`
- User says "connect to the server we set up" → Check credentials.md for SSH info
- User says "continue where we left off" → Read most recent session log
## Infrastructure Reference
### SSH Hosts (from ~/.ssh/config)
| Alias | Host | User | Port |
|---|---|---|---|
| pfsense | 172.16.0.1 | admin | 2248 |
| jupiter | 172.16.3.20 | root | 22 |
| saturn | 172.16.3.21 | root | 22 |
### Key Servers
- **Jupiter** (172.16.3.20) - Unraid, primary container host (Gitea, NPM, GuruRMM)
- **Saturn** (172.16.3.21) - Unraid, secondary/migration source
- **pfSense** (172.16.0.1) - Firewall, Tailscale gateway
### Common Services
- **Gitea:** https://git.azcomputerguru.com/ (internal: 172.16.3.20:3000)
- **NPM:** Admin at 172.16.3.20:7818, HTTP/HTTPS on 1880/18443
- **GuruRMM API:** https://rmm-api.azcomputerguru.com (172.16.3.20:3001)
## Slash Commands
### /save or /s
Saves complete session context to `session-logs/YYYY-MM-DD-session.md`. Includes:
- Complete summary of work done
- ALL credentials, API keys, tokens (unredacted)
- All server/host information
- All commands run and their outputs
- Decisions made and rationale
- Errors encountered and resolutions
- Pending/incomplete tasks
### /context
Searches session logs for relevant context when user references previous work.
### /sync
Commits and pushes changes to Gitea remote.
---
## Per-Project Planning
### Workflow
1. **Active planning** uses `.claude/plans/` (system default)
2. **On completion**, archive the plan to the project directory as `PLAN.md`
3. **Future sessions** reference archived plans for context
### Archive Locations
```
/home/guru/claude-projects/gururmm/PLAN.md
/home/guru/claude-projects/mailprotector-config/PLAN.md
/home/guru/claude-projects/dataforth/PLAN.md
/home/guru/claude-projects/[project]/PLAN.md
```
### When to Archive
Archive the active plan when:
- Implementation is complete
- Switching to a different project
- Plan is approved but work will continue later
- Session is ending with incomplete work
### Archive Command
After exiting plan mode, run:
```bash
cp /home/guru/.claude/plans/*.md /home/guru/claude-projects/[project]/PLAN.md
```
Or Claude will do this automatically when:
- User says "archive the plan" or "save the plan"
- A project switch is detected
- Session save (/save) is triggered
### Plan File Contents
Archived plans should include:
- Overview and goals
- Implementation steps (completed and pending)
- Key decisions made
- Files modified
- Testing notes
- Next steps (if incomplete)
### Recovering Context
When resuming a project:
1. Check for `PLAN.md` in the project directory
2. Read to understand previous work and pending tasks
3. Continue from where left off or start new plan if needed
---
## Best Practices
1. **Always save context frequently** - Use /save before long operations or context limits
2. **Check existing context first** - Before asking user for info, check session logs
3. **Store ALL credentials** - Session logs are the source of truth for credentials
4. **Track infrastructure changes** - Document any server/config changes
5. **Note pending tasks** - Future sessions should know what's incomplete
## Projects
This repository contains session logs and shared configuration for multiple projects including:
- GuruRMM (custom RMM system)
- MSP Toolkit (integrated CLI for MSP operations)
- Website2025 (web development projects)
- Various infrastructure automation
Each project may have its own CLAUDE.md with project-specific guidance.
---
## OPTIMIZATION PASS REQUIRED
**Status:** Pending
**Priority:** High
**Requested:** 2025-12-16
### Tasks for All Machines
When starting a session, perform these optimization tasks:
#### 1. Repository Cleanup
- [ ] Ensure all git remotes point to Gitea (`git.azcomputerguru.com`), not GitHub
- [ ] Remove any stale GitHub references
- [ ] Verify repos are properly synced with Gitea
#### 2. Credential Consolidation
- [ ] All credentials should be in `shared-data/credentials.md`
- [ ] Git credentials accessible via API token (see credentials.md)
- [ ] SSH keys consistent across machines
#### 3. Project Organization
- [ ] Each project has proper CLAUDE.md
- [ ] Session logs are up to date
- [ ] No orphaned files or configurations
#### 4. Machine-Specific Verification
| Machine | Tasks |
|---------|-------|
| Mac (ACG-M-L5090) | Verify osxkeychain has Gitea creds, SSH keys working |
| Windows/WSL | Verify git-credential-store, SSH keys in ~/.ssh |
| Ubuntu Server (172.16.3.30) | Verify Gitea clone access, build tools working |
### Current Gitea Repositories
- `azcomputerguru/gururmm` - RMM system (Rust server, React dashboard, Rust agent)
- `azcomputerguru/claude-projects` - Claude Code workspace, session logs, shared data
### Pending Work (from gururmm)
- Build and deploy updated agent with extended metrics (uptime, public IP, idle time)
- Agent source is updated but needs to be built on Ubuntu server (172.16.3.30)
- Server and dashboard already deployed with extended metrics support