Imported from kunchenguid/no-mistakes (
.agents/skills/agent-tuning/SKILL.md). Install upstream withnpx skills add kunchenguid/no-mistakes --skill agent-tuning. Copyright stays with the author.
Unified Agent Tuning (internal/agentcfg)
agentcfgis the single owner of the harness-neutral model/effort surface and of the mapping down to each harness's native mechanism (claude/copilot--effort, codex-m+-c model_reasoning_effort, grok--reasoning-effort, pi--thinking, opencode's sessionmodel/variant, acpx--modelforcursor/acp:<target>). OpenCode 2 maps the profile into the session-creation model reference; OpenCode 1 keeps its session-message mapping. Add a harness there, not in an adapter or in eval.rovodevandantigravityare deliberately declared unmappable, so a request for them is a config error rather than a flag that is silently ignored.agent.NewWithOptionsis the one funnel: it validatesOptions.Profileand splices the mapped args after the operator's rawagent_args_overrideargs, so both the pipeline (cfg.AgentProfileFor) and eval replay (Candidate.Profile()) reach every harness by the same path. Never re-derive a model or effort flag at a call site.- Precedence is fixed: a raw
agent_args_overrideflag that already pins a knob natively wins and the mapped value is not emitted, which is what keeps every pre-agent_configconfiguration byte-identical and stops a harness receiving one knob twice.agent_configis global-only for the same reason asagent_args_override. - Opt-in Pi run pins (
axi run/rerun--model,--effort) resolve inconfig/pi_profile.go, persist immutably inruns.pi_profile, and are applied before agent construction on launch and recovery. Raw selection flags conflict at creation; later raw/role/global model changes cannot replace a run pin. Unpinned runs retain the precedence above. Semantics owner:docs/src/content/docs/reference/global-config.md(Per-run Pi profiles); regressions:*_pi_profile*/pi_profile_test.goin config, db, daemon, CLI and e2e. - Eval candidates are
agent,model=<model>[,effort=<level>](the previousagent+modelspelling is refused with a migration message), effort is part of the persisted candidate identity, andagentNeutralGlobalConfigstripsagent,agent_args_override, andagent_configso a replay never inherits the capturing machine's pins. - Keep eval replay identity comparison centralized in
agentcfg.ServedMatchesRequested; do not compare an adapter's reported model directly at call sites. The user-facing normalization semantics and candidate guidance live indocs/src/content/docs/reference/eval.md. - Regressions:
internal/agentcfg,internal/agent/profile_test.go,internal/config/config_agent_config_test.go,internal/daemon/pipeline_agent_profile_test.go,TestParseCandidate*,TestReplayPinsCandidateModelAndEffortOnTheHarness,TestCaptureStripsEveryHarnessPinFromThePinnedConfig,TestServedMatchesRequested,TestReplayPiModelIdentityComparison.
Per-Run Pi Profile Pin
- A per-run Pi pin (
axi run/rerun--model/--effort) is immutable once the run exists (runs.pi_profile, plus an immutability trigger) and must be fully validated before it supersedes an active validation:startRunWithIntentSourceLockedresolves model/effort against global defaults andagent_args_override.pi, then validates agent eligibility only after the freshly fetched trusted default-branch policy produces the effective repositoryagentselection (ResolvePiProfile,validatePiProfileAgentsBeforeCancel). Under the default trust policy this lets a trusted projectagent: pireplace a globalautoor non-Pi scalar/list, while the existingallow_repo_commandsopt-in instead delegates repository agent selection to the pushed copy; effective non-Pi fallbacks andreview_agentsare still refused. The post-mergeValidatePiProfileAgents/ApplyPiProfilepass at worktree setup andApplyPiProfileinloadRecoveredConfigremain the enforcement after cancellation. User semantics are owned bydocs/src/content/docs/reference/global-config.md(Per-run Pi profiles). Regressions:internal/config/pi_profile_test.go,internal/daemon/pi_profile_test.go(TestPiProfileTrustedRepoPiOverrideAcceptsGlobalAuto,TestPiProfileInvalidLaunchDoesNotSupersedeActiveRun,TestPiProfileTrustedRepoAgentOverrideDoesNotSupersedeActiveRun,TestPiProfileRecoveryUsesPersistedPinAndLegacyUsesLiveConfig),internal/db/pi_profile_test.go,internal/cli/pi_profile_test.go, e2eTestLivePiProfileTrustedPiOverridesGlobalAuto,TestLivePiProfileFeatureBranchPiCannotOverrideGlobalAuto, andTestPiRunProfileSurvivesGlobalChangesAcrossEveryDuty.
