Style guides, copy-ready lint configs and Git practices for every code repo of the Advanced Telerobotics Research Laboratory, written for lab members and the coding agents that work with them.
Advanced Telerobotics Research Laboratory · Department of Computer Science · Kent State University
|
Language guides C and C++, Python, TypeScript, Swift, Kotlin, C# and Unity: style, tools and CI. |
Copy-ready configs Formatter and linter files for each language, with the versions we tested. |
Git and GitHub Branches, commit messages, pull requests, releases, Git LFS and secrets. |
|
ROS 2 packages Naming, layout, ament linters, units, frames, launch files and parameters. |
Hardware and firmware CAD versions, BOMs, PlatformIO firmware, wiring colors and 3D prints. |
AI-assisted development Rules for Claude Code, Codex and other coding agents in lab repos. |
|
Documentation READMEs, docstrings, AGENTS.md, diagrams and changelogs. |
Templates README and AGENTS.md templates for new lab project repos. |
Tested examples Sample code that passes every config, and bad samples that must fail. |
The six languages the lab uses most. Each row links to its guide, which has the exact check commands; the config folder holds files you can copy as they are.
| Language | Style guide we follow | Formatter | Linter | Config folder |
|---|---|---|---|---|
| C and C++ | ROS 2 code style (Google C++ with ROS 2 changes) | clang-format | clang-tidy; ament_cpplint in ROS 2 packages |
configs/c-cpp/ |
| Python | PEP 8, Google docstrings | Ruff | Ruff, mypy | configs/python/ |
| JavaScript and TypeScript | typescript-eslint strict rules, Prettier defaults | Prettier | ESLint with typescript-eslint, tsc |
configs/javascript-typescript/ |
| Swift | Swift API Design Guidelines | swift-format | SwiftLint | configs/swift/ |
| Kotlin | Kotlin coding conventions, Android Kotlin style guide | ktlint (--format) |
ktlint, detekt | configs/kotlin/ |
| C# and Unity | Microsoft C# conventions, Unity C# style guide | dotnet format, your IDE |
Roslyn analyzers, Microsoft.Unity.Analyzers | configs/csharp-unity/ |
Every repo also gets the shared .editorconfig and, for Markdown, .markdownlint.jsonc. Arduino, Java, MATLAB, Solidity and Ada: see Other languages.
-
New to the lab's code? Read Git and GitHub, then the guide for your language.
-
Setting up a repo? Copy the configs for its languages (each guide has a copy command), add the CI snippet from the guide and start the README and
AGENTS.mdfrom the templates. -
Changing a config here? Run the checks, which need only Docker:
scripts/check-configs.sh # all languages scripts/check-configs.sh python # one language
| Path | What it holds | Read it when |
|---|---|---|
docs/ |
One guide per topic: Git, documentation, AI agents, six languages, ROS 2 packages, hardware, other languages | You want the rules and the reasons |
configs/ |
Copy-ready formatter and linter configs (one folder per language) and the tested versions | You set up or update a repo |
examples/ |
Samples that pass each config; bad/ samples that must fail |
You want to see the style in real code, or you change a config |
templates/ |
README.template.md and AGENTS.template.md for lab project repos |
You start a new repo |
scripts/check-configs.sh |
Runs every tool against examples/ in Docker |
You change a config or a tool version |
.github/workflows/ |
configs.yml runs the checks; docs.yml lints Markdown and checks links |
You wonder what CI does |
AGENTS.md |
Instructions and repo map for coding agents (CLAUDE.md points to it) |
You are, or you are directing, a coding agent |
Suggest a change by opening an issue or a pull request. Change one topic per pull request, and for a config change, say why and run scripts/check-configs.sh for that language. Writing rules, sources and checks for this repo are in AGENTS.md; people and agents follow the same ones.
Text and code in this repository are released under the MIT License. The names and logos of the Advanced Telerobotics Research Laboratory and Kent State University are trademarks and are not covered by that license.
The seven commit message rules in Git and GitHub are quoted from Chris Beams' post "How to Write a Git Commit Message", with credit. The .clang-format rules come from the ROS 2 ament_lint project (Apache License 2.0).
ATR Lab docs ·
About the lab ·
Getting started ·
Dev guidelines ·
All things ROS 2 ·
All repositories
Advanced Telerobotics Research Laboratory · Department of Computer Science · Kent State University ·
www.atr.cs.kent.edu
