Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
6107c27
Use consistent casing for ReAct agent (#293)
dagardner-nv May 16, 2025
7b6dabd
Update alert triage agent's prompt (#297)
hsin-c May 19, 2025
a8a97af
Move Wikipedia search to separate file (#237)
jkornblum-nv May 20, 2025
52f26d0
Release documentation fixes (#300)
dagardner-nv May 20, 2025
9736aed
Add a `pyproject.toml` to `simple_rag` example allowing for declared …
dagardner-nv May 20, 2025
e342ffd
Update version in develop, in prep for the next release (#294)
AnuradhaKaruppiah May 21, 2025
a0eb7a4
Add field validation for the evaluate API (#311)
dagardner-nv May 23, 2025
22a11ec
Intermediate steps: evaluation fix (#312)
titericz May 25, 2025
d8ed65b
Fix or silence warnings emitted by tests (#305)
dagardner-nv May 27, 2025
b32cad3
Add documentation for `load_workflow()` (#306)
yczhang-nv May 28, 2025
7e7b65a
Adding pytest-pretty for nice test outputs (#194)
benomahony May 28, 2025
fd9316a
feat(telemetry): add langfuse and langsmith telemetry exporters #233 …
briancaffey May 29, 2025
19ae9a3
Check links in markdown files (#323)
dagardner-nv May 29, 2025
1b7be46
Eval doc updates (#322)
AnuradhaKaruppiah May 29, 2025
dfb0f1c
Add unit tests for the alert triage agent example (#252)
hsin-c May 29, 2025
9e322f1
Add support for AWS Bedrock LLM Provider (#238)
yczhang-nv May 30, 2025
d1efc22
Add missing import in `load_workflow` documentation (#329)
yczhang-nv May 30, 2025
c5c1043
propose another solution to problem[copy] (#298)
LunaticMaestro May 30, 2025
9d0577a
Support additional_instructions (#302)
gfreeman-nvidia May 30, 2025
12848d4
Update installing.md (#316)
manny-pi Jun 2, 2025
70f3439
Add an async version of the /generate endpoint (#315)
dagardner-nv Jun 3, 2025
10d007e
Update trajectory eval documentation (#338)
hsin-c Jun 4, 2025
a012244
Rename test mode to offline mode (#343)
hsin-c Jun 6, 2025
dd9c1ec
Simplify offline mode with `aiq eval` (#344)
hsin-c Jun 6, 2025
7279fdc
fix mcp client schema creation in flat lists (#346)
slopp Jun 6, 2025
7f6fedb
Refactor for better prompt and tool description organization (#350)
hsin-c Jun 9, 2025
67f5e9b
Extend `IntermediateStep` to support tool schemas in tool calling LLM…
mpenn Jun 10, 2025
0d09942
Fix AttributeError bug for otel_telemetry_exporter (#335)
ZhongxuanWang Jun 10, 2025
792edb3
Update `OpenAIModelConfig` to support `stream_usage` option (#328)
mdemoret-nv Jun 10, 2025
b4724e7
Rename to NeMo Agent toolkit (#359)
dagardner-nv Jun 10, 2025
89772d9
fix(phoenix): set project name when using phoenix telemetry exporter …
briancaffey Jun 11, 2025
3889ce3
Account for the "required fields" list in the mcp_input_schema (#360)
AnuradhaKaruppiah Jun 12, 2025
4f05208
Provide a config to pass the complete dataset entry as an EvalInputIt…
AnuradhaKaruppiah Jun 12, 2025
c245b81
Simplify custom evaluator definition (#358)
AnuradhaKaruppiah Jun 12, 2025
c5524a5
Add Patronus OTEL Exporter (#341)
hersheybar Jun 12, 2025
21ffd6d
Expand Alert Triage Agent Offline Dataset (#369)
hsin-c Jun 13, 2025
b6fe49d
Add Custom Classification Accuracy Evaluator for the Alert Triage Age…
hsin-c Jun 13, 2025
3106563
Add `Cursor rules` to improve Cursor support for development (#319)
yczhang-nv Jun 13, 2025
57642c0
Added LLM retry logic to handle rate limiting LLM without frequent Ex…
liamy-nv Jun 13, 2025
3b90915
Fixes Function and LambdaFunction classes to push active function ins…
mpenn Jun 16, 2025
e57fe03
TunableRagEvaluator: Re-enable inheriting from the base abc (#375)
AnuradhaKaruppiah Jun 16, 2025
9287c5c
Add Job ID Appending to Output Directories and Maximum Folders Thresh…
ZhongxuanWang Jun 17, 2025
c1afcf9
Add support for custom functions in bottleneck analysis (#380)
dnandakumar-nv Jun 17, 2025
1ae4f6a
Persist chat conversation ID for workflow tool usage (#326)
ericevans-nv Jun 18, 2025
74503fa
Add support for Weave evaluation (#264)
ayulockin Jun 23, 2025
bb4ad0c
Update the information displayed in the Weave Eval dashboard (#390)
AnuradhaKaruppiah Jun 27, 2025
9d10586
Allow non-json string outputs for workflows that use unstructured dat…
AnuradhaKaruppiah Jun 27, 2025
5d0cc0a
Add aws region config for s3 eval uploads (#397)
munjalp6 Jun 27, 2025
98dcfa2
add support for union types in mcp client (#372)
cheese-head Jun 27, 2025
b1ad91e
Add percentile computation (p90, p95, p99) to profiling (#398)
dnandakumar-nv Jun 27, 2025
cc72eeb
Ragas custom evaluation field in evaluator (#400)
dnandakumar-nv Jun 30, 2025
eed75df
Reorganize the examples into categories and improve re-use of example…
mpenn Jul 7, 2025
5c464e5
Improve descriptions in top level examples README.md (#415)
mpenn Jul 7, 2025
a322a1d
Add ragaai catalyst exporters (#395)
vishalk-06 Jul 8, 2025
75e1395
Update MCP version (#417)
dagardner-nv Jul 8, 2025
fd3163f
feature request: Add galileo tracing workflow (#404)
franz101 Jul 8, 2025
48f0344
Update index.md (#420)
sugsharma Jul 9, 2025
4804e98
Windows compatibility for temp file handling (#423)
ericevans-nv Jul 10, 2025
0ce6b68
Sizing calculator to estimate the number of GPU for a target number o…
AnuradhaKaruppiah Jul 11, 2025
f137efe
Update and move W&B Weave Redact PII example (#424)
yczhang-nv Jul 11, 2025
686c55c
Refactor IntermediateStep `parent_id` for clarification (#330)
mdemoret-nv Jul 11, 2025
5860885
Add Cursor rules for latinisms (#426)
yczhang-nv Jul 11, 2025
49dcb89
Resolve examples organziation drift (#429)
mpenn Jul 14, 2025
540408c
NeMo Agent rename (#422)
lvojtku Jul 15, 2025
aa1be2e
AIQ-1553: Lines 111 and 112 are a little confusing in HITL example. (…
ericevans-nv Jul 18, 2025
7592abc
Add otelcollector doc and example (#451)
slopp Jul 18, 2025
b486d77
Improve error logging during workflow initialization failure (#464)
yczhang-nv Jul 21, 2025
4f05e2d
Added an AIQToolkit function that can be invoked to perform a simple …
sayalinvidia Jul 21, 2025
d437a35
Improve MCP error logging with connection failures (#470)
mpenn Jul 22, 2025
7c9b3b2
Enable testing tools in isolation (#391)
yczhang-nv Jul 22, 2025
9a31216
Refactor examples to improve discoverability and improve uniformity (…
mdemoret-nv Jul 23, 2025
6f91cb6
Add Inference Time Scaling Module (#381)
dnandakumar-nv Jul 23, 2025
264cb3e
Refactor Agno Personal Finance Function and Update Configuration (#477)
mpenn Jul 23, 2025
7350945
Add object store (#299)
balvisio Jul 23, 2025
fa35eeb
Observability redesign to reduce dependencies and improve flexibility…
mpenn Jul 24, 2025
c7a2dbf
Adding OpenAI Chat Completions API compatibility (#421)
dfagnou Jul 24, 2025
453d8be
Enhance code execution sandbox with improved error handling and debug…
vikalluru Jul 24, 2025
4923b46
Fixing inheritance on the OTel collector exporter and adding project …
mdemoret-nv Jul 24, 2025
45c4a00
Refactor retry mechanism and update retry mixin field config (#480)
dnandakumar-nv Jul 24, 2025
e56f89e
Integrate latest `RetryMixin` fixes with `aiqtoolkit_agno` subpackage…
mpenn Jul 24, 2025
09a11ea
Fix incorrect file paths in simple calculator example (#482)
mpenn Jul 24, 2025
a659efb
Documentation edits for sizing calculator (#436)
lvojtku Jul 24, 2025
432c5e4
feat(redis): add redis memory backend and redis memory example #376 (…
briancaffey Jul 24, 2025
6518864
Improve error handling and recovery mechanisms in agents (#418)
yczhang-nv Jul 24, 2025
408023a
Update `git clone` under `/doc` folder to point to `main` branch (#484)
yczhang-nv Jul 25, 2025
806697b
Pin `datasets` version in toplevel `pyproject.toml` (#487)
willkill07 Jul 25, 2025
2684873
Fix `otelcollector` to ensure project name is added to `OtelSpan` res…
mpenn Jul 26, 2025
2f82db5
Fix shared field reference bug in `TypedBaseModel` inheritance (#489)
mpenn Jul 26, 2025
74851e3
Streamlining API Authentication (#251)
ericevans-nv Jul 27, 2025
4e506a6
Add experimental decorator to auth and ITS strategy methods (#493)
dnandakumar-nv Jul 28, 2025
8407fbc
Unify examples README structure (#485)
willkill07 Jul 28, 2025
69867e3
Cleanup authorization settings to remove unnecessary options (#495)
mdemoret-nv Jul 28, 2025
c6557af
Move `WeaveMixin._weave_calls` to `IsolatedAttribute` to avoid cleanu…
mpenn Jul 28, 2025
d09d703
Set SCM versioning for `text_file_ingest` allowing it to be built in …
dagardner-nv Jul 28, 2025
0e3a98b
Update PII example to improve user experience and `WeaveExporter` rob…
mpenn Jul 29, 2025
12f197b
Fix `pyproject.toml` for `text_file_ingest` example (#505)
dagardner-nv Jul 29, 2025
417a472
Update `ci/checks.sh` to run all of the same checks performed by CI (…
dagardner-nv Jul 29, 2025
1b4ad3d
Suppress stack trace in error message in `ReActOutputParserException`…
yczhang-nv Jul 29, 2025
87df7e8
Clarify intermediate output formatting in agent tool_calling example …
willkill07 Jul 29, 2025
efa4db1
Fix fastapi endpoint for plot_charts (#508)
willkill07 Jul 29, 2025
cfda91f
Fix UI docs to launch the simple calculator (#511)
dagardner-nv Jul 29, 2025
d8347a8
Update prerequisite and system prompt of `redis` memory example (#510)
yczhang-nv Jul 29, 2025
cb277be
Fix HITL `por_to_jiratickets` example (#515)
dagardner-nv Jul 30, 2025
406e8c7
Relax overly restrictive constraints on AIQChatRequest model (#512)
ericevans-nv Jul 30, 2025
15e4867
Fix file paths for simple_calculator_eval (#517)
willkill07 Jul 30, 2025
9f16777
Fix: getting_started docker containers build with added compiler depe…
willkill07 Jul 30, 2025
1c52369
Documentation: Specify minimum uv version (#520)
willkill07 Jul 30, 2025
0151c37
Fix Simple Calculator HITL Example. (#519)
ericevans-nv Jul 30, 2025
103295f
Fix outdated path in `pyproject.toml` in `text_file_ingest` (#524)
yczhang-nv Jul 30, 2025
c97ad57
Fix issue where aiq fails for certain log levels (#523)
dagardner-nv Jul 30, 2025
857a2cd
Update catalyst readme document (#492)
vishalk-06 Jul 30, 2025
f279f58
Fix outdated file references under `/examples` (#526)
yczhang-nv Jul 30, 2025
16119b3
Misc Documentation cleanups (#527)
dagardner-nv Jul 30, 2025
dc80c2b
Misc cleanups/fixes for `installing.md` document (#528)
dagardner-nv Jul 31, 2025
f602f1e
Fix: file path references in examples and docs (#536)
willkill07 Jul 31, 2025
adb99a8
Resolve batch flushing failure during `SpanExporter` cleanup (#532)
mpenn Jul 31, 2025
974dfa3
Fix typos in the observability info commands (#529)
AnuradhaKaruppiah Jul 31, 2025
420c6b3
Publish the linear fit data in the CalcRunner Output (#498)
AnuradhaKaruppiah Jul 31, 2025
c3b7f9b
Restructure example README to fully align with reorganization (#539)
willkill07 Jul 31, 2025
02fde77
Add example for Vulnerability Analysis for Container Security Bluepri…
ashsong-nv Jul 31, 2025
a813041
Misc cleanups for `docs/source/quick-start/launching-ui.md` (#537)
dagardner-nv Jul 31, 2025
7845df8
Fix grammar error in uninstall help string (#540)
dagardner-nv Jul 31, 2025
e50a697
Fix: custom routing example typos and output clarification (#541)
willkill07 Jul 31, 2025
f596e2d
Update the UI submodule to adopt fixes (#543)
dagardner-nv Jul 31, 2025
f59b286
Fix: Examples README output clarifications; installation command (#542)
willkill07 Jul 31, 2025
2e33633
Ensure type system and functional behavior are consistent for `to_typ…
willkill07 Jul 31, 2025
d20e034
Documentation: update memory section to include redis; fix code refer…
willkill07 Jul 31, 2025
9ebacc2
Update the dataset in the swe-bench README (#546)
AnuradhaKaruppiah Jul 31, 2025
2f14d21
Fix alert triage agent documentation on system output (#545)
hsin-c Jul 31, 2025
f4f900b
Fix several dependency and documentation issues under `/examples` (#547)
yczhang-nv Jul 31, 2025
300996b
Fixes to the `add-tools-to-a-workflow.md` tutorial (#548)
dagardner-nv Jul 31, 2025
b3f4ba4
Example: update `swe_bench` README to reflect output changes (#550)
willkill07 Aug 1, 2025
5212580
Update Cursor rules and documentations to remove unnecessary installa…
yczhang-nv Aug 1, 2025
4150448
Update `object_store` example to use NVIDIA key instead of missing OP…
willkill07 Aug 1, 2025
a3007f8
Remove deprecated code usage in the `por_to_jiratickets` example (#557)
dagardner-nv Aug 1, 2025
3b1f3af
Fix `simple_auth` link to UI repository (#553)
willkill07 Aug 1, 2025
3685f25
Update the LangSmith environment variable names in `simple_calculator…
dagardner-nv Aug 1, 2025
2e84344
Improvements to extending telemetry exporters docs (#554)
mpenn Aug 1, 2025
9bc5954
Misc cleanups for `create-a-new-workflow.md` document (#556)
dagardner-nv Aug 1, 2025
93e6655
Reduce the number of warnings logged while running the `getting_start…
dagardner-nv Aug 1, 2025
6f599f4
Update observability system documentation to reflect modern architect…
mpenn Aug 1, 2025
6a9f159
Add docker container for oauth server to fix configuration issues (#561)
ericevans-nv Aug 1, 2025
89b57de
Ensure imports are lazily loaded in plugins improving startup time (#…
dagardner-nv Aug 1, 2025
8de9599
General improvements to `observe-workflow-with-catalyst.md` to improv…
mpenn Aug 1, 2025
e1f8236
Update Simple Auth Example Config File Path (#566)
ericevans-nv Aug 4, 2025
40dfa09
Convert `cursor_rules_demo` GIF files to Git LFS (#567)
yczhang-nv Aug 4, 2025
5f2458e
UI Submodule Update (#568)
ericevans-nv Aug 4, 2025
4324339
Restructure agents documentation (#569)
dagardner-nv Aug 4, 2025
b98e8cf
Increase package/distro resolution in `DiscoveryMetadata` to improve …
mpenn Aug 5, 2025
202a009
Minor cleanups for the `run-workflows.md` document (#572)
dagardner-nv Aug 5, 2025
6dc8b46
Add CI check for path validation within repository (#573)
willkill07 Aug 6, 2025
4597f11
Improvements to observability plugin documentation (#578)
mpenn Aug 6, 2025
3009217
Fixes for `adding-an-authentication-provider.md` (#579)
dagardner-nv Aug 6, 2025
75f1dac
Minor cleanups for `sizing-calc.md` (#577)
dagardner-nv Aug 6, 2025
ed10204
minor doc update to pass lint (#582)
gfreeman-nvidia Aug 6, 2025
43c80c7
Fixing missing space preventing proper render of snippet in markdown …
mpenn Aug 6, 2025
5fcfd4f
Fixing wrong override usage to make it compatible with py 3.11 (#585)
vikalluru Aug 6, 2025
af4a1fb
Updating UI submodule (#588)
ericevans-nv Aug 6, 2025
c9ce34f
Fixes for `api-authentication.md` (#583)
dagardner-nv Aug 6, 2025
10cb487
Object Store code, documentation, and example improvements (#587)
willkill07 Aug 7, 2025
0d0e46d
Fix module discovery errors when publishing with registry handlers (#…
mpenn Aug 7, 2025
534c59b
Update logging levels in `ProcessingExporter`and `BatchingProcessor` …
mpenn Aug 7, 2025
4773902
Update template to use `logger` instead of `print` (#590)
hsin-c Aug 7, 2025
1929229
Fix fence indenting, remove ignore pattern (#594)
dagardner-nv Aug 7, 2025
2b276d5
Merge branch 'develop' of github.com:NVIDIA/NeMo-Agent-Toolkit into v…
dagardner-nv Aug 7, 2025
e3a1cd0
Match UI commit to develop
dagardner-nv Aug 7, 2025
26e89bf
Remove Unused Authentication Components from Refactor (#596)
ericevans-nv Aug 7, 2025
22c42af
Minor cleanup to `using-local-llms.md` (#595)
dagardner-nv Aug 7, 2025
7bfd91b
Merge branch 'develop' into v1.2-post-vdr
dagardner-nv Aug 7, 2025
95de0a0
Merge Post VDR changes (#597)
dagardner-nv Aug 7, 2025
901dfe5
Rename aiqtoolkit packages to nvidia-nat (#598)
dagardner-nv Aug 7, 2025
2214a9e
Rename Inference Time Scaling to Test Time Compute (#600)
dnandakumar-nv Aug 8, 2025
f3ba3f5
CI: upload script updated to set the artifactory path's top level dir…
AnuradhaKaruppiah Aug 8, 2025
9e1677b
Rename ITS tool functions to TTC tool functions (#605)
dnandakumar-nv Aug 8, 2025
bc90778
Fix the artifactory component name to aiqtoolkit for all packages (#603)
AnuradhaKaruppiah Aug 8, 2025
53af54e
Fix Pylint in CI (#609)
dagardner-nv Aug 9, 2025
a7a3abc
Remove `AIQ` prefix from class and function names (#606)
dagardner-nv Aug 9, 2025
c8609a7
Add support for synchronous LangChain tool calling (#612)
mpenn Aug 9, 2025
b08241f
Send Conversation ID with WebSocket Messages (#613)
ericevans-nv Aug 9, 2025
68a1597
Adds support for MCP server /health endpoint, custom routes and a cli…
AnuradhaKaruppiah Aug 9, 2025
2140aeb
Updating UI submodule (#622)
ericevans-nv Aug 12, 2025
c0055ac
Rename `aiq` namespace to `nat` (#618)
dagardner-nv Aug 12, 2025
e523ceb
Remove outdated/unsupported devcontainer (#626)
dagardner-nv Aug 12, 2025
b5e9168
Use issue types instead of title prefixes (#619)
dagardner-nv Aug 12, 2025
87a15fb
Fixes to `weave` telemetry exporter to ensure traces are properly sen…
mpenn Aug 12, 2025
a2439c7
Apply work-around for #621 to the gitlab ci scripts (#630)
dagardner-nv Aug 12, 2025
a544f1a
Revert unintended change to `artifactory_upload.sh` (#631)
dagardner-nv Aug 12, 2025
8a7f573
Bugfix (Object Store): remove unnecessary S3 refs in config; fix mysq…
willkill07 Aug 13, 2025
c0a1f90
Refactor embedder client structure for LangChain and Llama Index. (#634)
dnandakumar-nv Aug 13, 2025
ecf3c39
Documentation: Update Using Local LLMs (#623)
willkill07 Aug 13, 2025
2c055f7
Align WebSocket Workflow Output with HTTP Output (#635)
ericevans-nv Aug 13, 2025
2264108
Update `AIQ` to `NAT` in documentation and comments (#614)
yczhang-nv Aug 13, 2025
d94ec67
Documentation(Providers): Surface LLM; add Embedders and Retrievers (…
willkill07 Aug 13, 2025
b692322
CI: improve path-check utility; fix broken links; add more path check…
willkill07 Aug 13, 2025
e045e78
Fix broken `additional_instructions` options for `ReWOO` agent (#640)
yczhang-nv Aug 14, 2025
a36bbcd
Updating ui submodule (#641)
ericevans-nv Aug 14, 2025
0ae8641
Fix symlink structure to be consistent across all examples (#642)
willkill07 Aug 14, 2025
4753717
Fix: add missing uv.source for `simple_calculator_hitl` (#638)
willkill07 Aug 14, 2025
5d26b75
Enable datasets with custom formats (#615)
AnuradhaKaruppiah Aug 14, 2025
f1f1942
Update uv.lock (#644)
dagardner-nv Aug 14, 2025
734836d
Run CI for commits to the release branch (#645)
dagardner-nv Aug 14, 2025
36b66c0
Add a note that the dataset needs to be uploaded to the S3 bucket (#646)
AnuradhaKaruppiah Aug 14, 2025
7e0ade9
Add UI documentation links and installation instructions (#647)
ericevans-nv Aug 14, 2025
c9bacb3
Consolidate CI pipelines (#632)
dagardner-nv Aug 14, 2025
c8bbd6e
Install git-lfs in docs CI stage (#648)
dagardner-nv Aug 15, 2025
c8ee21f
Fix `aiq` compatibility (#651)
dagardner-nv Aug 15, 2025
473f889
Bugfix: Align Python Version Ranges (#655)
willkill07 Aug 15, 2025
1584c6f
Docs: Add Migration Guide (#653)
willkill07 Aug 15, 2025
20e64c9
Update third-party-license files for v1.2 (#657)
dagardner-nv Aug 15, 2025
4a411cc
Add notebooks to show users how to get started with the toolkit and b…
cdgamarose-nv Aug 15, 2025
8a7ea2a
Remove redundant prefix from directory names (#665)
dagardner-nv Aug 18, 2025
99aa7bd
Docs: Add Upgrade Fix to Troubleshooting (#659)
willkill07 Aug 18, 2025
d4cbde9
Enhance README with badges, installation, instructions, and a roadmap…
mdemoret-nv Aug 18, 2025
86845d4
Adding `.nspect-allowlist.toml` to remediate false positives found by…
dagardner-nv Aug 18, 2025
307f392
Fix: Remove `pickle` from MySQL-based Object Store (#669)
willkill07 Aug 19, 2025
c330649
Enable `BUILD_NAT_COMPAT` (#670)
dagardner-nv Aug 19, 2025
a4d3884
Fix paths for compatibility packages (#672)
dagardner-nv Aug 19, 2025
c604f9e
Add missing compatibility package for `aiqtoolkit-weave` (#674)
dagardner-nv Aug 19, 2025
8beb68e
Add chat_history to the context of ReAct and ReWOO agent (#673)
yczhang-nv Aug 19, 2025
7f14a75
Update CHANGELOG and release notes in prep for v1.2.0 (#666)
AnuradhaKaruppiah Aug 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
118 changes: 118 additions & 0 deletions .cursor/rules/cursor-rules.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
description: Follow these rules when the user's request involves creating, modifying, organizing, or structuring Cursor rules within the project
globs:
alwaysApply: false
---
# Cursor Rules Location

How to add new cursor rules to the project

1. Always place rule files in PROJECT_ROOT/.cursor/rules/:
```
.cursor/rules/
├── your-rule-name.mdc
├── another-rule.mdc
└── ...
```

2. Follow the naming convention:
- Use kebab-case for filenames
- Always use .mdc extension
- Make names descriptive of the rule's purpose

3. Directory structure:
```
PROJECT_ROOT/
├── .cursor/
│ └── rules/
│ ├── your-rule-name.mdc
│ └── ...
└── ...
```

4. For related rules sharing the same topic, create a subdirectory:
```
.cursor/rules/
├── topic-name/
│ ├── general.mdc # General rules for this topic
│ ├── specific-rule.mdc # Specific rules within the topic
│ └── another-rule.mdc
├── another-topic/
│ ├── general.mdc
│ └── specific-rule.mdc
└── standalone-rule.mdc
```

5. When creating topic subdirectories:
- Use kebab-case for directory names
- Always include a `general.mdc` file with overarching guidelines for the topic
- Place specific rules as separate .mdc files within the subdirectory
- Example: `nat-cli/` folder contains general NAT CLI rules in `general.mdc` and specific command rules in separate files

6. For `general.mdc` files in subdirectories:
- Always include a "Referenced Documentation" section that lists all documentation referenced in the rules
- Format documentation references with descriptive names and brief descriptions
- Reference the documentation section in the main rules instead of directly linking to documentation
- Example structure:
```markdown
# General Rules for [Topic]

## Referenced Documentation

- **Documentation Name**: [filename.md](mdc:path/to/filename.md) - Brief description of the documentation
- **Another Doc**: [another.md](mdc:path/to/another.md) - Description of this documentation

## Rules

- Rule content referencing "the documentation listed in the Referenced Documentation section above"
```

7. Writing effective descriptions for Cursor rules:
- **Start with "Follow these rules when"**: All descriptions should begin with this consistent phrase
- **Use specific trigger conditions**: Clearly define when the rule should be requested by the agent
- **Include relevant action verbs**: Use precise verbs like "creating", "modifying", "implementing", "configuring", "adding", "installing", "evaluating", etc.
- **Be comprehensive but concise**: Cover all relevant scenarios without being overly verbose
- **Use consistent terminology**: Match the language used in the project (e.g., "NAT workflows", "NAT CLI commands")
- **Check for typos**: Ensure proper spelling and grammar (avoid errors like "ollow" instead of "Follow")
- **Examples of good descriptions:**
- "Follow these rules when the user's request involves creating, modifying, organizing, or structuring Cursor rules within the project"
- "Follow these rules when the user's request involves NAT CLI commands, operations, or functionality"
- "Follow these rules when the user's request involves implementing, adding, creating, or modifying functions within NAT workflows"
- **Avoid overly narrow descriptions**: Don't limit to just one action when the rule covers multiple related scenarios
- **Use "user's request involves" pattern**: This clearly indicates the trigger condition for the agent

8. Never place rule files:
- In the project root
- In subdirectories outside .cursor/rules
- In any other location

9. Cursor rules have the following structure:

---
description: Short description of the rule's purpose
globs: optional/path/pattern/**/*
alwaysApply: false
---
# Rule Title

Main content explaining the rule with markdown formatting.

1. Step-by-step instructions
2. Code examples
3. Guidelines
Example:
```python
# Good example
async def good_example_function():
"""Implementation following NeMo Agent Toolkit guidelines."""
# Use async/await for I/O operations
# Follow snake_case naming convention
# Include proper type hints and docstrings
pass

# Bad example
def badExample():
# Missing async, type hints, and docstring
# Uses camelCase instead of snake_case
pass
```
160 changes: 160 additions & 0 deletions .cursor/rules/documentation/capitalization.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
---
description:
globs: **/*.md
alwaysApply: false
---
# Capitalization Guidelines

Capitalize proper names of products, features, pages, and tools. In step-by-step instructions, match the exact capitalization of UI elements. Don't capitalize words that are not proper nouns solely for emphasis.

## Basic Capitalization Rules

### Always Capitalize

#### First Word of Sentences
- Always capitalize the first word of every sentence
- **Examples**: "The cat is sleeping." "Where did I put that book?"

#### Proper Nouns
- **People's names**: Jane Austen, Tom, Diane
- **Places**: Southern California, San Diego, New York City
- **Companies**: NVIDIA, Microsoft, Google
- **Religions**: Catholic, Buddhist, Jewish
- **Political parties**: Democratic Party, Republican Party
- **Products**: CUDA, TensorRT, Agent toolkit

#### Names Used as Forms of Address
- **Correct**: "Just wait until Mom sees this!"
- **Incorrect**: "My mom is not going to like this." (not a form of address)

#### Days, Months, and Holidays
- **Days**: Monday, Tuesday, Wednesday
- **Months**: January, February, March
- **Holidays**: Christmas, Valentine's Day, New Year's Day
- **Don't capitalize seasons**: spring, summer, fall, winter

#### Cities, Countries, Nationalities, and Languages
- **Cities**: London, Tokyo, San Francisco
- **Countries**: United States, Canada, Japan
- **Nationalities**: American, Canadian, Japanese
- **Languages**: English, Spanish, Mandarin

#### Time Periods and Historical Events (with proper names)
- **Historical events**: World War I, Middle Ages, Roaring Twenties
- **Don't capitalize centuries**: sixteenth century, twenty-first century

#### Time Zones
- **Full names**: Eastern Time, Pacific Time, Coordinated Universal Time
- **Abbreviations**: EST, EDT, PST, PDT, UTC, GMT
- **Don't abbreviate** unless space is severely limited

### Title Capitalization

#### For Headings and Titles
Capitalize:
- **First word** (always)
- **All nouns**: Requirements, Phase, Model
- **All verbs** (including short ones like "is"): Configuring, Testing, Building
- **All adjectives**: Quick, Advanced, Custom
- **All proper nouns**: NVIDIA, vGPU, NGC

Don't capitalize:
- **Articles**: a, an, the (unless first word)
- **Conjunctions**: and, but, or (unless >5 letters or first word)
- **Prepositions**: of, in, to, for (unless >5 letters or first word)

#### Examples
- **Correct**: "Requirements for Configuring NVIDIA vGPU in a DRS Cluster"
- **Correct**: "Deploying and Testing Your Text-based Bot"
- **Correct**: "Uploading a Model to NGC"

#### Action Titles
- Use gerund form (-ing) for action-oriented titles
- **Example**: "Installing the Toolkit" not "Install the Toolkit"

### Don't Capitalize

#### After Colons (Usually)
- **Standard**: "I have one true passion: horse racing."
- **Exception - Proper noun**: "There is only one place I want to visit: New York City."
- **Exception - Complete sentence**: "Maggie wears a cap for two reasons: Strong light gives her headaches. She likes how it looks."

#### Compound Words
- **Don't capitalize** compound words unless they're proper names
- **Examples**: long-term solution, up-to-date guides
- **Exceptions**: In-App Advertising, In-App Messaging, In-App Purchases, In-Game Advertising

#### Partial Quotes
- **Capitalize complete quotes**: Mario asked, "What is everyone doing this weekend?"
- **Don't capitalize partial quotes**: Gretchen said she was "way too busy" to join

#### Domain-Specific Terms (Unless Proper Names)
- **Use lowercase**: projects, applications, roles, workflows, functions
- **Exception**: When referring to specific proper names of products or features

## Technical Documentation Specific Rules

### UI Elements
- **Match exact capitalization** of interface elements
- **Bold and italic formatting**: Select *Settings* > *Data Inputs*
- **Button text**: Click **Save** or **Cancel**

### Code and Technical Terms
- **Follow language conventions**: JavaScript (capitalize), API (all caps), JSON (all caps)
- **File extensions**: Use lowercase unless following specific conventions
- **Commands**: Usually lowercase unless they're proper names

### Product Names
- **Use official capitalization**:
- NVIDIA NeMo Agent toolkit (first use)
- Agent toolkit (subsequent uses)
- CUDA, TensorRT, PyTorch
- **Don't capitalize** generic terms: database, server, application (unless part of proper name)

### Feature Names
- **Capitalize** official feature names: Smart Search, Auto-Save, Real-time Analytics
- **Don't capitalize** generic features: search functionality, automatic saving, real-time updates

## Common Capitalization Mistakes

### Don't Do These
- **Don't capitalize for emphasis**: Important becomes *important* (italic) not Important
- **Don't capitalize common nouns**: "The Database" should be "the database"
- **Don't capitalize job titles**: software engineer, project manager (unless in formal contexts)
- **Don't capitalize directions**: north, south, east, west (unless part of proper name)

### Special Cases

#### Ordinal Numbers
- **Always spell out**: first, second, third, twenty-first
- **Don't use**: 1st, 2nd, 3rd, 21st in dates
- **Correct**: "June 21" not "June 21st"

#### Abbreviations and Acronyms
- **Follow standard conventions**: API, REST, HTTP, URL
- **Don't capitalize** unless the spelled-out form would be capitalized
- **Example**: "application programming interface" → "API"

#### Version Numbers
- **Follow product conventions**:
- "version 2.1" (lowercase version)
- "Python 3.9" (capitalize language name)
- "CUDA 11.8" (follow product style)

## Best Practices

### Consistency
- **Use the same capitalization** for the same term throughout a document
- **Create a style sheet** for product-specific terms
- **Follow established conventions** within your organization

### When in Doubt
- **Check official documentation** for proper names
- **Use sentence case** rather than title case for most content
- **Err on the side of lowercase** for common nouns
- **Be consistent** with your choices throughout the document

### Accessibility
- **Consistent capitalization** helps screen readers
- **Proper capitalization** improves searchability
- **Clear conventions** reduce cognitive load for readers
Loading