type-driven-design-rust
Проектируйте более безопасные API Rust с помощью типов
API Rust могут допускать недопустимые состояния или перепутанные значения, когда инварианты остаются в логике времени выполнения. Этот навык показывает, как кодировать инварианты с помощью newtypes, typestate, builders, phantom types и session types.
自分のエージェントでインストール
このリクエストをエージェントにコピーしてください。正規の Skill ページとマニフェストが含まれています。
Review the Skillstore skill "type-driven-design-rust" from https://skillstore.io/skills/emillindfors-type-driven-design.md and its manifest at https://skillstore.io/api/skills/emillindfors-type-driven-design/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.エージェントは引き続き計画を提示し、セキュリティポリシーで必要な確認を求める必要があります。
エージェントが読めるリソース
AI エージェント、クローラー、スクリプトがページ全体ではなく整理されたコンテキストを必要とする場合は、これらのリンクを使ってください。
テストする
「type-driven-design-rust」を使用しています。 Мне нужно предотвратить смешивание UserId и OrderId в вызовах сервисов.
期待される結果:
- Навык рекомендует отдельные обертки newtype вокруг общего представления идентификатора.
- Он объясняет конструкторы, аксессоры и сигнатуры функций, которые отклоняют неверный тип идентификатора.
- Он отмечает, где следует реализовать преобразования и поведение отображения.
「type-driven-design-rust」を使用しています。 Мой request builder допускает POST-запросы без тела.
期待される結果:
- Навык сопоставляет builder с состояниями метода и тела.
- Он делает send доступным только для допустимых комбинаций состояний.
- Он объясняет, почему недопустимые последовательности запросов завершаются ошибкой во время компиляции.
「type-driven-design-rust」を使用しています。 Я хочу смоделировать сессию базы данных с аутентификацией и транзакциями.
期待される結果:
- Навык определяет состояния сессии и разрешенные переходы.
- Он разделяет методы по состояниям, чтобы неаутентифицированные сессии не могли начинать транзакции.
- Он описывает компромиссы этого дизайна с точки зрения удобства и сложности.
セキュリティ監査
安全All static findings were adjudicated as false positives. The backtick detections are Markdown code fences, the URLs are examples or documentation links, and the reconnaissance matches are benign Rust type-design text.
リスク要因
⚙️ 外部コマンド (33)
🌐 ネットワークアクセス (6)
このレポートを共有・引用
バージョン付き評価レポート、中立的なバッジ、埋め込みカード、引用を共有できます。Skillstore は証拠を報告しますが、この Skill が安全かどうかは判断しません。
レポートリンクをコピー
https://skillstore.io/skills/emillindfors-type-driven-design/audits/4?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_reportMarkdownバッジ
[](https://skillstore.io/skills/emillindfors-type-driven-design?utm_source=security_passport_badge)HTMLバッジ
<a href="https://skillstore.io/skills/emillindfors-type-driven-design?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/emillindfors-type-driven-design/security.svg" alt="Skillstore security assessment" loading="lazy"></a>埋め込みカード
<iframe src="https://skillstore.io/embed/skills/emillindfors-type-driven-design.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>学術引用 (APA · BibTeX · CFF)
APA形式の引用
EmilLindfors. (2026). type-driven-design-rust security audit report (audit version 4) [Author version unspecified]. Skillstore. https://skillstore.io/skills/emillindfors-type-driven-design/audits/4BibTeX形式の引用
@techreport{emillindfors-emillindfors-type-driven-design-2026,
author = {EmilLindfors},
title = {type-driven-design-rust security audit report (audit version 4)},
institution = {Skillstore},
year = {2026},
number = {4},
url = {https://skillstore.io/skills/emillindfors-type-driven-design/audits/4},
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: "type-driven-design-rust security audit report (audit version 4)"
version: "unspecified"
type: report
authors:
- name: "EmilLindfors"
date-released: "2026-07-06"
url: "https://skillstore.io/skills/emillindfors-type-driven-design/audits/4"
identifiers:
- type: other
value: "skillstore:emillindfors-type-driven-design:audit:4"
description: "Skillstore immutable audit report identifier"
Skillstore スコア
このスコアの理由 証拠の信頼度: 高作成できるもの
Предотвращение неправильного использования API
Проектируйте API библиотек так, чтобы недопустимый порядок вызова методов и отсутствие обязательных значений не компилировались.
Моделирование доменных инвариантов
Представляйте идентификаторы, единицы измерения и проверенные значения отдельными типами вместо общих примитивных значений.
Обучение более безопасным паттернам Rust
Объясняйте техники на уровне типов с примерами до и после, которые показывают гарантии на этапе компиляции.
これらのプロンプトを試す
У меня есть [value type], используемый для [domain meaning]. Покажи дизайн Rust newtype, который предотвращает путаницу значений, с конструкторами и примерами использования.
Переработай этот рабочий процесс Rust в typestate API. Состояния: [states], а разрешенные переходы: [transitions]. Объясни гарантии на этапе компиляции.
Спроектируй Rust builder для [configuration object], где [required fields] должны быть заданы до того, как станет доступен build. Включи необязательные поля и компромиссы.
Создай дизайн на основе session-type для [protocol]. Протокол должен обеспечивать [authentication, transaction, cleanup, or other steps] на этапе компиляции.
ベストプラクティス
- Начинайте с инвариантов, которые вызывают реальные ошибки, когда проверяются только во время выполнения.
- Делайте marker types и конструкторы небольшими, чтобы публичный API оставался читаемым.
- Четко объясняйте ошибки на этапе компиляции, чтобы вызывающие стороны понимали, как прийти к допустимым состояниям.
回避
- Не используйте typestate для каждого boolean или незначительного правила валидации.
- Не раскрывайте unchecked constructors, которые обходят инвариант, закодированный типом.
- Не скрывайте сложные generic errors от пользователей без примеров или type aliases.
よくある質問
Какие паттерны Rust охватывает этот навык?
Может ли он помочь переработать существующий API Rust?
Выполняет ли навык код Rust?
Когда следует избегать дизайна на основе типов?
Полезно ли это для новичков?
Как использовать это с Claude, Codex или Claude Code?
開発者情報
作成者
EmilLindforsライセンス
MIT
Skillstore リビジョン
r1
バージョンに関する注意
作者はバージョンを宣言していません。
参照
a06681402992ceae98ba04d54cfd4ab004862696
メンテナンスの新しさ
2026/7/20
利用状況
5 ダウンロード · 150 閲覧
ファイル構成
📄 SKILL.md