Skip to content

Commit 3e0b052

Browse files
committed
chore(dx): add nan baseline checks and contribution evidence workflow
1 parent eec94a6 commit 3e0b052

7 files changed

Lines changed: 158 additions & 19 deletions

File tree

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,43 @@
1-
## Description
1+
## Summary
22

3-
Please include a summary of the changes and the related issue. List any dependencies that are required for this change.
3+
Describe what changed and why.
44

5-
Fixes # (issue)
5+
Issue: Fixes #
66

7-
## Type of Change
7+
## Change Type
88

9-
- [ ] Bug fix (non-breaking change which fixes an issue)
10-
- [ ] New feature (non-breaking change which adds functionality)
11-
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
9+
- [ ] Bug fix
10+
- [ ] New feature
11+
- [ ] Breaking change
1212
- [ ] Documentation update
13+
- [ ] Dependency update
1314

14-
## How Has This Been Tested?
15+
## Validation Evidence
1516

16-
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
17+
List the exact commands executed and a short result summary.
1718

18-
- [ ] Test A
19-
- [ ] Test B
19+
```bash
20+
make lint
21+
make type-check
22+
make test-unit
23+
```
24+
25+
Optional baseline checks (if available):
26+
27+
```bash
28+
make check-env
29+
make nan-health
30+
```
31+
32+
## Risk and Rollback
33+
34+
- Risk level: [Low | Medium | High]
35+
- Rollback plan:
2036

2137
## Checklist
2238

23-
- [ ] My code follows the style guidelines of this project
24-
- [ ] I have performed a self-review of my code
25-
- [ ] I have commented my code, particularly in hard-to-understand areas
26-
- [ ] I have made corresponding changes to the documentation
27-
- [ ] My changes generate no new warnings
28-
- [ ] Any dependent changes have been merged and published in downstream modules
29-
- [ ] I have checked my code and corrected any misspellings
39+
- [ ] Scope is focused and minimal
40+
- [ ] Tests and/or checks relevant to this change were executed
41+
- [ ] Docs were updated when behavior changed
42+
- [ ] No secrets or sensitive data were added
43+
- [ ] I verified spelling and basic formatting

AGENTS.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
11
# AI Agents Guidelines
22

3+
## Instruction Priority
4+
5+
When instructions conflict, follow this order:
6+
7+
1. `AGENTS.md` (this file)
8+
2. `CONTRIBUTING.md`
9+
3. `README.md` and `docs/`
10+
11+
Escalate to a human when guidance is ambiguous or potentially destructive.
12+
313
## Principles
414

515
- Keep implementations generic and reusable.
616
- Avoid source/vendor-specific hardcoding in shared modules.
717
- Prefer configuration via environment variables or Glue job arguments.
818
- Follow Medallion separation (`raw`, `bronze`, `silver`, `gold`).
919

20+
## Automation Boundaries
21+
22+
- Prefer minimal and reversible edits.
23+
- Do not run destructive operations on cloud resources without explicit confirmation.
24+
- Do not modify deployment/release workflows beyond the task scope.
25+
- Keep boilerplate defaults vendor-neutral unless the change explicitly targets this repo.
26+
1027
## Security
1128

1229
- Never hardcode credentials or tokens.
@@ -16,3 +33,14 @@
1633

1734
- Keep changes minimal and focused.
1835
- Update tests/docs when behavior changes.
36+
- Include explicit validation evidence for the commands executed.
37+
38+
## NaNLABS Baseline (Recommended)
39+
40+
If available in the environment, use:
41+
42+
- `nan-doctor` to validate workstation health
43+
- `nan-skills list` to discover available skills and helpers
44+
- `nan-update-check` to verify baseline/tool updates
45+
46+
These commands are recommended but optional for external contributors.

CONTRIBUTING.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,22 @@
77
3. Run tests and checks.
88
4. Open a pull request with clear scope and validation notes.
99

10+
## NaNLABS Local Baseline (Recommended)
11+
12+
When available in your workstation, run these checks before opening a PR:
13+
14+
```bash
15+
nan-doctor
16+
nan-skills list
17+
nan-update-check
18+
```
19+
20+
If `nan-*` commands are not installed, continue with the project checks (`make lint`, `make type-check`, tests).
21+
22+
## Validation Evidence
23+
24+
In each PR, include the commands you executed and a short result summary (pass/fail + key notes).
25+
1026
## Conventions
1127

1228
- Keep shared code source-agnostic.

Makefile

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#
1313
# All commands below are designed to run INSIDE the dev container environment.
1414

15-
.PHONY: help bootstrap install install-dev requirements clean test test-unit test-integration test-coverage lint type-check format autofix validate migrate migrate-upload migrate-dry-run services-status spark-submit pyshell-run notebook prepare-localstack clean-localstack aws-login scaffold-source run-raw run-bronze run-silver run-gold
15+
.PHONY: help bootstrap install install-dev requirements clean test test-unit test-integration test-coverage lint type-check format autofix validate check-env nan-health nan-skills migrate migrate-upload migrate-dry-run services-status spark-submit pyshell-run notebook prepare-localstack clean-localstack aws-login scaffold-source run-raw run-bronze run-silver run-gold
1616

1717
# Default target
1818
help:
@@ -31,6 +31,9 @@ help:
3131
@echo " install-dev - Install development dependencies"
3232
@echo " requirements - Generate requirements.txt from Pipfile"
3333
@echo " validate - Validate dev container environment"
34+
@echo " check-env - Validate environment + optional nan-doctor"
35+
@echo " nan-health - Run optional NaNLABS baseline checks"
36+
@echo " nan-skills - List available NaNLABS skills (if installed)"
3437
@echo ""
3538
@echo "🧪 Testing & Quality:"
3639
@echo " test - Run all tests (unit + integration)"
@@ -163,6 +166,38 @@ validate:
163166
@echo "🔍 Validating dev container environment..."
164167
./scripts/validate-env.sh
165168

169+
# Validate project environment plus optional NaNLABS checks
170+
check-env: validate
171+
@echo ""
172+
@echo "🔎 Optional NaNLABS environment check..."
173+
@if command -v nan-doctor >/dev/null 2>&1; then \
174+
nan-doctor; \
175+
else \
176+
echo "ℹ️ nan-doctor not found; skipping optional baseline check."; \
177+
fi
178+
179+
# Run optional NaNLABS workstation checks without blocking contributors
180+
nan-health:
181+
@echo "🩺 Running optional NaNLABS checks..."
182+
@if command -v nan-doctor >/dev/null 2>&1; then \
183+
nan-doctor; \
184+
else \
185+
echo "ℹ️ nan-doctor not found; skipping."; \
186+
fi
187+
@if command -v nan-update-check >/dev/null 2>&1; then \
188+
nan-update-check; \
189+
else \
190+
echo "ℹ️ nan-update-check not found; skipping."; \
191+
fi
192+
193+
# List available NaNLABS skills when baseline is installed
194+
nan-skills:
195+
@if command -v nan-skills >/dev/null 2>&1; then \
196+
nan-skills list; \
197+
else \
198+
echo "ℹ️ nan-skills not found; skipping."; \
199+
fi
200+
166201
# Check status of all services
167202
services-status:
168203
@echo "🔧 Checking dev container services status..."

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ This sets up `uv`, creates `.venv`, installs runtime/dev dependencies, and runs
9292

9393
Optional manual setup is still available via `uv` if you need a custom environment.
9494

95+
Optional NaNLABS baseline checks (if installed):
96+
97+
```bash
98+
make check-env
99+
make nan-health
100+
make nan-skills
101+
```
102+
95103
### 2. Set up environment variables
96104

97105
```bash
@@ -165,6 +173,10 @@ make test-integration
165173
# Quality checks
166174
make lint
167175
make type-check
176+
177+
# Optional baseline checks
178+
make check-env
179+
make nan-health
168180
```
169181

170182
See [docs/TESTING.md](docs/TESTING.md) for conventions and marker usage.

docs/DEVELOPMENT.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Development Guide
22

3+
## Recommended local flow
4+
5+
```bash
6+
make bootstrap
7+
make check-env
8+
make lint
9+
make type-check
10+
make test-unit
11+
```
12+
13+
Optional NaNLABS commands (if available):
14+
15+
```bash
16+
make nan-health
17+
make nan-skills
18+
```
19+
320
## Local run examples
421

522
```bash

docs/TESTING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Testing
22

3+
## Validation matrix
4+
5+
Required project checks:
6+
7+
```bash
8+
make lint
9+
make type-check
10+
make test-unit
11+
```
12+
13+
Recommended NaNLABS baseline checks (optional):
14+
15+
```bash
16+
make check-env
17+
make nan-health
18+
```
19+
320
## Unit tests
421

522
Run:

0 commit comments

Comments
 (0)