typescript-write
Write Safer Metabase TypeScript
TypeScript changes can lose safety when teams use broad types, casts, or unclear models. This skill guides Claude, Codex, and Claude Code toward Metabase-specific typing patterns and verification steps.
Install with my Agent
Copy this request to your Agent. It includes the canonical Skill page and manifest.
Review the Skillstore skill "typescript-write" from https://skillstore.io/skills/metabase-typescript-write.md and its manifest at https://skillstore.io/api/skills/metabase-typescript-write/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.Your Agent should still show its plan and request any confirmation required by the security policy.
Agent-readable resources
Use these links when an AI agent, crawler, or script needs clean context instead of reading the full page.
Test it
Using "typescript-write". A component receives a broad object but only reads an id and name.
Expected outcome:
The response narrows the prop shape to the required fields, reuses domain id types, and removes unnecessary casts.
Using "typescript-write". A feature uses separate booleans for loading, error, and data states.
Expected outcome:
The response proposes a discriminated union with exhaustive rendering paths for loading, error, success, and empty states.
Using "typescript-write". A JavaScript file needs a feature change.
Expected outcome:
The response recommends converting the file to TypeScript in a separate change before adding the feature.
Security Audit
SafeAll static findings are false positives caused by Markdown formatting, local documentation includes, and a TypeScript code example. No prompt injection, malicious intent, command execution, network access, or unsafe runtime behavior was found in SKILL.md.
Risk Factors
โก Contains scripts (3)
โ๏ธ External commands (25)
๐ Filesystem access (3)
Share & cite this report
Share the versioned assessment report, neutral badge, embed card, and citations. Skillstore reports evidence without deciding whether this Skill is safe.
Copy report link
https://skillstore.io/skills/metabase-typescript-write/audits/10?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_reportMarkdown badge
[](https://skillstore.io/skills/metabase-typescript-write?utm_source=security_passport_badge)HTML badge
<a href="https://skillstore.io/skills/metabase-typescript-write?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/metabase-typescript-write/security.svg" alt="Skillstore security assessment" loading="lazy"></a>Embed card
<iframe src="https://skillstore.io/embed/skills/metabase-typescript-write.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>Academic citations (APA ยท BibTeX ยท CFF)
APA citation
metabase. (2026). typescript-write security audit report (audit version 10) [Author version unspecified]. Skillstore. https://skillstore.io/skills/metabase-typescript-write/audits/10BibTeX citation
@techreport{metabase-metabase-typescript-write-2026,
author = {metabase},
title = {typescript-write security audit report (audit version 10)},
institution = {Skillstore},
year = {2026},
number = {10},
url = {https://skillstore.io/skills/metabase-typescript-write/audits/10},
note = {Author version unspecified}
}CITATION.cff
cff-version: 1.2.0
message: "If you use this Skill, cite its author and this versioned security audit report."
title: "typescript-write security audit report (audit version 10)"
version: "unspecified"
type: report
authors:
- name: "metabase"
date-released: "2026-07-09"
url: "https://skillstore.io/skills/metabase-typescript-write/audits/10"
identifiers:
- type: other
value: "skillstore:metabase-typescript-write:audit:10"
description: "Skillstore immutable audit report identifier"
Skillstore Score
Why this score Evidence Confidence: HighWhat You Can Build
Refactor weak TypeScript safely
Replace casts, any types, and broad records with narrower signatures and reusable domain types.
Model UI state precisely
Represent loading, error, empty, and success states with discriminated unions and exhaustive checks.
Review JavaScript migration scope
Identify when touched JavaScript should become TypeScript before feature work continues.
Try These Prompts
Use the typescript-write skill to improve this function without introducing any. Keep the signature narrow and explain the type changes briefly.
Use the typescript-write skill to refactor these React props. Prefer existing Metabase types, avoid casts, and keep optional values precise.
Use the typescript-write skill to model this async UI state with a discriminated union. Include exhaustive handling and avoid broad string states.
Use the typescript-write skill to assess this JavaScript file. Propose a separate TypeScript conversion plan before implementing the feature change.
Best Practices
- Start by finding existing Metabase types before defining new shapes.
- Use unknown at system boundaries and narrow it immediately with typed guards.
- Run the TypeScript language server checks and project type-check before finishing.
Avoid
- Do not use any, double casts, or broad records to silence compiler errors.
- Do not duplicate generated API types or redefine shared type guards locally.
- Do not thread undefined through many layers when it can be narrowed at the source.