v0.13.2 — Gateway audience: re-flip default pm → biz
v0.13.2 — Gateway audience: re-flip default pm → biz
Why
v0.13.1 (~30 minutes ago) flipped defaultAudience() from tech → pm, betting pm was the right middle ground for unknown / non-IT users. Live re-verification on a real slack-webhook workspace, driven via chrome-devtools, showed the gap between tech and pm was too narrow for the actual product intent.
A side-by-side comparison on identical questions:
| Tier | Reply shape |
|---|---|
tech (hanfour, per-user override) |
app/models/ability.rb, Rolify, Doorkeeper, Devise, Masa::Users::Valid, CanCan::AccessDenied — full method/file/library refs, no code block |
pm (H4, default after v0.13.1) |
ability.rb, partner_admin, Api::V1::Superdsp::BaseController, 4-line Ruby code block — same code references, slightly fewer cross-component refs |
The PM tier is intentionally designed to cite file paths and model names — the prompt says "PMs use these to brief engineers later". For a true non-IT user (sales / ops / exec-adjacent), that's still too technical. And the one Ruby block in the PM reply was itself a violation of PM tier's own "no code blocks unless quoting an exact API name or table column" rule, suggesting the LLM was leaning on existing channel session history (yesterday's tech-tier replies were in the same thread).
Fixed
-
defaultAudience()returns{ default: "biz" }(packages/cli/src/gateway/config.ts). The BIZ prompt enforces:- Mandatory jargon translation:
AdFormat→ 「廣告版型」,scope→ 「篩選條件」,AASM→ 「狀態機」 - No code blocks unless quoting operational SQL the user must run
- Implementation collapsed: "想看實作可以再問 IT" or「程式碼層面可以問工程師」
- Lead with one-line plain-Chinese summary of what the question is really asking
PMs who want file refs can still opt into
pmtier; engineers stay ontech. Both via explicit per-user override:pmk gateway audience set <PM-USER-ID> pm pmk gateway audience set <IT-USER-ID> tech
- Mandatory jargon translation:
-
Test assertion in
gateway.test.tsflipped fromdefault === "pm"todefault === "biz". Same intent ("legacy configs back-fill with the default"); value follows the factory.
Tests
@pmk/cli 362 → 362 (unchanged). All 412 workspace tests still pass.
Operator note
This is factory-only. Existing gateway.json files keep whatever audience.default they already have. To apply the new default to an existing host:
pmk gateway audience default biz
# Optionally promote known PMs / engineers:
pmk gateway audience set <PM-USER-ID> pm
pmk gateway audience set <IT-USER-ID> tech
# Restart the gateway (audience config is loaded into memory at adapter construction):
kill -TERM $(cat ~/.pmk/gateway/gateway.pid) && pmk gateway startIf you only just upgraded from v0.13.0 directly (skipping v0.13.1), there's no need to do anything special — your existing config is untouched either way.
What's next
The pm/tech tiers stay first-class — this v0.13.2 only changes which one is default. v0.13.3+ might revisit the PM prompt's "no code blocks" rule (currently violated when channel session history bleeds in) and BIZ prompt's translation coverage (currently lists 3 examples — could be expanded as more workspace-specific jargon is observed).