Files
ISA-Frontend/CLAUDE.md
Lorenz Hilpert 7950994d66 Merged PR 2057: feat(checkout): add branch selection to reward catalog
feat(checkout): add branch selection to reward catalog

- Add new select-branch-dropdown library with BranchDropdownComponent
  and SelectedBranchDropdownComponent for branch selection
- Extend DropdownButtonComponent with filter and option subcomponents
- Integrate branch selection into reward catalog page
- Add BranchesResource for fetching available branches
- Update CheckoutMetadataService with branch selection persistence
- Add comprehensive tests for dropdown components

Related work items: #5464
2025-11-27 10:38:52 +00:00

6.8 KiB

CLAUDE.md

This file contains meta-instructions for how Claude should work with the ISA-Frontend codebase.

🔴 CRITICAL: You Are an LLM with Outdated Knowledge

Your training data is outdated. NEVER assume you know current APIs.

  • Libraries, frameworks, and APIs change constantly
  • Your memory of APIs is unreliable
  • Current documentation is the ONLY source of truth

ALWAYS use research agents PROACTIVELY - without user asking.

🔴 CRITICAL: Proactive Agent & Skill Usage

You MUST use agents and skills AUTOMATICALLY for ALL tasks - do NOT wait for user to tell you.

Research Agents (Use BEFORE Implementation)

Agent Auto-Invoke When User Interaction
docs-researcher ANY external library/API usage NONE - just do it
docs-researcher-advanced Implementation fails OR docs-researcher insufficient NONE - just do it
Explore Need codebase patterns or multi-file analysis NONE - just do it

Research-First Flow (Mandatory):

Task involves external API? → AUTO-INVOKE docs-researcher
                              ↓
                              Implement based on docs
                              ↓
                              Failed? → AUTO-INVOKE docs-researcher-advanced
                              ↓
                              Still failed? → ASK USER for guidance

Skills (Use DURING Implementation)

Trigger Auto-Invoke Skill
Writing Angular templates angular-template
Writing HTML with interactivity html-template
Applying Tailwind classes tailwind
Writing any Angular code logging
Creating CSS animations css-keyframes-animations
Creating new library library-scaffolder
Regenerating API clients swagger-sync-manager
Git operations git-workflow

Skill chaining for Angular work:

angular-template → html-template → logging → tailwind

Implementation Agents (Use for Complex Tasks)

Agent Auto-Invoke When
angular-developer Creating components, services, stores (2-5 files)
test-writer Writing tests, adding coverage
refactor-engineer Refactoring 5+ files, migrations

Anti-Patterns (FORBIDDEN)

❌ Implementing without researching first
❌ Asking "should I research this?" - just do it
❌ Asking "should I use a skill?" - just do it
❌ Trial and error: implement → fail → try again → fail
❌ Writing Angular code without loading skills first

Correct Pattern

✅ "Researching [library] API..." → [auto-invokes docs-researcher]
✅ "Loading angular-template skill..." → [auto-invokes skill]
✅ "Implementing based on current docs..."
✅ If fails: "Escalating research..." → [auto-invokes docs-researcher-advanced]

Communication Guidelines

  • Keep answers concise and focused
  • Use bullet points and structured formatting
  • Skip verbose explanations unless requested
  • Focus on what the user needs, not everything you know

Context Management

Context bloat kills reliability. Minimize aggressively.

Tool Result Minimization

Tool Keep Discard
Bash (success) ✓ Command succeeded Full output
Bash (failure) Exit code + error (max 10 lines) Verbose output
Edit ✓ Modified file.ts Full diffs
Read Extracted relevant section Full file content
Agent results 1-2 sentence summary Raw JSON/full output

Agent Result Handling

❌ WRONG: "Docs researcher returned: [huge JSON...]"
✅ RIGHT: "docs-researcher found: Use signalStore() with withState()"

Session Cleanup

Use /clear between unrelated tasks to prevent context degradation.

Implementation Decisions

Task Type Required Agent Escalation Path
Package/Library Documentation docs-researcher docs-researcher-advanced if not found
Internal Library READMEs docs-researcher Keep context clean
Monorepo Library Overview docs-researcher Uses docs/library-reference.md
Code Pattern Search Explore Set thoroughness level
Implementation Analysis Explore Multiple file analysis
Single Specific File Read tool directly No agent needed

Note: The docs-researcher agent uses docs/library-reference.md as a primary index for discovering monorepo libraries. This file contains descriptions and locations for all libraries, enabling quick library discovery without reading individual READMEs.

Documentation Research System (Two-Tier)

  1. ALWAYS start with docs-researcher (Haiku, 30-120s) for any documentation need
  2. Auto-escalate to docs-researcher-advanced (Sonnet, 2-7min) when:
    • Documentation not found
    • Conflicting sources
    • Need code inference
    • Complex architectural questions

When to Use Agents vs Direct Tools

Single known file? → Read tool directly
Code pattern search? → Explore agent
Documentation lookup? → docs-researcher agent
Creating 2-5 Angular files? → angular-developer agent
Refactoring 5+ files? → refactor-engineer agent
Simple 1-file edit? → Direct implementation

Proactive Agent Triggers

Auto-invoke angular-developer when user says:

  • "Create component/service/store/pipe/directive/guard"
  • Task touches 2-5 Angular files

Auto-invoke test-writer when user says:

  • "Write tests", "Add coverage"

Auto-invoke refactor-engineer when user says:

  • "Refactor all", "Migrate X files", "Update pattern across"

Auto-invoke context-manager when user says:

  • "Remember to", "TODO:", "Don't forget"

Agent Communication

Briefing Agents

Keep briefings focused:

Implement: [type] at [path]
Purpose: [1 sentence]
Requirements: [list]

Agent Results

Extract only what's needed, discard the rest:

✓ Created 3 files
✓ Tests: 12/12 passing
✓ Skills applied: angular-template, logging

General Guidelines for working with Nx

  • Run tasks through nx (i.e. nx run, nx run-many, nx affected) instead of underlying tooling
  • Use nx_workspace tool to understand workspace architecture
  • Use nx_project_details for specific project structure
  • Use nx_docs for nx configuration questions