ignition-lint-toolkit 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. ignition_lint_toolkit-0.1.0/.claude/settings.template.json +15 -0
  2. ignition_lint_toolkit-0.1.0/.github/workflows/ci.yml +62 -0
  3. ignition_lint_toolkit-0.1.0/.github/workflows/deploy-docs.yml +52 -0
  4. ignition_lint_toolkit-0.1.0/.github/workflows/ignition-lint-example.yml +34 -0
  5. ignition_lint_toolkit-0.1.0/.github/workflows/release.yml +41 -0
  6. ignition_lint_toolkit-0.1.0/.gitignore +334 -0
  7. ignition_lint_toolkit-0.1.0/.pre-commit-config.yaml +7 -0
  8. ignition_lint_toolkit-0.1.0/.pre-commit-hooks.yaml +8 -0
  9. ignition_lint_toolkit-0.1.0/.ralph/AGENT.md +27 -0
  10. ignition_lint_toolkit-0.1.0/.ralph/PROMPT.md +48 -0
  11. ignition_lint_toolkit-0.1.0/.ralph/fix_plan.md +23 -0
  12. ignition_lint_toolkit-0.1.0/.ralphrc +31 -0
  13. ignition_lint_toolkit-0.1.0/CREDITS.md +67 -0
  14. ignition_lint_toolkit-0.1.0/LICENSE +21 -0
  15. ignition_lint_toolkit-0.1.0/PKG-INFO +207 -0
  16. ignition_lint_toolkit-0.1.0/README.md +175 -0
  17. ignition_lint_toolkit-0.1.0/action.yml +87 -0
  18. ignition_lint_toolkit-0.1.0/docs/AI_DEVELOPMENT_RULES.md +283 -0
  19. ignition_lint_toolkit-0.1.0/docs/BINDING_INTEGRATION_SUMMARY.md +258 -0
  20. ignition_lint_toolkit-0.1.0/docs/BINDING_PATTERNS_ANALYSIS.md +330 -0
  21. ignition_lint_toolkit-0.1.0/docs/ENHANCED_VALIDATION_COMPLETE.md +217 -0
  22. ignition_lint_toolkit-0.1.0/docs/GETTING_STARTED.md +294 -0
  23. ignition_lint_toolkit-0.1.0/docs/IGNITION-LINTER-INTEGRATION.md +161 -0
  24. ignition_lint_toolkit-0.1.0/docs/JYTHON_VALIDATION_SUMMARY.md +285 -0
  25. ignition_lint_toolkit-0.1.0/docs/JYTHON_VALIDATION_TEST_REPORT.md +255 -0
  26. ignition_lint_toolkit-0.1.0/docs/LINTER-INTEGRATION-STRATEGY.md +463 -0
  27. ignition_lint_toolkit-0.1.0/docs/LINTER_USAGE.md +276 -0
  28. ignition_lint_toolkit-0.1.0/docs/MULTI_CODEBASE_SUMMARY.md +198 -0
  29. ignition_lint_toolkit-0.1.0/docs/PROJECT_OVERVIEW.md +218 -0
  30. ignition_lint_toolkit-0.1.0/docs/SCHEMA_IMPROVEMENT_SUMMARY.md +168 -0
  31. ignition_lint_toolkit-0.1.0/docs/SUPPRESSION.md +309 -0
  32. ignition_lint_toolkit-0.1.0/docs/VALIDATION-LINTING-STRATEGY.md +1342 -0
  33. ignition_lint_toolkit-0.1.0/docs/credits.md +57 -0
  34. ignition_lint_toolkit-0.1.0/docs/getting-started/basic-usage.md +153 -0
  35. ignition_lint_toolkit-0.1.0/docs/getting-started/installation.md +85 -0
  36. ignition_lint_toolkit-0.1.0/docs/guides/cli-reference.md +149 -0
  37. ignition_lint_toolkit-0.1.0/docs/guides/mcp-server.md +111 -0
  38. ignition_lint_toolkit-0.1.0/docs/guides/rule-codes.md +130 -0
  39. ignition_lint_toolkit-0.1.0/docs/guides/suppression.md +238 -0
  40. ignition_lint_toolkit-0.1.0/docs/integration/github-actions.md +113 -0
  41. ignition_lint_toolkit-0.1.0/docs/integration/pre-commit.md +81 -0
  42. ignition_lint_toolkit-0.1.0/docs/intro.md +67 -0
  43. ignition_lint_toolkit-0.1.0/examples/demo-linting-scenarios.py +249 -0
  44. ignition_lint_toolkit-0.1.0/examples/demo-linting-showcase.py +584 -0
  45. ignition_lint_toolkit-0.1.0/examples/good_view.json +44 -0
  46. ignition_lint_toolkit-0.1.0/examples/test_ignition_indentation_requirement.json +32 -0
  47. ignition_lint_toolkit-0.1.0/examples/test_view.json +44 -0
  48. ignition_lint_toolkit-0.1.0/examples/test_view_with_bad_jython.json +55 -0
  49. ignition_lint_toolkit-0.1.0/pyproject.toml +95 -0
  50. ignition_lint_toolkit-0.1.0/reports/CORRECTED_LINTING_RESULTS_REPORT.md +249 -0
  51. ignition_lint_toolkit-0.1.0/reports/ENHANCED_LINTING_RESULTS_REPORT.md +215 -0
  52. ignition_lint_toolkit-0.1.0/reports/GLOBAL_IGNITION_APPLICATION_REPORT.md +324 -0
  53. ignition_lint_toolkit-0.1.0/reports/IGNITION_SCRIPT_LINTING_REPORT.md +232 -0
  54. ignition_lint_toolkit-0.1.0/reports/binding_analysis_report.json +1517 -0
  55. ignition_lint_toolkit-0.1.0/reports/linting-report.txt +726 -0
  56. ignition_lint_toolkit-0.1.0/reports/multi_codebase_analysis_results.json +88 -0
  57. ignition_lint_toolkit-0.1.0/reports/schema_analysis_results.json +148 -0
  58. ignition_lint_toolkit-0.1.0/scripts/analyze-bindings.py +317 -0
  59. ignition_lint_toolkit-0.1.0/scripts/analyze-multiple-codebases.py +388 -0
  60. ignition_lint_toolkit-0.1.0/scripts/analyze-schema-gaps.py +146 -0
  61. ignition_lint_toolkit-0.1.0/scripts/analyze-validation-failures.py +330 -0
  62. ignition_lint_toolkit-0.1.0/scripts/apply-final-fixes.py +99 -0
  63. ignition_lint_toolkit-0.1.0/scripts/apply-scada-improvements.py +176 -0
  64. ignition_lint_toolkit-0.1.0/scripts/apply-schema-fixes.py +157 -0
  65. ignition_lint_toolkit-0.1.0/scripts/inspect-components-detailed.py +251 -0
  66. ignition_lint_toolkit-0.1.0/scripts/validate-components.py +258 -0
  67. ignition_lint_toolkit-0.1.0/src/ignition_lint/__init__.py +19 -0
  68. ignition_lint_toolkit-0.1.0/src/ignition_lint/_version.py +34 -0
  69. ignition_lint_toolkit-0.1.0/src/ignition_lint/action_entry.py +130 -0
  70. ignition_lint_toolkit-0.1.0/src/ignition_lint/cli.py +418 -0
  71. ignition_lint_toolkit-0.1.0/src/ignition_lint/json_linter.py +237 -0
  72. ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/__init__.py +5 -0
  73. ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/linter.py +1253 -0
  74. ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/schema_loader.py +17 -0
  75. ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/view_model.py +291 -0
  76. ignition_lint_toolkit-0.1.0/src/ignition_lint/reporting.py +139 -0
  77. ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/__init__.py +23 -0
  78. ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema-permissive.json +195 -0
  79. ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema-robust.json +695 -0
  80. ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema.json +356 -0
  81. ignition_lint_toolkit-0.1.0/src/ignition_lint/scripts/__init__.py +5 -0
  82. ignition_lint_toolkit-0.1.0/src/ignition_lint/scripts/linter.py +633 -0
  83. ignition_lint_toolkit-0.1.0/src/ignition_lint/server.py +198 -0
  84. ignition_lint_toolkit-0.1.0/src/ignition_lint/style_checker.py +91 -0
  85. ignition_lint_toolkit-0.1.0/src/ignition_lint/suppression.py +116 -0
  86. ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/__init__.py +6 -0
  87. ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/expression.py +284 -0
  88. ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/jython.py +275 -0
  89. ignition_lint_toolkit-0.1.0/tests/test_cli_helpers.py +20 -0
  90. ignition_lint_toolkit-0.1.0/tests/test_expression_validator.py +96 -0
  91. ignition_lint_toolkit-0.1.0/tests/test_jython_validator.py +87 -0
  92. ignition_lint_toolkit-0.1.0/tests/test_perspective_enhancements.py +208 -0
  93. ignition_lint_toolkit-0.1.0/tests/test_schema_resolution.py +22 -0
  94. ignition_lint_toolkit-0.1.0/tests/test_suppression.py +252 -0
  95. ignition_lint_toolkit-0.1.0/tests/test_view_model.py +162 -0
  96. ignition_lint_toolkit-0.1.0/tools/ignition-lsp-server.py +107 -0
  97. ignition_lint_toolkit-0.1.0/tools/ignition-perspective-linter.py +7 -0
  98. ignition_lint_toolkit-0.1.0/tools/ignition-script-linter.py +7 -0
  99. ignition_lint_toolkit-0.1.0/tools/jython_whitespace_validator.py +172 -0
  100. ignition_lint_toolkit-0.1.0/uv.lock +1442 -0
  101. ignition_lint_toolkit-0.1.0/website/.gitignore +20 -0
  102. ignition_lint_toolkit-0.1.0/website/README.md +41 -0
  103. ignition_lint_toolkit-0.1.0/website/docusaurus.config.ts +117 -0
  104. ignition_lint_toolkit-0.1.0/website/package-lock.json +18441 -0
  105. ignition_lint_toolkit-0.1.0/website/package.json +47 -0
  106. ignition_lint_toolkit-0.1.0/website/sidebars.ts +58 -0
  107. ignition_lint_toolkit-0.1.0/website/src/css/custom.css +215 -0
  108. ignition_lint_toolkit-0.1.0/website/src/pages/index.tsx +114 -0
  109. ignition_lint_toolkit-0.1.0/website/static/.nojekyll +0 -0
  110. ignition_lint_toolkit-0.1.0/website/static/img/favicon.ico +0 -0
  111. ignition_lint_toolkit-0.1.0/website/tsconfig.json +8 -0
@@ -0,0 +1,15 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(uv run pytest:*)",
5
+ "Bash(uv run ignition-lint:*)",
6
+ "Bash(uv run python:*)",
7
+ "Bash(git rm:*)",
8
+ "Bash(gh repo view:*)",
9
+ "Bash(gh api:*)",
10
+ "WebSearch"
11
+ ],
12
+ "deny": [],
13
+ "ask": []
14
+ }
15
+ }
@@ -0,0 +1,62 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ workflow_call:
9
+
10
+ jobs:
11
+ test:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install ".[dev,mcp]"
29
+
30
+ - name: Lint with ruff
31
+ run: ruff check src/ tests/
32
+
33
+ - name: Run tests
34
+ run: pytest -v
35
+
36
+ build:
37
+ runs-on: ubuntu-latest
38
+ needs: test
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ with:
42
+ fetch-depth: 0
43
+
44
+ - uses: actions/setup-python@v5
45
+ with:
46
+ python-version: "3.12"
47
+
48
+ - name: Install build tools
49
+ run: pip install build
50
+
51
+ - name: Build sdist and wheel
52
+ run: python -m build
53
+
54
+ - name: Verify wheel
55
+ run: |
56
+ pip install dist/ignition_lint_toolkit-*.whl
57
+ python -c "from ignition_lint.schemas import schema_path_for; assert schema_path_for('robust').exists()"
58
+
59
+ - uses: actions/upload-artifact@v4
60
+ with:
61
+ name: dist
62
+ path: dist/
@@ -0,0 +1,52 @@
1
+ name: Deploy Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - 'website/**'
8
+ - 'docs/**'
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+ pages: write
14
+ id-token: write
15
+
16
+ concurrency:
17
+ group: pages
18
+ cancel-in-progress: true
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - uses: actions/setup-node@v4
27
+ with:
28
+ node-version: 20
29
+ cache: npm
30
+ cache-dependency-path: website/package-lock.json
31
+
32
+ - name: Install dependencies
33
+ working-directory: website
34
+ run: npm ci
35
+
36
+ - name: Build site
37
+ working-directory: website
38
+ run: npm run build
39
+
40
+ - uses: actions/upload-pages-artifact@v3
41
+ with:
42
+ path: website/build
43
+
44
+ deploy:
45
+ needs: build
46
+ runs-on: ubuntu-latest
47
+ environment:
48
+ name: github-pages
49
+ url: ${{ steps.deployment.outputs.page_url }}
50
+ steps:
51
+ - id: deployment
52
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,34 @@
1
+ name: Ignition Lint
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ lint-ignition:
11
+ runs-on: ubuntu-latest
12
+ name: Lint Ignition Files
13
+
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Lint Ignition view.json files
19
+ uses: whiskeyhouse/ignition-lint@v1
20
+ with:
21
+ files: "**/view.json"
22
+ component_style: "PascalCase"
23
+ parameter_style: "camelCase"
24
+ allow_acronyms: "false"
25
+
26
+ # Alternative: Lint entire Ignition project
27
+ # - name: Lint Ignition Project
28
+ # uses: whiskeyhouse/ignition-lint@v0
29
+ # with:
30
+ # project_path: "ignition-projects/MyProject"
31
+ # lint_type: "perspective"
32
+ # naming_only: "true"
33
+ # component_style: "PascalCase"
34
+ # parameter_style: "camelCase"
@@ -0,0 +1,41 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ permissions:
8
+ contents: write
9
+ id-token: write
10
+
11
+ jobs:
12
+ ci:
13
+ uses: ./.github/workflows/ci.yml
14
+
15
+ publish:
16
+ runs-on: ubuntu-latest
17
+ needs: ci
18
+ environment: pypi
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.12"
27
+
28
+ - name: Install build tools
29
+ run: pip install build
30
+
31
+ - name: Build sdist and wheel
32
+ run: python -m build
33
+
34
+ - name: Publish to PyPI
35
+ uses: pypa/gh-action-pypi-publish@release/v1
36
+
37
+ - name: Create GitHub Release
38
+ uses: softprops/action-gh-release@v2
39
+ with:
40
+ generate_release_notes: true
41
+ files: dist/*
@@ -0,0 +1,334 @@
1
+ # Ignition Lint - project .gitignore
2
+
3
+ # === Python ===
4
+ # Byte-compiled / optimized / DLL files
5
+ __pycache__/
6
+
7
+ # hatch-vcs generated version file
8
+ src/ignition_lint/_version.py
9
+ *.py[cod]
10
+ *$py.class
11
+
12
+ # C extensions
13
+ *.so
14
+
15
+ # Distribution / packaging
16
+ .Python
17
+ build/
18
+ develop-eggs/
19
+ dist/
20
+ downloads/
21
+ eggs/
22
+ .eggs/
23
+ lib/
24
+ lib64/
25
+ parts/
26
+ sdist/
27
+ var/
28
+ wheels/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # PyInstaller
36
+ # Usually these files are written by a python script from a template
37
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
38
+ *.manifest
39
+ *.spec
40
+
41
+ # Installer logs
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ # Unit test / coverage reports
46
+ htmlcov/
47
+ .tox/
48
+ .nox/
49
+ .coverage
50
+ .coverage.*
51
+ .cache
52
+ nosetests.xml
53
+ coverage.xml
54
+ *.cover
55
+ *.py,cover
56
+ .hypothesis/
57
+ .pytest_cache/
58
+ cover/
59
+
60
+ # Translations
61
+ *.mo
62
+ *.pot
63
+
64
+ # Django stuff
65
+ *.log
66
+ local_settings.py
67
+ db.sqlite3
68
+ db.sqlite3-journal
69
+
70
+ # Flask stuff
71
+ instance/
72
+ .webassets-cache
73
+
74
+ # Scrapy stuff
75
+ .scrapy
76
+
77
+ # Sphinx documentation
78
+ docs/_build/
79
+
80
+ # PyBuilder
81
+ .pybuilder/
82
+ target/
83
+
84
+ # Jupyter Notebook
85
+ .ipynb_checkpoints
86
+
87
+ # IPython
88
+ profile_default/
89
+ ipython_config.py
90
+
91
+ # pyenv
92
+ # For a library or package, you might want to ignore these files since the code is
93
+ # intended to run in multiple environments; otherwise, check them in:
94
+ # .python-version
95
+
96
+ # pipenv
97
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
98
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
99
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
100
+ # install all needed dependencies.
101
+ #Pipfile.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+
110
+ # pdm
111
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112
+ #pdm.lock
113
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114
+ # in version control.
115
+ # https://pdm.fming.dev/#use-with-ide
116
+ .pdm.toml
117
+
118
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
119
+ __pypackages__/
120
+
121
+ # Celery stuff
122
+ celerybeat-schedule
123
+ celerybeat.pid
124
+
125
+ # SageMath parsed files
126
+ *.sage.py
127
+
128
+ # Environments
129
+ .env
130
+ .venv
131
+ env/
132
+ venv/
133
+ ENV/
134
+ env.bak/
135
+ venv.bak/
136
+
137
+ # UV package manager
138
+ .uv/
139
+
140
+ # === IDE & Editor Files ===
141
+ # VS Code
142
+ .vscode/
143
+ *.code-workspace
144
+
145
+ # PyCharm
146
+ .idea/
147
+ *.swp
148
+ *.swo
149
+
150
+ # Sublime Text
151
+ *.sublime-project
152
+ *.sublime-workspace
153
+
154
+ # Vim
155
+ *.swp
156
+ *.swo
157
+ *~
158
+
159
+ # Emacs
160
+ *~
161
+ \#*\#
162
+ /.emacs.desktop
163
+ /.emacs.desktop.lock
164
+ *.elc
165
+ auto-save-list
166
+ tramp
167
+ .\#*
168
+
169
+ # Spyder project settings
170
+ .spyderproject
171
+ .spyproject
172
+
173
+ # Rope project settings
174
+ .ropeproject
175
+
176
+ # mkdocs documentation
177
+ /site
178
+
179
+ # mypy
180
+ .mypy_cache/
181
+ .dmypy.json
182
+ dmypy.json
183
+
184
+ # Pyre type checker
185
+ .pyre/
186
+
187
+ # pytype static type analyzer
188
+ .pytype/
189
+
190
+ # Cython debug symbols
191
+ cython_debug/
192
+
193
+ # Temporary files
194
+ *.tmp
195
+ *.temp
196
+
197
+ # === System Files ===
198
+ # macOS
199
+ .DS_Store
200
+ .AppleDouble
201
+ .LSOverride
202
+ Icon
203
+ ._*
204
+ .DocumentRevisions-V100
205
+ .fseventsd
206
+ .Spotlight-V100
207
+ .TemporaryItems
208
+ .Trashes
209
+ .VolumeIcon.icns
210
+ .com.apple.timemachine.donotpresent
211
+ .AppleDB
212
+ .AppleDesktop
213
+ Network Trash Folder
214
+ Temporary Items
215
+ .apdisk
216
+
217
+ # Windows
218
+ Thumbs.db
219
+ Thumbs.db:encryptable
220
+ ehthumbs.db
221
+ ehthumbs_vista.db
222
+ Desktop.ini
223
+ $RECYCLE.BIN/
224
+ *.cab
225
+ *.msi
226
+ *.msix
227
+ *.msm
228
+ *.msp
229
+ *.lnk
230
+
231
+ # Linux
232
+ *~
233
+ .fuse_hidden*
234
+ .directory
235
+ .Trash-*
236
+ .nfs*
237
+
238
+ # === Linting & Analysis Results ===
239
+ # Linting output files (keep samples but ignore bulk results)
240
+ *linting_results*.json
241
+ *linting_results*.txt
242
+ *linting_results*.xml
243
+ corrected_linting_results.json
244
+ ignition_script_linting_results.json
245
+
246
+ # Analysis temporary files
247
+ debug_*.py
248
+ test_*.py
249
+ temp_*.py
250
+
251
+ # === Logs ===
252
+ *.log
253
+ logs/
254
+ *.log.*
255
+
256
+ # === Backup Files ===
257
+ *.bak
258
+ *.backup
259
+ *.orig
260
+ *.save
261
+ *~
262
+
263
+ # === Temporary Directories ===
264
+ tmp/
265
+ temp/
266
+
267
+ # === Project Specific ===
268
+ # Ignition project files that shouldn't be committed
269
+ # (keeping schema and documentation files)
270
+
271
+ # Large data files
272
+ *.csv.large
273
+ *.json.large
274
+ data/large/
275
+
276
+ # Personal notes and scratch files
277
+ NOTES.md
278
+ SCRATCH.md
279
+ TODO.personal.md
280
+ *.personal.*
281
+
282
+ # Environment specific configs
283
+ .env.local
284
+ .env.development
285
+ .env.test
286
+ .env.production
287
+
288
+ # === Dependencies ===
289
+ # Node modules (if any JS tooling is added)
290
+ node_modules/
291
+ npm-debug.log*
292
+ yarn-debug.log*
293
+ yarn-error.log*
294
+
295
+ # === Archives ===
296
+ *.zip
297
+ *.tar.gz
298
+ *.rar
299
+ *.7z
300
+
301
+ # === Claude Code ===
302
+ # Local settings contain user-specific paths; use .claude/settings.template.json as reference
303
+ .claude/settings.local.json
304
+
305
+ # === Security ===
306
+ # API keys, tokens, secrets
307
+ .secrets
308
+ *.key
309
+ *.pem
310
+ *.p12
311
+ *.pfx
312
+ secrets.json
313
+ .env.secret
314
+
315
+ # === Documentation Build ===
316
+ docs/build/
317
+
318
+ # === Keep Important Files ===
319
+ # Explicitly keep important project files
320
+ !core-ia-components-schema-robust.json
321
+ !ignition-perspective-linter.py
322
+ !ignition-script-linter.py
323
+ !*.md
324
+ !pyproject.toml
325
+ !requirements.txt
326
+ !README.md
327
+
328
+ # Keep sample linting results for reference
329
+ !linting_results.json.sample
330
+ !ENHANCED_LINTING_RESULTS_REPORT.md
331
+ !CORRECTED_LINTING_RESULTS_REPORT.md
332
+ !IGNITION_SCRIPT_LINTING_REPORT.md
333
+
334
+ !tests/test_*.py
@@ -0,0 +1,7 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.9.6
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - id: ruff-format
@@ -0,0 +1,8 @@
1
+ - id: ignition-perspective-lint
2
+ name: Ignition Perspective Linter
3
+ entry: ignition-lint
4
+ language: python
5
+ files: '\.json$'
6
+ args: ['--format=text', '--severity=warning', '--exit-code']
7
+ pass_filenames: true
8
+ description: 'Lint Ignition Perspective component files for schema compliance and best practices'
@@ -0,0 +1,27 @@
1
+ # Ralph Agent Configuration
2
+
3
+ ## Build Instructions
4
+
5
+ ```bash
6
+ # Build the project
7
+ uv sync
8
+ ```
9
+
10
+ ## Test Instructions
11
+
12
+ ```bash
13
+ # Run tests
14
+ uv run pytest
15
+ ```
16
+
17
+ ## Run Instructions
18
+
19
+ ```bash
20
+ # Start/run the project
21
+ uv run ignition-lint
22
+ ```
23
+
24
+ ## Notes
25
+ - Update this file when build process changes
26
+ - Add environment setup instructions as needed
27
+ - Include any pre-requisites or dependencies
@@ -0,0 +1,48 @@
1
+ # Ralph Development Instructions
2
+
3
+ ## Context
4
+ You are Ralph, an autonomous AI development agent working on the **ignition-lint** project.
5
+
6
+ **Project Type:** python
7
+
8
+
9
+ ## Current Objectives
10
+ - Review the codebase and understand the current state
11
+ - Follow tasks in fix_plan.md
12
+ - Implement one task per loop
13
+ - Write tests for new functionality
14
+ - Update documentation as needed
15
+
16
+ ## Key Principles
17
+ - ONE task per loop - focus on the most important thing
18
+ - Search the codebase before assuming something isn't implemented
19
+ - Write comprehensive tests with clear documentation
20
+ - Update fix_plan.md with your learnings
21
+ - Commit working changes with descriptive messages
22
+
23
+ ## Testing Guidelines
24
+ - LIMIT testing to ~20% of your total effort per loop
25
+ - PRIORITIZE: Implementation > Documentation > Tests
26
+ - Only write tests for NEW functionality you implement
27
+
28
+ ## Build & Run
29
+ See AGENT.md for build and run instructions.
30
+
31
+ ## Status Reporting (CRITICAL)
32
+
33
+ At the end of your response, ALWAYS include this status block:
34
+
35
+ ```
36
+ ---RALPH_STATUS---
37
+ STATUS: IN_PROGRESS | COMPLETE | BLOCKED
38
+ TASKS_COMPLETED_THIS_LOOP: <number>
39
+ FILES_MODIFIED: <number>
40
+ TESTS_STATUS: PASSING | FAILING | NOT_RUN
41
+ WORK_TYPE: IMPLEMENTATION | TESTING | DOCUMENTATION | REFACTORING
42
+ EXIT_SIGNAL: false | true
43
+ RECOMMENDATION: <one line summary of what to do next>
44
+ ---END_RALPH_STATUS---
45
+ ```
46
+
47
+ ## Current Task
48
+ Follow fix_plan.md and choose the most important item to implement next.
@@ -0,0 +1,23 @@
1
+ # Ralph Fix Plan
2
+
3
+ ## High Priority
4
+ - [ ] Review codebase and understand architecture
5
+ - [ ] Identify and document key components
6
+ - [ ] Set up development environment
7
+
8
+ ## Medium Priority
9
+ - [ ] Implement core features
10
+ - [ ] Add test coverage
11
+ - [ ] Update documentation
12
+
13
+ ## Low Priority
14
+ - [ ] Performance optimization
15
+ - [ ] Code cleanup and refactoring
16
+
17
+ ## Completed
18
+ - [x] Project enabled for Ralph
19
+
20
+ ## Notes
21
+ - Focus on MVP functionality first
22
+ - Ensure each feature is properly tested
23
+ - Update this file after each major milestone
@@ -0,0 +1,31 @@
1
+ # .ralphrc - Ralph project configuration
2
+ # Generated by: ralph enable
3
+ # Documentation: https://github.com/frankbria/ralph-claude-code
4
+
5
+ # Project identification
6
+ PROJECT_NAME="ignition-lint"
7
+ PROJECT_TYPE="python"
8
+
9
+ # Loop settings
10
+ MAX_CALLS_PER_HOUR=100
11
+ CLAUDE_TIMEOUT_MINUTES=15
12
+ CLAUDE_OUTPUT_FORMAT="json"
13
+
14
+ # Tool permissions
15
+ # Comma-separated list of allowed tools
16
+ ALLOWED_TOOLS="Write,Read,Edit,Bash(git *),Bash(npm *),Bash(pytest)"
17
+
18
+ # Session management
19
+ SESSION_CONTINUITY=true
20
+ SESSION_EXPIRY_HOURS=24
21
+
22
+ # Task sources (for ralph enable --sync)
23
+ # Options: local, beads, github (comma-separated for multiple)
24
+ TASK_SOURCES="local"
25
+ GITHUB_TASK_LABEL="ralph-task"
26
+ BEADS_FILTER="status:open"
27
+
28
+ # Circuit breaker thresholds
29
+ CB_NO_PROGRESS_THRESHOLD=3
30
+ CB_SAME_ERROR_THRESHOLD=5
31
+ CB_OUTPUT_DECLINE_THRESHOLD=70