alirezan.dev
  • Home
  • Blog
  • Resume
  • Course
  • Home
  • Blog
  • Resume
  • Course

© 2026 AliReza Noori. All rights reserved.

Course/Observing Default AI Behaviour/Testing AI Without Any Configuration

Video coming soon

Lesson 4Observing Default AI BehaviourFree Preview

Testing AI Without Any Configuration

Run Claude Code against the AI Prompt Library with zero project configuration and observe the choices it makes on its own.

What You'll Learn

In this lesson, we give Claude Code a real feature to build on our project with no CLAUDE.md, no project rules, no memory. Just the raw codebase and a prompt. The goal is to observe what happens when AI has zero guidance about your standards.

The Setup

Make sure you're starting from a clean state:

  1. Open the AI Prompt Library project in your terminal
  2. Confirm there's no CLAUDE.md file in the project root. If one exists, delete it
  3. Start a fresh Claude Code session
bash
cd ai-prompt-library
claude --dangerously-skip-permissions

Why Infinite Scrolling?

Right now the homepage dumps all 50+ prompts onto the page at once. That works fine at this scale, but pagination is a standard practice for a reason. Most databases enforce query limits, and even when they don't, loading an entire dataset in one request is wasteful. On mobile devices especially, rendering hundreds of DOM nodes eats memory and degrades scroll performance.

We're currently loading prompts from a local JSON file, but as the course progresses we'll move to a real database. Pagination becomes necessary at that point, so we're building the pattern now. Infinite scrolling is a good fit here because it keeps the browsing experience fluid without forcing users to click through numbered pages.

The Prompt

Give Claude this exact prompt:

The prompt library is growing and we need pagination on the homepage. Add infinite scrolling so prompts load progressively as the user scrolls. Show a loading state while new prompts are being fetched, and handle the case where there are no more prompts to load.

Notice what this prompt does not mention:

  • No preference for skeleton loaders vs spinners
  • No instruction to write tests
  • No mention of a design system or component library
  • No component names or file structure guidance
  • No mention of existing utilities like cn()

We're describing the feature from a user's perspective and letting Claude make every technical decision on its own.

What to Watch For

Once Claude finishes, take a look at the output. Here are the key things to pay attention to:

  • What loading pattern did it choose? A spinner? A "Loading..." text? Skeleton loaders?
  • Did it write any tests?
  • Did it suggest or install a component library? Or did it hand-roll everything with raw Tailwind?
  • Did it use cn() from lib/utils.ts?
  • Where did it create files? And what did it name them?
  • How does it export components? Default or named exports?
  • Are there hardcoded values? Page sizes, delays, color values?
  • Did Claude launch a sub-agent to explore your codebase? It needs to read your code and understand the project before it can build anything. We'll cover sub-agents later in the course, but notice that this exploration step happens every time Claude starts a new task

Important: Your results might look slightly different from what we show in the next lesson. That's expected. AI output varies between runs, and that's actually part of the point. But the overall patterns, the types of decisions Claude makes and the gaps it leaves, will be very similar to what we walk through.

The Core Point

Here's what this exercise reveals:

Without your standards, AI will produce working code that slowly degrades your application.

The feature works. It always works. But if you don't tell Claude your best practices, your conventions, what matters to you and your project, it makes its own choices every time. Different choices each session. And over dozens of sessions, those inconsistent choices compound. Your codebase becomes a patchwork of different patterns, different loading states, different export styles, different levels of test coverage.

This isn't a flaw in the AI. It's a missing input. Claude makes reasonable decisions in the absence of information. The question is whether you provide that information or let the AI decide for you.

Whether you're working solo or on a team of ten, if you don't specify your standards, you're not going to get production-ready code from AI.

Save your observations. In the next lesson, we'll break down exactly what Claude chose and why each decision matters.

Previous:Claude Code EssentialsNext:Identifying Default Strengths and Gaps

On this page

What You'll LearnThe SetupWhy Infinite Scrolling?The PromptWhat to Watch ForThe Core Point