Skip to content

Commit 8b1f91d

Browse files
jamesbrinkclaude
andcommitted
fix: update cargo-deny version constraint in CI workflow
- Restrict cargo-deny to v0.17.0 for compatibility with Rust 1.83.0 - Add CLAUDE.md with development guide and commands - Standardize AI agent rule files (.cursorrules, .windsurfrules, .goosehints) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 578f70a commit 8b1f91d

File tree

5 files changed

+109
-179
lines changed

5 files changed

+109
-179
lines changed

.cursorrules

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Essex CLI Development Guide
2+
3+
## Commands
4+
- Build: `cargo build --release`
5+
- Install: `cargo install --path .`
6+
- Test (all): `cargo test`
7+
- Test (single): `cargo test -- test_name`
8+
- Integration test: `./test_install.sh`
9+
- Format: `cargo fmt --all`
10+
- Lint: `RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args" cargo clippy`
11+
12+
## Code Style
13+
- **Formatting**: 100 char line width, 4 spaces indentation
14+
- **Imports**: Group by module (std → external → project)
15+
- **Error handling**: Custom Error enum with specific variants, uses thiserror/anyhow
16+
- **Naming**: snake_case for functions/variables, CamelCase for types/enums
17+
- **Testing**: TDD approach, unit tests with code, integration tests in tests/
18+
- **Types**: Rust 2021 edition, strongly typed error handling
19+
20+
Always run the formatter and linter before committing changes.
21+
22+
## AI Agent Sync
23+
When this file is modified, copy its contents to:
24+
- .cursorrules
25+
- .windsurfrules
26+
- .goosehints
27+
This ensures all AI coding assistants have the same information.

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
-D clippy::needless-borrows-for-generic-args
5858
5959
- name: Install cargo-deny
60-
run: cargo install --locked cargo-deny
60+
run: cargo install --locked --version "^0.17.0" cargo-deny
6161

6262
- name: Run cargo-deny
6363
run: cargo deny check

.goosehints

Lines changed: 27 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,27 @@
1-
# Essex AI Assistant Guidelines
2-
3-
## Project Identity
4-
Essex is a Rust-based Docker project template generator focused on consistency and best practices.
5-
6-
## Code Style Requirements
7-
1. ALWAYS enforce these Rust formatting rules:
8-
```toml
9-
# .rustfmt.toml settings
10-
max_width = 100
11-
hard_tabs = false
12-
tab_spaces = 4
13-
newline_style = "Auto"
14-
use_small_heuristics = "Default"
15-
reorder_imports = true
16-
reorder_modules = true
17-
remove_nested_parens = true
18-
edition = "2021"
19-
merge_derives = true
20-
use_field_init_shorthand = true
21-
use_try_shorthand = true
22-
force_explicit_abi = true
23-
```
24-
25-
2. ALWAYS enforce these Clippy rules via RUSTFLAGS:
26-
```bash
27-
RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args"
28-
```
29-
30-
## Development Rules
31-
1. NEVER skip running these checks before committing:
32-
- `cargo fmt --all -- --check`
33-
- `cargo clippy` with required RUSTFLAGS
34-
- `cargo test`
35-
36-
2. ALWAYS maintain these standards:
37-
- Write tests before implementing features (TDD)
38-
- Keep backward compatibility with existing templates
39-
- Follow idiomatic Rust patterns
40-
- Match cargo version with git tags for releases
41-
42-
3. ALWAYS follow these Docker best practices:
43-
- Use multi-stage builds
44-
- Include OCI labels
45-
- Run as non-root user
46-
- Provide comprehensive documentation
47-
48-
## Template Rules
49-
1. ALWAYS include these components in generated projects:
50-
- Dockerfile with best practices
51-
- Makefile for Docker operations
52-
- README.md
53-
- runtime-assets directory
54-
55-
2. ALWAYS support these template variables:
56-
- repo_username
57-
- repo_namespace
58-
- image_name
59-
- vendor
60-
- version
61-
- build_date
62-
- vcs_ref
63-
64-
## Documentation Rules
65-
1. ALWAYS update documentation when:
66-
- Adding new features
67-
- Modifying template variables
68-
- Changing project structure
69-
- Updating dependencies
70-
71-
2. ALWAYS maintain these files:
72-
- README.md for project overview
73-
- CONTRIBUTING.md for development guidelines
74-
- Template-specific documentation
75-
76-
## Error Handling Rules
77-
1. ALWAYS provide:
78-
- Clear error messages
79-
- Proper error types
80-
- Recovery suggestions
81-
- Debug information when appropriate
82-
83-
## Testing Rules
84-
1. ALWAYS verify:
85-
- Template generation with various parameters
86-
- Docker build success for generated projects
87-
- Makefile functionality
88-
- Unit test coverage
89-
- Integration test coverage
1+
# Essex CLI Development Guide
2+
3+
## Commands
4+
- Build: `cargo build --release`
5+
- Install: `cargo install --path .`
6+
- Test (all): `cargo test`
7+
- Test (single): `cargo test -- test_name`
8+
- Integration test: `./test_install.sh`
9+
- Format: `cargo fmt --all`
10+
- Lint: `RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args" cargo clippy`
11+
12+
## Code Style
13+
- **Formatting**: 100 char line width, 4 spaces indentation
14+
- **Imports**: Group by module (std → external → project)
15+
- **Error handling**: Custom Error enum with specific variants, uses thiserror/anyhow
16+
- **Naming**: snake_case for functions/variables, CamelCase for types/enums
17+
- **Testing**: TDD approach, unit tests with code, integration tests in tests/
18+
- **Types**: Rust 2021 edition, strongly typed error handling
19+
20+
Always run the formatter and linter before committing changes.
21+
22+
## AI Agent Sync
23+
When this file is modified, copy its contents to:
24+
- .cursorrules
25+
- .windsurfrules
26+
- .goosehints
27+
This ensures all AI coding assistants have the same information.

.windsurfrules

Lines changed: 27 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,27 @@
1-
# Essex AI Assistant Guidelines
2-
3-
## Project Identity
4-
Essex is a Rust-based Docker project template generator focused on consistency and best practices.
5-
6-
## Code Style Requirements
7-
1. ALWAYS enforce these Rust formatting rules:
8-
```toml
9-
# .rustfmt.toml settings
10-
max_width = 100
11-
hard_tabs = false
12-
tab_spaces = 4
13-
newline_style = "Auto"
14-
use_small_heuristics = "Default"
15-
reorder_imports = true
16-
reorder_modules = true
17-
remove_nested_parens = true
18-
edition = "2021"
19-
merge_derives = true
20-
use_field_init_shorthand = true
21-
use_try_shorthand = true
22-
force_explicit_abi = true
23-
```
24-
25-
2. ALWAYS enforce these Clippy rules via RUSTFLAGS:
26-
```bash
27-
RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args"
28-
```
29-
30-
## Development Rules
31-
1. NEVER skip running these checks before committing:
32-
- `cargo fmt --all -- --check`
33-
- `cargo clippy` with required RUSTFLAGS
34-
- `cargo test`
35-
36-
2. ALWAYS maintain these standards:
37-
- Write tests before implementing features (TDD)
38-
- Keep backward compatibility with existing templates
39-
- Follow idiomatic Rust patterns
40-
- Match cargo version with git tags for releases
41-
42-
3. ALWAYS follow these Docker best practices:
43-
- Use multi-stage builds
44-
- Include OCI labels
45-
- Run as non-root user
46-
- Provide comprehensive documentation
47-
48-
## Template Rules
49-
1. ALWAYS include these components in generated projects:
50-
- Dockerfile with best practices
51-
- Makefile for Docker operations
52-
- README.md
53-
- runtime-assets directory
54-
55-
2. ALWAYS support these template variables:
56-
- repo_username
57-
- repo_namespace
58-
- image_name
59-
- vendor
60-
- version
61-
- build_date
62-
- vcs_ref
63-
64-
## Documentation Rules
65-
1. ALWAYS update documentation when:
66-
- Adding new features
67-
- Modifying template variables
68-
- Changing project structure
69-
- Updating dependencies
70-
71-
2. ALWAYS maintain these files:
72-
- README.md for project overview
73-
- CONTRIBUTING.md for development guidelines
74-
- Template-specific documentation
75-
76-
## Error Handling Rules
77-
1. ALWAYS provide:
78-
- Clear error messages
79-
- Proper error types
80-
- Recovery suggestions
81-
- Debug information when appropriate
82-
83-
## Testing Rules
84-
1. ALWAYS verify:
85-
- Template generation with various parameters
86-
- Docker build success for generated projects
87-
- Makefile functionality
88-
- Unit test coverage
89-
- Integration test coverage
1+
# Essex CLI Development Guide
2+
3+
## Commands
4+
- Build: `cargo build --release`
5+
- Install: `cargo install --path .`
6+
- Test (all): `cargo test`
7+
- Test (single): `cargo test -- test_name`
8+
- Integration test: `./test_install.sh`
9+
- Format: `cargo fmt --all`
10+
- Lint: `RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args" cargo clippy`
11+
12+
## Code Style
13+
- **Formatting**: 100 char line width, 4 spaces indentation
14+
- **Imports**: Group by module (std → external → project)
15+
- **Error handling**: Custom Error enum with specific variants, uses thiserror/anyhow
16+
- **Naming**: snake_case for functions/variables, CamelCase for types/enums
17+
- **Testing**: TDD approach, unit tests with code, integration tests in tests/
18+
- **Types**: Rust 2021 edition, strongly typed error handling
19+
20+
Always run the formatter and linter before committing changes.
21+
22+
## AI Agent Sync
23+
When this file is modified, copy its contents to:
24+
- .cursorrules
25+
- .windsurfrules
26+
- .goosehints
27+
This ensures all AI coding assistants have the same information.

CLAUDE.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Essex CLI Development Guide
2+
3+
## Commands
4+
- Build: `cargo build --release`
5+
- Install: `cargo install --path .`
6+
- Test (all): `cargo test`
7+
- Test (single): `cargo test -- test_name`
8+
- Integration test: `./test_install.sh`
9+
- Format: `cargo fmt --all`
10+
- Lint: `RUSTFLAGS="-D warnings -D clippy::redundant-pattern-matching -D clippy::needless-borrows-for-generic-args" cargo clippy`
11+
12+
## Code Style
13+
- **Formatting**: 100 char line width, 4 spaces indentation
14+
- **Imports**: Group by module (std → external → project)
15+
- **Error handling**: Custom Error enum with specific variants, uses thiserror/anyhow
16+
- **Naming**: snake_case for functions/variables, CamelCase for types/enums
17+
- **Testing**: TDD approach, unit tests with code, integration tests in tests/
18+
- **Types**: Rust 2021 edition, strongly typed error handling
19+
20+
Always run the formatter and linter before committing changes.
21+
22+
## AI Agent Sync
23+
When this file is modified, copy its contents to:
24+
- .cursorrules
25+
- .windsurfrules
26+
- .goosehints
27+
This ensures all AI coding assistants have the same information.

0 commit comments

Comments
 (0)