📘 Khy-OS 文档站 🧭 新手先读：核心概念

# Project Agents.md Guide

# Project Agents.md Guide#

This is a MoonBit project.

You can browse and install extra skills here:
https://github.com/moonbitlang/skills

## Project Structure#

- MoonBit packages are organized per directory; each directory contains a

`moon.pkg` file listing its dependencies. Each package has its files and
blackbox test files (ending in `_test.mbt`) and whitebox test files (ending in
`_wbtest.mbt`).

- In the toplevel directory, there is a `moon.mod.json` file listing module

metadata.

## Coding convention#

- MoonBit code is organized in block style, each block is separated by `///|`,

the order of each block is irrelevant. In some refactorings, you can process
block by block independently.

- Try to keep deprecated blocks in file called `deprecated.mbt` in each

directory.

## Tooling#

- `moon fmt` is used to format your code properly.
- `moon ide` provides project navigation helpers like `peek-def`, `outline`, and

`find-references`. See $moonbit-agent-guide for details.

- `moon info` is used to update the generated interface of the package, each

package has a generated interface file `.mbti`, it is a brief formal
description of the package. If nothing in `.mbti` changes, this means your
change does not bring the visible changes to the external package users, it is
typically a safe refactoring.

- In the last step, run `moon info && moon fmt` to update the interface and

format the code. Check the diffs of `.mbti` file to see if the changes are
expected.

- Run `moon test` to check tests pass. MoonBit supports snapshot testing; when

changes affect outputs, run `moon test --update` to refresh snapshots.

- Prefer `assert_eq` or `assert_true(pattern is Pattern(...))` for results that

are stable or very unlikely to change. Use snapshot tests to record current
behavior. For solid, well-defined results (e.g. scientific computations),
prefer assertion tests. You can use `moon coverage analyze > uncovered.log` to
see which parts of your code are not covered by tests.