スキル type-driven-design-rust
📦

type-driven-design-rust

コンテンツリビジョン r1 安全 ⚙️ 外部コマンド🌐 ネットワークアクセス

Проектируйте более безопасные API Rust с помощью типов

API Rust могут допускать недопустимые состояния или перепутанные значения, когда инварианты остаются в логике времени выполнения. Этот навык показывает, как кодировать инварианты с помощью newtypes, typestate, builders, phantom types и session types.

対応: Claude Codex Code(CC)
🥉 77 ブロンズ

自分のエージェントでインストール

このリクエストをエージェントにコピーしてください。正規の 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.

1
スキャンされたファイル
799
解析済み行数
0
レビュー項目
0
誤検知を無視
最新の完了済み静的・セマンティック監査では、確認済みのセキュリティ検出事項は見つかりませんでした。これは、スキルに副作用がないことを証明するものではありません。
監査者: codex 監査履歴を表示 →
このレポートを共有・引用

バージョン付き評価レポート、中立的なバッジ、埋め込みカード、引用を共有できます。Skillstore は証拠を報告しますが、この Skill が安全かどうかは判断しません。

バージョン別レポートを開く
セキュリティ評価

レポートリンクをコピー

https://skillstore.io/skills/emillindfors-type-driven-design/audits/4?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdownバッジ

[![Skillstore security assessment](https://skillstore.io/badges/skills/emillindfors-type-driven-design/security.svg)](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/4

BibTeX形式の引用

@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 スコア

このスコアの理由 証拠の信頼度: 高
55
アーキテクチャ
85
保守性
87
コンテンツ
69
コミュニティ
74
仕様準拠

作成できるもの

Предотвращение неправильного использования API

Проектируйте API библиотек так, чтобы недопустимый порядок вызова методов и отсутствие обязательных значений не компилировались.

Моделирование доменных инвариантов

Представляйте идентификаторы, единицы измерения и проверенные значения отдельными типами вместо общих примитивных значений.

Обучение более безопасным паттернам Rust

Объясняйте техники на уровне типов с примерами до и после, которые показывают гарантии на этапе компиляции.

これらのプロンプトを試す

Смоделировать Newtype
У меня есть [value type], используемый для [domain meaning]. Покажи дизайн Rust newtype, который предотвращает путаницу значений, с конструкторами и примерами использования.
Добавить Typestate в рабочий процесс
Переработай этот рабочий процесс Rust в typestate API. Состояния: [states], а разрешенные переходы: [transitions]. Объясни гарантии на этапе компиляции.
Создать Builder с проверками на этапе компиляции
Спроектируй Rust builder для [configuration object], где [required fields] должны быть заданы до того, как станет доступен build. Включи необязательные поля и компромиссы.
Спроектировать Session Protocol
Создай дизайн на основе session-type для [protocol]. Протокол должен обеспечивать [authentication, transaction, cleanup, or other steps] на этапе компиляции.

ベストプラクティス

  • Начинайте с инвариантов, которые вызывают реальные ошибки, когда проверяются только во время выполнения.
  • Делайте marker types и конструкторы небольшими, чтобы публичный API оставался читаемым.
  • Четко объясняйте ошибки на этапе компиляции, чтобы вызывающие стороны понимали, как прийти к допустимым состояниям.

回避

  • Не используйте typestate для каждого boolean или незначительного правила валидации.
  • Не раскрывайте unchecked constructors, которые обходят инвариант, закодированный типом.
  • Не скрывайте сложные generic errors от пользователей без примеров или type aliases.

よくある質問

Какие паттерны Rust охватывает этот навык?
Он охватывает newtypes, typestate, builders с проверками на этапе компиляции, phantom types, session types и инварианты на уровне типов.
Может ли он помочь переработать существующий API Rust?
Да. Предоставьте текущий API, недопустимые состояния и желаемые переходы, затем попросите переработать дизайн на основе типов.
Выполняет ли навык код Rust?
Нет. Он предоставляет рекомендации по дизайну и примеры, но сам по себе не компилирует и не запускает код.
Когда следует избегать дизайна на основе типов?
Избегайте его, когда состояния очень динамичны или когда дополнительная сложность generic перевешивает выгоду от безопасности.
Полезно ли это для новичков?
Да. Навык начинается с простых примеров newtype, а затем переходит к typestate и session types.
Как использовать это с Claude, Codex или Claude Code?
Опишите цель вашего API Rust, инварианты и недопустимые операции. Попросите дизайн, который делает эти недопустимые операции непредставимыми.

開発者情報

作成者

EmilLindfors

ライセンス

MIT

Skillstore リビジョン

r1

バージョンに関する注意

作者はバージョンを宣言していません。

参照

a06681402992ceae98ba04d54cfd4ab004862696

メンテナンスの新しさ

2026/7/20

利用状況

5 ダウンロード · 150 閲覧

ファイル構成

📄 SKILL.md