test(TASK-021): pin task-queue guidance text in shipped artifacts
This commit is contained in:
1 file changed
+69
@@ -8157,6 +8157,75 @@ mod tests {
|
|||||||
assert!(paths::skill_file("frontend-ui-ux").exists());
|
assert!(paths::skill_file("frontend-ui-ux").exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// TASK-021 pinned prose: the task-queue guidance added to the shipped
|
||||||
|
/// artifacts must not silently erode. Each anchor quotes the shipped text
|
||||||
|
/// verbatim (chosen to avoid line-wrap boundaries in the YAML sources).
|
||||||
|
#[test]
|
||||||
|
#[serial]
|
||||||
|
fn bundled_assets_pin_task_queue_guidance() {
|
||||||
|
let _guard = TestConfigDirGuard::new();
|
||||||
|
Agent::install_builtin_agents(false).unwrap();
|
||||||
|
|
||||||
|
// 1. Architect config: the parallel-mode "Task-queue mirroring"
|
||||||
|
// section with all five HARD RULES.
|
||||||
|
let architect = read_to_string(
|
||||||
|
paths::agents_data_dir()
|
||||||
|
.join("architect")
|
||||||
|
.join("config.yaml"),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
for anchor in [
|
||||||
|
"Task-queue mirroring (optional).",
|
||||||
|
"it is NEVER the source of truth",
|
||||||
|
"Root tasks (no blockers) are NOT auto-dispatched on create — spawn them yourself.",
|
||||||
|
"Call `agent__task_complete` ONLY after this task's verification gate",
|
||||||
|
"Collect every auto-dispatched agent via `agent__collect`",
|
||||||
|
"strands the queue task InProgress with no reset — recreate",
|
||||||
|
] {
|
||||||
|
assert!(
|
||||||
|
architect.contains(anchor),
|
||||||
|
"architect config lost TASK-021 anchor: {anchor:?}"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Sisyphus config: the task-queue chain note in the
|
||||||
|
// parallel-research section.
|
||||||
|
let sisyphus = read_to_string(
|
||||||
|
paths::agents_data_dir()
|
||||||
|
.join("sisyphus")
|
||||||
|
.join("config.yaml"),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
for anchor in [
|
||||||
|
"`agent__task_create` chains MAY encode the",
|
||||||
|
"Todos remain the tracking source of truth.",
|
||||||
|
] {
|
||||||
|
assert!(
|
||||||
|
sisyphus.contains(anchor),
|
||||||
|
"sisyphus config lost TASK-021 anchor: {anchor:?}"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Spawn instructions: dispatch/collect/failure semantics plus the
|
||||||
|
// corrected numeric-string task IDs (no `task_1`-style remnants).
|
||||||
|
let spawn = crate::config::prompts::DEFAULT_SPAWN_INSTRUCTIONS;
|
||||||
|
for anchor in [
|
||||||
|
"is NEVER auto-dispatched",
|
||||||
|
"agent__collect",
|
||||||
|
"recreate the chain rather than retrying",
|
||||||
|
"--blocked_by [\"1\"]",
|
||||||
|
] {
|
||||||
|
assert!(
|
||||||
|
spawn.contains(anchor),
|
||||||
|
"DEFAULT_SPAWN_INSTRUCTIONS lost TASK-021 anchor: {anchor:?}"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
assert!(
|
||||||
|
!spawn.contains("task_1"),
|
||||||
|
"DEFAULT_SPAWN_INSTRUCTIONS must not reference task_1-style IDs"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[serial]
|
#[serial]
|
||||||
fn bundled_graph_agents_parse_and_validate() {
|
fn bundled_graph_agents_parse_and_validate() {
|
||||||
|
|||||||
Reference in new issue
Block a user