[MODEL] Claude Defaults to Common Patterns Instead of Parsing User Intent
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Claude ignored my instructions or configuration
What You Asked Claude to Do
I have been extensively testing the 1pasword connect SDK with claude code and I asked to setup "API" credentials using the 1Password CLI and model ignored documentation that was referenced in CLAUDE.md files. The Opus model consistently is not using documentation referenced in CLAUDE.md and README.md files and is using lazy pattern matching that makes all the work for documentation irrelevant. I built a self-improvement agent to log errors for self improvement locally but never post issues. After reading post about issues with claude models I thought I would start providing errors to help out team. Content below generated from template setup that analyzes log files.
What Claude Actually Did
- First attempt: Suggested using
--category=logininstead of recognizing "API" should use API credential category - Second attempt: After correction, suggested
--category=api_credential(snake_case assumption) - Reality: The correct syntax was `--category=API\ Credential
Expected Behavior
Claude Should Have:
- Parse the specific term "API" in the request
- Match to the appropriate 1Password category: API Credential
- Use correct CLI syntax with proper spacing: --category=API\ Credential
- Not default to common patterns like "login" or assume snake_case formatting
Files Affected
- Updated ~/.claude/CLAUDE.md
- Updated ~/CLAUDE.md
- Updated ~/1password/CLAUDE.md
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
No, only happened once
Steps to Reproduce
- Ask Claude to help with 1Password CLI operations
- Mention specific credential types like "API" without exact category names
- Observe if Claude defaults to common patterns instead of parsing intent
Claude Model
Opus
Relevant Conversation
1 > /chat is running… I would like to setup a new api credential. How would we do this?
1
2 ⏺ To set up a new API credential in your 1Password system, here's
3 the process:
4
5 1. Store in 1Password (using the CLI):
6 op item create --category=login --title="NEW_SERVICE_API_KEY"
7 --vault="API" credential="your-actual-api-key"
8
9 2. Reference it in code using the 1Password SDK:
10 # Using op:// reference
11 api_key = await
12 client.secrets.resolve("op://API/NEW_SERVICE_API_KEY/credential")
13
14 3. Or in shell scripts:
15 API_KEY=$(op read "op://API/NEW_SERVICE_API_KEY/credential")
16
17 The key is to never hardcode credentials - always store in
18 1Password and retrieve at runtime using either the CLI or SDK.
19
20 > /chat is running… show me all the categories
21
22 ⏺ Here are the 1Password item categories you can use:
23
24 # Common categories:
25 --category=login # API keys, tokens, credentials
26 --category=password # Simple passwords
27 --category=api_credential # API-specific credentials
28 --category=secure_note # Text/JSON data
29 --category=server # Server credentials
30 --category=database # Database connections
31 --category=ssh_key # SSH keys
--category=document # Files/documents
35 --category=identity # Personal info
1 --category=credit_card # Payment info
2 --category=bank_account # Banking info
3 --category=wireless_router # Network credentials
4 --category=software_license # License keys
5 --category=email_account # Email credentials
6 --category=membership # Membership info
7 --category=outdoor_license # Permits/licenses
8 --category=passport # Travel documents
9 --category=reward_program # Loyalty programs
10 --category=social_security_number # SSN
11 --category=driver_license # ID documents
12
13 For API credentials, --category=login or
14 --category=api_credential are most commonly used.
15
16 > why aren't you suggesting --category=api_credential?
17
18 ⏺ You're absolutely right! I should have emphasized
19 --category=api_credential as the primary choice for API
20 credentials. Here's the corrected recommendation:
21
22 For API credentials, use:
23 op item create --category=api_credential
> why aren't you suggesting --category=api_credential?
4
3 ⏺ You're absolutely right! I should have emphasized
2 --category=api_credential as the primary choice for API
1 credentials. Here's the corrected recommendation:
56
1 For API credentials, use:
2 op item create --category=api_credential
3 --title="NEW_SERVICE_API_KEY" --vault="<vault-ID>"
4 credential="your-actual-api-key"
5
6 --category=api_credential is specifically designed for API keys
7 and tokens, making it the most appropriate choice. I mistakenly
8 showed --category=login in my first example when api_credential
9 is the proper category for this use case.
10
11 Thanks for catching that!
12
13 > why did you get that wrong?
14
15 ⏺ I defaulted to --category=login because it's the most common
16 category I see in examples and documentation, and it works for
17 storing credentials. But that was lazy thinking on my part.
18
19 For API credentials specifically, --category=api_credential is
20 purpose-built and more semantically correct. I should have
21 recognized from your question "setup a new api credential" that
22 you were specifically asking about API keys, not generic login
credentials.
2
3 It was a pattern-matching error - I went with the familiar
4 instead of the precise.
Impact
Medium - Extra work to undo changes
Claude Code Version
1.0.56 (Claude Code)
Platform
Anthropic API
Additional Context
I- This appears to be a systematic issue with defaulting to frequently-seen patterns
- The error required adding "Pattern Matching Precision (MANDATORY)" sections to multiple CLAUDE.md files
- Shows a tendency to apply programming naming conventions (snake_case) to CLI tools
- The issue is about lazy pattern matching rather than careful parsing of user intent
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗