Borrowing it
Nothing to install: this file belongs to adarshp14/relay. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/adarshp14/relay/main/.agents/skills/wrdn-effect-schema-inferred-types/SKILL.mdgit clone --depth 1 https://github.com/adarshp14/relayWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/adarshp14/relay/wrdn-effect-schema-inferred-types)<a href="https://agentmods.dev/skills/adarshp14/relay/wrdn-effect-schema-inferred-types"><img src="https://agentmods.dev/badge/skills/adarshp14/relay/wrdn-effect-schema-inferred-types.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.00868 |
| Opus 5 | $0.00030 | $0.00434 |
| Sonnet 5 | $0.00012 | $0.00174 |
| Haiku 4.5 | $0.00006 | $0.00087 |
Grade A, and why
wrdn-effect-schema-inferred-types scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to wrdn-effect-schema-inferred-types — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You fix one pattern: a runtime Schema and a manual TypeScript type describe the same shape.
The preferred boundary is schema-first. Define the schema once, export type X = typeof XSchema.Type or type X = Schema.Schema.Type<typeof XSchema>, and make domain code consume the inferred type. This prevents drift between parsing and static types.
Trace before changing
- Find the runtime schema. Look for
Schema.Struct,Schema.Union,Schema.TaggedStruct,Schema.Record,Schema.Array, orSchema.decodeTo. - Find the duplicate static shape. A nearby
interface Xortype X = { ... }repeats the same fields, nullability, optionality, or literals. - Check export consumers. If callers import the type, keep the exported type name stable and change only its definition.
- Confirm the schema is the source of truth. If the manual type is wider/narrower than runtime parsing, decide whether the schema or consumers are wrong before replacing it.
- Handle recursion narrowly. Recursive schemas may need one private recursive helper type to annotate
Schema.suspend; keep exported domain types inferred from the schema.
Fix shape
- Move the schema before the exported type alias when needed.
- Replace duplicated exported interfaces with aliases derived from the schema:
export const SourceSchema = Schema.Struct({
id: SourceId,
name: Schema.String,
enabled: Schema.Boolean,
});
export type Source = typeof SourceSchema.Type;
- Use
Schema.Schema.Type<typeof XSchema>when it reads better for non-exported or generic schemas:
type IntrospectionResult = Schema.Schema.Type<typeof IntrospectionResultModel>;
- If using
Schema.decodeTo, infer the domain type from the decoded/domain schema, not from the raw transport schema. - Do not keep a manual interface solely for documentation. Add schema annotations or comments only when they clarify behavior the schema cannot express.
Bad
export interface StoredSource {
readonly id: string;
readonly url: string;
readonly headers: readonly Header[];
}
export const StoredSourceSchema = Schema.Struct({
id: Schema.String,
url: Schema.String,
headers: Schema.Array(HeaderSchema),
});
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 108 lines · 61 tokens per session scan A fb16c0db29b0
wrdn-effect-schema-inferred-types is a skill published in the GitHub repository adarshp14/relay (0 stars, last pushed 2mo ago), licensed MIT. It adds 61 tokens to every session and 868 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to wrdn-effect-schema-inferred-types, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
webiny-api-cms-custom-field-type
How to implement a custom CMS field type that integrates with the model builder's fluent API. Covers extending DataFieldBuilder, composing validator interfaces, creating a FieldTypeFactory, registering via DI, and module augmentation for TypeScript autocomplete on the fields() registry.
skmtc-lang-typescript
The TypeScript target-language layer for Skmtc generators (@skmtc/lang-typescript): projection base factories, TsSnippet, the three register shapes, identifier kinds and the type-only import machinery, composition helpers, sanitization, TsFile render rules. Use ALONGSIDE skmtc-generator whenever a generator emits…
phoenix-typescript
TypeScript craft where the type-checker IS the objective gate — treat tsc --noEmit as a phoenixsense check, work strict, derive types instead of duplicating them, and eliminate any/unsafe casts. Grounded in Mat Pocock's (Total TypeScript) philosophy that types exist to power a fast feedback loop. Use on any…
nodejs-sdk
Type-safe Node.js API client SDK with validation, mocking, retry, and logging. Use when building API clients for Node.js applications.
graphql-api-development
Comprehensive guide for building GraphQL APIs including schema design, queries, mutations, subscriptions, resolvers, type system, error handling, authentication, authorization, caching strategies, and production best practices.
typescript-circular-dependency
Detect and resolve TypeScript/JavaScript circular import dependencies. Use when: (1) "Cannot access 'X' before initialization" at runtime, (2) Import returns undefined unexpectedly, (3) "ReferenceError: Cannot access X before initialization", (4) Type errors that disappear when you change import order, (5) Jest/Vitest…