github-router 0.3.275 → 0.3.276

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/{attribution-settings-ZOaCUrYY.js → attribution-settings-VOPvSn6v.js} +64 -48
  2. package/dist/attribution-settings-VOPvSn6v.js.map +1 -0
  3. package/dist/{auth-Q1tfmfCT.js → auth-CYoRwhC9.js} +3 -3
  4. package/dist/{auth-Q1tfmfCT.js.map → auth-CYoRwhC9.js.map} +1 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/{check-usage-CHLz4tU_.js → check-usage-DDUyg8ZB.js} +4 -4
  7. package/dist/{check-usage-CHLz4tU_.js.map → check-usage-DDUyg8ZB.js.map} +1 -1
  8. package/dist/{claude-Cl4gYoOZ.js → claude-OTHh7iKz.js} +26 -16
  9. package/dist/claude-OTHh7iKz.js.map +1 -0
  10. package/dist/{codex-D_IXUgKf.js → codex-tCxK30Su.js} +5 -5
  11. package/dist/{codex-D_IXUgKf.js.map → codex-tCxK30Su.js.map} +1 -1
  12. package/dist/{debug-CuuxCk_J.js → debug-CJgsxoVw.js} +2 -2
  13. package/dist/{debug-CuuxCk_J.js.map → debug-CJgsxoVw.js.map} +1 -1
  14. package/dist/engine-BKJKMAzh.js +2 -0
  15. package/dist/{gate-discovery-Br448Md6.js → gate-discovery-nf7PGgnS.js} +5 -5
  16. package/dist/{gate-discovery-Br448Md6.js.map → gate-discovery-nf7PGgnS.js.map} +1 -1
  17. package/dist/{get-copilot-usage-BRN18uMJ.js → get-copilot-usage-D1OAH0EU.js} +2 -2
  18. package/dist/{get-copilot-usage-BRN18uMJ.js.map → get-copilot-usage-D1OAH0EU.js.map} +1 -1
  19. package/dist/{internal-artifact-open-CDqPfegE.js → internal-artifact-open-BCz9lnq0.js} +2 -2
  20. package/dist/{internal-artifact-open-CDqPfegE.js.map → internal-artifact-open-BCz9lnq0.js.map} +1 -1
  21. package/dist/{internal-plan-review-CH9qTHoZ.js → internal-plan-review-jRMpHu68.js} +3 -3
  22. package/dist/{internal-plan-review-CH9qTHoZ.js.map → internal-plan-review-jRMpHu68.js.map} +1 -1
  23. package/dist/{internal-prompt-submit-Bve1s4z_.js → internal-prompt-submit-CqWRFCuv.js} +4 -4
  24. package/dist/{internal-prompt-submit-Bve1s4z_.js.map → internal-prompt-submit-CqWRFCuv.js.map} +1 -1
  25. package/dist/{internal-session-bind-Cc8bMXHK.js → internal-session-bind-BiHWDxuC.js} +2 -2
  26. package/dist/{internal-session-bind-Cc8bMXHK.js.map → internal-session-bind-BiHWDxuC.js.map} +1 -1
  27. package/dist/{internal-stop-hook-DMLQ8vRZ.js → internal-stop-hook-Ds9LwmZA.js} +5 -5
  28. package/dist/{internal-stop-hook-DMLQ8vRZ.js.map → internal-stop-hook-Ds9LwmZA.js.map} +1 -1
  29. package/dist/{internal-stop-review-CWE7_QVv.js → internal-stop-review-BOFj7R3q.js} +2 -2
  30. package/dist/{internal-stop-review-CWE7_QVv.js.map → internal-stop-review-BOFj7R3q.js.map} +1 -1
  31. package/dist/{lifecycle-AgNOtFRv.js → lifecycle-AGXnd-ZY.js} +2 -2
  32. package/dist/{lifecycle-AgNOtFRv.js.map → lifecycle-AGXnd-ZY.js.map} +1 -1
  33. package/dist/lifecycle-DCrKbaIU.js +2 -0
  34. package/dist/lifecycle-KKSTKwd6.js +2 -0
  35. package/dist/{lifecycle-0XrazT05.js → lifecycle-LA4rAuAL.js} +2 -2
  36. package/dist/{lifecycle-0XrazT05.js.map → lifecycle-LA4rAuAL.js.map} +1 -1
  37. package/dist/main.js +14 -14
  38. package/dist/{models-d0gkuYGy.js → models-4Q45Q2Dw.js} +3 -3
  39. package/dist/{models-d0gkuYGy.js.map → models-4Q45Q2Dw.js.map} +1 -1
  40. package/dist/{orchestration-B_Q3ncXI.js → orchestration-CpkG8ScN.js} +2 -2
  41. package/dist/{orchestration-B_Q3ncXI.js.map → orchestration-CpkG8ScN.js.map} +1 -1
  42. package/dist/paths-DN3Nio42.js +2 -0
  43. package/dist/{paths-Bg1_DWhi.js → paths-j2B7b0DZ.js} +4 -4
  44. package/dist/{paths-Bg1_DWhi.js.map → paths-j2B7b0DZ.js.map} +1 -1
  45. package/dist/{peer-mcp-personas-TMOZJhfy.js → peer-mcp-personas-DRL_xT4h.js} +96 -17
  46. package/dist/{peer-mcp-personas-TMOZJhfy.js.map → peer-mcp-personas-DRL_xT4h.js.map} +1 -1
  47. package/dist/{plan-review-hook-BKOcW5s4.js → plan-review-hook-Dk5zTNke.js} +2 -2
  48. package/dist/{plan-review-hook-BKOcW5s4.js.map → plan-review-hook-Dk5zTNke.js.map} +1 -1
  49. package/dist/{prompt-submit-hook-F7Zih_au.js → prompt-submit-hook-lvTWwaTV.js} +2 -2
  50. package/dist/{prompt-submit-hook-F7Zih_au.js.map → prompt-submit-hook-lvTWwaTV.js.map} +1 -1
  51. package/dist/{provision-BJ5vUpmp.js → provision-HzZ547dW.js} +4 -4
  52. package/dist/{provision-BJ5vUpmp.js.map → provision-HzZ547dW.js.map} +1 -1
  53. package/dist/{serve-DMA82DFJ.js → serve-CM3OmF4I.js} +21 -12
  54. package/dist/serve-CM3OmF4I.js.map +1 -0
  55. package/dist/{server-setup-CVfqSkh_.js → server-setup-C9r7jYnz.js} +6 -6
  56. package/dist/{server-setup-CVfqSkh_.js.map → server-setup-C9r7jYnz.js.map} +1 -1
  57. package/dist/{start-BGze5TnZ.js → start-KAUCsDao.js} +3 -3
  58. package/dist/{start-BGze5TnZ.js.map → start-KAUCsDao.js.map} +1 -1
  59. package/dist/{stop-gate-hook-BqpumJtl.js → stop-gate-hook-CaUrldLh.js} +2 -2
  60. package/dist/{stop-gate-hook-BqpumJtl.js.map → stop-gate-hook-CaUrldLh.js.map} +1 -1
  61. package/dist/{stop-gate-policy-C0XOBZhB.js → stop-gate-policy-lAabj_pP.js} +2 -2
  62. package/dist/{stop-gate-policy-C0XOBZhB.js.map → stop-gate-policy-lAabj_pP.js.map} +1 -1
  63. package/dist/{token-Bz6HoH2H.js → token-CxPaBEUS.js} +2 -2
  64. package/dist/{token-Bz6HoH2H.js.map → token-CxPaBEUS.js.map} +1 -1
  65. package/package.json +1 -1
  66. package/dist/attribution-settings-ZOaCUrYY.js.map +0 -1
  67. package/dist/claude-Cl4gYoOZ.js.map +0 -1
  68. package/dist/engine-Drs3cxLW.js +0 -2
  69. package/dist/lifecycle-2M0IThRr.js +0 -2
  70. package/dist/lifecycle-C8kFsAj-.js +0 -2
  71. package/dist/paths-BbHtQAOs.js +0 -2
  72. package/dist/serve-DMA82DFJ.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { Dt as CONDENSED_OPERATING_SEQUENCE, Ht as withOneMSuffix, Ot as DEFINITION_OF_GREATNESS, c as personasFor, i as buildAgentPrompt, n as MCP_GROUPS, t as GROUP_META } from "./peer-mcp-personas-TMOZJhfy.js";
2
- import { a as isUnderClaudeConfigMirror, d as writeRuntimeFileSecure, t as PATHS } from "./paths-Bg1_DWhi.js";
3
- import { a as STRIPPED_AUTH_ROUTING_ENV_KEYS, n as buildCodexProviderConfigFlags } from "./provision-BJ5vUpmp.js";
1
+ import { At as CONDENSED_OPERATING_SEQUENCE, Gt as withOneMSuffix, c as personasFor, i as buildAgentPrompt, jt as DEFINITION_OF_GREATNESS, n as MCP_GROUPS, t as GROUP_META } from "./peer-mcp-personas-DRL_xT4h.js";
2
+ import { a as isUnderClaudeConfigMirror, d as writeRuntimeFileSecure, t as PATHS } from "./paths-j2B7b0DZ.js";
3
+ import { a as STRIPPED_AUTH_ROUTING_ENV_KEYS, n as buildCodexProviderConfigFlags } from "./provision-HzZ547dW.js";
4
4
  import { n as buildWorkspaceHeaderHelperCommand } from "./mcp-workspace-header-CGJbNeHb.js";
5
5
  import { a as dispatcherAgentName, c as dispatcherTools, n as activeDispatchModes, o as dispatcherDescription, s as dispatcherPrompt } from "./worker-dispatch-Bj1uYyG9.js";
6
6
  import consola from "consola";
@@ -303,6 +303,9 @@ function buildPeerAgentDefinitions(opts) {
303
303
  const brainstormModel = nonEmptyModel(opts.brainstormModel);
304
304
  const scoutModel = nonEmptyModel(opts.scoutModel);
305
305
  const scribeModel = nonEmptyModel(opts.scribeModel);
306
+ const genericModel = nonEmptyModel(opts.genericModel);
307
+ const genericFastModel = nonEmptyModel(opts.genericFastModel);
308
+ const genericCheapModel = nonEmptyModel(opts.genericCheapModel);
306
309
  const modelField = nativeModel ? { model: withOneMSuffix(nativeModel) } : {};
307
310
  const searchKey = opts.groupKeys.search ?? GROUP_META.search.preferredKey;
308
311
  const searchMcp = opts.serverUrl ? { mcpServers: { [searchKey]: httpEntryFor(opts.serverUrl, "search", opts.nonce, opts.workspaceHeaderCmd) } } : {};
@@ -331,10 +334,26 @@ function buildPeerAgentDefinitions(opts) {
331
334
  ...searchMcp
332
335
  };
333
336
  out.scribe = {
334
- description: scribeModel ? `Documentation subagent running ${scribeModel}. Use proactively for prose that trails the code: docs, ADRs, CLAUDE.md sections, changelog entries, and README updates that have gone stale. Keeps low-glamour upkeep off the lead's context. Model is overridable at spawn.` : `Documentation subagent (runs on the lead's model in its own context). Use proactively for prose that trails the code: docs, ADRs, CLAUDE.md sections, changelog entries, and README updates that have gone stale. Model is overridable at spawn.`,
337
+ description: scribeModel ? `Documentation subagent running ${scribeModel} (the mid tier: documentation is verifiable prose, not frontier reasoning). Use proactively for prose that trails the code: docs, ADRs, CLAUDE.md sections, changelog entries, and README updates that have gone stale. Keeps low-glamour upkeep off the lead's context. Model is overridable at spawn.` : `Documentation subagent (runs on the lead's model in its own context). Use proactively for prose that trails the code: docs, ADRs, CLAUDE.md sections, changelog entries, and README updates that have gone stale. Model is overridable at spawn.`,
335
338
  prompt: "You are a documentation subagent. Write and maintain the prose that trails the code: docs, ADRs, CLAUDE.md sections, changelog entries, README rows. Read the code before describing it — every claim you write must be checkable against the repository as it is now, not as a summary said it was. Match the surrounding document's voice, structure, and level of detail. Prefer updating an existing document over adding a new one, and delete what has become false rather than layering a correction on top of it. " + fileToolSteer("builds") + " Do the work yourself — do not spawn further subagents. Report which documents changed and any claim you could not verify.",
336
339
  ...scribeModel ? { model: withOneMSuffix(scribeModel) } : {}
337
340
  };
341
+ const genericPromptFor = (role) => `You are a general-purpose subagent handling ${role} the lead has delegated to keep its own context free. Work out what the task actually requires, then do it end to end. Verify against the real repository and the real runtime rather than assuming — read the code, run the command, check the exit code. ` + fileToolSteer("builds") + " Do the work yourself — do not spawn further subagents. Report what you did, what you verified, and anything you could not settle.";
342
+ if (genericModel) out.generic = {
343
+ description: `Catch-all subagent running ${genericModel} (1M context, broad general capability). Use for work that no specialist native fits and that you would otherwise do inline: multi-step tasks, mixed read-and-edit work, one-off investigations that end in a change. Runs in its own context on a non-lead model. Model is overridable at spawn.`,
344
+ prompt: genericPromptFor("general work"),
345
+ model: withOneMSuffix(genericModel)
346
+ };
347
+ if (genericFastModel) out["generic-fast"] = {
348
+ description: `Catch-all subagent running ${genericFastModel} (1M context, Gemini flash tier — low cost, reasoning effort tops out at high). Use for well-specified work that does not need a frontier model's reasoning. Full toolset, so it can finish the work rather than only research it. Runs in its own context on a non-lead model. Model is overridable at spawn.`,
349
+ prompt: genericPromptFor("light, well-specified work"),
350
+ model: withOneMSuffix(genericFastModel)
351
+ };
352
+ if (genericCheapModel) out["generic-cheap"] = {
353
+ description: `Catch-all subagent running ${genericCheapModel} (1M context, the lowest-cost model in the catalog, and unlike the flash tier it carries the full reasoning-effort ladder so an effort selection above high still applies). Use for high-volume or long-running work where cost dominates. Full toolset, so it can finish the work rather than only research it. Runs in its own context on a non-lead model. Model is overridable at spawn.`,
354
+ prompt: genericPromptFor("cost-sensitive work"),
355
+ model: withOneMSuffix(genericCheapModel)
356
+ };
338
357
  if (opts.workerToolsAvailable) {
339
358
  const workersKey = workersKeyOf(opts.groupKeys);
340
359
  const workersMcp = opts.serverUrl ? { mcpServers: { [workersKey]: httpEntryFor(opts.serverUrl, "workers", opts.nonce, opts.workspaceHeaderCmd) } } : {};
@@ -675,6 +694,9 @@ async function writePeerMcpRuntimeFiles(serverUrl, opts) {
675
694
  brainstormModel: opts.brainstormModel,
676
695
  scoutModel: opts.scoutModel,
677
696
  scribeModel: opts.scribeModel,
697
+ genericModel: opts.genericModel,
698
+ genericFastModel: opts.genericFastModel,
699
+ genericCheapModel: opts.genericCheapModel,
678
700
  nonce,
679
701
  codexHome,
680
702
  serverUrl,
@@ -1739,51 +1761,45 @@ You are running inside an ai-or-die tab, so the \`${toolPrefix}*\` tools drive a
1739
1761
  * dashes and does not mention any Claude / Anthropic attribution.
1740
1762
  */
1741
1763
  const STYLE_DIRECTIVE = "Write concisely without losing detail. Use a natural human voice. Avoid em dashes. Do not attribute work to Claude, AI, LLM, or Anthropic anywhere (commits, PRs, issues, code, comments, docs).";
1764
+ /** Oxford-comma join: "a", "a and b", "a, b, and c". */
1765
+ function joinClauses(parts) {
1766
+ if (parts.length <= 1) return parts[0] ?? "";
1767
+ if (parts.length === 2) return `${parts[0]} and ${parts[1]}`;
1768
+ return `${parts.slice(0, -1).join(", ")}, and ${parts[parts.length - 1]}`;
1769
+ }
1770
+ /** The "Reach for X when Y" list, omitting any agent this launch did not emit. */
1771
+ function buildNativeReachClauses(opts) {
1772
+ const clauses = [
1773
+ "`implementer` when you know what to build",
1774
+ "`reviewer` when something exists and you want it assessed (including reproducing and root-causing a failure)",
1775
+ "`brainstorm` when you do not yet know which approach to take"
1776
+ ];
1777
+ if (opts.scoutAvailable !== false) clauses.push("`scout` to find or understand something in the repo");
1778
+ clauses.push("`scribe` for docs and ADRs that trail the code");
1779
+ const catchAlls = [
1780
+ opts.genericAvailable === false ? void 0 : "`generic`",
1781
+ opts.genericFastAvailable === false ? void 0 : "`generic-fast`",
1782
+ opts.genericCheapAvailable === false ? void 0 : "`generic-cheap`"
1783
+ ].filter((c) => c != null);
1784
+ if (catchAlls.length > 0) clauses.push(`${joinClauses(catchAlls)} for work no specialist fits, picking the tier that matches the work's weight`);
1785
+ return joinClauses(clauses);
1786
+ }
1742
1787
  /**
1743
- * Operating-defaults directive injected at the TOP of the mirrored CLAUDE.md.
1744
- * The main agent's system prompt (`--append-system-prompt`) gets
1745
- * OPERATING_DEFAULTS_DIGEST instead, with this full statement available through
1746
- * CLAUDE.md. Three defaults, each explicitly overridden by the user's own
1747
- * direction and the domain's standards:
1788
+ * Build the operating-defaults directive for one launch, naming only the
1789
+ * natives that launch actually emitted.
1748
1790
  *
1749
- * 1. Orchestrate (strong default): delegate the heavy / parallel /
1750
- * context-heavy work to the right subagent / worker / model, keeping the
1751
- * main context free to reason and collaborate with the user, while still
1752
- * doing trivial / surgical / last-mile work directly (delegating that
1753
- * would only add relay-fidelity loss + latency).
1754
- * 2. Adversarial review: WHEN a peer critic earns its keep and, equally
1755
- * important, when reaching for one is ritual rather than review. Same
1756
- * failure shape the delegation default had: "consult a critic for
1757
- * non-trivial changes" is unfalsifiable in advance, so it collapses into
1758
- * either never (four of four unprimed agents) or always (worse than
1759
- * never). The discriminator is whether the conclusion still turns on
1760
- * judgment once the direct evidence is in: a consequential recommendation
1761
- * cannot be run, which is exactly where confabulation hides, while a
1762
- * tracing question a search already proved gains nothing from a second
1763
- * model re-deriving it. The roster, the lens-to-artifact match, the
1764
- * advisor-complements-rather-than-substitutes distinction, and the
1765
- * do-not-anchor-the-critic rule live here; the digest carries only the
1766
- * trigger and the ritual exclusion.
1767
- * 3. Excellence lens: the principles stated plainly and concretely (radical
1768
- * simplicity + real-user focus; whole-system first-principles thinking that
1769
- * anticipates scale; work back from the customer outcome). Named exemplars
1770
- * were dropped per the injected-surface review: a named entity is a dense,
1771
- * high-variance vector that pulls in persona mannerisms at top salience, and
1772
- * the guidance favors specific functional framing over comparison, so
1773
- * specificity carries the vividness instead.
1774
- * 4. Engineering excellence: quality / robustness / maintainability over
1775
- * development cost; reproduce a bug end-to-end (as a real user hits it)
1776
- * before fixing so the fix targets the real cause; a pixel-perfect UI bar;
1777
- * and fix any lint error / test failure / flake on sight, whoever caused it,
1778
- * folded into the current work rather than derailing the user's task (the
1779
- * scope guardrail keeps proactive quality from becoming yak-shaving). The
1780
- * digest carries a one-line form; the full statement lives here so it does
1781
- * not cost the context window every turn.
1782
- *
1783
- * Self-referentially compliant with the style directive: no em dashes, no
1784
- * Claude / Anthropic attribution.
1791
+ * Callers must pass the SAME availability booleans they used for the `.md`
1792
+ * generation and `buildPeerAwarenessSnippet`, so the three surfaces cannot
1793
+ * disagree about which agents exist.
1785
1794
  */
1786
- const OPERATING_DEFAULTS_DIRECTIVE = "## Operating defaults (apply when the user has not specified otherwise; the user's explicit direction and the domain's own standards always override)\n\nOrchestrate. Delegate research, implementation, review, and large reads to the right subagent, worker, or model. Reach for `implementer` when you know what to build, `reviewer` when something exists and you want it assessed (including reproducing and root-causing a failure), `brainstorm` when you do not yet know which approach to take, `scout` to find or understand something in the repo, and `scribe` for docs and ADRs that trail the code; worker-* agents for background non-blocking runs; Task subagents for parallel work; peer critics for review. That keeps your own context free to reason and collaborate with the user. Prefer parallel delegation for independent work. Delegation pays when the work is WIDE (many files or sources to sweep) or SLOW, and you need only the conclusion: the main thread is where you think with and respond to the user, and its context window is a finite shared resource. It does NOT pay merely because a sub-question is separable. A narrow, deep question whose whole value is file:line fidelity loses exactly that through a summarization layer, and a sub-question you could answer in one command is cheaper done directly than paying a subagent's startup. Do trivial, surgical, and last-mile work yourself.\n\nAdversarial review. The peer critics (`codex_critic` and `codex_reviewer`, `gemini_critic` and `gemini_reviewer`, `opus_critic`, and the `peer-review-coordinator` that fans out to several of them) are fresh-context models, so what they add is a blind spot that whoever produced the work cannot reach by thinking harder about it; prefer a critic from a different lab than the producer, since blind spots correlate within a lab. The `advisor` is a complement and not a substitute: it sees your transcript, so it catches your own drift and momentum, but it inherits your framing, which is exactly what a fresh-context critic does not. They earn their keep on consequential design choices, recommendations, and hard-to-reverse decisions: the cases where plausible alternatives remain and the conclusion rests on judgment rather than on something you can verify directly. That is where confabulation hides, so budget the wait even under delivery pressure. Always consult one when the change touches auth, user input, database queries, crypto, or serialization. They do NOT pay for read-only tracing, ordinary repository lookup, or a conclusion that a focused test, a direct reproduction, or unambiguous code evidence already settles. Asking a critic to re-derive a proven fact returns a confident answer either way, which is ritual skepticism rather than review, and skipping them there is the right call and not a shortcut. Match the lens to the artifact: a strategic critic for plans and trade-offs, a code reviewer for a concrete diff, the coordinator only when the risk warrants several independent lenses. Give whichever you pick the artifact and the constraints and not your rationale, since justification anchors the review and dulls it.\n\nAim high. Default to radical simplicity and a relentless focus on the user's real experience: design for the person and the job to be done, not the demo. Reason about the whole system from first principles, anticipating scale and the long arc rather than patching the surface. Work backwards from the outcome the user actually needs. Question every assumption and prefer what you can derive, reproduce, or test.\n\nEngineering excellence. When making technical decisions, give little weight to development cost; prefer quality, simplicity, robustness, scalability, and long-term maintainability. Fix a bug by first reproducing it end to end, as close to how a real user hits it as you can, so you solve the real problem and not a symptom. When testing a product end to end, be picky about the UI and obsessed with pixel perfection: if something clearly looks off, even when it is unrelated to your task, get it fixed along the way. Hold that same bar for the codebase itself: a lint error, a failing test, or a flaky test is worth fixing the moment you see it, whoever introduced it. Fold it into your current work rather than letting it derail the task the user actually asked for.";
1795
+ function buildOperatingDefaultsDirective(opts = {}) {
1796
+ return "## Operating defaults (apply when the user has not specified otherwise; the user's explicit direction and the domain's own standards always override)\n\nOrchestrate. Delegate research, implementation, review, and large reads to the right subagent, worker, or model. Reach for " + buildNativeReachClauses(opts) + "; worker-* agents for background non-blocking runs; Task subagents for parallel work; peer critics for review. That keeps your own context free to reason and collaborate with the user. Prefer parallel delegation for independent work. Delegation pays when the work is WIDE (many files or sources to sweep) or SLOW, and you need only the conclusion: the main thread is where you think with and respond to the user, and its context window is a finite shared resource. It does NOT pay merely because a sub-question is separable. A narrow, deep question whose whole value is file:line fidelity loses exactly that through a summarization layer, and a sub-question you could answer in one command is cheaper done directly than paying a subagent's startup. Do trivial, surgical, and last-mile work yourself.\n\nAdversarial review. The peer critics (`codex_critic` and `codex_reviewer`, `gemini_critic` and `gemini_reviewer`, `opus_critic`, and the `peer-review-coordinator` that fans out to several of them) are fresh-context models, so what they add is a blind spot that whoever produced the work cannot reach by thinking harder about it; prefer a critic from a different lab than the producer, since blind spots correlate within a lab. The `advisor` is a complement and not a substitute: it sees your transcript, so it catches your own drift and momentum, but it inherits your framing, which is exactly what a fresh-context critic does not. They earn their keep on consequential design choices, recommendations, and hard-to-reverse decisions: the cases where plausible alternatives remain and the conclusion rests on judgment rather than on something you can verify directly. That is where confabulation hides, so budget the wait even under delivery pressure. Always consult one when the change touches auth, user input, database queries, crypto, or serialization. They do NOT pay for read-only tracing, ordinary repository lookup, or a conclusion that a focused test, a direct reproduction, or unambiguous code evidence already settles. Asking a critic to re-derive a proven fact returns a confident answer either way, which is ritual skepticism rather than review, and skipping them there is the right call and not a shortcut. Match the lens to the artifact: a strategic critic for plans and trade-offs, a code reviewer for a concrete diff, the coordinator only when the risk warrants several independent lenses. Give whichever you pick the artifact and the constraints and not your rationale, since justification anchors the review and dulls it.\n\nAim high. Default to radical simplicity and a relentless focus on the user's real experience: design for the person and the job to be done, not the demo. Reason about the whole system from first principles, anticipating scale and the long arc rather than patching the surface. Work backwards from the outcome the user actually needs. Question every assumption and prefer what you can derive, reproduce, or test.\n\nEngineering excellence. When making technical decisions, give little weight to development cost; prefer quality, simplicity, robustness, scalability, and long-term maintainability. Fix a bug by first reproducing it end to end, as close to how a real user hits it as you can, so you solve the real problem and not a symptom. When testing a product end to end, be picky about the UI and obsessed with pixel perfection: if something clearly looks off, even when it is unrelated to your task, get it fixed along the way. Hold that same bar for the codebase itself: a lint error, a failing test, or a flaky test is worth fixing the moment you see it, whoever introduced it. Fold it into your current work rather than letting it derail the task the user actually asked for.";
1797
+ }
1798
+ /** The all-available form of the directive. Prefer
1799
+ * `buildOperatingDefaultsDirective` on any path that knows which natives
1800
+ * resolved; this const is the default for callers and tests that do not model
1801
+ * a thin catalog. */
1802
+ const OPERATING_DEFAULTS_DIRECTIVE = buildOperatingDefaultsDirective();
1787
1803
  /**
1788
1804
  * Condensed digest of OPERATING_DEFAULTS_DIRECTIVE for the spawned session's
1789
1805
  * system prompt (--append-system-prompt). The FULL directive is prepended to
@@ -2342,6 +2358,6 @@ async function injectAttributionSuppressionIntoSettingsFile(settingsPath) {
2342
2358
  return { written: true };
2343
2359
  }
2344
2360
  //#endregion
2345
- export { injectPeerMcpIntoMirror as _, OPERATING_DEFAULTS_DIRECTIVE as a, workersKeyOf as b, prependArtifactPanelDirectiveToMirroredClaudeMd as c, SEAMLESS_BUILTIN_TOOLS as d, configureServeDefaultPermissionMode as f, BUILTIN_SUBAGENT_DEFINITIONS as g, sanitizeServeSettingsEnv as h, OPERATING_DEFAULTS_DIGEST as i, prependOperatingDefaultsToMirroredClaudeMd as l, planModeAllowRules as m, INJECTED_SKILLS as n, appendPeerAwarenessToMirroredClaudeMd as o, injectAllowRules as p, writeInjectedSkill as r, appendToolbeltAwarenessToMirroredClaudeMd as s, injectAttributionSuppressionIntoSettingsFile as t, prependStyleDirectiveToMirroredClaudeMd as u, resolveCodexCliBackend as v, writePeerMcpRuntimeFiles as x, resolveGroupKeysFromMirror as y };
2361
+ export { injectPeerMcpIntoMirror as _, appendPeerAwarenessToMirroredClaudeMd as a, workersKeyOf as b, prependArtifactPanelDirectiveToMirroredClaudeMd as c, SEAMLESS_BUILTIN_TOOLS as d, configureServeDefaultPermissionMode as f, BUILTIN_SUBAGENT_DEFINITIONS as g, sanitizeServeSettingsEnv as h, OPERATING_DEFAULTS_DIGEST as i, prependOperatingDefaultsToMirroredClaudeMd as l, planModeAllowRules as m, INJECTED_SKILLS as n, appendToolbeltAwarenessToMirroredClaudeMd as o, injectAllowRules as p, writeInjectedSkill as r, buildOperatingDefaultsDirective as s, injectAttributionSuppressionIntoSettingsFile as t, prependStyleDirectiveToMirroredClaudeMd as u, resolveCodexCliBackend as v, writePeerMcpRuntimeFiles as x, resolveGroupKeysFromMirror as y };
2346
2362
 
2347
- //# sourceMappingURL=attribution-settings-ZOaCUrYY.js.map
2363
+ //# sourceMappingURL=attribution-settings-VOPvSn6v.js.map