Skip to main content

moonbit-spec-test-development

Create formal spec-driven MoonBit APIs and test suites. Use when asked to set up a spec.mbt, spec-driven tests, or a formal contract-first workflow (e.g., "set up a formal spec & test suite for Yaml in MoonBit"), including moon.mod.json/moon.pkg.json scaffolding and guidance to implement in separate files.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
moonbitlang/skills
آخر نشاط في المصدر
٧ يونيو ٢٠٢٦ في ٠٨:٢٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣١
التفرعات
٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
moonbit-spec-test-development
description
Create formal spec-driven MoonBit APIs and test suites. Use when asked to set up a spec.mbt, spec-driven tests, or a formal contract-first workflow (e.g., "set up a formal spec & test suite for Yaml in MoonBit"), including moon.mod.json/moon.pkg.json scaffolding and guidance to implement in separate files.
# MoonBit Spec & Test Development ## Overview Define a formal API contract in `<pkg>_spec.mbt`, write type-checked tests against it, and scaffold a minimal MoonBit module so `moon check` passes before implementation work begins. ## Workflow ### Confirm API surface (if needed) - Infer the package name from context; only ask if ambiguous. - Confirm the API surface: core types, entry points, error types, and any versioning needs. ### Scaffold the module using `moon new` (preferred for new projects) - If you didn't use `moon new`, fall back to the `moon.mod.json` and `moon.pkg.json` templates. ### Write the formal spec (`<pkg>_spec.mbt`) - Use `#declaration_only` for all types/functions that will be implemented later. - Functions with `#declaration_only` must still have a body: `{ ... }`. - Keep the spec as the contract: treat it as read-only after creation; implementation goes in new files under the same package. - Use `pub(all)` for types you need to construct in tests; keep `pub` for opaque types. ### Write spec-driven tests - Create `<pkg>_easy_test.mbt`, `<pkg>_mid_test.mbt`, and `<pkg>_difficult_test.mbt` (or similar) in the same package. - Prefer black-box tests using public APIs; use `@json.inspect(...)` for complex values. - Try to make the tests rich enough to validate the spec surface. ### Validate - Run `moon check` to confirm the spec + tests type-check. - Run `moon test` only after some implementations exist ## Templates - See `references/templates.md` for scaffolding and file templates.
عرض على GitHub