vibe.review.prompts

Prompt construction for requirement classification.

Builds prompts for two-step classification: 1. Relevance: Is this document part relevant to the requirement? 2. Compliance: Does the relevant part satisfy the requirement?

Prompts are built from Jinja2 templates stored in templates/prompts/. Classification labels are language-neutral (R/N for relevance, Y/N/P for compliance).

PromptContext

Context for building prompts.

BuiltPrompt

A built prompt ready for LLM.

PromptBuilder

Builds prompts for requirement classification using Jinja2 templates.

Templates are stored in vibe/review/templates/prompts/ with language suffixes: - relevance_prompt_sv.jinja2, relevance_prompt_en.jinja2 - compliance_prompt_sv.jinja2, compliance_prompt_en.jinja2

Usage

builder = PromptBuilder(language="sv")

Relevance check

relevance_prompt = builder.build_relevance_prompt( context=PromptContext(...), document_text="...", )

Compliance check (with few-shot examples)

compliance_prompt = builder.build_compliance_prompt( context=PromptContext(...), document_text="...", examples=[...], )

Get full rendered prompt text (for display)

full_text = builder.render_relevance_prompt_text(context, document_text)

__init__

__init__(language: str = 'sv') -> None

Initialize the prompt builder.

Parameters:
  • language (str, default: 'sv' ) –

    Language code for templates ("sv" or "en").

build_relevance_prompt

build_relevance_prompt(context: PromptContext, document_text: str, section_heading: str | None = None) -> BuiltPrompt

Build prompt for relevance classification.

Parameters:
  • context (PromptContext) –

    Requirement context.

  • document_text (str) –

    The document part text to evaluate.

  • section_heading (str | None, default: None ) –

    Optional section heading for context.

Returns:
  • BuiltPrompt

    BuiltPrompt with system prompt, user prompt, and schema.

build_compliance_prompt

build_compliance_prompt(context: PromptContext, document_text: str, examples: list[RetrievedExample] | None = None, section_heading: str | None = None) -> BuiltPrompt

Build prompt for compliance classification.

Parameters:
  • context (PromptContext) –

    Requirement context.

  • document_text (str) –

    The document part text to evaluate.

  • examples (list[RetrievedExample] | None, default: None ) –

    Few-shot examples for in-context learning.

  • section_heading (str | None, default: None ) –

    Optional section heading for context.

Returns:
  • BuiltPrompt

    BuiltPrompt with system prompt, user prompt, and schema.

build_batch_prompt

build_batch_prompt(context: PromptContext, candidates: list[dict[str, Any]], *, examples: list[RetrievedExample] | None = None, force_relevant: bool = False) -> BuiltPrompt

Build a single prompt that classifies multiple candidates in one request.

The output is a list of per-part results with both relevance and compliance.

strip_scaffold_header

strip_scaffold_header(prompt_text: str) -> str

Remove scaffold header comments from rendered prompt templates.

create_prompt_context_from_requirement

create_prompt_context_from_requirement(requirement: Requirement, reference_parts: list[Any] | None = None) -> PromptContext

Create PromptContext from a Requirement model.

Parameters:
  • requirement (Requirement) –

    The Requirement object.

  • reference_parts (list[Any] | None, default: None ) –

    Optional list of ReferencePartModel objects from DB.

Returns: