Skip to content

Commit b364b81

Browse files
committed
test(spec): security, ai, identity, integration, migrations, marketplace, meta-spelling and studio test titles state each cited decision in words instead of a tracker number (stage 14)
The eight small directories under packages/spec/src: 89 test titles and declared test strings that carried 94 tracker ids now state what the cited record decided, in words, or drop a number the title already explains. Text only: no assertion, identifier, test count or code comment changes. The two build-progress assertion needles that pin the source docblock's own carrier names stay. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
1 parent e83c9f6 commit b364b81

33 files changed

Lines changed: 89 additions & 89 deletions

‎packages/spec/src/ai/agent.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ describe('AIModelConfigSchema', () => {
7171
});
7272
});
7373

74-
describe('agent.tools retirement (ADR-0064 / #3820, tombstoned in #3894)', () => {
74+
describe('agent.tools retirement (ADR-0064) — tombstoned; tools move into skills', () => {
7575
it('REJECTS a legacy inline tools array, with the fix in the message', () => {
7676
// Tombstoned, not deleted: AgentSchema is `strictObject`, so a plain
7777
// deletion would reject the key with a generic unknown-key error.

‎packages/spec/src/ai/conversation.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ describe('ConversationSessionSchema', () => {
291291
it('should accept full session with messages', () => {
292292
const session = {
293293
id: 'session-1',
294-
name: 'Support Chat - Case #123',
294+
name: 'Support Chat - Case',
295295
context: {
296296
sessionId: 'session-1',
297297
userId: 'user-1',
@@ -590,7 +590,7 @@ describe('Real-World Conversation Examples', () => {
590590
// `ConversationAnalytics` is runtime-emitted, so the silent-strip alternative
591591
// is the real hazard: this shape is not strict, and a producer still writing
592592
// `duration` would have lost the one measurement on the row with no error at all.
593-
describe('ConversationAnalytics.duration carries its unit (#15680)', () => {
593+
describe('ConversationAnalytics.duration carries its unit', () => {
594594
const base = {
595595
sessionId: 'session-1',
596596
totalMessages: 10,

‎packages/spec/src/ai/knowledge-source.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const SOURCE: KnowledgeSource = {
4848

4949
const CRON_5_FIELD = '0 3 * * *';
5050

51-
describe('KnowledgeRefreshPolicySchema.cron — the typed cron slot (#14825)', () => {
51+
describe('KnowledgeRefreshPolicySchema.cron — the typed cron slot', () => {
5252
it('positive control: a 5-field cron on a full knowledge source parses and normalizes to the cron envelope', () => {
5353
const r = KnowledgeSourceSchema.safeParse({ ...SOURCE, refresh: { cron: CRON_5_FIELD } });
5454
expect(r.success, r.success ? '' : JSON.stringify(r.error.issues)).toBe(true);
@@ -94,8 +94,8 @@ describe('KnowledgeRefreshPolicySchema.cron — the typed cron slot (#14825)', (
9494
});
9595

9696
it.each([
97-
['a dialect the protocol does not declare (`js`, retired at #3278, ADR-0058 addendum)', 'js'],
98-
['a declared dialect that is not this slot\'s (`cel`, #15028)', 'cel'],
97+
['a dialect the protocol does not declare (`js`, a retired expression dialect, ADR-0058 addendum)', 'js'],
98+
['a declared dialect that is not this slot\'s (`cel`)', 'cel'],
9999
])('refuses an envelope naming %s with ONE `invalid_union` at `cron` whose message is the cron dialect-only sentence', (_label, dialect) => {
100100
const r = KnowledgeRefreshPolicySchema.safeParse({ cron: { dialect, source: 'x' } });
101101
expect(r.success).toBe(false);

‎packages/spec/src/ai/skill-trigger-condition-value-shape.test.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function valueIssue(result: ReturnType<typeof parse>) {
4444
return issues[0]!;
4545
}
4646

47-
describe('#7113 — the reported shape is refused at authoring time', () => {
47+
describe('a set operator carrying a scalar is refused at authoring time', () => {
4848
it('refuses the card example: a set operator carrying a scalar', () => {
4949
const result = parse({ field: 'userRole', operator: 'in', value: 'admin' });
5050
const issue = valueIssue(result);
@@ -72,7 +72,7 @@ describe('#7113 — the reported shape is refused at authoring time', () => {
7272
});
7373
});
7474

75-
describe('#7113 — list operators require an array', () => {
75+
describe('list operators require an array', () => {
7676
it.each(SKILL_TRIGGER_LIST_VALUE_OPERATORS)('%s refuses a scalar', (operator) => {
7777
const issue = valueIssue(parse({ field: 'objectName', operator, value: 'lead' }));
7878
expect(issue.code).toBe('custom');
@@ -109,7 +109,7 @@ describe('#7113 — list operators require an array', () => {
109109
});
110110
});
111111

112-
describe('#7113 — identity operators require a string', () => {
112+
describe('identity operators require a string', () => {
113113
it.each(SKILL_TRIGGER_SCALAR_VALUE_OPERATORS)('%s refuses an array', (operator) => {
114114
const issue = valueIssue(parse({ field: 'objectName', operator, value: ['lead'] }));
115115
expect(issue.code).toBe('custom');
@@ -127,7 +127,7 @@ describe('#7113 — identity operators require a string', () => {
127127
});
128128
});
129129

130-
describe('#7113 — `contains` keeps BOTH shapes (#5685: no stricter than the runtime)', () => {
130+
describe('`contains` keeps BOTH shapes — no stricter than the runtime', () => {
131131
it('accepts a string comparand — the substring branch', () => {
132132
expect(parse({ field: 'viewName', operator: 'contains', value: 'kanban' }).success).toBe(true);
133133
});
@@ -147,7 +147,7 @@ describe('#7113 — `contains` keeps BOTH shapes (#5685: no stricter than the ru
147147
});
148148
});
149149

150-
describe('#7113 — the exported vocabularies are the contract, not a copy', () => {
150+
describe('the exported vocabularies are the contract, not a copy', () => {
151151
it('the two vocabularies are disjoint and both subsets of the operator enum', () => {
152152
const all = [
153153
...SKILL_TRIGGER_LIST_VALUE_OPERATORS,
@@ -172,7 +172,7 @@ describe('#7113 — the exported vocabularies are the contract, not a copy', ()
172172
});
173173
});
174174

175-
describe('#7113 — the refinement does not disturb the carrier', () => {
175+
describe('the value-shape refinement does not disturb the carrier', () => {
176176
it('an unrelated operator/value pair still parses through Skill.triggerConditions', () => {
177177
const skill = SkillSchema.parse({
178178
name: 'order_management',

‎packages/spec/src/ai/skill.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ describe('defineSkill', () => {
192192
});
193193
});
194194

195-
describe('#3896 close-out — retired `triggerPhrases`', () => {
195+
describe('retired `triggerPhrases` — phrases never routed a skill; triggerConditions do', () => {
196196
it('REJECTS the retired key with the routing prescription', () => {
197197
let message = '';
198198
try {

‎packages/spec/src/ai/solution-blueprint.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ describe('strict mirror ↔ lenient schema — key parity', () => {
671671
// because the model happened to retry with a repaired blueprint the user never
672672
// saw. Two declarations of one contract, disagreeing about values.
673673
// ---------------------------------------------------------------------------
674-
describe('strict mirror ↔ lenient schema — VALUE parity (cloud#1967)', () => {
674+
describe('strict mirror ↔ lenient schema — VALUE parity', () => {
675675
/** The regex a zod string leaf enforces, or null when it enforces none. */
676676
const patternOf = (schema: any): string | null => {
677677
const checks = schema?.def?.checks;

‎packages/spec/src/ai/tool-confirmation-prescription-tense.pin.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ function aiDoorBody(): string {
142142
return source.slice(start, end === -1 ? source.length : end);
143143
}
144144

145-
describe('[#17487] the confirmation-gate prescriptions match the door that runs', () => {
145+
describe('the confirmation-gate prescriptions match the door that runs', () => {
146146
it('anchors on real text in all three carriers', () => {
147147
// Anti-vacuity for every assertion below: an empty carrier would pass
148148
// "carries no denial" by reading nothing.

‎packages/spec/src/ai/tool.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ describe('defineTool', () => {
250250
expect(message).not.toContain('Did you mean');
251251
});
252252

253-
it('emission order: which key is wrong → the fix → the history, last (#5955)', () => {
253+
it('emission order: which key is wrong → the fix → the history, last', () => {
254254
// The template's ordering contract, asserted on this surface because the
255255
// fold is what brings this surface under it. `history` sat in the middle
256256
// until #5955 and pushed the fix past ~character 220 on the single-line

‎packages/spec/src/identity/api-key-retirement.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ import {
5252
//
5353
// Form follows #4988 / #5055 / #8075: resolved symbol identity over every
5454
// public entry via the build-time `export-origins/` artifact.
55-
describe('[#8715] identity/ ApiKeySchema retirement', () => {
55+
describe('identity/ ApiKeySchema retirement', () => {
5656
/** The 3 names the retired def exported (1 schema const + 2 types). */
5757
const RETIRED_NAMES = ['ApiKeySchema', 'ApiKey', 'ApiKeyParsed'] as const;
5858

@@ -79,7 +79,7 @@ describe('[#8715] identity/ ApiKeySchema retirement', () => {
7979

8080
// ── ABSENCE (every entry, not just ./identity) ────────────────────────
8181
for (const name of RETIRED_NAMES) {
82-
expect(holdersOf(name), `${name} must have zero holders after #8715`).toEqual([]);
82+
expect(holdersOf(name), `${name} must have zero holders after the ApiKeySchema retirement`).toEqual([]);
8383
}
8484

8585
// ── SURVIVAL ──────────────────────────────────────────────────────────

‎packages/spec/src/identity/identity.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ describe('UserSchema', () => {
8585
* drop of `.url()` (which would start admitting `''` and `'not-a-url'`) goes
8686
* red here rather than passing as "still accepts null".
8787
*/
88-
describe('[#18509] UserSchema.image accept set', () => {
88+
describe('UserSchema.image accept set — null, the shape better-auth serves', () => {
8989
const base = {
9090
id: 'user_123',
9191
email: 'test@example.com',
@@ -199,7 +199,7 @@ describe('AccountSchema', () => {
199199
});
200200
});
201201

202-
describe('Session is not declared here (#4641)', () => {
202+
describe('Session is not declared here', () => {
203203
// Pin: this module no longer declares the bare `SessionSchema` name. The pin is
204204
// compile-time (`typeof import` is type-level only — no runtime barrel load):
205205
// if the name is re-added here, the conditional type flips to `true` and the

0 commit comments

Comments
 (0)