@starci/eslint-grammar-offset-pop 0.12.13 → 0.13.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.
- package/CHANGELOG.md +10 -0
- package/README.md +4 -4
- package/config.mjs +2 -2
- package/index.d.ts +4 -4
- package/index.mjs +1 -1
- package/package.json +23 -15
- package/runtime/engine/by-code-unit.mjs +12 -0
- package/runtime/engine/config.mjs +461 -0
- package/runtime/engine/invalid-config.mjs +15 -0
- package/runtime/engine/model-config.mjs +90 -0
- package/runtime/engine/orca-config.mjs +29 -0
- package/runtime/engine/release-config.mjs +28 -0
- package/runtime/engine/removed-vocabulary.mjs +26 -0
- package/runtime/engine/resources-config.mjs +52 -0
- package/runtime/engine/secrets.mjs +134 -0
- package/runtime/engine/sonar-config.mjs +21 -0
- package/runtime/knowledge/hfs/canon-pins.yaml +19 -20
- package/runtime/modules/kernel/removed-vocabulary.yaml +458 -0
- package/runtime/modules/models/registry.yaml +221 -0
- package/runtime/modules/models/runtimes.yaml +556 -0
- package/runtime/modules/models/tiers.yaml +66 -0
- package/runtime/scripts/hfs/declaration-shape.mjs +157 -0
- package/runtime/scripts/hfs/declaration-slots.mjs +86 -0
- package/runtime/scripts/hfs/edition-slots.mjs +77 -0
- package/runtime/scripts/hfs/manifest-shape.mjs +435 -0
- package/runtime/scripts/hfs/param-names.mjs +18 -0
- package/runtime/scripts/hfs/rule-catalog.mjs +362 -0
- package/runtime/scripts/hfs/rule-params-shape.mjs +80 -0
- package/runtime/scripts/hfs/slot-app-view.mjs +102 -0
- package/runtime/scripts/hfs/slot-classify.mjs +65 -0
- package/runtime/scripts/hfs/slot-errors.mjs +11 -0
- package/runtime/scripts/hfs/slot-imports.mjs +91 -0
- package/runtime/scripts/hfs/slot-manifest-shape.mjs +73 -0
- package/runtime/scripts/hfs/slot-match.mjs +153 -0
- package/runtime/scripts/hfs/slot-path.mjs +8 -0
- package/runtime/scripts/hfs/slot-required.mjs +89 -0
- package/runtime/scripts/hfs/slot-semantic-problems.mjs +149 -0
- package/runtime/scripts/hfs/slot-side-problems.mjs +28 -0
- package/runtime/scripts/lib/i18n.mjs +85 -0
- package/runtime/scripts/lib/json-clone.mjs +61 -0
- package/runtime/scripts/lib/list.mjs +31 -0
- package/runtime/scripts/lib/regex.mjs +4 -0
- package/runtime/scripts/lib/yaml-cached.mjs +14 -0
|
@@ -0,0 +1,458 @@
|
|
|
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: fe-landmark-branch-inventory
|
|
12
|
+
kind: vocabulary
|
|
13
|
+
name: LANDMARK_BRANCHES
|
|
14
|
+
use: 'the selected Grammar lint package owns its component vocabulary; the universal FE canon exposes no component inventory'
|
|
15
|
+
since: 1.0.0-alpha.31
|
|
16
|
+
- id: fe-grammar-rule-namespace
|
|
17
|
+
kind: vocabulary
|
|
18
|
+
name: starci-fe Grammar component rules
|
|
19
|
+
match: 'starci-fe/(?:app-shell-frame|no-shell-bottom-tabs|navbar-control-size|navbar-cluster|no-navbar-create|no-raw-structural-element|no-heading-tag-outside-heading-component|status-text-uses-soft-foreground|vendor-primitive-has-named-owner|no-vendor-icon-outside-icon-leaf|heroicons-is-the-glyph-vendor|no-off-scale-glyph-size|no-icon-size-class|destructive-menu-entry-needs-danger-tone|no-decorative-icon-in-metric-cell|no-inline-svg-outside-brand-mark-leaf|no-fractional-step|no-hand-rolled-heading|no-unresolved-token-class|slot-status-through-slotview)\b'
|
|
20
|
+
use: 'the same rule id under starci-grammar/ from the selected Grammar lint package; FE-RULE-OWNERSHIP governs placement'
|
|
21
|
+
since: 1.0.0-alpha.31
|
|
22
|
+
- id: offset-pop-toaster-content-guidance
|
|
23
|
+
kind: vocabulary
|
|
24
|
+
name: toaster-clear-of-the-dock
|
|
25
|
+
use: 'toaster-clear-of-content in the Offset Pop playbook'
|
|
26
|
+
since: 1.0.0-alpha.31
|
|
27
|
+
- id: cut-seam-command
|
|
28
|
+
kind: flag
|
|
29
|
+
name: cut-seam --command
|
|
30
|
+
match: 'cut-seam[^\n]*--command\b'
|
|
31
|
+
use: 'cut-seam --reconcile reads the commands and selection from --checks-file'
|
|
32
|
+
since: 1.0.0-alpha.31
|
|
33
|
+
- id: cut-set-closing-check
|
|
34
|
+
kind: vocabulary
|
|
35
|
+
name: closingCheck
|
|
36
|
+
use: 'modules/kernel/check-policy.yaml#regression owns integration checks after job merges; closingOrdinal identifies only the final open ordinal'
|
|
37
|
+
since: 1.0.0-alpha.31
|
|
38
|
+
- id: verb-guard-input
|
|
39
|
+
kind: verb
|
|
40
|
+
name: starci guard input
|
|
41
|
+
use: 'the reference-transaction hook reads prepared ref updates directly in its shell loop'
|
|
42
|
+
since: 1.0.0-alpha.31
|
|
43
|
+
- id: hook-input-timeout-ms
|
|
44
|
+
kind: config-key
|
|
45
|
+
name: hook-input.timeoutMs
|
|
46
|
+
use: 'modules/kernel/hook-input.yaml declares the input window as minInputWindowMs'
|
|
47
|
+
since: 1.0.0-alpha.31
|
|
48
|
+
- id: bias-require
|
|
49
|
+
kind: bias-field
|
|
50
|
+
name: require
|
|
51
|
+
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"]}'
|
|
52
|
+
since: 1.0.0-alpha.6
|
|
53
|
+
match: '\brequire\s*:\s*[\[{]|"require"\s*:|\brequire bias\b|\bbias[^\n.]{0,30}`require`'
|
|
54
|
+
- id: config-models-pools
|
|
55
|
+
kind: config-key
|
|
56
|
+
name: models.pools
|
|
57
|
+
use: 'tiers are ordered member chains in modules/models/tiers.yaml; override one with models.tiers'
|
|
58
|
+
since: 1.0.0-alpha.6
|
|
59
|
+
- id: config-models-nonoperation
|
|
60
|
+
kind: config-key
|
|
61
|
+
name: models.nonOperation
|
|
62
|
+
use: 'planner, validator and kernelManager take the frontier tier (modules/models/tiers.yaml seats); remap with models.seats'
|
|
63
|
+
since: 1.0.0-alpha.6
|
|
64
|
+
- id: config-models-selection
|
|
65
|
+
kind: config-key
|
|
66
|
+
name: models.selection
|
|
67
|
+
use: 'selection is always quota-aware; there is no key'
|
|
68
|
+
since: 1.0.0-alpha.6
|
|
69
|
+
- id: config-allocation-shares
|
|
70
|
+
kind: config-key
|
|
71
|
+
name: allocation.shares
|
|
72
|
+
use: 'the picker balances by models.balance (maxStreak, maxSharePercent); there are no per-provider weights'
|
|
73
|
+
since: 1.0.0-alpha.6
|
|
74
|
+
match: 'allocation[. ]shares'
|
|
75
|
+
- id: config-allocation-windowhours
|
|
76
|
+
kind: config-key
|
|
77
|
+
name: allocation.windowHours
|
|
78
|
+
use: 'balance reads the recent picks of one tier (models.balance); there is no window'
|
|
79
|
+
since: 1.0.0-alpha.6
|
|
80
|
+
- id: config-allocation-preferredprovider
|
|
81
|
+
kind: config-key
|
|
82
|
+
name: allocation.preferredProvider
|
|
83
|
+
use: 'an owner preference is a goal routing bias (prefer <agent>)'
|
|
84
|
+
since: 1.0.0-alpha.6
|
|
85
|
+
match: 'preferredProvider'
|
|
86
|
+
- id: config-allocation-policy
|
|
87
|
+
kind: config-key
|
|
88
|
+
name: allocation.policy
|
|
89
|
+
use: 'the picker is the one policy; there is no key'
|
|
90
|
+
since: 1.0.0-alpha.6
|
|
91
|
+
- id: config-allocation-mode
|
|
92
|
+
kind: config-key
|
|
93
|
+
name: allocation.mode
|
|
94
|
+
use: 'allocation holds grants only'
|
|
95
|
+
since: 1.0.0-alpha.6
|
|
96
|
+
- id: config-kernel-group
|
|
97
|
+
kind: config-key
|
|
98
|
+
name: kernel.group
|
|
99
|
+
use: 'the Kernel takes the high tier; pin with kernel.agent / kernel.model (an `only` bias)'
|
|
100
|
+
since: 1.0.0-alpha.6
|
|
101
|
+
- id: config-supervisor-kernel-group
|
|
102
|
+
kind: config-key
|
|
103
|
+
name: supervisor.kernel.group
|
|
104
|
+
use: 'the Supervisor takes the frontier tier; pin with supervisor.kernel.agent / .model (an `only` bias)'
|
|
105
|
+
since: 1.0.0-alpha.6
|
|
106
|
+
- id: config-coredebug
|
|
107
|
+
kind: config-key
|
|
108
|
+
name: coreDebug
|
|
109
|
+
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'
|
|
110
|
+
since: 1.0.0-alpha.6
|
|
111
|
+
- id: config-debug
|
|
112
|
+
kind: config-key
|
|
113
|
+
name: debug
|
|
114
|
+
use: 'the debug watcher is started by the /starci skill in the calling chat; there is no switch (debugLoop.interval sets its cadence)'
|
|
115
|
+
since: 1.0.0-alpha.6
|
|
116
|
+
scan: false
|
|
117
|
+
- id: vocabulary-sol-opus
|
|
118
|
+
kind: vocabulary
|
|
119
|
+
name: sol-opus
|
|
120
|
+
use: 'a pool of two providers is a tier chain of members (modules/models/tiers.yaml)'
|
|
121
|
+
since: 1.0.0-alpha.6
|
|
122
|
+
- id: seat-core-debug
|
|
123
|
+
kind: vocabulary
|
|
124
|
+
name: core-debug seat
|
|
125
|
+
use: 'the debug watcher is a /loop of the calling chat running `starci debug digest`'
|
|
126
|
+
since: 1.0.0-alpha.6
|
|
127
|
+
match: '\bcore-debug\s+(?:seat|watcher|worker|pass)\b'
|
|
128
|
+
- id: verb-debug-pass
|
|
129
|
+
kind: verb
|
|
130
|
+
name: debug pass
|
|
131
|
+
use: '`starci debug digest` (read-only) and `starci debug run <probe>`'
|
|
132
|
+
since: 1.0.0-alpha.6
|
|
133
|
+
match: '(?<![\w-])debug pass\b'
|
|
134
|
+
- id: flag-land-no-push
|
|
135
|
+
kind: flag
|
|
136
|
+
name: --no-push
|
|
137
|
+
use: 'a land never pushes, so there is nothing to leave unpushed'
|
|
138
|
+
since: 1.0.0-alpha.7
|
|
139
|
+
- id: code-landed-push-owed
|
|
140
|
+
kind: code
|
|
141
|
+
name: landed-push-owed
|
|
142
|
+
use: 'a land has no push step; the outcome is landed'
|
|
143
|
+
since: 1.0.0-alpha.7
|
|
144
|
+
- id: flag-caller-agent
|
|
145
|
+
kind: flag
|
|
146
|
+
name: --caller-agent
|
|
147
|
+
use: 'the debug digest runs in the calling chat; it takes no caller flag'
|
|
148
|
+
since: 1.0.0-alpha.6
|
|
149
|
+
- id: flag-caller-model
|
|
150
|
+
kind: flag
|
|
151
|
+
name: --caller-model
|
|
152
|
+
use: 'the debug digest runs in the calling chat; it takes no caller flag'
|
|
153
|
+
since: 1.0.0-alpha.6
|
|
154
|
+
- id: flag-caller-effort
|
|
155
|
+
kind: flag
|
|
156
|
+
name: --caller-effort
|
|
157
|
+
use: 'the debug digest runs in the calling chat; it takes no caller flag'
|
|
158
|
+
since: 1.0.0-alpha.6
|
|
159
|
+
- id: code-workflow-debug-not-ready
|
|
160
|
+
kind: code
|
|
161
|
+
name: workflow-debug-not-ready
|
|
162
|
+
use: 'there is no debug seat to be ready; the digest reads the ledger directly'
|
|
163
|
+
since: 1.0.0-alpha.6
|
|
164
|
+
- id: file-core-debug
|
|
165
|
+
kind: file
|
|
166
|
+
name: core-debug.mjs
|
|
167
|
+
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'
|
|
168
|
+
since: 1.0.0-alpha.6
|
|
169
|
+
match: '(?<![\w-])core-debug\.mjs\b'
|
|
170
|
+
- id: file-debug-pass
|
|
171
|
+
kind: file
|
|
172
|
+
name: debug-pass.mjs
|
|
173
|
+
use: '`starci debug digest` (read-only)'
|
|
174
|
+
since: 1.0.0-alpha.6
|
|
175
|
+
match: '(?<![\w-])debug-pass\.mjs\b'
|
|
176
|
+
- id: file-caller-context
|
|
177
|
+
kind: file
|
|
178
|
+
name: caller-context.mjs
|
|
179
|
+
use: 'there is no declared caller context; the debug digest runs in the calling chat'
|
|
180
|
+
since: 1.0.0-alpha.6
|
|
181
|
+
match: '(?<![\w-])caller-context\b'
|
|
182
|
+
- id: file-host-maintenance
|
|
183
|
+
kind: file
|
|
184
|
+
name: host-maintenance.md
|
|
185
|
+
use: 'skills/starci/references/host-startup.md'
|
|
186
|
+
since: 1.0.0-alpha.6
|
|
187
|
+
match: '(?<![\w-])host-maintenance\b'
|
|
188
|
+
- id: config-drawloop-critic
|
|
189
|
+
kind: config-key
|
|
190
|
+
name: allocation.drawLoop.critic
|
|
191
|
+
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'
|
|
192
|
+
since: 1.0.0-alpha.9
|
|
193
|
+
match: 'allocation\.drawLoop\.critic(?![A-Za-z])'
|
|
194
|
+
- id: config-drawloop-criticwhendrawer
|
|
195
|
+
kind: config-key
|
|
196
|
+
name: allocation.drawLoop.criticWhenDrawer
|
|
197
|
+
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'
|
|
198
|
+
since: 1.0.0-alpha.9
|
|
199
|
+
match: 'criticWhenDrawer'
|
|
200
|
+
- id: registry-critic-coverage-define-architecture
|
|
201
|
+
kind: vocabulary
|
|
202
|
+
name: critic-coverage-define-architecture
|
|
203
|
+
use: 'the edge-case registry entry is critic-coverage-decision-legs'
|
|
204
|
+
since: 1.0.0-alpha.9
|
|
205
|
+
- id: supervisor-grammar-release
|
|
206
|
+
kind: vocabulary
|
|
207
|
+
name: grammarRelease
|
|
208
|
+
use: 'the owner publishes @starci/grammar through starci release publish; the Supervisor changes no runtime code'
|
|
209
|
+
since: 1.0.0-alpha.9
|
|
210
|
+
- id: supervise-yaml-worker-land-blocks
|
|
211
|
+
kind: vocabulary
|
|
212
|
+
name: supervise.yaml workers
|
|
213
|
+
use: 'the Supervisor spawns no fix workers and lands nothing: it answers its menu (starci supervisor status) and records runtime defects for Debug'
|
|
214
|
+
since: 1.0.0-alpha.9
|
|
215
|
+
match: 'supervise\.yaml\s+(?:workers|landGate)\b|supervise\.yaml\s+kernelSeat/workers'
|
|
216
|
+
- id: supervisor-fixes-through-lanes
|
|
217
|
+
kind: vocabulary
|
|
218
|
+
name: the Supervisor fixes through lanes
|
|
219
|
+
use: 'the Supervisor records a runtime defect (starci supervisor actions record --item runtime-defect:<cause>) and Debug changes .claude'
|
|
220
|
+
since: 1.0.0-alpha.9
|
|
221
|
+
match: 'Supervisor[^\n.]{0,60}\bfix(?:es)?\s+through\s+(?:its\s+own\s+)?(?:staged\s+)?lanes?\b'
|
|
222
|
+
- id: kernel-ranked-actions
|
|
223
|
+
kind: vocabulary
|
|
224
|
+
name: ranked actions
|
|
225
|
+
use: "the Kernel's menu: the Decide section of starci kernel status, answered with starci kernel decide"
|
|
226
|
+
since: 1.0.0-alpha.9
|
|
227
|
+
match: '[Ww]ork the ranked actions|[Ff]irst rca\.actions entry'
|
|
228
|
+
- id: kernel-run-next-actions
|
|
229
|
+
kind: vocabulary
|
|
230
|
+
name: run nextActions
|
|
231
|
+
use: "the Kernel answers the items of its menu; the runtime performs the mechanical next actions"
|
|
232
|
+
since: 1.0.0-alpha.9
|
|
233
|
+
match: 'run nextActions|run each\s+in order and never choose'
|
|
234
|
+
- id: event-op-reported
|
|
235
|
+
kind: vocabulary
|
|
236
|
+
name: op-reported
|
|
237
|
+
use: 'the event a filed report records is report-filed; no event named op-reported was ever emitted'
|
|
238
|
+
since: 1.0.0-alpha.9
|
|
239
|
+
match: '(?<![\w-])op-reported(?![\w-])'
|
|
240
|
+
- id: file-sonar-secrets-keys
|
|
241
|
+
kind: file
|
|
242
|
+
name: KEYS.md
|
|
243
|
+
use: 'secret.env.example lists the names of the host secrets; ext/sonar/README.md describes the stack'
|
|
244
|
+
since: 1.0.0-alpha.7
|
|
245
|
+
match: '(?<![\w/.-])secrets/KEYS\.md'
|
|
246
|
+
- id: vocab-example-sonar-token-member
|
|
247
|
+
kind: vocabulary
|
|
248
|
+
name: per-example Sonar token custody
|
|
249
|
+
use: 'the examples are analysed on SonarCloud with the SONAR_TOKEN of the runtime secret.env (runtimeSecrets in their services.sonar declaration)'
|
|
250
|
+
since: 1.0.0-alpha.7
|
|
251
|
+
match: 'sonarqube-(?:lite-app|shape-slot|starci-ecommerce-app)-token'
|
|
252
|
+
- id: vocab-menu-kinds-moved-to-controllers
|
|
253
|
+
kind: vocabulary
|
|
254
|
+
name: the menu kinds of the origins the controllers now move
|
|
255
|
+
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'
|
|
256
|
+
since: 1.0.0-alpha.9
|
|
257
|
+
match: '(?<![\w-])(?:node-rework|stale-redispatch|enqueue-asset-leg|enqueue-credential-ask|rework-node)(?![\w-])'
|
|
258
|
+
- id: vocab-sonar-stack-sealed-members
|
|
259
|
+
kind: vocabulary
|
|
260
|
+
name: ext/sonar secrets custody
|
|
261
|
+
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'
|
|
262
|
+
since: 1.0.0-alpha.9
|
|
263
|
+
match: 'ext/sonar/secrets/(?:sonarqube-(?:db|admin|analysis)-(?:password|token)|cloudflare-starci-local-services-tunnel-token)'
|
|
264
|
+
- id: vocab-ecommerce-sealed-demo-secrets
|
|
265
|
+
kind: vocabulary
|
|
266
|
+
name: ecommerce sealed demo secrets
|
|
267
|
+
use: 'the ecommerce example carries demo-only defaults in its compose files and declares no sealed secret (secrets: [])'
|
|
268
|
+
since: 1.0.0-alpha.9
|
|
269
|
+
match: '(?<![\w-])(?:keycloak|minio)-env(?:\.enc)?(?![\w-])'
|
|
270
|
+
- id: vocab-handover-step-mechanical-pending
|
|
271
|
+
kind: vocabulary
|
|
272
|
+
name: the handover-step menu mode mechanical-pending and its choice rerun-handover-review
|
|
273
|
+
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'
|
|
274
|
+
since: 1.0.0-alpha.9
|
|
275
|
+
match: '(?<![\w-])(?:mechanical-pending|rerun-handover-review)(?![\w-])'
|
|
276
|
+
- id: vocab-card-delivery-bound
|
|
277
|
+
kind: vocabulary
|
|
278
|
+
name: the agent card delivery keys maxInlineChars, fileName and fileDirectory
|
|
279
|
+
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'
|
|
280
|
+
since: 1.0.0-alpha.9
|
|
281
|
+
match: '(?<![\w-])(?:maxInlineChars|fileDirectory)(?![\w-])'
|
|
282
|
+
- id: vocab-backoff-factor-keys
|
|
283
|
+
kind: vocabulary
|
|
284
|
+
name: the growth factor of allocation.dispatchRefusal and of the backoff of modules/reconciler/host.yaml
|
|
285
|
+
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'
|
|
286
|
+
since: 1.0.0-alpha.9
|
|
287
|
+
match: '(?<![\w-])(?:dispatchRefusal|backoff):\s*\{[^}\n]*\bfactor\b'
|
|
288
|
+
- id: vocab-wake-terminal-bound
|
|
289
|
+
kind: vocabulary
|
|
290
|
+
name: the independent wake character bound
|
|
291
|
+
use: 'allocation.promptFile.maxChars is the terminal bound owned by scripts/agent/prompt-file.mjs'
|
|
292
|
+
since: 1.0.0-alpha.9
|
|
293
|
+
match: '(?<![\w-])(?:allocation\.)?wake\.maxChars|\bwake:\s*\{\s*maxChars\b'
|
|
294
|
+
- id: vocab-draft-probe-mutations
|
|
295
|
+
kind: vocabulary
|
|
296
|
+
name: draft probe mutation fields
|
|
297
|
+
use: 'probeDraft reads only and returns verdict, draft and sends; a foreign draft receives no keys'
|
|
298
|
+
since: 1.0.0-alpha.9
|
|
299
|
+
match: '\b(?:draftProbe|probeDraft)\.(?:restore|restored|removed|after)\b'
|
|
300
|
+
- id: code-fe-db-result-typed
|
|
301
|
+
kind: code
|
|
302
|
+
name: FE_DB_RESULT_TYPED
|
|
303
|
+
use: 'the front end reads no data through Supabase (R217, auth only in fe.modules.auth); reads are GraphQL queries of modules/api wrapped by hooks/swr, typed by graphql-codegen (R52 FE_WIRE_GENERATED)'
|
|
304
|
+
since: 1.0.0-alpha.13
|
|
305
|
+
- id: code-fe-db-error-handled
|
|
306
|
+
kind: code
|
|
307
|
+
name: FE_DB_ERROR_HANDLED
|
|
308
|
+
use: 'a failure arrives as the GraphQLResponse envelope of modules/api/graphql/types.ts and is never collapsed into empty data (R51 FE_HTTP_STATUS_COLLAPSE)'
|
|
309
|
+
since: 1.0.0-alpha.13
|
|
310
|
+
- id: code-fe-auth-session-trust
|
|
311
|
+
kind: code
|
|
312
|
+
name: FE_AUTH_SESSION_TRUST
|
|
313
|
+
use: 'the front end runs no server code that trusts a session (R243 FE_SERVER_ACTION_FORBIDDEN); the back end verifies the access token against the JWKS (R219 BE_SUPABASE_JWT_VERIFIED)'
|
|
314
|
+
since: 1.0.0-alpha.13
|
|
315
|
+
- id: code-fe-db-write-shape
|
|
316
|
+
kind: code
|
|
317
|
+
name: FE_DB_WRITE_SHAPE
|
|
318
|
+
use: 'a write is a GraphQL mutation of modules/api wrapped by a useMutate<X>Swr hook and reported by modules/toast; Server Actions are refused (R243 FE_SERVER_ACTION_FORBIDDEN)'
|
|
319
|
+
since: 1.0.0-alpha.13
|
|
320
|
+
- id: slot-fe-modules-db
|
|
321
|
+
kind: vocabulary
|
|
322
|
+
name: fe.modules.db
|
|
323
|
+
use: 'the front end reads and writes through the back end GraphQL API in fe.modules.api, wrapped by hooks/swr; Supabase on the front end is fe.modules.auth only (owner ruling 2026-10-13)'
|
|
324
|
+
since: 1.0.0-alpha.13
|
|
325
|
+
match: '\bfe\.modules\.db\b'
|
|
326
|
+
- id: slot-fe-package-db
|
|
327
|
+
kind: vocabulary
|
|
328
|
+
name: fe.package.db
|
|
329
|
+
use: 'a shared front-end data client is fe.package.api (Apollo clients and the GraphQLResponse union); Supabase on the front end is fe.modules.auth only'
|
|
330
|
+
since: 1.0.0-alpha.13
|
|
331
|
+
match: '\bfe\.package\.db\b'
|
|
332
|
+
- id: slot-be-feature-realtime-supabase
|
|
333
|
+
kind: vocabulary
|
|
334
|
+
name: be.feature.realtime.supabase
|
|
335
|
+
use: 'both editions push through the socket.io gateway be.feature.realtime.websocket; lite runs it in the api process'
|
|
336
|
+
since: 1.0.0-alpha.13
|
|
337
|
+
match: '\bbe\.feature\.realtime\.supabase\b'
|
|
338
|
+
- id: slot-key-anonymous-actions
|
|
339
|
+
kind: vocabulary
|
|
340
|
+
name: anonymousActions
|
|
341
|
+
use: 'the front end holds no Server Action (R243 FE_SERVER_ACTION_FORBIDDEN), so no slot lists anonymous ones'
|
|
342
|
+
since: 1.0.0-alpha.13
|
|
343
|
+
- id: verb-test-affected
|
|
344
|
+
kind: verb
|
|
345
|
+
name: starci test affected
|
|
346
|
+
use: 'the runtime has no specs of its own (owner ruling no-runtime-specs): `starci runtime verify` runs the check, `starci release clean-test --base <ref>` and `starci release scaffold-e2e`'
|
|
347
|
+
since: 1.0.0-alpha.19
|
|
348
|
+
match: '\bstarci test affected\b'
|
|
349
|
+
- id: verb-test-run
|
|
350
|
+
kind: verb
|
|
351
|
+
name: starci test run
|
|
352
|
+
use: 'the L1 to L4 spec ladder is gone with the runtime specs; `starci runtime verify` proves a change, CI runs the release rows'
|
|
353
|
+
since: 1.0.0-alpha.19
|
|
354
|
+
match: '\bstarci test run\b'
|
|
355
|
+
- id: verb-gate-runtime-coverage
|
|
356
|
+
kind: verb
|
|
357
|
+
name: starci gate runtime-coverage
|
|
358
|
+
use: 'the runtime measures no coverage of its own; the example apps keep their Codecov flags'
|
|
359
|
+
since: 1.0.0-alpha.19
|
|
360
|
+
match: '\bgate runtime-coverage\b'
|
|
361
|
+
- id: verb-release-env-test
|
|
362
|
+
kind: verb
|
|
363
|
+
name: starci release env-test
|
|
364
|
+
use: 'the release rows are the package clean-test (`starci release clean-test`), the scaffold e2e (`starci release scaffold-e2e`) and the runtime check'
|
|
365
|
+
since: 1.0.0-alpha.19
|
|
366
|
+
match: '\brelease env-test\b'
|
|
367
|
+
- id: config-specs-harness
|
|
368
|
+
kind: config-key
|
|
369
|
+
name: specs.harness
|
|
370
|
+
use: 'the runtime has no specs of its own (owner ruling no-runtime-specs); specs.unit and specs.e2e switch the product workflow tests'
|
|
371
|
+
since: 1.0.0-alpha.19
|
|
372
|
+
match: '\bspecs\.harness\b'
|
|
373
|
+
- id: file-supabase-queues-topic
|
|
374
|
+
kind: file
|
|
375
|
+
name: supabase-queues.yaml
|
|
376
|
+
use: 'the queue is BullMQ on Redis in both editions (ruling:R212/case-10): knowledge/patterns/be/queues.yaml owns the adapter, and each pattern topic''s liteAdapter says what lite uses with and without its declared backing service'
|
|
377
|
+
since: 1.0.0-alpha.31
|
|
378
|
+
match: '(?<![\w-])supabase-queues(?:\.yaml)?\b'
|
|
379
|
+
- id: code-rt-gate-loosening
|
|
380
|
+
kind: code
|
|
381
|
+
name: RT_GATE_LOOSENING
|
|
382
|
+
use: 'the tree is judged as it stands, never by its history: RT_LOOSENING_STATE (the loosening-state self-check) with the design-truths manifest knowledge/hfs/design-truths.yaml'
|
|
383
|
+
since: 1.0.0-alpha.31
|
|
384
|
+
- id: vocabulary-gate-loosening
|
|
385
|
+
kind: vocabulary
|
|
386
|
+
name: gate-loosening
|
|
387
|
+
use: 'the diff-based detector and its table are gone: the loosening-state self-check (scripts/checks/check-loosening-state.mjs) reads the tree as it stands against knowledge/hfs/design-truths.yaml'
|
|
388
|
+
since: 1.0.0-alpha.31
|
|
389
|
+
match: 'gate-loosening|gateLoosening|loosensReleased|looseningsOf|check-code-loosening'
|
|
390
|
+
- id: verb-runtime-benchmark-snapshot
|
|
391
|
+
kind: verb
|
|
392
|
+
name: starci runtime benchmark-snapshot
|
|
393
|
+
use: 'routing evidence is read live from the ledgers: `starci machine op-metrics --by op` and the ledger view v_model_scorecard (modules/models/registry.yaml costPolicy)'
|
|
394
|
+
since: 1.0.0-alpha.31
|
|
395
|
+
match: '(?<![\w-])benchmark-snapshot(?![\w-])'
|
|
396
|
+
- id: vocab-benchmark-scorecard
|
|
397
|
+
kind: vocabulary
|
|
398
|
+
name: the benchmark/ model-pool scorecard
|
|
399
|
+
use: 'routing evidence is read live from the ledgers: `starci machine op-metrics --by op` and the ledger view v_model_scorecard (modules/models/registry.yaml costPolicy)'
|
|
400
|
+
since: 1.0.0-alpha.31
|
|
401
|
+
match: '(?<![\w./-])benchmark/(?:README\.md|expectations\.yaml|snapshots\b|findings\b)|benchmark-expectations@1'
|
|
402
|
+
- id: slot-runtime-benchmark
|
|
403
|
+
kind: vocabulary
|
|
404
|
+
name: runtime.benchmark
|
|
405
|
+
use: 'the runtime tree has no benchmark slot; routing evidence is read live from the ledgers (modules/models/registry.yaml costPolicy)'
|
|
406
|
+
since: 1.0.0-alpha.31
|
|
407
|
+
match: '\bruntime\.benchmark\b'
|
|
408
|
+
- id: config-release-tagmatchesversion
|
|
409
|
+
kind: config-key
|
|
410
|
+
name: release.tagMatchesVersion
|
|
411
|
+
use: 'the release tag is always <release.tagPrefix><package.json version>; delete the key'
|
|
412
|
+
since: 1.0.0-alpha.31
|
|
413
|
+
match: '\btagMatchesVersion\b'
|
|
414
|
+
|
|
415
|
+
- id: grammar-surfacecard-manual-layer
|
|
416
|
+
kind: vocabulary
|
|
417
|
+
name: SurfaceCard manual depth and unpainted frame
|
|
418
|
+
use: 'SurfaceCard derives its depth from the painted parent surface; use an unpainted layout container for grouping and a bounded SurfaceCard for a painted face'
|
|
419
|
+
since: 1.0.0-alpha.31
|
|
420
|
+
match: 'SurfaceCard[^\r\n>]*\s(?:depth=|frame="frameless")'
|
|
421
|
+
- id: grammar-dropdown-negative-tone
|
|
422
|
+
kind: vocabulary
|
|
423
|
+
name: DropdownMenuItem negative tone
|
|
424
|
+
use: 'DropdownMenuItem.tone uses neutral or danger; destructive commands use danger'
|
|
425
|
+
since: 1.0.0-alpha.31
|
|
426
|
+
match: 'DropdownMenuItem(?:Tone|\.tone)[^\r\n]*["'']negative["'']'
|
|
427
|
+
|
|
428
|
+
- id: code-release-receipt-missing
|
|
429
|
+
kind: code
|
|
430
|
+
name: RELEASE_RECEIPT_MISSING
|
|
431
|
+
use: 'the push of main asks for a fast-forward and a clean secret scan; a release tag asks for no receipt'
|
|
432
|
+
since: 1.0.0-alpha.31.1
|
|
433
|
+
- id: code-release-receipt-incomplete
|
|
434
|
+
kind: code
|
|
435
|
+
name: RELEASE_RECEIPT_INCOMPLETE
|
|
436
|
+
use: 'the push of main asks for a fast-forward and a clean secret scan; CI judges the full suite'
|
|
437
|
+
since: 1.0.0-alpha.31.1
|
|
438
|
+
- id: code-release-suite-mode
|
|
439
|
+
kind: code
|
|
440
|
+
name: RELEASE_SUITE_MODE
|
|
441
|
+
use: 'release.suite chooses whether the cut also runs the L4 rows; no record or gate reads the mode'
|
|
442
|
+
since: 1.0.0-alpha.31.1
|
|
443
|
+
- id: code-release-version-unchanged
|
|
444
|
+
kind: code
|
|
445
|
+
name: RELEASE_VERSION_UNCHANGED
|
|
446
|
+
use: 'main is pushed without a version move; RELEASE_VERSION_NOT_NEXT judges the version of a tag against the v* tags'
|
|
447
|
+
since: 1.0.0-alpha.31.1
|
|
448
|
+
- id: code-release-remote-head-unknown
|
|
449
|
+
kind: code
|
|
450
|
+
name: RELEASE_REMOTE_HEAD_UNKNOWN
|
|
451
|
+
use: 'a release tag is judged against the v* tags, not against the remote main head'
|
|
452
|
+
since: 1.0.0-alpha.31.1
|
|
453
|
+
- id: config-release-candidate-blocking
|
|
454
|
+
kind: config-key
|
|
455
|
+
name: candidate.blocking
|
|
456
|
+
use: 'the runtime cut has no candidate step; the ci, examples and sonar workflows judge each push to main (suite.ci.workflows)'
|
|
457
|
+
since: 1.0.0-alpha.31.1
|
|
458
|
+
match: 'candidate\.blocking\b'
|