From 2116eea7e4c7f1615f9f03983860d87872ab6892 Mon Sep 17 00:00:00 2001 From: Jean Mertz Date: Thu, 19 Mar 2026 11:00:13 +0100 Subject: [PATCH 1/2] chore: Use model aliases and nested reasoning in personas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All persona configs previously referenced model IDs directly — either as full strings like `anthropic/claude-sonnet-4-6` or as inline tables `{ provider = "anthropic", name = "..." }`. They now use the short aliases defined in `[providers.llm.aliases]` (`sonnet`, `opus`, `haiku`), making personas easier to read and update when models change. The reasoning configuration is also standardised to use the nested `parameters.reasoning.effort` key throughout, replacing the old top-level `reasoning` field that remained in one place. Several personas have their reasoning effort updated to `"auto"` in the process. Signed-off-by: Jean Mertz --- .gitignore | 2 -- .jp/config.toml | 7 ++++--- .jp/config/personas/architect.toml | 2 +- .jp/config/personas/default.toml | 5 +++-- .jp/config/personas/dev.toml | 2 +- .jp/config/personas/po.toml | 4 ++-- .jp/config/personas/stager.toml | 2 +- .jp/config/personas/writer.toml | 4 ++-- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index f759e8b3..d0d31e32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ /.jp/**/QUERY_MESSAGE.md /.jp/conversations/.trash -# Conversations, until encrypted. -# /.jp/conversations/* # Rust specific **/target diff --git a/.jp/config.toml b/.jp/config.toml index c6482e88..1595cf01 100644 --- a/.jp/config.toml +++ b/.jp/config.toml @@ -43,12 +43,13 @@ gemini-pro = "google/gemini-3.1-pro-preview" gemini-flash = "google/gemini-3-flash-preview" gemini-lite = "google/gemini-2.5-flash-lite" -[conversation.inquiry.assistant] -model.id = "anthropic/claude-haiku-4-5" +[conversation.inquiry.assistant.model] +id = "haiku" +parameters.reasoning.effort = "auto" [conversation.title.generate.model] id = "haiku" -reasoning = "low" +parameters.reasoning.effort = "low" [style.code] copy_link = "osc8" diff --git a/.jp/config/personas/architect.toml b/.jp/config/personas/architect.toml index e9f1a9db..05e21e74 100644 --- a/.jp/config/personas/architect.toml +++ b/.jp/config/personas/architect.toml @@ -33,7 +33,7 @@ principles, not implementation details. """ [assistant.model] -id = "anthropic/claude-opus-4-6" +id = "opus" parameters.reasoning.effort = "auto" [[assistant.system_prompt_sections]] diff --git a/.jp/config/personas/default.toml b/.jp/config/personas/default.toml index c2629242..77df6dce 100644 --- a/.jp/config/personas/default.toml +++ b/.jp/config/personas/default.toml @@ -1,5 +1,6 @@ -[assistant] -model.id = { provider = "anthropic", name = "claude-sonnet-4-6" } +[assistant.model] +id = "sonnet" +parameters.reasoning.effort = "auto" [assistant.system_prompt] strategy = "replace" diff --git a/.jp/config/personas/dev.toml b/.jp/config/personas/dev.toml index 51be8abd..f81b823d 100644 --- a/.jp/config/personas/dev.toml +++ b/.jp/config/personas/dev.toml @@ -32,7 +32,7 @@ and well-tested code that aligns with the project's standards and goals. """ [assistant.model] -id = "anthropic/claude-opus-4-6" +id = "opus" parameters.reasoning.effort = "auto" [[assistant.system_prompt_sections]] diff --git a/.jp/config/personas/po.toml b/.jp/config/personas/po.toml index 02a6f6ab..e5943d4c 100644 --- a/.jp/config/personas/po.toml +++ b/.jp/config/personas/po.toml @@ -11,8 +11,8 @@ actionable. Follow the tool call descriptions and parameter requirements precise """ [assistant.model] -id = "anthropic/claude-sonnet-4-5" -parameters.reasoning.effort = "high" +id = "sonnet" +parameters.reasoning.effort = "auto" [[assistant.instructions]] title = "Research First" diff --git a/.jp/config/personas/stager.toml b/.jp/config/personas/stager.toml index 880e565f..fc29b6f1 100644 --- a/.jp/config/personas/stager.toml +++ b/.jp/config/personas/stager.toml @@ -73,7 +73,7 @@ name = "Git Stager" tool_choice = "git_list_patches" [assistant.model] -id = "anthropic/claude-sonnet-4-6" +id = "sonnet" parameters.reasoning.effort = "auto" [[assistant.instructions]] diff --git a/.jp/config/personas/writer.toml b/.jp/config/personas/writer.toml index 856d585a..e9b4f56e 100644 --- a/.jp/config/personas/writer.toml +++ b/.jp/config/personas/writer.toml @@ -28,8 +28,8 @@ technically accurate while remaining approachable. You follow Hemingway's writin """ [assistant.model] -id = { provider = "anthropic", name = "claude-sonnet-4-5" } -parameters.reasoning.effort = "high" +id = "sonnet" +parameters.reasoning.effort = "auto" [[assistant.instructions]] title = "Writing Style" From cb70b6555264d722006764dee055b658f0343d5e Mon Sep 17 00:00:00 2001 From: Jean Mertz Date: Thu, 19 Mar 2026 11:04:46 +0100 Subject: [PATCH 2/2] fixup! chore: Use model aliases and nested reasoning in personas Signed-off-by: Jean Mertz --- crates/jp_cli/src/cmd/init.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/jp_cli/src/cmd/init.rs b/crates/jp_cli/src/cmd/init.rs index 61c51a92..54ed42e7 100644 --- a/crates/jp_cli/src/cmd/init.rs +++ b/crates/jp_cli/src/cmd/init.rs @@ -259,8 +259,8 @@ fn has_google() -> bool { fn default_model_id_for(provider: ProviderId) -> Option { let name = match provider { - ProviderId::Anthropic => Name("claude-sonnet-4-5".into()), - ProviderId::Google => Name("gemini-3-pro-preview".into()), + ProviderId::Anthropic => Name("claude-sonnet-4-6".into()), + ProviderId::Google => Name("gemini-3.1-pro-preview".into()), ProviderId::Openai => Name("gpt-5.2".into()), _ => return None, };