Repository navigation
Route Terminal Stylist with model routing instead of pinning gpt-5.6-sol - #73387
Conversation
Co-authored-by: SivaKesava1 <11771739+SivaKesava1@users.noreply.github.com>
Co-authored-by: SivaKesava1 <11771739+SivaKesava1@users.noreply.github.com>
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. Design Decision Gate 🏗️Outcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
✅ Ponytail Reviewer completed successfully! Ponytail ReviewerOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality SentinelOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
There was a problem hiding this comment.
Review: no blocking findings
The frontmatter change is schema-consistent, and the regenerated lockfile wires model routing through the router while propagating routed model metadata to reporting and safe-output jobs. I found no actionable correctness, security, or CI issue in the changed lines.
Review scope
Reviewed the workflow source and generated lockfile routing changes; no inline comments were necessary.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt50 · ~3 AIC · ⌖ ~1 AIC · ⊞ 1.7K
Comment /review to run again
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the cost-focused model-routing change.
No open issues 🎉
What changed in this PR
Moves Terminal Stylist from a fixed gpt-5.6-sol model to cost-focused routing, supporting #73380’s goal of reducing report-generation costs without changing its task or permissions.
Changes:
- Keeps the Pi engine and enables model routing with
goal: costandmode: economy. - Regenerates the lock file with the pinned router image, routing setup, and downstream model metadata.
- Removes the inherited threat-detection model pin, allowing the configured detection default; prompt, schedule, tools, permissions, and safe outputs remain unchanged.
| File | Description |
|---|---|
.github/workflows/terminal-stylist.md |
Replaces the fixed model pin with cost-focused economy routing. |
.github/workflows/terminal-stylist.lock.yml |
Adds generated routing configuration and metadata handling, and restores default detection model selection. |
Review effort: Balanced (auto)
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /codebase-design per pr-triage (change_type: refactor_cleanup). No actionable issues found.
📋 Analysis
This is a minimal, well-precedented configuration change:
engine: pi/model: copilot/gpt-5.6-sol→engine: { id: pi, model-routing: { goal: cost, mode: economy } }- Both
goal: costandmode: economyare valid enum values enforced byvalidateModelRoutinginpkg/workflow/model_routing.go(goal ∈ {cost, cost-speed}; mode ∈ {economy, balanced, robust, auto}). - The exact same
goal: cost/mode: economypairing withengine.id: piis already in production use elsewhere (e.g.smoke-pi-routed.md,claude-code-user-docs-review.md,copilot-session-insights.md,safe-output-health.md), so this isn't a novel/untested pattern. - Omitting
allowed-models/model-provideris consistent with how otherpi-engine workflows configure routing — Pi routes through GitHub Copilot without an explicit provider. - The regenerated lock file correctly drops the hardcoded
GH_AW_PI_MODEL/GH_AW_PI_NATIVE_PROVIDERenv vars, adds the AWF router image/step, and threat detection now falls back to its owndetectiondefault model instead of inheriting the removed pin — all expected side effects of this change, not new risk surface. - No changes to prompt, tools, permissions, or safe outputs, so blast radius is contained to model selection/cost for one low-risk internal audit workflow.
Positive Highlights
- ✅ PR description is thorough: documents expected cost impact (~87 → ~60 AIC), the follow-up audit plan, and a clear rollback path (
mode: balancedor re-pin). - ✅ Change follows the established repo convention for migrating pinned-model workflows to router-based model selection.
- ✅ Scope is tight — only the two files that needed to change were touched.
No inline comments posted: the diff is a 3-line, schema-valid config change with direct precedent elsewhere in the repo, and the PR body already covers the operational risk (cost regression, rollback) that would otherwise need separate flagging.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · ~65 AIC · ⌖ ~18 AIC · ⊞ 10.8K
Comment /matt to run again
Terminal Stylist pins
copilot/gpt-5.6-sol. Its threat-detection job inherits that pin, so a run costs about 87 AIC (about 69 for the agent, 18 for detection). Withgoal: costandmode: economy, the router is expected to pickgpt-5.6-lunaatmaxeffort for this task. That model scores about the same on the router's benchmarks for a fraction of the cost.Frontmatter (
.github/workflows/terminal-stylist.md)allowed-modelsand nomodel-provider, because Pi routes through GitHub Copilot without it.Regenerated lock file (
terminal-stylist.lock.yml)ghcr.io/github/gh-aw-firewall/router:0.29.0@sha256:d054ab66…is added to the pinned and downloaded images.experimental.modelRouting: true. The model config isrouting: {enabled: true, goal: cost, mode: economy}, with empty allowed and blocked lists.GH_AW_PI_MODELorGH_AW_PI_NATIVE_PROVIDER.model,model_effortandmodel_routing_status. Downstream jobs receive them asGH_AW_ENGINE_MODEL,GH_AW_ENGINE_MODEL_EFFORTandGH_AW_MODEL_ROUTING_STATUS.detectiondefault model instead ofgpt-5.6-sol. This workflow has no evals job.No other workflows or lock files change.
Notes
main:TestNoRawOctalPermissionLiteralsInOSCallsinpkg/constantsfails because ofpkg/cli/logs_harbor*.go. This PR doesn't touch those files.mode: balanced. To undo routing entirely, restoreengine: piand themodel:pin, then recompile.