Structuring Context for Effective AI Development

Author: Tom Cranstoun
Tools like Cursor.ai are changing how we approach coding tasks. One crucial aspect of leveraging AI in development is providing the proper context. This post will explore the three-tiered structure for creating context, ensuring your AI assistant has all the information it needs to be a valuable coding partner.

The Three-Part Context Structure

When working with AI, it's essential to structure your context to provide comprehensive information to the AI. This structure typically consists of Context files, Cursor Rules and The Prompt.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 450" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">

<rect width="100%" height="100%" fill="#1e1e1e"/>


<!-- Top Level -->

<rect x="270" y="20" width="60" height="30" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="300" y="40" font-family="Arial" font-size="10" fill="white" text-anchor="middle">Plan</text>


<!-- Second Level -->

<rect x="50" y="100" width="100" height="30" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="100" y="120" font-family="Arial" font-size="10" fill="white" text-anchor="middle">Context File</text>


<rect x="250" y="100" width="100" height="30" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="300" y="120" font-family="Arial" font-size="10" fill="white" text-anchor="middle">.cursorrules</text>


<rect x="450" y="100" width="100" height="30" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="500" y="120" font-family="Arial" font-size="10" fill="white" text-anchor="middle">Prompt</text>


<!-- Third Level (all boxes same height) -->

<rect x="20" y="230" width="160" height="40" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="100" y="250" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Domain Knowledge,</text>

<text x="100" y="260" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Dev Environment</text>


<rect x="220" y="230" width="160" height="40" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="300" y="250" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Project Requirement</text>

<text x="300" y="260" font-family="Arial" font-size="8" fill="white" text-anchor="middle"> </text>


<rect x="420" y="230" width="160" height="40" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="500" y="250" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Specific Task</text>

<text x="500" y="260" font-family="Arial" font-size="8" fill="white" text-anchor="middle"> </text>


<!-- Bottom Level -->

<rect x="270" y="400" width="60" height="30" fill="none" stroke="#ffa500" stroke-width="2"/>

<text x="300" y="420" font-family="Arial" font-size="10" fill="white" text-anchor="middle">Deliverables</text>


<!-- Connections with Arrowheads -->

<line x1="300" y1="50" x2="105" y2="95" stroke="#ffa500" stroke-width="2"/>

<polygon points="100,100 110,90 115,100" fill="#ffa500"/>

<line x1="300" y1="50" x2="300" y2="95" stroke="#ffa500" stroke-width="2"/>

<polygon points="300,100 295,90 305,90" fill="#ffa500"/>

<line x1="300" y1="50" x2="495" y2="95" stroke="#ffa500" stroke-width="2"/>

<polygon points="500,100 490,90 485,100" fill="#ffa500"/>


<line x1="100" y1="130" x2="100" y2="225" stroke="#ffa500" stroke-width="2" stroke-dasharray="5,5"/>

<polygon points="100,230 95,220 105,220" fill="#ffa500"/>

<line x1="300" y1="130" x2="300" y2="225" stroke="#ffa500" stroke-width="2" stroke-dasharray="5,5"/>

<polygon points="300,230 295,220 305,220" fill="#ffa500"/>

<line x1="500" y1="130" x2="500" y2="225" stroke="#ffa500" stroke-width="2" stroke-dasharray="5,5"/>

<polygon points="500,230 495,220 505,220" fill="#ffa500"/>


<line x1="100" y1="270" x2="295" y2="395" stroke="#ffa500" stroke-width="2"/>

<polygon points="300,400 290,385 300,390" fill="#ffa500"/>

<line x1="300" y1="270" x2="300" y2="395" stroke="#ffa500" stroke-width="2"/>

<polygon points="300,400 295,390 305,390" fill="#ffa500"/>

<line x1="500" y1="270" x2="305" y2="395" stroke="#ffa500" stroke-width="2"/>

<polygon points="300,400 310,385 300,390" fill="#ffa500"/>


<!-- Labels -->

<rect x="110" y="170" width="50" height="14" fill="#1e1e1e"/>

<text x="135" y="180" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Defines</text>


<rect x="310" y="170" width="50" height="14" fill="#1e1e1e"/>

<text x="335" y="180" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Specifies</text>


<rect x="510" y="170" width="70" height="14" fill="#1e1e1e"/>

<text x="545" y="180" font-family="Arial" font-size="8" fill="white" text-anchor="middle">Requirements</text>

</svg>

1. Top Level: The Context File

At the highest level, we have the context file. This file is the foundation, providing a broad overview of your project's technical landscape. It typically includes:

This file gives AI a general understanding of the technological ecosystem within which it works.

2. Second Level: .cursorrules (in Cursor your IDE may vary)

The rules file (.cursorrules file in cursor) bridges the general context and specific tasks. It outlines:

This file helps ensure the AI's output aligns with your project's specific needs and standards.

3. Bottom Level: Prompt for the AI

At the most granular level, we have the prompt sent to the AI. This is where you specify:

This prompt is tailored to each coding task, allowing you to leverage the AI's capabilities for various development needs.

Best Practices for Context Creation

To make the most of this structure, consider the following tips:

  1. Be Comprehensive, Yet Concise: Provide enough detail at each level to give the AI a clear understanding, but avoid overwhelming it with unnecessary information.
  2. Update Regularly: As your project evolves, update your context file and .cursorrules to reflect any changes in your development environment or requirements.
  3. Be Specific in Your Prompts. The more precise your task descriptions, the better the AI can assist you.
  4. Iterate and Refine: Pay attention to the AI's outputs and refine your context and prompts based on the results you receive.

By following this structured approach to context creation in Cursor.ai, you can significantly enhance the effectiveness of AI-assisted development in your projects.

Providing clear, relevant information at each level is key, enabling the AI to be a more valuable and accurate coding companion.

Digital Domain Technologies provides expert Adobe Experience Manager (AEM) consultancy. We have collaborated with some of the world’s leading brands across various AEM platforms, including AEM Cloud, on-premise solutions, Adobe Managed Services, and Edge Delivery Services. Our portfolio includes partnerships with prominent companies such as Twitter (now X), EE, Nissan/Renault Alliance Ford, Jaguar Land Rover, McLaren Sports Cars, Hyundai Genesis, and many others.

/fragments/ddt/proposition

Related Articles

Back to Top