Add agent instructions

This commit is contained in:
Feror 2026-05-29 19:16:50 +02:00
parent 63b642a47f
commit 002fde6169

64
AGENTS.md Normal file
View file

@ -0,0 +1,64 @@
# Agent Instructions
## Project Snapshot
Sapling is a local-first, Git-native Markdown workspace built with Swift Package Manager. The package root is the source of truth; open `Package.swift` in Xcode when a GUI workflow is needed.
Primary targets:
- `SaplingApp`: SwiftUI app entry point and composition root.
- `SaplingCore`: shared domain models and business rules.
- `SaplingWorkspace`: workspace and file tree management.
- `SaplingGit`: Git protocols and provider implementations.
- `SaplingEditor`: hybrid Markdown editor MVVM surface.
- `SaplingRenderer`: Markdown rendering abstractions.
- `SaplingStorage`: configuration and metadata persistence.
- `SaplingLogging`: logging support.
- `SaplingUI`: shared SwiftUI components.
## Development Commands
Run commands from the repository root:
```sh
swift build
swift test
make validate
```
`make validate` runs formatting, linting, build, and tests. Use it before handing off substantial work when time permits.
Formatting and linting are available through:
```sh
make format
make lint
```
## Git Discipline
- Commit after every significant change unless the user explicitly asks not to commit.
- Keep commits focused on one coherent change.
- Check `git status --short` before editing and before committing.
- Do not include unrelated user changes in a commit.
- If the worktree already has changes you did not make, leave them in place and work around them.
- Never discard, reset, or overwrite user changes unless the user explicitly asks for that.
- Mention any uncommitted unrelated changes in the final handoff.
## Coding Guidelines
- Prefer the existing module boundaries and architecture described in `README` and `Docs/Architecture.md`.
- Keep changes narrowly scoped to the request.
- Use protocol-first seams already present in the codebase rather than adding global state or direct platform dependencies.
- Add or update tests when changing domain logic, editor behavior, Git behavior, or storage semantics.
- Keep Swift code formatted with the repository scripts.
- Avoid unrelated refactors while implementing a feature or fix.
## Handoff Expectations
Before finishing:
- Run the most relevant validation command you can afford for the change.
- Report exactly what was changed.
- Report which validation commands passed or why they were not run.
- If a significant change was made, ensure it is committed and include the commit hash in the handoff.