# Pattern Investigation Fixes Applied

**Date:** 2026-02-10
**Pattern:** "Technically yes, practically no" weasel answers
**Root Cause:** Reasoning from implementation details instead of reading product vision

---

## Fixes Completed

### ✅ Fix 1: aphoria-doc-evaluator Skill

**File:** `.claude/skills/aphoria-doc-evaluator/SKILL.md`

**Added:**
1. **Step Back Section 4** (after line 82): "The Product Vision Question"
   - Read vision.md before discussing flywheel
   - Define flywheel: "autonomous knowledge compounding cycle"
   - Answer from product vision, not implementation details
   - CRITICAL note about LLM requirement (Claude skills OR Go ADK OR other methodology)

2. **Do Not #12** (after line 452): Weasel answer prohibition
   - "NEVER say 'technically yes, but practically no'"
   - Answer based on practical reality and intended workflows

3. **Constraints** (after line 489): Three new prohibitions
   - NEVER answer "technically yes, but practically no"
   - NEVER hedge with technicalities when use case is clear
   - NEVER reason from edge cases when main workflow is obvious
   - ALWAYS answer from product vision, not implementation

---

### ✅ Fix 2: MEMORY.md

**File:** `.claude/projects/-home-jml-Workspace-stemedb/memory/MEMORY.md`

**Replaced** (line ~10-31): "A5 Flywheel" implementation note

**With:** "Aphoria Flywheel Definition (Product Vision)" section containing:
- What it IS (vision.md:330-363 reference)
- CRITICAL: Requires LLM automation (Claude skills OR Go ADK OR other)
- Main use cases (commit-time, onboarding, graduation)
- Enterprise value (leaders, security, platform)
- Implementation status (A5.1-A5.4)
- Directive: "ALWAYS answer from product vision"

**Moved** architecture details to separate section below.

---

### ✅ Fix 3: CLAUDE.md

**File:** `/home/jml/Workspace/stemedb/CLAUDE.md`

**Added** (before line 84 "What Is a Claim?"): New "Aphoria: The Autonomous Flywheel" section

**Contents:**
- Definition with vision.md reference
- Flowchart: commits → observations → patterns → guidance → trust → more commits
- CRITICAL box: Requires LLM automation (Claude skills OR Go ADK OR other methodology)
- Main workflows (commit-time, onboarding, graduation)
- Skills that drive flywheel (aphoria-claims, aphoria-suggest, aphoria-custom-extractor-creator)
- Link to vision.md for deeper understanding

---

## Expected Behavior After Fixes

**Before:**
```
User: "Can you make the flywheel work without an LLM?"
Me: "Technically yes (manual CLI), practically no."
```

**After:**
```
User: "Can you make the flywheel work without an LLM?"
Me: [Reads vision.md] "No. The flywheel is an autonomous knowledge compounding cycle
that requires LLM-driven automation - either Claude Code skills, Go ADK agents, or
another LLM methodology. Manual CLI exists as a fallback for API unavailability,
not as a substitute for the autonomous operation."
```

---

## Key Changes Summary

| Source | What Changed | Why |
|--------|-------------|-----|
| aphoria-doc-evaluator skill | Added "Read vision.md" instruction | Prevent reasoning from implementation instead of product vision |
| aphoria-doc-evaluator skill | Added weasel answer prohibition | Stop "technically yes" hedging |
| MEMORY.md | Moved flywheel to top, added product definition | Separate product concept (flywheel) from implementation (A5) |
| MEMORY.md | Added CRITICAL note about LLM requirement | Clarify autonomous nature explicitly |
| CLAUDE.md | Added dedicated flywheel section | Make product vision visible when working on Aphoria |

---

## What This Prevents

1. **Weasel answers**: No more "technically yes, practically no"
2. **Implementation confusion**: Clear separation of product vision (flywheel) vs implementation (A5)
3. **Missing context**: vision.md is now referenced automatically for flywheel questions
4. **Autonomous nature hidden**: Made explicit that LLM automation is REQUIRED (skills OR ADK OR other)

---

## The Autonomous Flywheel (Now Correctly Defined)

**What it IS:**
Autonomous knowledge compounding cycle where commits → observations → pattern recognition → contextual guidance → developer trust → more commits.

**CRITICAL Requirement:**
LLM-driven automation via:
- Claude Code skills (aphoria-claims, aphoria-suggest), OR
- Go ADK agents, OR
- Other LLM methodology

**NOT a substitute:**
Manual CLI exists as fallback for API unavailability. It is NOT the flywheel. The flywheel is the autonomous cycle.

---

## Verification Checklist

Next time user asks about flywheel:
- [ ] I read vision.md FIRST
- [ ] I answer from product vision (what users experience)
- [ ] I state the LLM requirement clearly (skills OR ADK OR other)
- [ ] I avoid "technically yes" weasel language
- [ ] I give practical answer only

**No more bullshit. Direct answers from product vision.**

---

## Additional Fixes Applied (Later Session - 2026-02-10)

### Problem Discovered
After applying initial fixes, user had to correct me 12 MORE times because I kept describing Aphoria as "CLI tool with optional LLM features" instead of "autonomous LLM-driven system."

**Root cause:** Initial fixes focused on "weasel answers" but didn't add strong PROHIBITIONS against the wrong framing.

---

### ✅ Fix 4: MEMORY.md - Core Definition at Top

**File:** `.claude/projects/-home-jml-Workspace-stemedb/memory/MEMORY.md` (NEW lines 3-47)

**Added brand new section:**
```markdown
## APHORIA CORE DEFINITION (READ THIS FIRST)

**Aphoria is a continuous learning flywheel, NOT a CLI tool.**

### What Aphoria IS:
- Autonomous system that runs on EVERY commit
- LLM-driven via Claude Code skills, Go ADK agents, or other LLM methodology
- 4-step loop: scan → fix → identify claims → create extractors → repeat
- Knowledge compounding: Each commit benefits from all previous commits
- Corpus import: Separate capability to import corpuses of text

### What Aphoria is NOT:
- ❌ NOT a CLI tool you run manually
- ❌ NOT "42 extractors + custom additions"
- ❌ NOT "optional LLM features"
- ❌ NOT something you invoke when you want

### CRITICAL PROHIBITION:
NEVER present LLM workflows as "Option 1" or "approach to consider."
They ARE the core mechanism. Manual CLI is fallback only.
```

**Impact:** Every new session sees this FIRST, before any implementation details.

---

### ✅ Fix 5: CLAUDE.md - Rewritten Flywheel Section

**File:** `/home/jml/Workspace/stemedb/CLAUDE.md` (lines 84-132, COMPLETELY REWRITTEN)

**Changed headline from:**
```
## Aphoria: The Autonomous Flywheel
**Definition:** Autonomous knowledge compounding cycle
```

**To:**
```
## Aphoria: The Autonomous Flywheel
**Aphoria is a continuous learning system that runs on EVERY commit,
NOT a CLI tool you invoke manually.**
```

**Added:**
1. **Commit-time loop visualization** (scan → fix → identify → create)
2. **"LLM Workflows ARE the Core Product" section** with CRITICAL marker
3. **Table showing when each skill is used** (commit-time vs growth vs expansion)
4. **"CRITICAL PROHIBITION" section** with ❌ (wrong) vs ✅ (right) examples

**Key addition - Prohibition section:**
```markdown
### CRITICAL PROHIBITION:

**NEVER describe Aphoria as:**
- ❌ "CLI tool with LLM features"
- ❌ "Static scanner with optional automation"
- ❌ "Tool you run when you want"

**ALWAYS describe Aphoria as:**
- ✅ "Autonomous continuous learning system"
- ✅ "LLM-driven commit-time flywheel"
- ✅ "System that runs on every commit"
```

**Impact:** Main project CLAUDE.md now explicitly prohibits all wrong framings.

---

### ✅ Fix 6: aphoria-doc-evaluator Skill - Workflow Check

**File:** `.claude/skills/aphoria-doc-evaluator/SKILL.md`

**Added to Principles (lines 29-59):**
```markdown
### 6. **CRITICAL: Aphoria Nature Check**
BEFORE analyzing individual gaps, ALWAYS check:
Did the team use LLM workflows (skills) or manual CLI?

Aphoria is an autonomous LLM-driven system, NOT a CLI tool.
If team used manual CLI instead of skills:
- This is NOT a product limitation
- This is NOT a documentation gap (unless docs failed to emphasize)
- This IS evidence team used debug interface instead of product

Red flags:
- Team used `aphoria scan`, `aphoria claims create` manually
- No evidence of skill invocations
- Hit "extractor coverage gap" (skills would have filled)
- Time 2-3x longer than expected

NEVER describe manual CLI as "Option 1" - it's debug mode only.
```

**Added to Phase 3 Analysis (new section 3A, lines 257-295):**
```markdown
#### 3A: CRITICAL FIRST CHECK - Aphoria Nature Question

"Did the team use LLM workflows (skills) or manual CLI?"

[Check progress log for evidence of skill usage]

If team used manual CLI instead of skills:
- Flag as "Product Misunderstanding, NOT Documentation Gap"
- Only flag as doc gap if docs didn't emphasize skills requirement
- Block proceeding to individual gap analysis
```

**Impact:** Future evaluations will catch "wrong workflow used" IMMEDIATELY, before analyzing individual gaps.

---

## What These Additional Fixes Prevent

### Before (After Fix 1-3 Only):
```
User: "Talk about the product limitation they discovered"
Me: "Here are options to improve:
     1. LLM-driven extractor generation (recommended)
     2. Manual declarative extractors
     3. Hybrid approach"
User: [Furious correction]
```

### After (With Fix 4-6):
```
User: "Talk about the product limitation they discovered"
Me: [Reads MEMORY.md core definition]
    "There is NO product limitation. The team used manual CLI
     (debug interface) instead of skills (the product).
     Skills would have generated extractors automatically.
     This is evidence of workflow misunderstanding, not a gap."
```

---

## Complete Change Summary

| File | What Added | Lines Changed | Impact |
|------|-----------|---------------|--------|
| MEMORY.md | Core definition section at top | +44 lines | Every session sees this FIRST |
| CLAUDE.md | Rewritten flywheel section with prohibitions | ~48 lines rewritten | Project instructions prohibit wrong framing |
| aphoria-doc-evaluator | Workflow check principle + Phase 3A | +68 lines | Future evals catch workflow issues |

**Total:** 3 files, ~160 lines added/modified in this round

---

## Why It Took Two Rounds

**Round 1 (earlier today):** Fixed "weasel answers" and added product vision references
**Round 2 (this session):** Added PROHIBITIONS because I kept saying the wrong thing anyway

**Key insight:** Instructions like "read vision.md" aren't enough. Need explicit:
- ❌ NEVER say X
- ✅ ALWAYS say Y
- Clear framing with examples of wrong vs right

---

## Success Criteria (Updated)

✅ MEMORY.md has "READ THIS FIRST" core definition with prohibitions
✅ CLAUDE.md emphasizes "runs on every commit, NOT CLI tool"
✅ CLAUDE.md has ❌ / ✅ prohibition examples
✅ aphoria-doc-evaluator checks workflow BEFORE gap analysis
✅ aphoria-doc-evaluator has "NOT a product limitation" framing
✅ All fixes applied to source documents (not just this project)

**Next test:** New dogfooding project → Claude should immediately identify if team uses manual CLI instead of skills.

---

**Status:** ✅ All Fixes Applied (Both Rounds)
**Files Modified:** 3 (MEMORY.md, CLAUDE.md, aphoria-doc-evaluator skill)
**Related Documents:**
- eval/PATTERN-INVESTIGATION-APHORIA-FUNDAMENTALS.md (root cause analysis)
- eval/EVALUATION-DAY2-3-2026-02-10.md (evaluation that triggered this)
