Files
Claude-Code-Workflow/.claude/rules/coding-philosophy.md
catlog22 79a2953862 Add comprehensive tests for vector/semantic search functionality
- Implement full coverage tests for Embedder model loading and embedding generation
- Add CRUD operations and caching tests for VectorStore
- Include cosine similarity computation tests
- Validate semantic search accuracy and relevance through various queries
- Establish performance benchmarks for embedding and search operations
- Ensure edge cases and error handling are covered
- Test thread safety and concurrent access scenarios
- Verify availability of semantic search dependencies
2025-12-14 17:17:09 +08:00

2.2 KiB

Coding Philosophy

Core Beliefs

  • Pursue good taste - Eliminate edge cases to make code logic natural and elegant
  • Embrace extreme simplicity - Complexity is the root of all evil
  • Be pragmatic - Code must solve real-world problems, not hypothetical ones
  • Data structures first - Bad programmers worry about code; good programmers worry about data structures
  • Never break backward compatibility - Existing functionality is sacred and inviolable
  • Incremental progress over big bangs - Small changes that compile and pass tests
  • Learning from existing code - Study and plan before implementing
  • Clear intent over clever code - Be boring and obvious
  • Follow existing code style - Match import patterns, naming conventions, and formatting of existing codebase
  • Minimize changes - Only modify what's directly required; avoid refactoring, adding features, or "improving" code beyond the request
  • No unsolicited documentation - NEVER generate reports, documentation files, or summaries without explicit user request. If required, save to .workflow/.scratchpad/

Simplicity Means

  • Single responsibility per function/class
  • Avoid premature abstractions
  • No clever tricks - choose the boring solution
  • If you need to explain it, it's too complex

Fix, Don't Hide

Solve problems, don't silence symptoms - Skipped tests, @ts-ignore, empty catch, as any, excessive timeouts = hiding bugs, not fixing them

NEVER:

  • Make assumptions - verify with existing code
  • Generate reports, summaries, or documentation files without explicit user request
  • Use suppression mechanisms (skip, ignore, disable) without fixing root cause

ALWAYS:

  • Plan complex tasks thoroughly before implementation
  • Generate task decomposition for multi-module work (>3 modules or >5 subtasks)
  • Track progress using TODO checklists for complex tasks
  • Validate planning documents before starting development
  • Commit working code incrementally
  • Update plan documentation and progress tracking as you go
  • Learn from existing implementations
  • Stop after 3 failed attempts and reassess
  • Edit fallback: When Edit tool fails 2+ times on same file, try Bash sed/awk first, then Write to recreate if still failing