Remove plan from system skills (#8374)

Removes plan from system skills. It has been rewritten into
`create-plan` for evaluation and feedback:
https://github.com/openai/skills/pull/22
This commit is contained in:
Gav Verma
2025-12-20 19:42:53 -08:00
committed by GitHub
parent 987dd7fde3
commit fab1ded484
7 changed files with 17 additions and 644 deletions

View File

@@ -27,6 +27,14 @@ fn write_skill(home: &Path, name: &str, description: &str, body: &str) -> std::p
path
}
fn system_skill_md_path(home: impl AsRef<Path>, name: &str) -> std::path::PathBuf {
home.as_ref()
.join("skills")
.join(".system")
.join(name)
.join("SKILL.md")
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn user_turn_includes_skill_instructions() -> Result<()> {
skip_if_no_network!(Ok(()));
@@ -158,13 +166,15 @@ async fn skill_load_errors_surface_in_session_configured() -> Result<()> {
async fn list_skills_includes_system_cache_entries() -> Result<()> {
skip_if_no_network!(Ok(()));
const SYSTEM_SKILL_NAME: &str = "skill-creator";
let server = start_mock_server().await;
let mut builder = test_codex()
.with_config(|config| {
config.features.enable(Feature::Skills);
})
.with_pre_build_hook(|home| {
let system_skill_path = home.join("skills/.system/plan/SKILL.md");
let system_skill_path = system_skill_md_path(home, SYSTEM_SKILL_NAME);
assert!(
!system_skill_path.exists(),
"expected embedded system skills not yet installed, but {system_skill_path:?} exists"
@@ -172,14 +182,15 @@ async fn list_skills_includes_system_cache_entries() -> Result<()> {
});
let test = builder.build(&server).await?;
let system_skill_path = test.codex_home_path().join("skills/.system/plan/SKILL.md");
let system_skill_path = system_skill_md_path(test.codex_home_path(), SYSTEM_SKILL_NAME);
assert!(
system_skill_path.exists(),
"expected embedded system skills installed to {system_skill_path:?}"
);
let system_skill_contents = fs::read_to_string(&system_skill_path)?;
let expected_name_line = format!("name: {SYSTEM_SKILL_NAME}");
assert!(
system_skill_contents.contains("name: plan"),
system_skill_contents.contains(&expected_name_line),
"expected embedded system skill file, got:\n{system_skill_contents}"
);
@@ -206,12 +217,13 @@ async fn list_skills_includes_system_cache_entries() -> Result<()> {
let skill = skills
.iter()
.find(|skill| skill.name == "plan")
.find(|skill| skill.name == SYSTEM_SKILL_NAME)
.expect("expected system skill to be present");
assert_eq!(skill.scope, codex_protocol::protocol::SkillScope::System);
let path_str = skill.path.to_string_lossy().replace('\\', "/");
let expected_path_suffix = format!("/skills/.system/{SYSTEM_SKILL_NAME}/SKILL.md");
assert!(
path_str.ends_with("/skills/.system/plan/SKILL.md"),
path_str.ends_with(&expected_path_suffix),
"unexpected skill path: {path_str}"
);