Repository navigation
feat(pi): version gentle-pi model profiles and sync them on install - #106
Conversation
Track the gentle-pi model profile store in pi/gentle-ai/profiles.json and merge it into ~/.pi and ~/.gentle-shell, materializing the active profile. The openai profile routes verify/review/judge roles to GPT-6.1 Terra and keeps GPT-6 Astra only for review-risk. Homes without a store keep their current routing.
Post-merge QA (glm)Lens: requirements + adversarial. Versions the gentle-pi model profile store in pi/gentle-ai/profiles.json and adds scripts/sync-pi-model-profiles.py to merge it into ~/.pi and ~/.gentle-shell and materialize the active profile. The merge logic is sound adversarially: local-only profiles and 'current' survive, the local 'active' pointer is kept when it still exists, a home without a store starts on an empty 'current' profile so materialization is skipped and routing is untouched, and homes without an agent/ dir are skipped. write_if_changed makes runs idempotent with backups, and set_frontmatter only rewrites the body-surrounding frontmatter, leaving content intact. Six tests cover merge, materialization, idempotence, dry-run, and both empty-home edge cases; CI runs them and install.sh wires the script with a non-fatal failure message. Question (1)
Verdict: clean |
Post-merge QA (deepseek)Lens: evidence + test design. The six tests cover the merge, the materialization, idempotence, the dry run, a home without a store and a home without an agent dir, and the script writes atomically with per-file backups before replacing. The merge rules hold by inspection: repo profiles replace same-name local ones, local-only profiles and Suggestion (2)
Question (1)
Verdict: clean |
Why
Model routing lived only in each machine's gentle-pi profile store, so machines drifted. Fresh gentle-shell homes even started the orchestrator on the removed
openai/gpt-5.5, which fails with: "The 'gpt-5.5' model is not supported when using Codex with a ChatGPT account". The openai profile also needed GPT-6.1 Terra so the ChatGPT subscription goes further.What
pi/gentle-ai/profiles.json: the versioned gentle-pi profile store, without the machine-localcurrentsnapshot. In theopenaiprofile, GPT-6.1 Terra routesgentle-ai-verify,review-reliability,review-resilience,jd-judge-a,cortex-requirements-analystandcortex-adversarial-tester. GPT-6 Astra stays only onreview-risk.nan-qa-reliability-solkeeps Sol.scripts/sync-pi-model-profiles.py: merges the repo profiles into~/.piand~/.gentle-shell. Same-name profiles are replaced; local-only profiles andcurrentare kept. It then materializes the active profile intosettings.json(orchestrator),subagents.jsonand the agent frontmatter. A home without a store starts on the emptycurrentprofile, so its routing is untouched. Changed files are backed up; a second run changes nothing.install.shruns it;--dry-runis supported.tests/sync_pi_model_profiles_test.py: 6 tests covering merge, materialization, idempotence, dry run, a home without a store, and a home without an agent dir. CI runs them.Verification
python3 tests/sync_pi_model_profiles_test.py: 6 passed.bash -n install.shandscripts/check-install-symlinks.shpass.🤖 Generated with Claude Code
https://claude.ai/code/session_01A9D7phtHFYfszv6WKeXbiU