Prompts
Prompt APIs parse prompt files into structured system prompts with optional metadata and difficulty-targeted sections.
| Symbol | Import path | Purpose | Stability |
|---|---|---|---|
PromptDef | statek.prompt_config or statek | Prompt metadata plus system prompt | Core |
SystemPrompt, SystemPromptData | statek.prompt_config | Persistent and volatile prompt structures | Core |
PromptStyle | statek.prompt_config | Output section style enum | Core |
parse_system_prompt | statek.prompt_config | Parse raw prompt text | Core |
make_system_prompt | statek.prompt_config | Convert raw or parsed prompt to persistent form | Core |
format_system_prompt | statek.prompt_config | Format for a task difficulty | Core |
parse_prompt_file, load_prompt_files | statek.prompt_config | Load prompt .md files | Core |
update_prompt_config | statek.prompt_config or statek | Apply prompt defs to agents and job defs | Core operational |
Data classes
@dataclass
class PromptSectionData:
title: str
contents: str
target_difficulties: set[TaskDifficulty] | None = None
@dataclass
class SystemPromptData:
intro: str
sections: list[PromptSectionData]
@db0.memo
@dataclass
class PromptSection:
title: str
contents: str
target_difficulties: set[TaskDifficulty] | None = None
@db0.memo
@dataclass
class SystemPrompt:
intro: str
sections: list[PromptSection]PromptDef contains system prompt data and metadata parsed from prompt files.
PromptStyle
PromptStyle.XML
PromptStyle.DASHED
PromptStyle.ASTERISK
PromptStyle.MARKDOWNControls how prompt sections are formatted for a model request.
Parse and format helpers
| Function | Signature | Returns | Errors |
|---|---|---|---|
parse_system_prompt | parse_system_prompt(input: str) | SystemPromptData | ValueError for invalid difficulty labels. |
make_system_prompt | make_system_prompt(prompt) | SystemPrompt | Propagates parse errors for raw text. |
format_system_prompt | format_system_prompt(prompt, task_difficulty, style=PromptStyle.DASHED, section_formatter=None, prompt_part_formatter=None) | str | ValueError for invalid XML section titles or unsupported style. |
compare_prompts | compare_prompts(prompt_1, prompt_2) | bool | None documented. |
parse_prompt_file | parse_prompt_file(file_path: Path) | PromptDef | ValueError when # System Prompt is missing. |
load_prompt_files | load_prompt_files(prompt_files_dir: str) | dict[str, PromptDef] | Returns {} for missing or empty directory. |
update_prompt_config | update_prompt_config(prompt_defs, agents=None) | None | Propagates metadata parsing errors. |
# MODEL: openai/gpt-5-mini
# System Prompt
You are a concise analyst.
## MH: Review checklist
Check the supplied data before answering.from pathlib import Path
from statek.prompt_config import parse_prompt_file
prompt_def = parse_prompt_file(Path("prompts/analyst.md"))
agent.update_system_prompt(prompt_def.system)
agent.update_metadata(prompt_def.metadata)Related APIs: Prompt Definitions, Agents, Settings.