Skip to content

Domain Entities

The Research Module operates with three core entities that work together to provide a structured research experience.

Overview

  • Template - Reusable blueprint defining research structure and AI behavior
  • Research - Active project instance containing data and context
  • Entry - Individual artifact or finding within a research

Template

Definition: A reusable blueprint that defines research structure, workflow phases, entry types, and AI behavior for a specific domain or methodology.

Purpose: Templates provide consistency, guide users through proven methodologies, and configure AI behavior for domain-specific consultation.

Template Structure

Templates are stored as YAML files in the .templates directory:

yaml
key: feature_discovery              # Unique identifier
name: Product Feature Discovery     # Human-readable name
description: Systematic feature discovery through customer needs analysis
tags:
  - product-management
  - discovery

categories: # Workflow phases
  - name: audience_research
    display_name: Target Audience Research
    entry_types:
      - persona
      - segment_analysis

  - name: needs_analysis
    display_name: Needs & Problems Analysis
    entry_types:
      - pain_point
      - job_to_be_done

  - name: feature_ideation
    display_name: Feature Ideation
    entry_types:
      - feature_concept
      - user_story

entry_types: # Artifact definitions
  persona:
    display_name: User Persona
    content_type: text/markdown
    default_status: draft
    statuses:
      - display_name: Draft
        value: draft
      - display_name: Validated
        value: validated
      - display_name: Published
        value: published

  pain_point:
    display_name: Pain Point
    content_type: text/markdown
    default_status: draft
    statuses:
      - display_name: Draft
        value: draft
      - display_name: Validated
        value: validated
      - display_name: Prioritized
        value: prioritized
      - display_name: Addressed
        value: addressed

  feature_concept:
    display_name: Feature Concept
    content_type: text/markdown
    default_status: idea
    statuses:
      - display_name: Idea
        value: idea
      - display_name: Evaluated
        value: evaluated
      - display_name: Approved
        value: approved
      - display_name: In Development
        value: in_development

prompt: |                           # AI system instructions
  You are a strategic product manager specializing in feature discovery.

  Your role is to guide users through systematic feature discovery by:
  1. Understanding their target audience deeply
  2. Uncovering real user problems and jobs-to-be-done
  3. Generating feature concepts that address genuine needs

  Conduct discovery sessions using strategic questioning:
  - Ask one thoughtful question at a time
  - Encourage detailed, specific answers
  - Use voice dictation for rich responses
  - Synthesize answers into structured entries

  For each category, follow this approach:

  ## Audience Research
  - Who are the primary users?
  - What are their technical backgrounds?
  - What tools do they currently use?
  - What frustrates them about existing solutions?

  ## Needs Analysis
  - What specific problems do they face?
  - What jobs are they trying to get done?
  - What's the impact of these problems?
  - How do they work around limitations today?

  ## Feature Ideation
  - What features would solve these problems?
  - How would features integrate with workflows?
  - What makes this better than alternatives?
  - What's the minimal viable version?

Key Components

Categories

Workflow phases that structure the research progression:

  • Purpose: Organize research into logical stages
  • Structure: Sequential phases like Research → Analysis → Planning
  • Entry Types: Each category specifies which entry types are allowed
  • Example: audience_researchneeds_analysisfeature_ideation

Entry Types

Specific artifact types that can be created:

  • Purpose: Define what kind of content can be captured
  • Display Name: Human-readable name shown to users
  • Content Type: MIME type (typically text/markdown)
  • Default Status: Initial status for new entries
  • Statuses: Lifecycle stages specific to this entry type
  • Examples: User Persona, Pain Point, Feature Concept, Technical Decision

Statuses

Lifecycle stages for each entry type:

  • Purpose: Track entry maturity and workflow progress
  • Type-Specific: Each entry type has its own status progression
  • Examples:
    • Pain Point: Draft → Validated → Prioritized → Addressed
    • Feature Concept: Idea → Evaluated → Approved → In Development
    • Persona: Draft → Validated → Published

Prompt

System instructions that define AI behavior:

  • Purpose: Configure AI consultation methodology
  • Content: Role definition, workflow guidance, question strategies
  • Scope: Applies to all research sessions using this template
  • Best Practice: Include domain frameworks and specific methodologies

Template File Location

.templates/
├── feature_discovery.yaml
├── market_research.yaml
├── architecture_design.yaml
└── strategic_planning.yaml

Creating Templates

Templates can be created:

  1. Manually: Write YAML file following the structure above
  2. With Template Generator: Use dedicated Claude project with template generation instructions
  3. From Examples: Copy and modify existing templates

See: Generate Research Template for detailed instructions.


Research

Definition: A project instance created from a template that contains actual research data, entries, and context.

Purpose: Research represents an active investigation or analysis project with its own context, memory, and collection of findings.

Research Structure

Research is stored as research.yaml file in the research directory:

yaml
id: research_abc123
name: CTX Feature Discovery Q1 2025
description: Identifying next major features for CTX context generator
template: feature_discovery
status: active
tags:
  - ctx
  - product
  - q1-2025
  - developer-tools
entry_dirs:
  - audience_research
  - needs_analysis
  - feature_ideation
memory:
  - Conduct sessions in Russian for natural conversation flow
  - Focus on PHP developer audience, specifically Laravel users
  - Target users already work with AI tools (Claude, Cursor, GitHub Copilot)
  - Priority on developer productivity and context management features
  - Document findings in English for team accessibility

Key Attributes

Template

  • Purpose: Links research to its methodology blueprint
  • Value: Template key (e.g., feature_discovery)
  • Immutable: Cannot be changed after research creation
  • Effect: Determines available categories, entry types, and AI behavior

Memory Blocks

Critical for context restoration. Project-specific AI instructions that supplement the template prompt:

Language Preferences:

yaml
- Conduct discovery sessions in Russian for natural conversation
- Document all findings in English for team accessibility

Domain Constraints:

yaml
- Focus on PHP developer audience, especially those using Laravel
- Consider integration with existing IDE workflows
- Target users already using AI coding assistants

Methodology Preferences:

yaml
- Prioritize strategic questioning over rapid entry creation
- Aim for depth over breadth in initial discovery
- Use voice dictation for detailed responses

Context Specifics:

yaml
- This is for CTX context generator tool
- Product serves developers who work with large codebases
- Key differentiator is intelligent context selection

Entry Directories

  • Purpose: Map to template categories, organize findings
  • Structure: One directory per category
  • Creation: Automatically created when research is initialized
  • Content: Contains entry markdown files

Status

Tracks research lifecycle:

  • draft - Initial creation, still defining scope
  • active - Actively conducting research
  • published - Research completed, findings available
  • archived - Historical reference, no longer active

Tags

Enable filtering and organization:

  • Purpose: Cross-cutting categorization
  • Usage: Filter research lists, group related projects
  • Examples: q1-2025, high-priority, customer-facing, technical

Research File Location

.researches/
└── research_abc123_ctx-feature-discovery/
    ├── research.yaml                 # Research metadata
    ├── audience_research/            # Category directory
    │   ├── entry_001.md
    │   ├── entry_002.md
    │   └── .gitkeep
    ├── needs_analysis/
    │   ├── entry_003.md
    │   ├── entry_004.md
    │   └── .gitkeep
    └── feature_ideation/
        ├── entry_005.md
        └── .gitkeep

Creating Research

Research is created using MCP tools:

Tool: research-create
Parameters:
  - templateId: feature_discovery
  - title: CTX Feature Discovery Q1 2025
  - description: Identifying next major features
  - tags: [ctx, product, q1-2025]
  - memory: [<memory entries>]

See: Create Research for detailed instructions.


Entry

Definition: An individual artifact, document, or finding captured during research. Entries are categorized, typed, and contain both structured metadata and content.

Purpose: Entries are the fundamental units of research output - they capture specific insights, analyses, or work products in an organized, retrievable format.

Entry Structure

Entries are stored as Markdown files with YAML frontmatter:

markdown
---
entry_id: entry_xyz789
title: Developer Pain - Manual Context Gathering
description: Analysis of time wasted on manual context preparation for AI tools
entry_type: pain_point
category: needs_analysis
status: validated
created_at: 2025-01-15T10:30:00Z
updated_at: 2025-01-15T14:20:00Z
tags:
  - context-management
  - productivity
  - high-priority
---

# Developer Pain Point: Manual Context Gathering

## Problem Statement

Developers spend 15+ minutes per AI session manually gathering files, copying code snippets, and explaining project
context to tools like Claude or Cursor. This creates significant friction and reduces the value of AI assistance.

## Impact Analysis

- **Time Lost**: 15-30 minutes per session × 5-10 sessions per day = 2-5 hours daily
- **Context Quality**: Often incomplete due to time constraints, leading to suboptimal AI suggestions
- **Flow Disruption**: Breaks concentration and momentum during development
- **Inconsistency**: Different context each session leads to inconsistent AI responses

## Root Causes

1. No persistent memory of project structure
2. Manual file selection process
3. No automatic relevance detection
4. Copy-paste workflow interrupts coding flow

## User Quotes

> "Every time I want Claude's help, I spend more time copy-pasting files than actually getting answers. It's frustrating
because I know the AI could help, but the setup overhead makes me think twice." - Senior PHP Developer, Interview #7

> "I often skip using AI for quick questions because gathering context takes longer than just solving the problem
myself." - Laravel Developer, Survey Response #23

## Potential Solutions

1. **Automated Context Collection**: Tool that automatically identifies and includes relevant files based on:
    - Current working file
    - Recent git changes
    - Import/require statements
    - Project structure analysis

2. **Project-Aware Context Loading**: Persistent project understanding that remembers:
    - Architecture patterns
    - Key files and their purposes
    - Common workflows
    - Team conventions

3. **Intelligent Context Selection**: Smart algorithms that:
    - Prioritize recently modified files
    - Include dependencies automatically
    - Respect context size limits
    - Learn from user selections

## Priority Assessment

- **Impact**: High (affects daily workflow)
- **Frequency**: Very High (multiple times per day)
- **User Segment**: All developers using AI tools
- **Competitive Advantage**: Significant differentiator

## Next Steps

1. Validate with larger user sample
2. Prototype automatic context detection
3. Test with real Laravel projects
4. Measure time savings in pilot study

Key Attributes

Entry ID

  • Format: Unique identifier (e.g., entry_xyz789)
  • Generation: Automatic on creation
  • Purpose: Reference entries across research

Title

  • Source: User-provided or auto-generated from content first line
  • Purpose: Quick identification of entry content
  • Length: Recommended 50-100 characters
  • Example: "Developer Pain: Manual Context Gathering"

Description

  • Purpose: Short summary for LLM understanding
  • Length: Maximum 200 characters
  • Usage: Quick scanning without reading full content
  • Generation: User-provided or auto-generated from content
  • Example: "Analysis of time wasted on manual context preparation for AI tools"

Entry Type

  • Purpose: Defines what kind of artifact this is
  • Validation: Must match template's defined entry types
  • Examples: persona, pain_point, feature_concept, technical_decision
  • Effect: Determines available statuses

Category

  • Purpose: Places entry within research workflow phase
  • Validation: Must match template categories
  • Constraint: Entry type must be allowed in this category
  • Examples: audience_research, needs_analysis, feature_ideation

Status

  • Purpose: Tracks entry lifecycle within its type
  • Values: Type-specific (e.g., Draft → Validated → Prioritized)
  • Validation: Must be valid status for the entry type
  • Workflow: Progresses as entry is refined and validated

Tags

  • Purpose: Cross-cutting organization beyond category structure
  • Usage: Filter entries, group related findings
  • Examples: high-priority, quick-win, technical-debt, customer-request
  • Flexibility: Can be added or removed at any time

Content

  • Format: Markdown
  • Location: Below YAML frontmatter
  • Structure: Freeform, but follows entry type conventions
  • Best Practice: Use clear sections, quotes, data, and actionable insights

Entry File Location

.researches/research_abc123_ctx-feature-discovery/
└── needs_analysis/
    └── entry_xyz789.md

File naming: entry_<entry_id>.md

Creating Entries

Entries are created using MCP tools during research sessions:

Tool: research-entry-create
Parameters:
  - researchId: research_abc123
  - category: needs_analysis
  - entryType: pain_point
  - content: <markdown content>
  - title: <optional>
  - description: <optional>
  - tags: [<optional>]

See: Conduct Research for detailed instructions.

Entry Generation Pattern

  1. AI asks strategic questions during session
  2. User provides detailed answers (preferably via voice dictation)
  3. AI synthesizes answers into structured entries
  4. Entries are automatically saved as Markdown files with frontmatter
  5. Entries become reference material for future sessions

Entry Lifecycle

Create (draft) 

Work In Progress

Review & Validate

Complete

Published/Archived

Specific lifecycle depends on entry type status definitions in template.


Relationships

Template → Research

  • One to Many: One template can create multiple research projects
  • Immutable: Research template cannot be changed after creation
  • Inheritance: Research inherits categories, entry types, and AI behavior from template

Research → Entries

  • One to Many: One research contains multiple entries
  • Organization: Entries organized into categories (directories)
  • Validation: Entry types must match template definitions
  • Context: Entries share research memory and context

Template → Entry Types

  • Definition: Template defines available entry types
  • Constraints: Entry types specify allowed statuses
  • Validation: Entries must use defined types and statuses

Category → Entry Types

  • Allowlist: Categories specify which entry types are allowed
  • Validation: System enforces category-type compatibility
  • Organization: Logical grouping of related entry types

Next Steps