Skip to content

About

Software and hardware development guidelines

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

2 watching

Forks

Repository files navigation

Dev guidelines: Style guides, lint configs and Git practices. Advanced Telerobotics Research Laboratory, Kent State University.

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

License: MIT Advanced Telerobotics Research Laboratory, Kent State University Last reviewed Nov. 2026

Start here


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.

Language matrix

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.

Quick start

  1. New to the lab's code? Read Git and GitHub, then the guide for your language.

  2. 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.md from the templates.

  3. Changing a config here? Run the checks, which need only Docker:

    scripts/check-configs.sh            # all languages
    scripts/check-configs.sh python     # one language

Repo map

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

Contributing

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.

License

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

About

Software and hardware development guidelines

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages