nikivdev/code · error
skill-eval is only supported for Codex sessions; use `f code
Error message
skill-eval is only supported for Codex sessions; use `f codex skill-eval ...`
What it means
Raised by `run_provider` in src/ai.rs when the `skill-eval` action is dispatched against a Cursor session. Skill evaluation is a Codex-only integration; the Cursor match arm bails immediately with a pointer to the Codex subcommand.
Source
Thrown at src/ai.rs:610
bail!(
"telemetry is only supported for Codex sessions; use `f codex telemetry ...`"
);
}
Some(ProviderAiAction::Trace { .. }) => {
bail!("trace is only supported for Codex sessions; use `f codex trace ...`");
}
Some(ProviderAiAction::ProjectAi { .. }) => {
bail!(
"project-ai is only supported for Codex sessions; use `f codex project-ai ...`"
);
}
Some(ProviderAiAction::SkillEval { .. }) => {
bail!(
"skill-eval is only supported for Codex sessions; use `f codex skill-eval ...`"
);
}
Some(ProviderAiAction::SkillSource { .. }) => {
bail!(
"skill-source is only supported for Codex sessions; use `f codex skill-source ...`"
);
}
Some(ProviderAiAction::Agent { .. }) => {
bail!("agent is only supported for Codex sessions; use `f codex agent ...`");
}
Some(ProviderAiAction::Log { .. }) => {
bail!("log is only supported for Codex sessions; use `f codex log ...`");
}
Some(ProviderAiAction::Sessions { .. })
| Some(ProviderAiAction::Browse { .. })
| Some(ProviderAiAction::Continue { .. })
| Some(ProviderAiAction::New)
| Some(ProviderAiAction::Open { .. })
| Some(ProviderAiAction::Resolve { .. })
| Some(ProviderAiAction::Resume { .. })
| Some(ProviderAiAction::Find { .. })
| Some(ProviderAiAction::FindAndCopy { .. }) => {View on GitHub (pinned to a747e741ae)
Solutions
- Run `f codex skill-eval ...` instead
- Keep Cursor usage to `f cursor list`, `f cursor copy`, `f cursor context`
- Parameterize scripts by provider and assert Codex before invoking skill-eval
- Add a pre-flight capability check in wrappers that maps actions to supported providers
Example fix
// before f cursor skill-eval my-skill // after f codex skill-eval my-skill
Defensive patterns
Strategy: validation
Validate before calling
fn supports_skill_eval(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
}
if !supports_skill_eval(provider) {
eprintln!("skill-eval requires Codex: use `f codex skill-eval ...`");
return;
} Type guard
fn is_codex(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
} Try / catch
if let Err(e) = run_provider(provider, Some(ProviderAiAction::SkillEval { .. })) {
if e.to_string().contains("skill-eval is only supported for Codex") {
eprintln!("rerun as: f codex skill-eval ...");
} else {
return Err(e);
}
} Prevention
- Run skill evaluations only against Codex sessions
- Add provider assertions to skill-testing CI jobs
- Don't assume skill subcommands exist for Cursor/Claude
- Centralize skill commands in a wrapper that hardcodes `f codex`
When it happens
Trigger: Running `f cursor skill-eval ...`, or run_provider(Provider::Cursor, Some(ProviderAiAction::SkillEval{..})). Occurs when skill-eval automation is configured against the wrong provider.
Common situations: CI or local scripts evaluating skills that hardcode `f cursor ...` after a provider migration, or generic wrappers that pass the action name straight through regardless of provider.
Related errors
- telemetry is only supported for Codex sessions; use `f codex
- trace is only supported for Codex sessions; use `f codex tra
- project-ai is only supported for Codex sessions; use `f code
- agent is only supported for Codex sessions; use `f codex age
- log is only supported for Codex sessions; use `f codex log .
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/7b3df4f97cb6ace4.
Report an issue: GitHub.