@starci/hfs 4.0.10 → 4.2.0

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 (275) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/emit/operations.mjs +1 -1
  3. package/emit/type-schema.mjs +2 -1
  4. package/lint/run.mjs +65 -24
  5. package/package.json +1 -1
  6. package/report/order.mjs +2 -0
  7. package/runtime/config.example.yaml +194 -0
  8. package/runtime/engine/by-code-unit.mjs +12 -0
  9. package/runtime/engine/config.mjs +222 -239
  10. package/runtime/engine/invalid-config.mjs +5 -5
  11. package/runtime/engine/model-config.mjs +90 -0
  12. package/runtime/engine/orca-config.mjs +3 -1
  13. package/runtime/engine/release-config.mjs +28 -0
  14. package/runtime/engine/removed-vocabulary.mjs +28 -0
  15. package/runtime/engine/resources-config.mjs +52 -0
  16. package/runtime/engine/runtime-root.mjs +17 -0
  17. package/runtime/engine/secrets.mjs +35 -31
  18. package/runtime/engine/sonar-config.mjs +21 -0
  19. package/runtime/engine/temp-root.mjs +32 -0
  20. package/runtime/knowledge/hfs/canon-pins.yaml +14 -14
  21. package/runtime/knowledge/hfs/peer-integrations.yaml +2 -3
  22. package/runtime/knowledge/hfs/rules.yaml +161 -65
  23. package/runtime/knowledge/hfs/slots.yaml +11 -14
  24. package/runtime/knowledge/patterns/be/api.yaml +7 -24
  25. package/runtime/knowledge/patterns/be/cli.yaml +3 -12
  26. package/runtime/knowledge/patterns/be/realtime.yaml +1 -14
  27. package/runtime/knowledge/patterns/be/webhooks.yaml +0 -19
  28. package/runtime/modules/kernel/failure-codes.yaml +1 -41
  29. package/runtime/modules/kernel/removed-vocabulary.yaml +268 -0
  30. package/runtime/modules/models/registry.yaml +25 -359
  31. package/runtime/modules/models/runtimes.yaml +126 -265
  32. package/runtime/modules/models/tiers.yaml +66 -0
  33. package/runtime/scripts/api/fs/claim-file.mjs +30 -0
  34. package/runtime/scripts/api/fs/ensure-temp-root.mjs +27 -0
  35. package/runtime/scripts/api/fs/forbidden-root.mjs +2 -1
  36. package/runtime/scripts/api/fs/make-temp-dir.mjs +11 -0
  37. package/runtime/scripts/api/fs/safe-remove.mjs +52 -35
  38. package/runtime/scripts/api/git/lib.mjs +34 -1
  39. package/runtime/scripts/api/process/resolve-real-tool.mjs +14 -8
  40. package/runtime/scripts/api/process/run-program.mjs +2 -1
  41. package/runtime/scripts/api/sops/lib.mjs +198 -120
  42. package/runtime/scripts/hfs/allows.mjs +3 -3
  43. package/runtime/scripts/hfs/architecture/ast-walks.mjs +63 -50
  44. package/runtime/scripts/hfs/architecture/automatic-gates.mjs +96 -0
  45. package/runtime/scripts/hfs/architecture/backend.mjs +261 -175
  46. package/runtime/scripts/hfs/architecture/background-unowned.mjs +69 -34
  47. package/runtime/scripts/hfs/architecture/client-reaches-server.mjs +55 -54
  48. package/runtime/scripts/hfs/architecture/clones.mjs +179 -106
  49. package/runtime/scripts/hfs/architecture/config-unread.mjs +5 -22
  50. package/runtime/scripts/hfs/architecture/config.mjs +95 -80
  51. package/runtime/scripts/hfs/architecture/connection-map.mjs +233 -141
  52. package/runtime/scripts/hfs/architecture/constructor-deps.mjs +15 -9
  53. package/runtime/scripts/hfs/architecture/context-coupling.mjs +76 -52
  54. package/runtime/scripts/hfs/architecture/context-map.mjs +215 -141
  55. package/runtime/scripts/hfs/architecture/context-owner.mjs +39 -30
  56. package/runtime/scripts/hfs/architecture/context-platform-tables.mjs +31 -17
  57. package/runtime/scripts/hfs/architecture/context-transaction.mjs +38 -25
  58. package/runtime/scripts/hfs/architecture/contract-fixture-guard.mjs +86 -40
  59. package/runtime/scripts/hfs/architecture/contracts-readonly.mjs +342 -0
  60. package/runtime/scripts/hfs/architecture/contracts.mjs +263 -455
  61. package/runtime/scripts/hfs/architecture/cross-app-duplicate.mjs +43 -34
  62. package/runtime/scripts/hfs/architecture/dead-exports.mjs +201 -154
  63. package/runtime/scripts/hfs/architecture/default-deny.mjs +118 -93
  64. package/runtime/scripts/hfs/architecture/doc-language.mjs +2 -1
  65. package/runtime/scripts/hfs/architecture/entrypoint.mjs +45 -30
  66. package/runtime/scripts/hfs/architecture/error-codes.mjs +19 -12
  67. package/runtime/scripts/hfs/architecture/error-masked.mjs +39 -26
  68. package/runtime/scripts/hfs/architecture/fe-slot-allows.mjs +2 -1
  69. package/runtime/scripts/hfs/architecture/feature-shape.mjs +26 -20
  70. package/runtime/scripts/hfs/architecture/framework-pinned.mjs +1 -1
  71. package/runtime/scripts/hfs/architecture/frontend-grammar.mjs +190 -0
  72. package/runtime/scripts/hfs/architecture/frontend-routing.mjs +186 -0
  73. package/runtime/scripts/hfs/architecture/frontend-world-render.mjs +311 -0
  74. package/runtime/scripts/hfs/architecture/frontend-world.mjs +328 -0
  75. package/runtime/scripts/hfs/architecture/frontend.mjs +109 -829
  76. package/runtime/scripts/hfs/architecture/hfs-graph.mjs +14 -2
  77. package/runtime/scripts/hfs/architecture/hfs.mjs +120 -288
  78. package/runtime/scripts/hfs/architecture/hooks-are-hooks.mjs +46 -26
  79. package/runtime/scripts/hfs/architecture/i18n-keys.mjs +114 -76
  80. package/runtime/scripts/hfs/architecture/index.mjs +164 -104
  81. package/runtime/scripts/hfs/architecture/injection-token-exported.mjs +33 -28
  82. package/runtime/scripts/hfs/architecture/machine-ast.mjs +180 -144
  83. package/runtime/scripts/hfs/architecture/managed-scripts.mjs +8 -2
  84. package/runtime/scripts/hfs/architecture/module-per-transport.mjs +150 -101
  85. package/runtime/scripts/hfs/architecture/next-data-contract.mjs +51 -43
  86. package/runtime/scripts/hfs/architecture/next-data-key.mjs +338 -0
  87. package/runtime/scripts/hfs/architecture/next-data.mjs +179 -427
  88. package/runtime/scripts/hfs/architecture/owners.mjs +27 -13
  89. package/runtime/scripts/hfs/architecture/package-shape.mjs +51 -23
  90. package/runtime/scripts/hfs/architecture/presentation.mjs +165 -0
  91. package/runtime/scripts/hfs/architecture/reachability.mjs +127 -61
  92. package/runtime/scripts/hfs/architecture/register-once.mjs +112 -63
  93. package/runtime/scripts/hfs/architecture/registration.mjs +187 -110
  94. package/runtime/scripts/hfs/architecture/required-files.mjs +121 -70
  95. package/runtime/scripts/hfs/architecture/route-files-thin.mjs +83 -58
  96. package/runtime/scripts/hfs/architecture/schema-owner.mjs +182 -108
  97. package/runtime/scripts/hfs/architecture/source-names-shape.mjs +318 -0
  98. package/runtime/scripts/hfs/architecture/source-names.mjs +83 -248
  99. package/runtime/scripts/hfs/architecture/sql-owner.mjs +175 -118
  100. package/runtime/scripts/hfs/architecture/sql-returning.mjs +39 -28
  101. package/runtime/scripts/hfs/architecture/sql-tokens.mjs +302 -172
  102. package/runtime/scripts/hfs/architecture/supabase-ast.mjs +1 -1
  103. package/runtime/scripts/hfs/architecture/supabase-be.mjs +55 -45
  104. package/runtime/scripts/hfs/architecture/supabase-results.mjs +182 -0
  105. package/runtime/scripts/hfs/architecture/supabase-tables.mjs +20 -12
  106. package/runtime/scripts/hfs/architecture/supabase.mjs +191 -263
  107. package/runtime/scripts/hfs/architecture/symbols.mjs +175 -99
  108. package/runtime/scripts/hfs/architecture/test-world-files.mjs +82 -41
  109. package/runtime/scripts/hfs/architecture/tiers.mjs +120 -69
  110. package/runtime/scripts/hfs/architecture/transport-owner.mjs +84 -57
  111. package/runtime/scripts/hfs/architecture/type-context.mjs +282 -0
  112. package/runtime/scripts/hfs/architecture/typescript.mjs +116 -276
  113. package/runtime/scripts/hfs/architecture/unit-spec-providers.mjs +84 -62
  114. package/runtime/scripts/hfs/architecture.mjs +3 -4
  115. package/runtime/scripts/hfs/catalog-once.mjs +15 -0
  116. package/runtime/scripts/hfs/check.mjs +63 -71
  117. package/runtime/scripts/hfs/coverage-scope.mjs +84 -38
  118. package/runtime/scripts/hfs/declaration-shape.mjs +77 -36
  119. package/runtime/scripts/hfs/declaration-slots.mjs +1 -1
  120. package/runtime/scripts/hfs/edition-slots.mjs +5 -3
  121. package/runtime/scripts/hfs/linear-text.mjs +30 -0
  122. package/runtime/scripts/hfs/manifest-shape.mjs +164 -63
  123. package/runtime/scripts/hfs/path-findings.mjs +58 -38
  124. package/runtime/scripts/hfs/pin-findings.mjs +31 -0
  125. package/runtime/scripts/hfs/repo-identity.mjs +21 -4
  126. package/runtime/scripts/hfs/rule-catalog.mjs +194 -0
  127. package/runtime/scripts/hfs/rule-params-shape.mjs +33 -27
  128. package/runtime/scripts/hfs/rules/cli.mjs +5 -1
  129. package/runtime/scripts/hfs/rules/contract-compat.mjs +40 -22
  130. package/runtime/scripts/hfs/rules/contract.mjs +35 -27
  131. package/runtime/scripts/hfs/rules/database-config.mjs +57 -32
  132. package/runtime/scripts/hfs/rules/database-migrations.mjs +52 -31
  133. package/runtime/scripts/hfs/rules/database-plpgsql.mjs +106 -91
  134. package/runtime/scripts/hfs/rules/database-sql.mjs +254 -173
  135. package/runtime/scripts/hfs/rules/database.mjs +36 -23
  136. package/runtime/scripts/hfs/rules/deps.mjs +64 -32
  137. package/runtime/scripts/hfs/rules/docker.mjs +113 -65
  138. package/runtime/scripts/hfs/rules/edition.mjs +118 -111
  139. package/runtime/scripts/hfs/rules/event-bus.mjs +91 -45
  140. package/runtime/scripts/hfs/rules/fe-contract-documents.mjs +17 -16
  141. package/runtime/scripts/hfs/rules/fe-no-tests.mjs +36 -16
  142. package/runtime/scripts/hfs/rules/frontend-tree.mjs +4 -3
  143. package/runtime/scripts/hfs/rules/integration-specs.mjs +75 -41
  144. package/runtime/scripts/hfs/rules/kinds.mjs +59 -25
  145. package/runtime/scripts/hfs/rules/lint-suppression.mjs +9 -3
  146. package/runtime/scripts/hfs/rules/monorepo.mjs +82 -45
  147. package/runtime/scripts/hfs/rules/peer-integrations.mjs +24 -3
  148. package/runtime/scripts/hfs/rules/pipeline.mjs +58 -9
  149. package/runtime/scripts/hfs/rules/proof-commands.mjs +14 -8
  150. package/runtime/scripts/hfs/rules/repo-local-checks.mjs +11 -6
  151. package/runtime/scripts/hfs/rules/saga.mjs +128 -61
  152. package/runtime/scripts/hfs/rules/secrets.mjs +4 -3
  153. package/runtime/scripts/hfs/rules/services.mjs +34 -16
  154. package/runtime/scripts/hfs/rules/stacks.mjs +21 -14
  155. package/runtime/scripts/hfs/rules/supabase-secrets.mjs +32 -23
  156. package/runtime/scripts/hfs/rules/test-topology.mjs +25 -11
  157. package/runtime/scripts/hfs/secret.mjs +59 -48
  158. package/runtime/scripts/hfs/slot-app-view.mjs +102 -0
  159. package/runtime/scripts/hfs/slot-classify.mjs +65 -0
  160. package/runtime/scripts/hfs/slot-errors.mjs +11 -0
  161. package/runtime/scripts/hfs/slot-imports.mjs +76 -0
  162. package/runtime/scripts/hfs/slot-manifest-shape.mjs +73 -0
  163. package/runtime/scripts/hfs/slot-match.mjs +153 -0
  164. package/runtime/scripts/hfs/slot-path.mjs +8 -0
  165. package/runtime/scripts/hfs/slot-required.mjs +76 -0
  166. package/runtime/scripts/hfs/slot-semantic-problems.mjs +148 -0
  167. package/runtime/scripts/hfs/slot-side-problems.mjs +28 -0
  168. package/runtime/scripts/hfs/slots.mjs +74 -695
  169. package/runtime/scripts/hfs/sql/pg-parse.mjs +5 -2
  170. package/runtime/scripts/hfs/trailing-slashes.mjs +8 -0
  171. package/runtime/scripts/hfs/tree.mjs +19 -14
  172. package/runtime/scripts/hfs/typescript-programs.mjs +6 -4
  173. package/runtime/scripts/hfs/view.mjs +1 -1
  174. package/runtime/scripts/lib/dockerfile.mjs +56 -33
  175. package/runtime/scripts/lib/env.mjs +10 -0
  176. package/runtime/scripts/lib/event-contract.mjs +17 -13
  177. package/runtime/scripts/lib/git.mjs +2 -2
  178. package/runtime/scripts/lib/graphql-contract.mjs +158 -322
  179. package/runtime/scripts/lib/graphql-sdl.mjs +262 -0
  180. package/runtime/scripts/lib/i18n.mjs +3 -2
  181. package/runtime/scripts/lib/in-order.mjs +71 -0
  182. package/runtime/scripts/lib/language.mjs +3 -3
  183. package/runtime/scripts/lib/list.mjs +8 -1
  184. package/runtime/scripts/lib/path-key.mjs +38 -5
  185. package/runtime/scripts/lib/pid-alive.mjs +7 -0
  186. package/runtime/scripts/lib/regex.mjs +1 -1
  187. package/runtime/scripts/lib/same-text.mjs +1 -1
  188. package/runtime/scripts/lib/secret-patterns.mjs +6 -2
  189. package/runtime/scripts/lib/sleep-sync.mjs +2 -2
  190. package/runtime/scripts/lib/sops-envelope.mjs +95 -48
  191. package/runtime/scripts/lib/stack-services.mjs +1 -2
  192. package/runtime/scripts/lib/ts-ast.mjs +9 -0
  193. package/runtime/scripts/lib/walk.mjs +6 -1
  194. package/runtime/scripts/lib/yaml-cached.mjs +14 -0
  195. package/scaffold/add-cli-lite.mjs +2 -1
  196. package/scaffold/add-table.mjs +2 -2
  197. package/scaffold/add.mjs +3 -2
  198. package/scaffold/app.mjs +4 -2
  199. package/scaffold/edition-gate.mjs +25 -25
  200. package/scaffold/lite-exports.mjs +2 -1
  201. package/scaffold/service.mjs +5 -4
  202. package/sync/hygiene.mjs +15 -9
  203. package/sync/index.mjs +7 -3
  204. package/templates/app/ci-workflows/github/workflows/ci.yml +4 -4
  205. package/templates/app/ci-workflows/github/workflows/e2e.yml +3 -3
  206. package/templates/app/ci-workflows/github/workflows/images.yml +3 -3
  207. package/templates/app/ci-workflows/sonar-steps.yml +2 -2
  208. package/templates/app/ci-workflows-lite/github/workflows/ci.yml +6 -6
  209. package/templates/app/ci-workflows-lite/github/workflows/db-deploy.yml +3 -3
  210. package/templates/app/ci-workflows-lite/github/workflows/images.yml +3 -3
  211. package/templates/app/starciwork.gitignore +1 -1
  212. package/templates/be/image/api/Dockerfile +1 -1
  213. package/templates/be/image/cli/Dockerfile +1 -1
  214. package/templates/be/image/worker/Dockerfile +1 -1
  215. package/templates/be/patterns/cli/group.cli.spec.ts.tpl +1 -1
  216. package/templates/be/patterns/cli/group.cli.ts.tpl +2 -2
  217. package/templates/be/patterns/event-bus/platform/event-runner.service.spec.ts.tpl +13 -0
  218. package/templates/be/patterns/event-bus/platform/event-runner.service.ts.tpl +7 -2
  219. package/templates/be/patterns/event-bus/platform/event.policy.ts.tpl +4 -1
  220. package/templates/be/patterns/event-bus/platform/kafka-event-transport.client.ts.tpl +2 -1
  221. package/templates/be/patterns/outbox/platform/outbox-relay.policy.ts.tpl +24 -9
  222. package/templates/be/patterns/queues/platform/queue-relay.service.ts.tpl +3 -2
  223. package/templates/be/patterns/queues/platform/queue-worker.service.ts.tpl +8 -5
  224. package/templates/be/skeleton/src/features/cli/migrate/migrate.cli.spec.ts +1 -1
  225. package/templates/be/skeleton/src/features/cli/migrate/migrate.cli.ts +2 -2
  226. package/templates/be/skeleton/src/features/cli/seed/seed.cli.spec.ts +1 -1
  227. package/templates/be/skeleton/src/features/cli/seed/seed.cli.ts +2 -2
  228. package/templates/be/skeleton/src/modules/platform/database/migrate-connections.client.ts +3 -2
  229. package/templates/be/skeleton/src/modules/platform/database/seed-connections.client.ts +5 -4
  230. package/templates/be/skeleton/src/modules/platform/primitives/index.ts +1 -0
  231. package/templates/be/skeleton/src/modules/platform/primitives/sequence.policy.spec.ts +47 -0
  232. package/templates/be/skeleton/src/modules/platform/primitives/sequence.policy.ts +16 -0
  233. package/templates/be/skeleton-lite/apps/api/Dockerfile +1 -0
  234. package/templates/be/skeleton-lite/src/modules/platform/primitives/index.ts +2 -0
  235. package/templates/fe/image/next/Dockerfile +2 -1
  236. package/templates/fe/skeleton/apps/app/src/app/[locale]/page.tsx +2 -2
  237. package/templates/fe/skeleton/apps/landing/src/app/[locale]/page.tsx +2 -2
  238. package/templates/fe/skeleton/packages/__project__-i18n/src/index.ts +1 -2
  239. package/templates/fe/skeleton-lite/apps/web/src/app/[locale]/layout.tsx +1 -2
  240. package/templates/fe/skeleton-lite/apps/web/src/app/[locale]/page.tsx +2 -2
  241. package/templates/fe/skeleton-lite/apps/web/src/components/blocks/SignInForm/index.tsx +7 -1
  242. package/templates/fe/skeleton-lite/apps/web/src/modules/db/auth/write-sign-out.ts +1 -1
  243. package/templates/fe/skeleton-lite/apps/web/src/modules/db/validation/validation.mapper.ts +10 -2
  244. package/templates/fe/skeleton-lite/apps/web/src/modules/i18n/request.ts +10 -3
  245. package/upgrade/index.mjs +9 -2
  246. package/runtime/engine/admission.mjs +0 -308
  247. package/runtime/engine/canonical-json.mjs +0 -10
  248. package/runtime/engine/db/blob.mjs +0 -315
  249. package/runtime/engine/db/ledger-paths.mjs +0 -83
  250. package/runtime/engine/db/ledger.mjs +0 -1118
  251. package/runtime/engine/db/machine-connection.mjs +0 -135
  252. package/runtime/engine/db/machine-schema.mjs +0 -84
  253. package/runtime/engine/db/machine.mjs +0 -1367
  254. package/runtime/engine/db/migrations/machine/0001-init.sql +0 -924
  255. package/runtime/engine/db/migrations/runtime/0001-init.sql +0 -1108
  256. package/runtime/engine/db/provider-reservations.mjs +0 -101
  257. package/runtime/engine/digest.mjs +0 -16
  258. package/runtime/engine/refuse.mjs +0 -11
  259. package/runtime/modules/ops/_labels.yaml +0 -53
  260. package/runtime/scripts/api/node/lib.mjs +0 -14
  261. package/runtime/scripts/api/node/spawn-node.mjs +0 -6
  262. package/runtime/scripts/api/process/lib.mjs +0 -111
  263. package/runtime/scripts/api/process/owned-process.mjs +0 -78
  264. package/runtime/scripts/api/process/stop-owned-process.mjs +0 -9
  265. package/runtime/scripts/connectors/lib.mjs +0 -488
  266. package/runtime/scripts/lib/clip.mjs +0 -19
  267. package/runtime/scripts/lib/display-names.mjs +0 -259
  268. package/runtime/scripts/lib/example-refs.mjs +0 -158
  269. package/runtime/scripts/lib/json-schema.mjs +0 -52
  270. package/runtime/scripts/lib/process-identity.mjs +0 -6
  271. package/runtime/scripts/lib/read-yaml.mjs +0 -18
  272. package/runtime/scripts/lib/redact.mjs +0 -161
  273. package/runtime/scripts/lib/sleep.mjs +0 -7
  274. package/runtime/scripts/lib/source-phrases.mjs +0 -34
  275. package/runtime/scripts/lib/sqlite.mjs +0 -21
@@ -1337,7 +1337,7 @@ HFS_APP_LAYOUT_INVALID:
1337
1337
  HFS_ARCH_CONFIG_UNREAD:
1338
1338
  title: "The machine reads `hfs.json`; zero files analysed is red"
1339
1339
  title_vi: "Máy kiến trúc không đọc được hfs.json"
1340
- meaning_vi: "Kiểm tra kiến trúc không đọc được `hfs.json` phân tích 0 tệp, hoặc repo còn một tệp cấu hình mà máy không đọc nữa (`architecture.json`) — đây là đỏ, không phải 'chưa có dữ liệu'."
1340
+ meaning_vi: "Kiểm tra kiến trúc không đọc được `hfs.json` phân tích 0 tệp — đây là đỏ, không phải 'chưa có dữ liệu'."
1341
1341
  causes_vi:
1342
1342
  - "Vi phạm luật R24: Máy kiến trúc tự đọc `hfs.json`; phân tích 0 tệp hay `unavailable` cho một profile đã khai = thất bại."
1343
1343
  nextStep_vi: "Op vừa tạo ra bản này sẽ được chạy lại để sửa theo lời nhắn của bộ kiểm tra; không cần ai can thiệp thêm."
@@ -1642,46 +1642,6 @@ HFS_LITE_SECRET_CUSTODY:
1642
1642
  owner: owner
1643
1643
  kind: check-finding
1644
1644
 
1645
- kernel-caller-stale:
1646
- title: "Kernel incarnation does not own this mutation"
1647
- title_vi: "Phiên Kernel không còn sở hữu thao tác"
1648
- meaning_vi: "Quyền hiện tại đã đổi trước khi ghi dữ liệu hoặc thực hiện tác động."
1649
- causes_vi:
1650
- - "Terminal, Dispatch, thế hệ, lượt khởi động hoặc singleton token đã bị thay thế."
1651
- nextStep_vi: "Giữ nguyên quyền đang tranh chấp; Supervisor kiểm tra phiên hiện tại trước khi thử lại."
1652
- owner: supervisor
1653
- kind: verb-refusal
1654
-
1655
- kernel-caller-unknown:
1656
- title: "Managed caller custody is unavailable"
1657
- title_vi: "Không xác minh được quyền của caller"
1658
- meaning_vi: "Lịch sử hoặc binding của caller không đọc được hoặc mâu thuẫn; không suy ra quyền owner."
1659
- causes_vi:
1660
- - "Kho ledger hoặc machine không đọc được; binding sai, cũ hoặc thuộc workflow khác."
1661
- nextStep_vi: "Khôi phục khả năng đọc và xác minh caller thực tế; không dùng biến môi trường để giả quyền."
1662
- owner: supervisor
1663
- kind: verb-refusal
1664
-
1665
- kernel-caller-actor:
1666
- title: "Actor claim contradicts native caller"
1667
- title_vi: "Actor khai báo mâu thuẫn với caller"
1668
- meaning_vi: "Giá trị --by không khớp với quyền caller mà owner hiện có xác minh."
1669
- causes_vi:
1670
- - "Caller dùng tên Kernel, Op hoặc Supervisor khác với phiên thực tế."
1671
- nextStep_vi: "Bỏ khai báo giả và dùng đúng caller; chuỗi actor không cấp quyền."
1672
- owner: supervisor
1673
- kind: verb-refusal
1674
-
1675
- kernel-read-unverified:
1676
- title: "Current Kernel READ attestation is incomplete"
1677
- title_vi: "READ của Kernel hiện tại chưa đầy đủ"
1678
- meaning_vi: "Manifest READ không chứng minh toàn bộ bytes cần đọc cho phiên Kernel hiện tại."
1679
- causes_vi:
1680
- - "File thiếu, hash sai, bytes dirty, descriptor sai hoặc lượt Kernel đã thay đổi."
1681
- nextStep_vi: "Lấy --plan, đọc đủ từng file và gửi manifest nguyên vẹn với --read-manifest từ Kernel hiện tại."
1682
- owner: supervisor
1683
- kind: verb-refusal
1684
-
1685
1645
  HFS_MANAGED_FILE_DRIFT:
1686
1646
  title: "A managed file equals its template render"
1687
1647
  title_vi: "Tệp do .claude quản lý bị lệch"
@@ -0,0 +1,268 @@
1
+ # Every spelling the runtime refuses by name, each with what replaced it. engine/removed-vocabulary.mjs reads this file:
2
+ # the config and routing-bias refusals take their names and replacements from it, and the `removed-vocabulary` self-check
3
+ # refuses any of these spellings in text an agent or the owner reads, outside this file, CHANGELOG.md and a block marked
4
+ # `[removed-list]` (CONTRIBUTING.md, "Removing or renaming a spelling").
5
+ # Fields: id; kind (config-key | bias-field | verb | flag | code | vocabulary | file; a file is named by its base name); name (the removed spelling); use (the
6
+ # replacement, worded to finish the sentence "<name> is removed (<use>)"); since (the release that removed it);
7
+ # match (optional regular expression the scan uses instead of the literal name); scan (false when the name is too common
8
+ # a word to scan for).
9
+ kinds: [config-key, bias-field, verb, flag, code, vocabulary, file]
10
+ removed:
11
+ - id: bias-require
12
+ kind: bias-field
13
+ name: require
14
+ use: 'a requirement is now `only`, which keeps just the named members of the tier chain: write each as "<agent>", "<agent>/<model>" or a {pool, provider, model} selector, e.g. {"only":["claude"]}'
15
+ since: 1.0.0-alpha.6
16
+ match: '\brequire\s*:\s*[\[{]|"require"\s*:|\brequire bias\b|\bbias[^\n.]{0,30}`require`'
17
+ - id: config-models-pools
18
+ kind: config-key
19
+ name: models.pools
20
+ use: 'tiers are ordered member chains in modules/models/tiers.yaml; override one with models.tiers'
21
+ since: 1.0.0-alpha.6
22
+ - id: config-models-nonoperation
23
+ kind: config-key
24
+ name: models.nonOperation
25
+ use: 'planner, validator and kernelManager take the frontier tier (modules/models/tiers.yaml seats); remap with models.seats'
26
+ since: 1.0.0-alpha.6
27
+ - id: config-models-selection
28
+ kind: config-key
29
+ name: models.selection
30
+ use: 'selection is always quota-aware; there is no key'
31
+ since: 1.0.0-alpha.6
32
+ - id: config-allocation-shares
33
+ kind: config-key
34
+ name: allocation.shares
35
+ use: 'the picker balances by models.balance (maxStreak, maxSharePercent); there are no per-provider weights'
36
+ since: 1.0.0-alpha.6
37
+ match: 'allocation[. ]shares'
38
+ - id: config-allocation-windowhours
39
+ kind: config-key
40
+ name: allocation.windowHours
41
+ use: 'balance reads the recent picks of one tier (models.balance); there is no window'
42
+ since: 1.0.0-alpha.6
43
+ - id: config-allocation-preferredprovider
44
+ kind: config-key
45
+ name: allocation.preferredProvider
46
+ use: 'an owner preference is a goal routing bias (prefer <agent>)'
47
+ since: 1.0.0-alpha.6
48
+ match: 'preferredProvider'
49
+ - id: config-allocation-policy
50
+ kind: config-key
51
+ name: allocation.policy
52
+ use: 'the picker is the one policy; there is no key'
53
+ since: 1.0.0-alpha.6
54
+ - id: config-allocation-mode
55
+ kind: config-key
56
+ name: allocation.mode
57
+ use: 'allocation holds grants only'
58
+ since: 1.0.0-alpha.6
59
+ - id: config-kernel-group
60
+ kind: config-key
61
+ name: kernel.group
62
+ use: 'the Kernel takes the high tier; pin with kernel.agent / kernel.model (an `only` bias)'
63
+ since: 1.0.0-alpha.6
64
+ - id: config-supervisor-kernel-group
65
+ kind: config-key
66
+ name: supervisor.kernel.group
67
+ use: 'the Supervisor takes the frontier tier; pin with supervisor.kernel.agent / .model (an `only` bias)'
68
+ since: 1.0.0-alpha.6
69
+ - id: config-coredebug
70
+ kind: config-key
71
+ name: coreDebug
72
+ use: 'the debug watcher is a /loop of the calling chat, not a seat; the cadence and the worktree alert limit are debugLoop.interval and debugLoop.worktreeLimit'
73
+ since: 1.0.0-alpha.6
74
+ - id: config-debug
75
+ kind: config-key
76
+ name: debug
77
+ use: 'the debug watcher is started by the /starci skill in the calling chat; there is no switch (debugLoop.interval sets its cadence)'
78
+ since: 1.0.0-alpha.6
79
+ scan: false
80
+ - id: vocabulary-sol-opus
81
+ kind: vocabulary
82
+ name: sol-opus
83
+ use: 'a pool of two providers is a tier chain of members (modules/models/tiers.yaml)'
84
+ since: 1.0.0-alpha.6
85
+ - id: seat-core-debug
86
+ kind: vocabulary
87
+ name: core-debug seat
88
+ use: 'the debug watcher is a /loop of the calling chat running `starci debug digest`'
89
+ since: 1.0.0-alpha.6
90
+ match: '\bcore-debug\s+(?:seat|watcher|worker|pass)\b'
91
+ - id: verb-debug-pass
92
+ kind: verb
93
+ name: debug pass
94
+ use: '`starci debug digest` (read-only) and `starci debug run <probe>`'
95
+ since: 1.0.0-alpha.6
96
+ match: '(?<![\w-])debug pass\b'
97
+ - id: config-supervisor-landgate-push
98
+ kind: config-key
99
+ name: supervisor.landGate.push
100
+ use: 'a land fast-forwards local main only and never pushes; the remote main of the runtime moves once per release, through starci release cut'
101
+ since: 1.0.0-alpha.7
102
+ match: 'landGate\.push\b'
103
+ - id: flag-land-no-push
104
+ kind: flag
105
+ name: --no-push
106
+ use: 'a land never pushes, so there is nothing to leave unpushed'
107
+ since: 1.0.0-alpha.7
108
+ - id: code-landed-push-owed
109
+ kind: code
110
+ name: landed-push-owed
111
+ use: 'a land has no push step; the outcome is landed'
112
+ since: 1.0.0-alpha.7
113
+ - id: flag-caller-agent
114
+ kind: flag
115
+ name: --caller-agent
116
+ use: 'the debug digest runs in the calling chat; it takes no caller flag'
117
+ since: 1.0.0-alpha.6
118
+ - id: flag-caller-model
119
+ kind: flag
120
+ name: --caller-model
121
+ use: 'the debug digest runs in the calling chat; it takes no caller flag'
122
+ since: 1.0.0-alpha.6
123
+ - id: flag-caller-effort
124
+ kind: flag
125
+ name: --caller-effort
126
+ use: 'the debug digest runs in the calling chat; it takes no caller flag'
127
+ since: 1.0.0-alpha.6
128
+ - id: code-workflow-debug-not-ready
129
+ kind: code
130
+ name: workflow-debug-not-ready
131
+ use: 'there is no debug seat to be ready; the digest reads the ledger directly'
132
+ since: 1.0.0-alpha.6
133
+ - id: file-core-debug
134
+ kind: file
135
+ name: core-debug.mjs
136
+ use: 'the debug watcher is a /loop of the calling chat running `starci debug digest`; the core-watch probe is scripts/reconciler/core-watch.mjs'
137
+ since: 1.0.0-alpha.6
138
+ match: '(?<![\w-])core-debug\.mjs\b'
139
+ - id: file-debug-pass
140
+ kind: file
141
+ name: debug-pass.mjs
142
+ use: '`starci debug digest` (read-only)'
143
+ since: 1.0.0-alpha.6
144
+ match: '(?<![\w-])debug-pass\.mjs\b'
145
+ - id: file-caller-context
146
+ kind: file
147
+ name: caller-context.mjs
148
+ use: 'there is no declared caller context; the debug digest runs in the calling chat'
149
+ since: 1.0.0-alpha.6
150
+ match: '(?<![\w-])caller-context\b'
151
+ - id: file-host-maintenance
152
+ kind: file
153
+ name: host-maintenance.md
154
+ use: 'skills/starci/references/host-startup.md'
155
+ since: 1.0.0-alpha.6
156
+ match: '(?<![\w-])host-maintenance\b'
157
+ - id: config-drawloop-critic
158
+ kind: config-key
159
+ name: allocation.drawLoop.critic
160
+ use: 'the Critic is picked from its tier (modules/models/tiers.yaml seats.critic, modules/kernel/critic.yaml) with provider independence as a hard filter; its wall bound is allocation.drawLoop.criticTimeoutMs'
161
+ since: 1.0.0-alpha.9
162
+ match: 'allocation\.drawLoop\.critic(?![A-Za-z])'
163
+ - id: config-drawloop-criticwhendrawer
164
+ kind: config-key
165
+ name: allocation.drawLoop.criticWhenDrawer
166
+ use: 'the Critic tier holds a member of every provider and the picker removes the provider of the maker; there is no per-drawer table'
167
+ since: 1.0.0-alpha.9
168
+ match: 'criticWhenDrawer'
169
+ - id: registry-critic-coverage-define-architecture
170
+ kind: vocabulary
171
+ name: critic-coverage-define-architecture
172
+ use: 'the edge-case registry entry is critic-coverage-decision-legs'
173
+ since: 1.0.0-alpha.9
174
+ - id: supervisor-grammar-release
175
+ kind: vocabulary
176
+ name: grammarRelease
177
+ use: 'the owner publishes @starci/grammar through starci release publish; the Supervisor changes no runtime code'
178
+ since: 1.0.0-alpha.9
179
+ - id: supervise-yaml-worker-land-blocks
180
+ kind: vocabulary
181
+ name: supervise.yaml workers
182
+ use: 'the Supervisor spawns no fix workers and lands nothing: it answers its menu (starci supervisor status) and records runtime defects for Debug'
183
+ since: 1.0.0-alpha.9
184
+ match: 'supervise\.yaml\s+(?:workers|landGate)\b|supervise\.yaml\s+kernelSeat/workers'
185
+ - id: supervisor-fixes-through-lanes
186
+ kind: vocabulary
187
+ name: the Supervisor fixes through lanes
188
+ use: 'the Supervisor records a runtime defect (starci supervisor actions record --item runtime-defect:<cause>) and Debug changes .claude'
189
+ since: 1.0.0-alpha.9
190
+ match: 'Supervisor[^\n.]{0,60}\bfix(?:es)?\s+through\s+(?:its\s+own\s+)?(?:staged\s+)?lanes?\b'
191
+ - id: kernel-ranked-actions
192
+ kind: vocabulary
193
+ name: ranked actions
194
+ use: "the Kernel's menu: the Decide section of starci kernel status, answered with starci kernel decide"
195
+ since: 1.0.0-alpha.9
196
+ match: '[Ww]ork the ranked actions|[Ff]irst rca\.actions entry'
197
+ - id: kernel-run-next-actions
198
+ kind: vocabulary
199
+ name: run nextActions
200
+ use: "the Kernel answers the items of its menu; the runtime performs the mechanical next actions"
201
+ since: 1.0.0-alpha.9
202
+ match: 'run nextActions|run each\s+in order and never choose'
203
+ - id: event-op-reported
204
+ kind: vocabulary
205
+ name: op-reported
206
+ use: 'the event a filed report records is report-filed; no event named op-reported was ever emitted'
207
+ since: 1.0.0-alpha.9
208
+ match: '(?<![\w-])op-reported(?![\w-])'
209
+ - id: file-sonar-secrets-keys
210
+ kind: file
211
+ name: KEYS.md
212
+ use: 'secret.env.example lists the names of the host secrets; ext/sonar/README.md describes the stack'
213
+ since: 1.0.0-alpha.7
214
+ match: '(?<![\w/.-])secrets/KEYS\.md'
215
+ - id: vocab-example-sonar-token-member
216
+ kind: vocabulary
217
+ name: per-example Sonar token custody
218
+ use: 'the examples are analysed on SonarCloud with the SONAR_TOKEN of the runtime secret.env (runtimeSecrets in their services.sonar declaration)'
219
+ since: 1.0.0-alpha.7
220
+ match: 'sonarqube-(?:lite-app|shape-slot|starci-ecommerce-app)-token'
221
+ - id: vocab-menu-kinds-moved-to-controllers
222
+ kind: vocabulary
223
+ name: the menu kinds of the origins the controllers now move
224
+ use: 'the Job controller enqueues a red node, a stale proof or attempt, the asset leg and the credential ask itself (scripts/kernel/next-moves.mjs); the Kernel menu keeps leg-ready, draw-redraw, seam-duty and move-unbuilt'
225
+ since: 1.0.0-alpha.9
226
+ match: '(?<![\w-])(?:node-rework|stale-redispatch|enqueue-asset-leg|enqueue-credential-ask|rework-node)(?![\w-])'
227
+ - id: vocab-sonar-stack-sealed-members
228
+ kind: vocabulary
229
+ name: ext/sonar secrets custody
230
+ use: 'the stack secrets are the secret.env variables SONARQUBE_DB_PASSWORD, SONARQUBE_ADMIN_PASSWORD, SONARQUBE_ADMIN_TOKEN and CLOUDFLARE_TUNNEL_TOKEN, passed by starci gate sonar up; ext/sonar tracks no sealed member'
231
+ since: 1.0.0-alpha.9
232
+ match: 'ext/sonar/secrets/(?:sonarqube-(?:db|admin|analysis)-(?:password|token)|cloudflare-starci-local-services-tunnel-token)'
233
+ - id: vocab-ecommerce-sealed-demo-secrets
234
+ kind: vocabulary
235
+ name: ecommerce sealed demo secrets
236
+ use: 'the ecommerce example carries demo-only defaults in its compose files and declares no sealed secret (secrets: [])'
237
+ since: 1.0.0-alpha.9
238
+ match: '(?<![\w-])(?:keycloak|minio)-env(?:\.enc)?(?![\w-])'
239
+ - id: vocab-handover-step-mechanical-pending
240
+ kind: vocabulary
241
+ name: the handover-step menu mode mechanical-pending and its choice rerun-handover-review
242
+ use: 'the Job controller enqueues handover.review itself when the handover is due or its ask was answered approve or question (next action handover-review, scripts/kernel/handover-move.mjs); the handover-step item holds only the typed routing of a reported defect'
243
+ since: 1.0.0-alpha.9
244
+ match: '(?<![\w-])(?:mechanical-pending|rerun-handover-review)(?![\w-])'
245
+ - id: vocab-card-delivery-bound
246
+ kind: vocabulary
247
+ name: the agent card delivery keys maxInlineChars, fileName and fileDirectory
248
+ use: 'one bound, one directory and one cleanup serve every card: allocation.promptFile in modules/models/runtimes.yaml (scripts/agent/prompt-file.mjs); a card keeps delivery.mode and delivery.prompt'
249
+ since: 1.0.0-alpha.9
250
+ match: '(?<![\w-])(?:maxInlineChars|fileDirectory)(?![\w-])'
251
+ - id: vocab-backoff-factor-keys
252
+ kind: vocabulary
253
+ name: the growth factor of allocation.dispatchRefusal and of the backoff of modules/reconciler/host.yaml
254
+ use: 'every backoff is the one retry budget (scripts/lib/retry-budget.mjs), which doubles its interval up to a cap: declare baseMs/capMs or minMs/maxMs only'
255
+ since: 1.0.0-alpha.9
256
+ match: '(?<![\w-])(?:dispatchRefusal|backoff):\s*\{[^}\n]*\bfactor\b'
257
+ - id: vocab-wake-terminal-bound
258
+ kind: vocabulary
259
+ name: the independent wake character bound
260
+ use: 'allocation.promptFile.maxChars is the terminal bound owned by scripts/agent/prompt-file.mjs'
261
+ since: 1.0.0-alpha.9
262
+ match: '(?<![\w-])(?:allocation\.)?wake\.maxChars|\bwake:\s*\{\s*maxChars\b'
263
+ - id: vocab-draft-probe-mutations
264
+ kind: vocabulary
265
+ name: draft probe mutation fields
266
+ use: 'probeDraft reads only and returns verdict, draft and sends; a foreign draft receives no keys'
267
+ since: 1.0.0-alpha.9
268
+ match: '\b(?:draftProbe|probeDraft)\.(?:restore|restored|removed|after)\b'