Skip to content

Commit 4ae4def

Browse files
committed
docs: add project contributor guidance
1 parent a6478f8 commit 4ae4def

7 files changed

Lines changed: 189 additions & 0 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Mod config provider compatibility
2+
3+
BetterModMenu will expose one selected-mod `Config` action while using provider-specific compatibility behind it: direct RitsuLib navigation when available, and a small reflective BaseLib fallback when BaseLib is the only provider for a mod. This avoids crowding the mod UI with provider choices while acknowledging that RitsuLib exposes a direct settings navigator and BaseLib currently exposes registration but not an equivalent public direct-open API.

docs/agents/code-conventions.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Code Conventions
2+
3+
Last updated: 2026-05-01
4+
5+
## C#
6+
7+
- Keep nullable reference types enabled and respect existing nullability annotations.
8+
- Prefer concise, simple C# that follows the surrounding file's style.
9+
- Keep game-facing behavior in patch/session classes and reusable pure logic in `Data/` or rule/helper classes when that pattern already exists.
10+
- Prefer named constants for shared UI text, group names, and behavioral constants.
11+
12+
## Project Structure
13+
14+
- `Data/`: profile state, manifest scanning, persistence, and portable-mode path logic.
15+
- `Patches/`: Harmony/Godot mod screen integration and UI operations.
16+
- `BetterModMenu.Tests/`: MSTest coverage for pure rules and file/path behavior.
17+
18+
## Dependencies
19+
20+
- Do not add dependencies without asking first.
21+
- Prefer .NET and Godot APIs already available in the project.

docs/agents/commands.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Commands
2+
3+
Last updated: 2026-05-01
4+
5+
## Validation
6+
7+
Run the smallest command that proves the change:
8+
9+
```bash
10+
dotnet test BetterModMenu.Tests/BetterModMenu.Tests.csproj
11+
```
12+
13+
Use the solution-level test command when changes cross project boundaries:
14+
15+
```bash
16+
dotnet test BetterModMenu.sln
17+
```
18+
19+
There is no standalone typecheck command for this repository.
20+
21+
## Build
22+
23+
Do not run build commands unless specifically asked. Building the mod requires `sts2.dll`:
24+
25+
```bash
26+
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll"
27+
```
28+
29+
If `STS2_DLL_PATH` is already set, the project file uses it automatically.
30+
31+
## Packaging
32+
33+
Do not package unless specifically asked:
34+
35+
```bash
36+
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll" -p:PackageModOnBuild=true
37+
```
38+
39+
Packaged archives are written to `artifacts/`.
40+
41+
## Command Preferences
42+
43+
- Do not run dev server commands.
44+
- Do not run build commands unless specifically asked.
45+
- Avoid `npm` and `yarn`; they are not used in this repository.

docs/agents/instruction-audit.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Instruction Audit
2+
3+
Last updated: 2026-05-01
4+
5+
## Contradictions
6+
7+
No hard contradictions were found in the supplied instructions for this repository.
8+
9+
The only scope mismatch is that some global preferences, such as TypeScript and package-manager defaults, do not apply to this C# Godot/.NET project. They were not copied into the project-local guidance except where useful as negative command guidance.
10+
11+
## Essentials Kept In Root
12+
13+
- One-sentence project description.
14+
- Package manager status.
15+
- SDK and build constraint.
16+
- Note that there is no standalone typecheck command.
17+
- Build command syntax for the non-standard `sts2.dll` requirement.
18+
- Default validation command.
19+
- Links to deeper guidance.
20+
21+
## Suggested `docs/` Structure
22+
23+
```text
24+
docs/
25+
agents/
26+
workflow.md
27+
commands.md
28+
code-conventions.md
29+
testing.md
30+
release-packaging.md
31+
instruction-audit.md
32+
```
33+
34+
## Flagged For Deletion Or Omission
35+
36+
- "Always strive for concise, simple solutions." Too vague to enforce as a project-specific rule.
37+
- "If a problem can be solved in a simpler way, propose it." Useful preference, but redundant with normal agent behavior and the workflow guidance.
38+
- TypeScript-specific guidance. Not relevant to this repository unless TypeScript is introduced later.
39+
- Package-manager preference for pnpm or bun. Not relevant because this repository has no JavaScript package manager.
40+
- "Use Agent CI only when the repo supports it..." Omitted because this repository has no Agent CI setup in the project files.
41+
- Broad tech-stack preferences such as Tailwind, React, Convex, Clerk, and Vercel. Not relevant to a C# Godot mod.
42+
- General reminders like "write clean code" or "prefer existing patterns" were either omitted or converted into repository-specific guidance.

docs/agents/release-packaging.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Release And Packaging
2+
3+
Last updated: 2026-05-01
4+
5+
## Mod Manifest
6+
7+
- Keep `BetterModMenu.json` aligned with release changes.
8+
- Preserve the mod id `BetterModMenu` unless explicitly asked to change it.
9+
- `affects_gameplay` should remain `false` unless the mod starts changing gameplay behavior.
10+
11+
## Packaging
12+
13+
- Packaging is controlled by the `PackageModOnBuild` MSBuild property.
14+
- Packaging copies `BetterModMenu.dll` and `BetterModMenu.json` into a versioned zip under `artifacts/`.
15+
- Cloud-capable packaging is controlled separately by `IncludeCloudFeatures=true`; default release artifacts must remain local-only.
16+
- Cloud-capable archives use the `_cloud` suffix so they remain optional alongside the default artifact.
17+
- The Nexus upload workflow intentionally selects the default `BetterModMenu_v*.zip` archive and excludes `*_cloud.zip` sidecars.
18+
- Nexus file descriptions should stay short: an automated upload line, the GitHub release URL, and a `Tested on <game version>` placeholder. Keep the player-facing changelog on the Nexus changelog tab instead.
19+
- Do not update generated artifacts unless the user asks for a release or packaging task.
20+
21+
## Distribution
22+
23+
- GitHub releases can be mirrored to Nexus Mods through `.github/workflows/publish-nexus-release.yml`.
24+
- Do not handle credentials, tokens, or session exports in repo files or markdown.

docs/agents/testing.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Testing
2+
3+
Last updated: 2026-05-01
4+
5+
## Framework
6+
7+
- Tests use MSTest in `BetterModMenu.Tests/`.
8+
- Prefer focused tests around pure rules, manifest scanning, persistence normalization, and path behavior.
9+
- Keep tests independent of Slay the Spire 2 and Godot runtime when possible.
10+
11+
## When To Add Tests
12+
13+
- Add or update tests for changes to group/profile rules, manifest parsing, save-data normalization, and path safety.
14+
- For UI patch changes that are hard to automate, extract pure logic into testable helpers when it is a small, natural fit.
15+
16+
## Verification
17+
18+
Use:
19+
20+
```bash
21+
dotnet test BetterModMenu.Tests/BetterModMenu.Tests.csproj
22+
```
23+
24+
If tests cannot run, report the command attempted and the blocking error.

docs/agents/workflow.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Workflow
2+
3+
Last updated: 2026-05-01
4+
5+
## Scope
6+
7+
- Keep project workflow in the closest `AGENTS.md`.
8+
- Keep workstation runbooks outside this repo in `C:\Users\nguco\.agents\docs\`.
9+
- Preserve user changes. Do not revert, overwrite, rename, or reorganize unrelated work unless explicitly asked.
10+
- Keep changes small, cohesive, aligned with local patterns, and no broader than the task requires.
11+
12+
## Before Editing
13+
14+
- Identify the goal, constraints, done criteria, and verification path before making non-trivial changes.
15+
- Inspect relevant local guidance plus `README.md`, project files, and task runners when useful.
16+
- For vague requests, ask one concise clarifying question only when a reasonable default would be risky.
17+
- When a design is under-specified, surface the key decision, recommend a default, and ask for confirmation before committing to the direction.
18+
19+
## During Work
20+
21+
- Prefer existing helpers, framework APIs, parsers, and conventions before adding new abstractions.
22+
- Add abstractions only when they remove real duplication or complexity.
23+
- Clean up temporary artifacts unless they remain useful records.
24+
- If asked to do too much work at once, stop and say so clearly.
25+
26+
## Git
27+
28+
- Check `git status --short` before non-trivial edits and again before commit or push.
29+
- Do not include unrelated changes in commits.
30+
- Do not force-push or run destructive git commands unless explicitly requested.

0 commit comments

Comments
 (0)