pub const TRIAGE_SCHEMA: &str = include_str!("triage_schema.json");
pub const TRIAGE_GUIDELINES: &str = include_str!("triage_guidelines.md");
pub const CREATE_SCHEMA: &str = include_str!("create_schema.json");
pub const CREATE_GUIDELINES: &str = include_str!("create_guidelines.md");
pub const PR_REVIEW_SCHEMA: &str = include_str!("pr_review_schema.json");
pub const PR_REVIEW_GUIDELINES: &str = include_str!("pr_review_guidelines.md");
pub const PR_LABEL_SCHEMA: &str = include_str!("pr_label_schema.json");
pub const PR_LABEL_GUIDELINES: &str = include_str!("pr_label_guidelines.md");
pub const RELEASE_NOTES_SCHEMA: &str = include_str!("release_notes_schema.json");
pub const RELEASE_NOTES_GUIDELINES: &str = include_str!("release_notes_guidelines.md");
pub const TOOLING_CONTEXT: &str = include_str!("tooling_context.md");
#[must_use]
pub fn build_triage_system_prompt(context: &str) -> String {
format!(
"You are a senior OSS maintainer. Your mission is to produce structured triage output \
that helps maintainers prioritize and route incoming issues.\n\n\
{context}\n\n\
{TRIAGE_GUIDELINES}"
)
}
#[must_use]
pub fn build_create_system_prompt(context: &str) -> String {
format!(
"You are a senior developer advocate. Your mission is to produce a well-structured, \
professional GitHub issue from raw user input.\n\n\
{context}\n\n\
{CREATE_GUIDELINES}"
)
}
#[must_use]
pub fn build_pr_review_system_prompt(context: &str) -> String {
format!(
"You are a senior software engineer. Your mission is to produce structured, actionable \
review feedback on a pull request.\n\n\
{context}\n\n\
{PR_REVIEW_GUIDELINES}"
)
}
#[must_use]
pub fn build_pr_label_system_prompt(context: &str) -> String {
format!(
"You are a senior open-source maintainer. Your mission is to suggest the most relevant \
labels for a pull request based on its content.\n\n\
{context}\n\n\
{PR_LABEL_GUIDELINES}"
)
}
#[must_use]
pub fn build_release_notes_system_prompt(context: &str) -> String {
format!(
"You are a senior release manager. Your mission is to produce clear, structured release \
notes.\n\n\
{context}\n\n\
{RELEASE_NOTES_GUIDELINES}"
)
}