Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/AcKeskin/contextureWrote 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/rules/ackeskin/contexture/typescript)<a href="https://agentmods.dev/rules/ackeskin/contexture/typescript"><img src="https://agentmods.dev/badge/rules/ackeskin/contexture/typescript/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/ackeskin/contexture/typescript"><img src="https://agentmods.dev/badge/rules/ackeskin/contexture/typescript.svg" alt="Reviewed on agentmods" width="80" 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.00000 | $0.00840 |
| Opus 5.5 | $0.00000 | $0.00336 |
| Sonnet 5.5 | $0.00000 | $0.00168 |
| Haiku 4.5 | $0.00000 | $0.00084 |
Grade A, and why
typescript 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 today.
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.
How it starts
The opening of the file, as written. The whole thing — 44 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generated from
architectural-rules/typescript/— do not hand-edit.
TypeScript async
Never leave a promise floating — await it, return it, or explicitly void it. An unawaited promise drops its rejection on the floor (unhandled rejection) and breaks ordering assumptions.
Prefer async/await over .then() chains for sequential work — flatter, debuggable, and error handling is one try/catch instead of scattered .catch().
Type async returns as Promise<T> explicitly on public APIs. Let the caller see the contract without inferring it.
Do not pass an async callback where a synchronous one is expected (Array.forEach, most event handlers) — the returned promise is ignored and errors vanish. Use for...of with await, or Promise.all(map(...)).
Why: floating promises and async-callback-in-forEach are the two patterns that silently swallow async errors in TS — they look correct and fail invisibly. Source: TypeScript Handbook, typescript-eslint rules.
TypeScript modules
Prefer named exports over default exports. Named exports are refactor-safe (rename propagates), discoverable by autocomplete, and avoid the "default-export sprawl" where every file's main thing is anonymously default.
Use configured path aliases (@/domain/...) instead of deep relative chains (../../../..). Relative-depth churn on every move is friction the bundler can erase.
No circular module dependencies. They cause undefined-at-import-time bugs that depend on evaluation order. Break the cycle by extracting the shared piece.
Use import type { X } for type-only imports — it is erased at compile time and prevents accidental runtime coupling / side-effect imports.
Why: default exports defeat rename-refactoring and circular deps produce order-dependent undefined that reproduces only sometimes — both are structural, not stylistic. Source: TypeScript Handbook, Google TypeScript Style Guide.
TypeScript narrowing and exhaustiveness
Force exhaustive handling of a union with a never-typed default branch (const _x: never = value;). Adding a new union member then fails to compile until it's handled — the compiler becomes the checklist.
Write user-defined type guards (function isFish(x: Fish | Bird): x is Fish) when narrowing isn't structural. The x is T predicate teaches the compiler what the runtime check proves.
Use typeof, instanceof, and in to narrow within a block. Let control flow narrow the type instead of casting.
Do not narrow by casting (x as T). A cast asserts; a guard proves. Casts are the place runtime/compile-time disagreement hides.
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.
- today First seen · 44 lines · 840 tokens per session scan A 25228ad4d389
typescript is a cursor rule published in the GitHub repository AcKeskin/contexture (2 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 840 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-27.
Other cursor rules, from other repositories
standard-nestjs-module-hierarchy
Establish a consistent NestJS module structure in the API application where each resource is encapsulated in its own module with proper hierarchical organization to enhance maintainability, scalabilit... .
standard-typescript-good-practices
Generic practices that can be applied for all TS code in our app .
error-handling-pattern-1-accumulating-multiple-errors
Cursor rule "error-handling-pattern-1-accumulating-multiple-errors" from PaulJPhilp/EffectPatterns, covering error handling pattern 1: accumulating multiple errors and example.
create-type-safe-errors
Cursor rule "create-type-safe-errors" from PaulJPhilp/EffectPatterns, covering create type-safe errors and example.
handle-errors-with-catchtag-catchtags-and-catchall
Cursor rule "handle-errors-with-catchtag-catchtags-and-catchall" from PaulJPhilp/EffectPatterns, covering handle errors with catchtag, catchtags, and catchall and example.
define-type-safe-errors-with-datataggederror
Cursor rule "define-type-safe-errors-with-datataggederror" from PaulJPhilp/EffectPatterns, covering define type-safe errors with data.taggederror and example.