@mrciphersmith/keryx 0.3.2 → 0.3.5

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 (164) hide show
  1. package/dist/cli.js +4745 -2482
  2. package/dist/core.js +66 -10
  3. package/package.json +1 -1
  4. package/src/gdskills/bundled/install-manifest.json +578 -2
  5. package/src/gdskills/bundled/rules/core/model-selection.mdc +18 -0
  6. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +1 -1
  7. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +1 -1
  8. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +1 -1
  9. package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +1 -1
  10. package/src/gdskills/bundled/skills/review/review-jev-contract/SKILL.md +193 -0
  11. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.detail.md +81 -21
  12. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +4 -4
  13. package/src/gdskills/bundled/stacks/c-cpp/agent-refs.json +4 -0
  14. package/src/gdskills/bundled/stacks/c-cpp/governance/eval.json +1777 -0
  15. package/src/gdskills/bundled/stacks/c-cpp/governance/scout.json +31 -0
  16. package/src/gdskills/bundled/stacks/c-cpp/pack.json +42 -0
  17. package/src/gdskills/bundled/stacks/c-cpp/rules/coding-style.mdc +80 -0
  18. package/src/gdskills/bundled/stacks/c-cpp/rules/patterns.mdc +87 -0
  19. package/src/gdskills/bundled/stacks/c-cpp/rules/security.mdc +90 -0
  20. package/src/gdskills/bundled/stacks/c-cpp/rules/testing.mdc +83 -0
  21. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-build-fix/SKILL.md +153 -0
  22. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-build-fix/evals.json +74 -0
  23. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-code-review/SKILL.md +132 -0
  24. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-code-review/evals.json +73 -0
  25. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-implementation/SKILL.md +151 -0
  26. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-implementation/evals.json +74 -0
  27. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-testing/SKILL.md +152 -0
  28. package/src/gdskills/bundled/stacks/c-cpp/skills/c-cpp-testing/evals.json +74 -0
  29. package/src/gdskills/bundled/stacks/ci-github-gitlab/agent-refs.json +4 -0
  30. package/src/gdskills/bundled/stacks/ci-github-gitlab/governance/eval.json +1295 -0
  31. package/src/gdskills/bundled/stacks/ci-github-gitlab/governance/scout.json +26 -0
  32. package/src/gdskills/bundled/stacks/ci-github-gitlab/pack.json +41 -0
  33. package/src/gdskills/bundled/stacks/ci-github-gitlab/rules/patterns.mdc +77 -0
  34. package/src/gdskills/bundled/stacks/ci-github-gitlab/rules/security.mdc +144 -0
  35. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-build-fix/SKILL.md +121 -0
  36. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-build-fix/evals.json +73 -0
  37. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-code-review/SKILL.md +139 -0
  38. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-code-review/evals.json +73 -0
  39. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-implementation/SKILL.md +147 -0
  40. package/src/gdskills/bundled/stacks/ci-github-gitlab/skills/ci-pipeline-implementation/evals.json +74 -0
  41. package/src/gdskills/bundled/stacks/csharp-dotnet/agent-refs.json +4 -0
  42. package/src/gdskills/bundled/stacks/csharp-dotnet/governance/eval.json +1881 -0
  43. package/src/gdskills/bundled/stacks/csharp-dotnet/governance/scout.json +33 -0
  44. package/src/gdskills/bundled/stacks/csharp-dotnet/pack.json +38 -0
  45. package/src/gdskills/bundled/stacks/csharp-dotnet/rules/coding-style.mdc +100 -0
  46. package/src/gdskills/bundled/stacks/csharp-dotnet/rules/patterns.mdc +107 -0
  47. package/src/gdskills/bundled/stacks/csharp-dotnet/rules/security.mdc +86 -0
  48. package/src/gdskills/bundled/stacks/csharp-dotnet/rules/testing.mdc +89 -0
  49. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-build-fix/SKILL.md +143 -0
  50. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-build-fix/evals.json +77 -0
  51. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-code-review/SKILL.md +121 -0
  52. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-code-review/evals.json +77 -0
  53. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-implementation/SKILL.md +134 -0
  54. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-implementation/evals.json +76 -0
  55. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-testing/SKILL.md +130 -0
  56. package/src/gdskills/bundled/stacks/csharp-dotnet/skills/dotnet-testing/evals.json +77 -0
  57. package/src/gdskills/bundled/stacks/docker-k8s-terraform/agent-refs.json +4 -0
  58. package/src/gdskills/bundled/stacks/docker-k8s-terraform/governance/eval.json +865 -0
  59. package/src/gdskills/bundled/stacks/docker-k8s-terraform/governance/scout.json +16 -0
  60. package/src/gdskills/bundled/stacks/docker-k8s-terraform/pack.json +46 -0
  61. package/src/gdskills/bundled/stacks/docker-k8s-terraform/rules/coding-style.mdc +74 -0
  62. package/src/gdskills/bundled/stacks/docker-k8s-terraform/rules/patterns.mdc +81 -0
  63. package/src/gdskills/bundled/stacks/docker-k8s-terraform/rules/security.mdc +146 -0
  64. package/src/gdskills/bundled/stacks/docker-k8s-terraform/rules/testing.mdc +61 -0
  65. package/src/gdskills/bundled/stacks/docker-k8s-terraform/skills/docker-k8s-terraform-build-fix/SKILL.md +151 -0
  66. package/src/gdskills/bundled/stacks/docker-k8s-terraform/skills/docker-k8s-terraform-build-fix/evals.json +74 -0
  67. package/src/gdskills/bundled/stacks/docker-k8s-terraform/skills/docker-k8s-terraform-review/SKILL.md +135 -0
  68. package/src/gdskills/bundled/stacks/docker-k8s-terraform/skills/docker-k8s-terraform-review/evals.json +76 -0
  69. package/src/gdskills/bundled/stacks/flutter-dart/agent-refs.json +4 -0
  70. package/src/gdskills/bundled/stacks/flutter-dart/governance/eval.json +1849 -0
  71. package/src/gdskills/bundled/stacks/flutter-dart/governance/scout.json +33 -0
  72. package/src/gdskills/bundled/stacks/flutter-dart/pack.json +41 -0
  73. package/src/gdskills/bundled/stacks/flutter-dart/rules/coding-style.mdc +98 -0
  74. package/src/gdskills/bundled/stacks/flutter-dart/rules/patterns.mdc +88 -0
  75. package/src/gdskills/bundled/stacks/flutter-dart/rules/security.mdc +91 -0
  76. package/src/gdskills/bundled/stacks/flutter-dart/rules/testing.mdc +101 -0
  77. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-build-fix/SKILL.md +134 -0
  78. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-build-fix/evals.json +79 -0
  79. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-code-review/SKILL.md +124 -0
  80. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-code-review/evals.json +74 -0
  81. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-implementation/SKILL.md +139 -0
  82. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-implementation/evals.json +77 -0
  83. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-testing/SKILL.md +134 -0
  84. package/src/gdskills/bundled/stacks/flutter-dart/skills/flutter-testing/evals.json +74 -0
  85. package/src/gdskills/bundled/stacks/kotlin-android/agent-refs.json +4 -0
  86. package/src/gdskills/bundled/stacks/kotlin-android/governance/eval.json +1889 -0
  87. package/src/gdskills/bundled/stacks/kotlin-android/governance/scout.json +34 -0
  88. package/src/gdskills/bundled/stacks/kotlin-android/pack.json +38 -0
  89. package/src/gdskills/bundled/stacks/kotlin-android/rules/coding-style.mdc +89 -0
  90. package/src/gdskills/bundled/stacks/kotlin-android/rules/patterns.mdc +96 -0
  91. package/src/gdskills/bundled/stacks/kotlin-android/rules/security.mdc +90 -0
  92. package/src/gdskills/bundled/stacks/kotlin-android/rules/testing.mdc +89 -0
  93. package/src/gdskills/bundled/stacks/kotlin-android/skills/compose-implementation/SKILL.md +150 -0
  94. package/src/gdskills/bundled/stacks/kotlin-android/skills/compose-implementation/evals.json +77 -0
  95. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-build-fix/SKILL.md +151 -0
  96. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-build-fix/evals.json +76 -0
  97. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-code-review/SKILL.md +139 -0
  98. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-code-review/evals.json +78 -0
  99. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-testing/SKILL.md +131 -0
  100. package/src/gdskills/bundled/stacks/kotlin-android/skills/kotlin-android-testing/evals.json +77 -0
  101. package/src/gdskills/bundled/stacks/php-laravel/agent-refs.json +4 -0
  102. package/src/gdskills/bundled/stacks/php-laravel/governance/eval.json +1829 -0
  103. package/src/gdskills/bundled/stacks/php-laravel/governance/scout.json +33 -0
  104. package/src/gdskills/bundled/stacks/php-laravel/pack.json +41 -0
  105. package/src/gdskills/bundled/stacks/php-laravel/rules/coding-style.mdc +82 -0
  106. package/src/gdskills/bundled/stacks/php-laravel/rules/patterns.mdc +80 -0
  107. package/src/gdskills/bundled/stacks/php-laravel/rules/security.mdc +80 -0
  108. package/src/gdskills/bundled/stacks/php-laravel/rules/testing.mdc +82 -0
  109. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-build-fix/SKILL.md +143 -0
  110. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-build-fix/evals.json +74 -0
  111. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-code-review/SKILL.md +126 -0
  112. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-code-review/evals.json +76 -0
  113. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-implementation/SKILL.md +140 -0
  114. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-implementation/evals.json +75 -0
  115. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-testing/SKILL.md +124 -0
  116. package/src/gdskills/bundled/stacks/php-laravel/skills/php-laravel-testing/evals.json +74 -0
  117. package/src/gdskills/bundled/stacks/ruby-rails/agent-refs.json +4 -0
  118. package/src/gdskills/bundled/stacks/ruby-rails/governance/eval.json +1673 -0
  119. package/src/gdskills/bundled/stacks/ruby-rails/governance/scout.json +33 -0
  120. package/src/gdskills/bundled/stacks/ruby-rails/pack.json +42 -0
  121. package/src/gdskills/bundled/stacks/ruby-rails/rules/coding-style.mdc +69 -0
  122. package/src/gdskills/bundled/stacks/ruby-rails/rules/patterns.mdc +93 -0
  123. package/src/gdskills/bundled/stacks/ruby-rails/rules/security.mdc +90 -0
  124. package/src/gdskills/bundled/stacks/ruby-rails/rules/testing.mdc +89 -0
  125. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-build-fix/SKILL.md +143 -0
  126. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-build-fix/evals.json +73 -0
  127. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-code-review/SKILL.md +134 -0
  128. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-code-review/evals.json +71 -0
  129. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-implementation/SKILL.md +141 -0
  130. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-implementation/evals.json +72 -0
  131. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-testing/SKILL.md +125 -0
  132. package/src/gdskills/bundled/stacks/ruby-rails/skills/ruby-rails-testing/evals.json +72 -0
  133. package/src/gdskills/bundled/stacks/sql-db/agent-refs.json +4 -0
  134. package/src/gdskills/bundled/stacks/sql-db/governance/eval.json +1829 -0
  135. package/src/gdskills/bundled/stacks/sql-db/governance/scout.json +30 -0
  136. package/src/gdskills/bundled/stacks/sql-db/pack.json +40 -0
  137. package/src/gdskills/bundled/stacks/sql-db/rules/coding-style.mdc +69 -0
  138. package/src/gdskills/bundled/stacks/sql-db/rules/patterns.mdc +134 -0
  139. package/src/gdskills/bundled/stacks/sql-db/rules/security.mdc +74 -0
  140. package/src/gdskills/bundled/stacks/sql-db/rules/testing.mdc +83 -0
  141. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-build-fix/SKILL.md +147 -0
  142. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-build-fix/evals.json +72 -0
  143. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-code-review/SKILL.md +132 -0
  144. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-code-review/evals.json +73 -0
  145. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-implementation/SKILL.md +153 -0
  146. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-implementation/evals.json +77 -0
  147. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-testing/SKILL.md +129 -0
  148. package/src/gdskills/bundled/stacks/sql-db/skills/sql-db-testing/evals.json +73 -0
  149. package/src/gdskills/bundled/stacks/swift-ios/agent-refs.json +4 -0
  150. package/src/gdskills/bundled/stacks/swift-ios/governance/eval.json +1803 -0
  151. package/src/gdskills/bundled/stacks/swift-ios/governance/scout.json +32 -0
  152. package/src/gdskills/bundled/stacks/swift-ios/pack.json +38 -0
  153. package/src/gdskills/bundled/stacks/swift-ios/rules/coding-style.mdc +92 -0
  154. package/src/gdskills/bundled/stacks/swift-ios/rules/patterns.mdc +112 -0
  155. package/src/gdskills/bundled/stacks/swift-ios/rules/security.mdc +78 -0
  156. package/src/gdskills/bundled/stacks/swift-ios/rules/testing.mdc +90 -0
  157. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-build-fix/SKILL.md +144 -0
  158. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-build-fix/evals.json +75 -0
  159. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-code-review/SKILL.md +122 -0
  160. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-code-review/evals.json +75 -0
  161. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-testing/SKILL.md +131 -0
  162. package/src/gdskills/bundled/stacks/swift-ios/skills/swift-testing/evals.json +75 -0
  163. package/src/gdskills/bundled/stacks/swift-ios/skills/swiftui-implementation/SKILL.md +149 -0
  164. package/src/gdskills/bundled/stacks/swift-ios/skills/swiftui-implementation/evals.json +76 -0
package/dist/core.js CHANGED
@@ -8191,6 +8191,12 @@ var init_catalog = __esm(() => {
8191
8191
  "Ask Jev one choice question per open comment; keryx writes every word of the finding.",
8192
8192
  "Never post a reply or resolve a thread \u2014 the label is advisory only."
8193
8193
  ]),
8194
+ skill("review-jev-contract", "review", ["recommended", "full"], "Check a PR description's own claims, and a linked flow's frozen acceptance criteria, against the diff, scored by Jev.", [
8195
+ "Split the PR description into claims deterministically \u2014 bullets, and sentences carrying a verb cue.",
8196
+ "Compute deterministic facts per claim first: named files/symbols/flags in the diff, tests touched, exported-symbol changes.",
8197
+ 'Ask Jev one noul per claim; a claim the facts CONTRADICT (e.g. "no API change" with an exported symbol touched) is major regardless of the answer.',
8198
+ "Reuse flow 328's check-ac.ts (via runCheckAc) for the linked flow's frozen acceptance criteria \u2014 never reimplemented here."
8199
+ ]),
8194
8200
  skill("review-logic", "review", ["recommended", "full"], "Review logic correctness, contracts, edge cases, nullability, and async behavior.", [
8195
8201
  "Trace behavior through call sites and affected context.",
8196
8202
  "Look for incorrect assumptions, missing branches, race conditions, and error paths.",
@@ -8655,6 +8661,7 @@ var init_skill_length_ceilings = __esm(() => {
8655
8661
  "review/review-frontend-conventions": 213,
8656
8662
  "review/review-highload": 550,
8657
8663
  "review/review-jev-comments": 184,
8664
+ "review/review-jev-contract": 193,
8658
8665
  "review/review-jev-docs": 189,
8659
8666
  "review/review-jev-risk": 190,
8660
8667
  "review/review-jev-rules": 267,
@@ -9849,16 +9856,17 @@ function stripMutationToolsForPolicy(tools, policyProfile) {
9849
9856
  function mdSentinelLine(definition) {
9850
9857
  return `<!-- ${agentManagedSentinelText(definition)} -->`;
9851
9858
  }
9852
- function renderClaudeExport(definition, header) {
9859
+ function renderClaudeExport(definition, header, options = {}) {
9853
9860
  const { allowed, strippedForPolicy } = stripMutationToolsForPolicy(definition.tools, definition.policy_profile);
9854
9861
  const { mappedTools, droppedTools } = mapToolsForTarget(allowed, "claude");
9855
9862
  const claudeTools = mappedTools.length > 0 ? mappedTools : CLAUDE_READ_BASELINE;
9863
+ const modelLine = options.claudeSubagentAliases === false ? "model: inherit" : `model: ${CLAUDE_MODEL_ALIAS[definition.model_tier]}`;
9856
9864
  const frontmatter = [
9857
9865
  "---",
9858
9866
  `name: ${yamlDoubleQuoted(definition.name)}`,
9859
9867
  `description: ${yamlDoubleQuoted(definition.description)}`,
9860
9868
  `tools: ${yamlDoubleQuoted(claudeTools.join(", "))}`,
9861
- "model: inherit",
9869
+ modelLine,
9862
9870
  "---"
9863
9871
  ].join(`
9864
9872
  `);
@@ -9979,9 +9987,9 @@ ${header}
9979
9987
  }
9980
9988
  };
9981
9989
  }
9982
- function renderHostExport(definition, target, header) {
9990
+ function renderHostExport(definition, target, header, options = {}) {
9983
9991
  if (target === "claude") {
9984
- return { ok: true, result: renderClaudeExport(definition, header) };
9992
+ return { ok: true, result: renderClaudeExport(definition, header, options) };
9985
9993
  }
9986
9994
  if (target === "codex") {
9987
9995
  return renderCodexExport(definition, header);
@@ -10023,7 +10031,7 @@ function compileAgentHeader(definition) {
10023
10031
  }
10024
10032
  return { ok: true, header: renderHeader(definition) };
10025
10033
  }
10026
- function compileAgentDefinition(definition, target) {
10034
+ function compileAgentDefinition(definition, target, options = {}) {
10027
10035
  const headerResult = compileAgentHeader(definition);
10028
10036
  if (!headerResult.ok) {
10029
10037
  return { ok: false, error: headerResult.error };
@@ -10032,9 +10040,9 @@ function compileAgentDefinition(definition, target) {
10032
10040
  if (target === "keryx-shell") {
10033
10041
  return compileKeryxShell(definition, header);
10034
10042
  }
10035
- return renderHostExport(definition, target, header);
10043
+ return renderHostExport(definition, target, header, options);
10036
10044
  }
10037
- var KERYX_SHELL_ENFORCEMENT, BASELINE_NGRAM_WORDS = 10, BASELINE_WORDS, BASELINE_NGRAMS, AGENT_CONTENT_HASH_PLACEHOLDER, CONTENT_HASH_MARKER = "content-sha256:", MUTATION_TOOL_NAMES, CLAUDE_READ_BASELINE, KIRO_READ_BASELINE;
10045
+ var KERYX_SHELL_ENFORCEMENT, BASELINE_NGRAM_WORDS = 10, BASELINE_WORDS, BASELINE_NGRAMS, AGENT_CONTENT_HASH_PLACEHOLDER, CONTENT_HASH_MARKER = "content-sha256:", MUTATION_TOOL_NAMES, CLAUDE_READ_BASELINE, KIRO_READ_BASELINE, CLAUDE_MODEL_ALIAS;
10038
10046
  var init_compile = __esm(() => {
10039
10047
  init_baseline();
10040
10048
  init_schema();
@@ -10052,6 +10060,11 @@ var init_compile = __esm(() => {
10052
10060
  MUTATION_TOOL_NAMES = new Set(["apply_patch", "shell_exec"]);
10053
10061
  CLAUDE_READ_BASELINE = ["Read", "Grep", "Glob"];
10054
10062
  KIRO_READ_BASELINE = ["read"];
10063
+ CLAUDE_MODEL_ALIAS = {
10064
+ deep: "opus",
10065
+ standard: "sonnet",
10066
+ light: "haiku"
10067
+ };
10055
10068
  });
10056
10069
 
10057
10070
  // src/agents/export.ts
@@ -10128,6 +10141,28 @@ function decideAction(existing, generated, format, expectedName) {
10128
10141
  }
10129
10142
  return { action: "update" };
10130
10143
  }
10144
+ async function readClaudeSubagentAliasesConfig(projectRoot) {
10145
+ const file = path36.join(projectRoot, CLAUDE_SUBAGENT_ALIASES_CONFIG_PATH);
10146
+ if (!await pathExists(file)) {
10147
+ return { enabled: true };
10148
+ }
10149
+ const read = await readJsonObjectFile(file);
10150
+ if (read.state !== "object") {
10151
+ return { enabled: true, note: `${CLAUDE_SUBAGENT_ALIASES_CONFIG_PATH} could not be read as a JSON object; claude subagent aliases stayed enabled` };
10152
+ }
10153
+ const modelGuidance = read.value["modelGuidance"];
10154
+ if (typeof modelGuidance !== "object" || modelGuidance === null || Array.isArray(modelGuidance)) {
10155
+ return { enabled: true };
10156
+ }
10157
+ const value = modelGuidance["claudeSubagentAliases"];
10158
+ if (value === false) {
10159
+ return { enabled: false };
10160
+ }
10161
+ if (value !== undefined && value !== true) {
10162
+ return { enabled: true, note: `${CLAUDE_SUBAGENT_ALIASES_CONFIG_PATH}: modelGuidance.claudeSubagentAliases is not a boolean; aliases stayed enabled` };
10163
+ }
10164
+ return { enabled: true };
10165
+ }
10131
10166
  async function planAgentExport(projectRoot, definition, runtime, opts = {}) {
10132
10167
  const supportLevel = agentExportSupport(runtime, opts.lookup);
10133
10168
  if (runtime === "keryx-shell") {
@@ -10194,7 +10229,8 @@ ${headerResult.header}
10194
10229
  ...decided.reason !== undefined ? { reason: decided.reason } : {}
10195
10230
  };
10196
10231
  }
10197
- const compiled = compileAgentDefinition(definition, runtime);
10232
+ const compileOptions = runtime === "claude" ? { claudeSubagentAliases: (await readClaudeSubagentAliasesConfig(projectRoot)).enabled } : {};
10233
+ const compiled = compileAgentDefinition(definition, runtime, compileOptions);
10198
10234
  if (!compiled.ok) {
10199
10235
  return {
10200
10236
  runtime,
@@ -10323,9 +10359,10 @@ var defaultAgentSupportLookup = (runtime) => {
10323
10359
  if (!surface)
10324
10360
  return;
10325
10361
  return matrixStateToExportLevel(classifySurfaceState(adapter, surface));
10326
- }, PROSE_EXPORT_ROOT = ".metaproject/agents-export", HOST_AGENTS_DIR;
10362
+ }, PROSE_EXPORT_ROOT = ".metaproject/agents-export", CLAUDE_SUBAGENT_ALIASES_CONFIG_PATH = ".metaproject/tasks.config.json", HOST_AGENTS_DIR;
10327
10363
  var init_export2 = __esm(() => {
10328
10364
  init_fs();
10365
+ init_json();
10329
10366
  init_contained_write();
10330
10367
  init_registry();
10331
10368
  init_matrix();
@@ -23346,6 +23383,7 @@ __export(exports_service3, {
23346
23383
  confirmPreconditionError: () => confirmPreconditionError,
23347
23384
  createFlowService: () => createFlowService,
23348
23385
  evaluatedVerdict: () => evaluatedVerdict,
23386
+ extractCriterionTokens: () => extractCriterionTokens,
23349
23387
  factsOnlyVerdict: () => factsOnlyVerdict,
23350
23388
  hashDiff: () => hashDiff,
23351
23389
  isFrozen: () => isFrozen,
@@ -36986,7 +37024,7 @@ var HELP_GROUPS = [
36986
37024
  kind: "cli",
36987
37025
  name: "routing",
36988
37026
  group: "Connect a model provider",
36989
- summary: "Category -> model routing table (list, set, unset, trust) and the model-profile catalogue (profile list, profile set)."
37027
+ summary: "Category -> model routing table (list, set, unset, trust), the model-profile catalogue (profile list, profile set), and real measured task cost (stats)."
36990
37028
  },
36991
37029
  { kind: "slash", name: "/connect", group: "Connect a model provider", summary: "Switch provider; row buttons test/disconnect it." },
36992
37030
  {
@@ -37183,12 +37221,30 @@ var HELP_GROUPS = [
37183
37221
  group: "Managed work",
37184
37222
  summary: "List open PR review comments with a Jev resolved/still-open/escalation label \u2014 /opencomments <owner/repo> <pr>."
37185
37223
  },
37224
+ {
37225
+ kind: "slash",
37226
+ name: "/contract",
37227
+ group: "Managed work",
37228
+ summary: "Check PR-description claims and a linked flow's frozen acceptance criteria against the working diff, with Jev."
37229
+ },
37230
+ {
37231
+ kind: "slash",
37232
+ name: "/triage",
37233
+ group: "Managed work",
37234
+ summary: "Advisory annotations \u2014 severity calibration, duplicate-merge candidates, verifier queue order \u2014 over the latest review package, with Jev."
37235
+ },
37186
37236
  {
37187
37237
  kind: "slash",
37188
37238
  name: "/guard",
37189
37239
  group: "Managed work",
37190
37240
  summary: "Opt-in turn guard: after a turn, checks whether the request was done and catches a reply that contradicts the tools \u2014 /guard [on|off]."
37191
37241
  },
37242
+ {
37243
+ kind: "slash",
37244
+ name: "/route",
37245
+ group: "Managed work",
37246
+ summary: "Opt-in routing classifier: each request runs on its routing category's model \u2014 /route [on|off]."
37247
+ },
37192
37248
  { kind: "slash", name: "/plan", group: "Managed work", summary: "Toggle read-only mode \u2014 /plan [on|off]." },
37193
37249
  {
37194
37250
  kind: "slash",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.3.2",
3
+ "version": "0.3.5",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {