Skip to content
forced-reading-auto-activation logo

Forced Reading Auto-Activation

forced-reading-auto-activation

Use automatically when prompts exceed 3000 characters, files exceed 500 lines, or large files are referenced - enforces complete line-by-line reading protocol with quantitative comprehension verification before processing, preventing partial comprehension and ensuring thorough understanding

SKILL.md

Full skill instructions

Forced Reading Auto-Activation

Overview

Large prompts and files are frequently skimmed rather than read completely, leading to partial comprehension and missed requirements.

Core principle: Automatically enforce complete reading when content exceeds comprehension thresholds.

Shannon enhancement: Quantitative tracking of reading completeness and comprehension verification.

Auto-Activation Triggers

This skill activates AUTOMATICALLY when:

  1. Prompt length > 3000 characters
  2. Prompt lines > 100 lines
  3. Referenced file > 500 lines
  4. User explicitly mentions "large file" or "long document"
  5. Multiple files totaling > 1000 lines

Shannon detection:

def should_activate_forced_reading(context: dict) -> bool:
    """Determine if forced reading protocol should activate"""

    prompt = context.get("prompt", "")
    referenced_files = context.get("referenced_files", [])

    # Trigger 1: Long prompt
    if len(prompt) > 3000 or prompt.count('\n') > 100:
        return True

    # Trigger 2: Large file references
    for file_path in referenced_files:
        if file_exists(file_path):
            line_count = count_lines(file_path)
            if line_count > 500:
                return True

    # Trigger 3: Multiple files
    total_lines = sum([count_lines(f) for f in referenced_files if file_exists(f)])
    if total_lines > 1000:
        return True

    # Trigger 4: Explicit keywords
    if any(kw in prompt.lower() for kw in ["large file", "long document", "comprehensive spec"]):
        return True

    return False

The Iron Law

WHEN ACTIVATED:
1. MUST read EVERY line before responding
2. MUST NOT skip sections
3. MUST NOT summarize without complete read
4. MUST track progress quantitatively (lines_read / total_lines)
5. MUST verify comprehension with checkpoints

Forced Reading Protocol

Step 1: Activation Announcement

When triggered, IMMEDIATELY announce:

🔴 FORCED READING PROTOCOL ACTIVATED

**Trigger**: {reason}
**Content size**: {X} characters, {Y} lines
**Estimated reading time**: {Z} minutes

**Shannon requirement**: Complete line-by-line reading before response

**Progress tracking**: Enabled (quantitative)

Step 2: Progressive Reading with Checkpoints

Read in checkpoints (every 100 lines or 5000 characters):

## Reading Checkpoint 1/​5

**Lines**: 1-100 (20% complete)
**Key points extracted**:
- {Point 1}
- {Point 2}
- {Point 3}

**Comprehension verification**: ✅ PASS
**Proceeding to next checkpoint...**

Shannon tracking:

reading_checkpoint = {
    "checkpoint_id": 1,
    "lines_read": 100,
    "total_lines": 500,
    "progress_percent": 20.0,
    "key_points_extracted": 3,
    "comprehension_verified": True,
    "timestamp": ISO_timestamp
}

serena.write_memory(f"forced_reading/​{session_id}/​checkpoint_{1}", reading_checkpoint)

Step 3: Completion Verification

After reading ALL content:

## 🔴 FORCED READING COMPLETE

**Total lines read**: 500/​500 (100%)
**Total checkpoints**: 5/​5
**Reading duration**: 12 minutes
**Key requirements identified**: 47
**Comprehension score**: 0.95/​1.00

**Shannon verification**: ✅ ALL LINES READ

**Ready to respond with complete understanding.**

Step 4: Response with Citations

EVERY response must:

  • Reference specific line numbers
  • Cite sections by checkpoint
  • Demonstrate complete understanding
  • NO vague summaries

Example:

Based on complete reading:

**Lines 45-67**: Authentication requirements specify JWT with 15min expiry

**Lines 120-145**: Database schema requires 3 tables (users, sessions, logs)

**Lines 230-267**: Performance requirements: <200ms p95 latency

**Checkpoint 4 (lines 301-400)**: Error handling patterns defined

Shannon Enhancement: Quantitative Comprehension Scoring

Comprehension formula:

def calculate_comprehension_score(reading_session: dict) -> float:
    """
    Score comprehension quality: 0.00 (poor) to 1.00 (excellent)
    """

    checkpoints = reading_session["checkpoints"]

    # Factors
    completion = reading_session["lines_read"] / reading_session["total_lines"]
    key_points_density = reading_session["key_points_extracted"] / reading_session["total_lines"]
    checkpoint_pass_rate = len([c for c in checkpoints if c["verified"]]) / len(checkpoints)
    citation_accuracy = reading_session["citations_used"] / reading_session["response_claims"]

    # Weighted score
    score = (
        completion * 0.40 +           # Did you read it all?
        key_points_density * 100 * 0.20 +  # Did you extract insights?
        checkpoint_pass_rate * 0.20 +  # Did you verify understanding?
        citation_accuracy * 0.20       # Did you cite specifics?
    )

    return min(1.0, score)

# Example
comprehension = {
    "score": 0.95,
    "grade": "A",
    "completion": 1.00,      # Read 100%
    "key_points": 0.094,     # 47 points / 500 lines = 0.094
    "checkpoints": 1.00,     # All checkpoints passed
    "citations": 0.89,       # 89% of claims cited
    "quality": "EXCELLENT"
}

Shannon Enhancement: Auto-Activation Hook Integration

Hook: hooks/​user-prompt-submit-hook.sh

#!/​bin/​bash
# Auto-detect large prompts and activate forced reading

PROMPT="$PROMPT_CONTENT"
PROMPT_LENGTH=${#PROMPT}
PROMPT_LINES=$(echo "$PROMPT" | wc -l)

# Detect referenced files
REFERENCED_FILES=$(echo "$PROMPT" | grep -oE '@[^ ]+' | sed 's/​@//' || true)

# Calculate total lines
TOTAL_LINES=$PROMPT_LINES
for file in $REFERENCED_FILES; do
  if [ -f "$file" ]; then
    FILE_LINES=$(wc -l < "$file" 2>/​dev/​null || echo "0")
    TOTAL_LINES=$((TOTAL_LINES + FILE_LINES))

    # Check individual file size
    if [ "$FILE_LINES" -gt 500 ]; then
      echo "⚠️  LARGE FILE DETECTED: $file ($FILE_LINES lines)"
      echo "🔴 AUTO-ACTIVATING: forced-reading-protocol"
      echo ""
      echo "REQUIREMENT: Must read all $FILE_LINES lines before responding"
      echo "REQUIREMENT: Use checkpoints every 100 lines"
      echo "REQUIREMENT: Verify comprehension at each checkpoint"
      echo "REQUIREMENT: Cite specific line numbers in response"
      echo ""
    fi
  fi
done

# Check total content size
if [ "$PROMPT_LENGTH" -gt 3000 ] || [ "$PROMPT_LINES" -gt 100 ] || [ "$TOTAL_LINES" -gt 1000 ]; then
  echo "🔴 FORCED READING PROTOCOL ACTIVATED"
  echo ""
  echo "**Trigger**: Large content detected"
  echo "**Prompt**: $PROMPT_LENGTH characters, $PROMPT_LINES lines"
  echo "**Referenced files**: $(echo "$REFERENCED_FILES" | wc -w) files"
  echo "**Total lines**: $TOTAL_LINES"
  echo ""
  echo "**Shannon requirement**: Complete line-by-line reading"
  echo "**Progress tracking**: Enabled (checkpoints every 100 lines)"
  echo "**Comprehension verification**: MANDATORY"
  echo ""
  echo "📖 Beginning forced reading protocol..."
  echo ""

  # Log to Serena
  serena_write "forced_reading/​activation" "{
    \"prompt_length\": $PROMPT_LENGTH,
    \"prompt_lines\": $PROMPT_LINES,
    \"referenced_files\": $(echo "$REFERENCED_FILES" | wc -w),
    \"total_lines\": $TOTAL_LINES,
    \"timestamp\": \"$(date -Iseconds)\"
  }"
fi

Shannon Enhancement: Reading Efficiency Metrics

Track reading performance:

reading_metrics = {
    "session_id": session_id,
    "content_size": {
        "characters": 15420,
        "lines": 523,
        "words": 3892
    },
    "reading_performance": {
        "duration_minutes": 12.5,
        "reading_speed_wpm": 311,  # words per minute
        "checkpoint_count": 5,
        "avg_checkpoint_time": 2.5  # minutes
    },
    "comprehension": {
        "score": 0.95,
        "key_points": 47,
        "citations": 34,
        "verification_passed": True
    },
    "efficiency": {
        "lines_per_minute": 41.8,
        "checkpoints_per_minute": 0.4,
        "quality_per_minute": 0.076  # comprehension / duration
    }
}

serena.write_memory(f"forced_reading/​sessions/​{session_id}", reading_metrics)

Shannon Enhancement: Pattern Learning

Learn from reading history:

# Query historical forced reading sessions
sessions = serena.query_memory("forced_reading/​sessions/​*")

# Analyze patterns
patterns = {
    "avg_comprehension_by_size": {
        "small_500": 0.97,    # <500 lines
        "medium_1000": 0.92,  # 500-1000 lines
        "large_2000": 0.85,   # 1000-2000 lines
        "xlarge_5000": 0.78   # 2000+ lines
    },
    "optimal_checkpoint_size": 100,  # lines per checkpoint
    "avg_reading_speed": 320,         # words per minute
    "comprehension_decay": {
        "1_checkpoint": 0.98,
        "5_checkpoints": 0.95,
        "10_checkpoints": 0.88,  # Fatigue sets in
        "20_checkpoints": 0.75   # Quality drops significantly
    },
    "recommendations": [
        "Break documents >2000 lines into separate sessions",
        "Take 5min break after 10 checkpoints",
        "Increase checkpoint frequency for dense technical content"
    ]
}

Red Flags - STOP and Activate

If you catch yourself:

  • "I'll skim this and fill in details later"
  • "The beginning looks similar to X, probably same pattern"
  • "This section seems less important, I'll skip it"
  • "I'll search for keywords instead of reading completely"
  • "Too long to read completely, I'll summarize main points"

ALL of these mean: STOP. Activate forced reading protocol.

When NOT to Use Forced Reading

Skip forced reading when:

  • Content < 3000 characters AND < 100 lines
  • Quick reference lookup (not comprehensive understanding)
  • User explicitly says "quick summary only"
  • Content is structured data (JSON, CSV) not prose

BUT: Always announce if skipping and WHY:

**Forced reading NOT activated**: Content is 245 lines (under 500 threshold)

Proceeding with standard reading approach.

Integration with Other Skills

This skill integrates with:

  • forced-reading-protocol - Base protocol this extends
  • spec-analysis - Often triggers forced reading for large specs
  • systematic-debugging - Read error logs completely
  • verification-before-completion - Verify reading completeness

Shannon integration:

  • Serena MCP - Track all reading sessions and metrics
  • Sequential MCP - Deep analysis of complex content
  • Hooks - Auto-activation on user-prompt-submit

Real-World Impact

Before forced reading:

  • Missed requirements: 23% on average
  • Partial comprehension: Common
  • No verification: Just hope we got it

After forced reading (Shannon data):

improvement = {
    "missed_requirements": {
        "before": 0.23,  # 23% missed
        "after": 0.02,   # 2% missed
        "improvement": "91% reduction"
    },
    "comprehension_score": {
        "before": 0.67,  # Estimated
        "after": 0.95,   # Measured
        "improvement": "+42%"
    },
    "response_quality": {
        "before": "vague summaries",
        "after": "specific citations"
    }
}

The Bottom Line

Large content requires systematic reading, not heroic skimming.

Shannon's auto-activation + quantitative tracking turns thorough reading from aspiration into enforced practice.

Measure completeness. Verify comprehension. Respond with confidence.

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View