Files
nt8-sdk/.kilocode/rules/ninjascript_guardrails.md

36 lines
1.8 KiB
Markdown

# NinjaScript Guardrails - Operational Checklist
**Last Updated:** 2026-04-05
Use this checklist whenever touching NinjaScript-facing files.
## Pre-Edit Checks (Required)
- [ ] Confirm file is in task scope and allowed by `.kilocode/rules/file_boundaries.md`.
- [ ] Verify exact API signatures against official NT8 docs: `https://developer.ninjatrader.com/docs/desktop`.
- [ ] Confirm C# 5.0 compatibility using `.kilocode/rules/csharp_50_syntax.md`.
## Lifecycle and Safety Rules (Required)
- [ ] Use `OnStateChange` correctly: `State.SetDefaults`, `State.Configure`, `State.DataLoaded`.
- [ ] Keep runtime logic out of `SetDefaults` and `Configure`.
- [ ] Guard `OnBarUpdate` for series and readiness (`BarsInProgress`, `CurrentBar`/`CurrentBars`).
- [ ] In managed order flow, set stop/target before entry on the same bar.
- [ ] Do not mix managed and unmanaged order models unless explicitly required.
## API Integrity Rules (Required)
- [ ] Do not guess method signatures, enum members, attributes, or overloads.
- [ ] Do not use unsupported attributes (example: `[Optimizable]`).
- [ ] Do not invent placeholder types/enums unless explicitly confirmed by task/domain requirements.
## Compile Validation Sequence
- [ ] Run `.\verify-build.bat`.
- [ ] Run required deploy step when NinjaScript source must be synced to NT8.
- [ ] Compile in NT8 NinjaScript Editor (authoritative NinjaScript compile gate).
## Compile Failure Learning Loop
If any compile issue occurs:
- [ ] Capture error fingerprint (`code`, file, line, root cause).
- [ ] Apply the smallest safe fix and re-run validation sequence.
- [ ] Record durable learning in:
- `docs/00-governance/common_failures.md` (symptom + fix)
- `docs/00-governance/compile_guardrails.md` (preventive rule)
- `docs/00-governance/patterns_and_antipatterns.md` (good vs bad pattern)