prompt: route source assertions through effective catalog
This commit is contained in:
@@ -1457,21 +1457,6 @@ mod tests {
|
|||||||
assert!(reviewer.compaction.is_some());
|
assert!(reviewer.compaction.is_some());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn orchestrator_role_keeps_review_routing_owned_by_coder() {
|
|
||||||
let prompt = include_str!("../../../resources/prompts/role/orchestrator.md");
|
|
||||||
|
|
||||||
assert!(prompt.contains("assigned Coder owns its review/fix loop"));
|
|
||||||
assert!(prompt.contains("then use `SpawnTicketCoder`"));
|
|
||||||
assert!(prompt.contains("verify its current assignment names that Coder"));
|
|
||||||
assert!(prompt.contains("never route implementation to an unassigned Coder"));
|
|
||||||
assert!(prompt.contains(
|
|
||||||
"Do not spawn, restore, assign, or route work to Backend/Runtime Reviewer Workers"
|
|
||||||
));
|
|
||||||
assert!(prompt.contains("never compensate by creating an independent Reviewer Worker"));
|
|
||||||
assert!(!prompt.contains("sibling Coder/Reviewer Workers"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn profile_resolution_requires_runtime_worker_name() {
|
fn profile_resolution_requires_runtime_worker_name() {
|
||||||
let tmp = TempDir::new().unwrap();
|
let tmp = TempDir::new().unwrap();
|
||||||
|
|||||||
@@ -24,9 +24,6 @@ const MAX_PAGE_LIMIT: usize = 100;
|
|||||||
const MAX_READ_BYTES: usize = 16 * 1024;
|
const MAX_READ_BYTES: usize = 16 * 1024;
|
||||||
const OBSERVATION_INSTRUCTION_ID: &str = "worker-observation.policy";
|
const OBSERVATION_INSTRUCTION_ID: &str = "worker-observation.policy";
|
||||||
const OBSERVATION_PROMPT_REF: &str = "common.worker_observation";
|
const OBSERVATION_PROMPT_REF: &str = "common.worker_observation";
|
||||||
#[cfg(test)]
|
|
||||||
const OBSERVATION_PROMPT_SOURCE: &str =
|
|
||||||
include_str!("../../../../../resources/prompts/common/worker-observation.md");
|
|
||||||
|
|
||||||
fn observation_instruction() -> FeatureInstructionDeclaration {
|
fn observation_instruction() -> FeatureInstructionDeclaration {
|
||||||
FeatureInstructionDeclaration::new(
|
FeatureInstructionDeclaration::new(
|
||||||
@@ -801,6 +798,8 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn prompt_source_names_the_worker_observation_contract() {
|
fn prompt_source_names_the_worker_observation_contract() {
|
||||||
|
let catalog = crate::PromptCatalog::builtins_only().unwrap();
|
||||||
|
let source = &catalog.projection().templates["common.worker_observation"];
|
||||||
for token in [
|
for token in [
|
||||||
"ListWorkerSessions",
|
"ListWorkerSessions",
|
||||||
"ViewSessionOverview",
|
"ViewSessionOverview",
|
||||||
@@ -808,7 +807,7 @@ mod tests {
|
|||||||
"ReadSessionEntry",
|
"ReadSessionEntry",
|
||||||
"SessionEntryRef",
|
"SessionEntryRef",
|
||||||
] {
|
] {
|
||||||
assert!(OBSERVATION_PROMPT_SOURCE.contains(token), "missing {token}");
|
assert!(source.contains(token), "missing {token}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -595,6 +595,21 @@ mod tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn orchestrator_role_keeps_review_routing_owned_by_coder() {
|
||||||
|
let catalog = PromptCatalog::builtins_only().unwrap();
|
||||||
|
let prompt = &catalog.projection.templates["role.orchestrator"];
|
||||||
|
assert!(prompt.contains("assigned Coder owns its review/fix loop"));
|
||||||
|
assert!(prompt.contains("then use `SpawnTicketCoder`"));
|
||||||
|
assert!(prompt.contains("verify its current assignment names that Coder"));
|
||||||
|
assert!(prompt.contains("never route implementation to an unassigned Coder"));
|
||||||
|
assert!(prompt.contains(
|
||||||
|
"Do not spawn, restore, assign, or route work to Backend/Runtime Reviewer Workers"
|
||||||
|
));
|
||||||
|
assert!(prompt.contains("never compensate by creating an independent Reviewer Worker"));
|
||||||
|
assert!(!prompt.contains("sibling Coder/Reviewer Workers"));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn existing_internal_prompt_render_contracts_are_preserved() {
|
fn existing_internal_prompt_render_contracts_are_preserved() {
|
||||||
let catalog = PromptCatalog::builtins_only().unwrap();
|
let catalog = PromptCatalog::builtins_only().unwrap();
|
||||||
|
|||||||
Reference in New Issue
Block a user