| Path | Role |
|---|---|
README.md |
Short entry point; links to AGENTS.md and docs/ |
samples/ |
Optional teaching artifacts (e.g. hello.roboexe for RoboSharp.Player) |
RoboSharp.slnx |
XML solution (SDK 10+), folders for src/ and tests/ |
Directory.Build.props |
Shared MSBuild properties: TFM, nullable, analyzers, artifacts output, test project defaults |
Directory.Build.targets |
Shared MSBuild targets (placeholder for repo-wide custom targets) |
Directory.Packages.props |
Central package versions (CPM) |
global.json |
SDK version band and rollForward |
nuget.config |
Package sources (nuget.org only after <clear />) |
.editorconfig |
Editor and .NET code style |
.gitignore |
Ignores artifacts/, bin/, obj/, IDE cruft, test results |
AGENTS.md |
Architecture, dependency rules, teaching mission |
.gitattributes |
Repo-wide text=auto eol=lf plus explicit/binary overrides |
.githooks/UpdateSlnx.cs |
.NET 10 file-based app (#:property overrides) that regenerates RoboSharp.slnx |
.githooks/ |
Git hooks (pre-commit, README.md); set core.hooksPath to .githooks |
RoboSharp.slnx lists docs, infrastructure files, and all projects. Do not hand-edit project lists for long; refresh with git commit (pre-commit regenerates the solution—see Build and test). Use dotnet run --file .githooks/UpdateSlnx.cs only when hooks are not in use.
- Hand-written pages live under
docs/(nested directories on disk are fine). docs/diagrams/holds generated Mermaid Markdown from.githooks/GenerateDocDiagrams.cs;docs/diagrams/architecture/adds another level on disk. InRoboSharp.slnx, each distinct directory becomes a top-level<Folder Name="/docs/.../"/>(siblings under<Solution>), so the IDE shows nested sections without invalid nested-folder XML. Pre-commit runs diagram generation thenUpdateSlnxon each commit.
src/ and tests/ mirror the layout described in AGENTS.md: language, semantics, IL, runtime, world, IO, workspaces, toolchain, application, hosting, and hosts (Player, Studio, Web), plus matching test projects and RoboSharp.Architecture.Tests.
Hosts and application layers depend inward. Inner layers do not reference hosts or UI. The full rule set and rationale are in AGENTS.md under Dependency direction.