Contributing to Fleet Intelligence Agent
Issue Tracking
Please start all enhancement, bugfix, or change requests by opening a GitHub issue. Include clear reproduction steps, expected behavior, and environment details. Issues will be triaged and prioritized by maintainers before code review.
Development
Prerequisites
- Go 1.26.6+ (see
go.mod) - Make
- golangci-lint (optional locally, required in CI)
First clone the source code from GitHub
Build Fleet Intelligence Agent from source
Common development targets:
Testing
We highly recommend writing tests for new features or bug fixes and ensuring all tests pass before submitting a PR.
To run tests locally:
Documentation
The agent documentation lives in docs/ and is published to
docs.nvidia.com/fleet-intel/agent.
Published docs are built from release tags — editing docs/*.md on your branch
is all that is needed; the CI publish workflow handles versioning automatically
when a release is cut.
Prerequisites
Install the Fern CLI (requires Node.js 18+):
Previewing HEAD docs (your working changes)
To preview the current state of docs/ as it would appear in the docs site:
This uses the navigation: block in fern/docs.yml to serve your local
docs/*.md files directly. No version selector is shown — this mode is
intentional for quickly reviewing in-progress edits.
Previewing with the version selector
To preview with the full version selector (current and previous versions as they appear on the published site), first fetch the versioned content from release tags:
The --patch-fern-docs flag temporarily replaces the navigation: block in
fern/docs.yml with a versioned versions: block. When you are done
previewing, restore the file:
Note:
fern/versions/is gitignored. Its contents are generated locally by the script and by CI at publish time — never commit them.
Adding or removing a doc page
- Add or remove the
.mdfile underdocs/. - Update the
navigation:block infern/docs.ymlto match. - If the filename is non-obvious, add a title entry to
TITLE_MAPinscripts/docs-fetch-versions.py. - Run
fern checkto validate the configuration before opening a PR.
Developer Certificate of Origin (DCO)
How to Sign Your Work
To sign your work and agree to the DCO, you must add a sign-off to every git commit. This is done by using the -s flag when committing:
This will append a line that looks like:
You must use your real name and a valid email address. Anonymous contributions or contributions under pseudonyms are not accepted.
If you forget to add the sign-off to a commit, you can amend it:
For more information about the DCO, see: https://developercertificate.org/
Pull Request Process
-
Fork the Repository: Create a personal fork of the Fleet Intelligence Agent repository on GitHub.
-
Create a Branch from Main: Create a new branch for your changes from the main branch:
-
Make Your Changes: Implement your changes following the coding standards outlined below.
-
Test Your Changes: Ensure all tests pass and add new tests for your changes if applicable.
-
Squash Commits: Before finalizing your pull request, squash multiple commits into a single, clean commit:
Choose “squash” (or “s”) for commits you want to combine.
-
Sign-off Final Commit: Make sure your final squashed commit is signed off according to the DCO requirements:
Your final commit should have:
- A properly formatted commit message (see format below)
- Proper DCO sign-off
- A single logical change
Commit Message Format:
Format:
type: brief description- Type:
feat,fix,docs,test,refactor,perf,chore - Description: Clear, imperative mood summary (e.g., “Add feature” not “Added feature”)
-
Submit Pull Request: Create a pull request against the main branch with:
- A clear title in the same default format as commits, for example
feat: add GPU temperature monitoring - A description with a concise summary of the change
- If there is a related GitHub issue, reference it in the PR body using a format like
[#123] - Summary of changes made
- Any breaking changes highlighted
- A clear title in the same default format as commits, for example
-
Code Review: Address any feedback from maintainers during the review process.
Coding Standards
Ensure your code is clean, readable, and well-commented. We use the following tools and guidelines:
Go Code Standards
- Follow standard Go conventions and idioms
- Use
gofmtfor code formatting (runmake fmt) - Use
golangci-lintfor linting (runmake lint) - Import grouping: third-party imports must be separated from local imports. goimports is configured with
local-prefixes: github.com/dsx-ai-factory/fleet-intelligence-agentin.golangci.yml. If imports are regrouped incorrectly, runmake fmtandmake lint.
To run linting locally:
General Guidelines
- Write clear, descriptive commit messages
- Keep commits focused and atomic
- Sign off every commit with
git commit -s - Add comments for non-trivial logic
- Update documentation when adding or changing features
- Ensure backward compatibility when possible