| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 0 | 10 | 0% |
| Commands | 0 | 0 | 0 | — |
| Section tags | 0 | 0 | 4 | 0% |
What each file covers
Sections
0 shared · 0 only in A · 10 only in B- + Goal: Enforce cross-platform bash script guidelines
- + Reasoning:
- + 1. We want all .sh scripts to work with Bash 3.2 on macOS, Git Bash on Windows, WSL2, Ubuntu 22–24. cygpath is never available.
- + 2. We need to ensure each .sh script has a corresponding test_ script. test_scripts should create a unique directory to contain all their filesystem work, remove it on pass/fail, and restore the current directory and env vars to what they were before it ran.
- + 3. For Windows, we assume a fresh install with only Git available; use powershell.exe if needed (no pwsh).
- + 4. Powershell automatically handles slash conversions, but /c/ must become C:/. Create tests for powershell files
- + 5. Use set -e and set -o pipefail for bash. Avoid silent failure.
- + 6. For both powerhshell files and bash files, use functions and DRY things as much as possible.
- + 7. Add verification checks for all inputs, whether files, dirs, or variables, and make contractual boundaries and division of responsibility clear.
- + 8. Remember to run git update-index --chmod=+x filename.sh
Commands
neither file has anySection tags
0 shared · 0 only in A · 4 only in B- + setup
- + architecture
- + git-pr
- + do-not
Line diff
imazen/imageflow · .cursor/rules/ffi.mdc
@@ −1 @@
1---
2description:
3globs:
4alwaysApply: true
5---
6Imageflow offers a very stable ABI, focused on sending/recieving JSON and byte buffers in conjuction with an endpoint string. There are wrappers in C# (the main one), go, node, elixr, and more. Keeping these wrappers up-to-date with the latest JSON features is difficult, and the nature of the JSON graph structure makes it require simpler API wrappers.
7
8For the HTTP-like endpoint names, see @/imageflow_core/src/context_method.rs
9
10For the FFI ABI, read @/imageflow_abi/src/lib.rs and [imageflow_default.h](mdc:bindings/headers/imageflow_default.h)
11
12
13
imazen/imageflow · .cursor/rules/bash.mdc
@@ +1 @@
1---
2description: Rules for working on bash scripts and their tests
3globs: *.sh, *.yml
4alwaysApply: false
5---
6# Goal: Enforce cross-platform bash script guidelines
7# Reasoning:
8# 1. We want all .sh scripts to work with Bash 3.2 on macOS, Git Bash on Windows, WSL2, Ubuntu 22–24. cygpath is never available.
9# 2. We need to ensure each .sh script has a corresponding test_ script. test_scripts should create a unique directory to contain all their filesystem work, remove it on pass/fail, and restore the current directory and env vars to what they were before it ran.
10# 3. For Windows, we assume a fresh install with only Git available; use powershell.exe if needed (no pwsh).
11# 4. Powershell automatically handles slash conversions, but /c/ must become C:/. Create tests for powershell files
12# 5. Use set -e and set -o pipefail for bash. Avoid silent failure.
13# 6. For both powerhshell files and bash files, use functions and DRY things as much as possible.
14# 7. Add verification checks for all inputs, whether files, dirs, or variables, and make contractual boundaries and division of responsibility clear.
15# 8. Remember to run git update-index --chmod=+x filename.sh
16
17<rule>
18name: cross_platform_bash_scripts
19description: Ensures that all bash scripts are cross-platform compatible and have matching test scripts
20filters:
21 # Match any .sh file outside of test_ prefixed scripts
22 - type: file_extension
23 pattern: "\\.sh$"
24 - type: filename
25 pattern: "^(?!test_).+\\.sh$"
26
27actions:
28 - type: reject
29 conditions:
30 # Reject any .sh file without a matching test_ script of the same name
31 - pattern: "^(?!test_)(.+)\\.sh$"
32 message: |
33 Found a bash script without a corresponding test script.
34 Please add a test_ script to ensure thorough testing across platforms.
35
36 - type: suggest
37 message: |
38 Ensure compatibility with:
39 • Bash 3.2 on macOS
40 • Git Bash on Windows (use powershell.exe where appropriate)
41 • WSL2
42 • Ubuntu 22–24
43 • x64 and arm64 architectures
44 Please provide a test_ script that verifies the script on each platform.
45 Use set -e and set -o pipefail for bash
46 For both powerhshell files and bash files, use functions and DRY things as much as possible.
47 Add verification checks for all inputs, whether files, dirs, or variables, and make contractual boundaries and division of responsibility clear.
48examples:
49 - input: |
50 # Good scenario:
51 build.sh and test_build.sh
52 deploy.sh and test_deploy.sh
53
54 # Bad scenario:
55 build.sh (no test script)
56 output: "All .sh files have matching test_ scripts for cross-platform testing"
57metadata:
58 priority: high
59 version: 1.0
60</rule>
@@ −1 +1 @@
11 ---
2−description:
3−globs:
4−alwaysApply: true
2+description: Rules for working on bash scripts and their tests
3+globs: *.sh, *.yml
4+alwaysApply: false
55 ---
6−Imageflow offers a very stable ABI, focused on sending/recieving JSON and byte buffers in conjuction with an endpoint string. There are wrappers in C# (the main one), go, node, elixr, and more. Keeping these wrappers up-to-date with the latest JSON features is difficult, and the nature of the JSON graph structure makes it require simpler API wrappers.
6+# Goal: Enforce cross-platform bash script guidelines
7+# Reasoning:
8+# 1. We want all .sh scripts to work with Bash 3.2 on macOS, Git Bash on Windows, WSL2, Ubuntu 22–24. cygpath is never available.
9+# 2. We need to ensure each .sh script has a corresponding test_ script. test_scripts should create a unique directory to contain all their filesystem work, remove it on pass/fail, and restore the current directory and env vars to what they were before it ran.
10+# 3. For Windows, we assume a fresh install with only Git available; use powershell.exe if needed (no pwsh).
11+# 4. Powershell automatically handles slash conversions, but /c/ must become C:/. Create tests for powershell files
12+# 5. Use set -e and set -o pipefail for bash. Avoid silent failure.
13+# 6. For both powerhshell files and bash files, use functions and DRY things as much as possible.
14+# 7. Add verification checks for all inputs, whether files, dirs, or variables, and make contractual boundaries and division of responsibility clear.
15+# 8. Remember to run git update-index --chmod=+x filename.sh
716
8−For the HTTP-like endpoint names, see @/imageflow_core/src/context_method.rs
17+<rule>
18+name: cross_platform_bash_scripts
19+description: Ensures that all bash scripts are cross-platform compatible and have matching test scripts
20+filters:
21+ # Match any .sh file outside of test_ prefixed scripts
22+ - type: file_extension
23+ pattern: "\\.sh$"
24+ - type: filename
25+ pattern: "^(?!test_).+\\.sh$"
926
10−For the FFI ABI, read @/imageflow_abi/src/lib.rs and [imageflow_default.h](mdc:bindings/headers/imageflow_default.h)
27+actions:
28+ - type: reject
29+ conditions:
30+ # Reject any .sh file without a matching test_ script of the same name
31+ - pattern: "^(?!test_)(.+)\\.sh$"
32+ message: |
33+ Found a bash script without a corresponding test script.
34+ Please add a test_ script to ensure thorough testing across platforms.
1135
36+ - type: suggest
37+ message: |
38+ Ensure compatibility with:
39+ • Bash 3.2 on macOS
40+ • Git Bash on Windows (use powershell.exe where appropriate)
41+ • WSL2
42+ • Ubuntu 22–24
43+ • x64 and arm64 architectures
44+ Please provide a test_ script that verifies the script on each platform.
45+ Use set -e and set -o pipefail for bash
46+ For both powerhshell files and bash files, use functions and DRY things as much as possible.
47+ Add verification checks for all inputs, whether files, dirs, or variables, and make contractual boundaries and division of responsibility clear.
48+examples:
49+ - input: |
50+ # Good scenario:
51+ build.sh and test_build.sh
52+ deploy.sh and test_deploy.sh
1253
13−
54+ # Bad scenario:
55+ build.sh (no test script)
56+ output: "All .sh files have matching test_ scripts for cross-platform testing"
57+metadata:
58+ priority: high
59+ version: 1.0
60+</rule>
