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.
- ignition_lint_toolkit-0.1.0/.claude/settings.template.json +15 -0
- ignition_lint_toolkit-0.1.0/.github/workflows/ci.yml +62 -0
- ignition_lint_toolkit-0.1.0/.github/workflows/deploy-docs.yml +52 -0
- ignition_lint_toolkit-0.1.0/.github/workflows/ignition-lint-example.yml +34 -0
- ignition_lint_toolkit-0.1.0/.github/workflows/release.yml +41 -0
- ignition_lint_toolkit-0.1.0/.gitignore +334 -0
- ignition_lint_toolkit-0.1.0/.pre-commit-config.yaml +7 -0
- ignition_lint_toolkit-0.1.0/.pre-commit-hooks.yaml +8 -0
- ignition_lint_toolkit-0.1.0/.ralph/AGENT.md +27 -0
- ignition_lint_toolkit-0.1.0/.ralph/PROMPT.md +48 -0
- ignition_lint_toolkit-0.1.0/.ralph/fix_plan.md +23 -0
- ignition_lint_toolkit-0.1.0/.ralphrc +31 -0
- ignition_lint_toolkit-0.1.0/CREDITS.md +67 -0
- ignition_lint_toolkit-0.1.0/LICENSE +21 -0
- ignition_lint_toolkit-0.1.0/PKG-INFO +207 -0
- ignition_lint_toolkit-0.1.0/README.md +175 -0
- ignition_lint_toolkit-0.1.0/action.yml +87 -0
- ignition_lint_toolkit-0.1.0/docs/AI_DEVELOPMENT_RULES.md +283 -0
- ignition_lint_toolkit-0.1.0/docs/BINDING_INTEGRATION_SUMMARY.md +258 -0
- ignition_lint_toolkit-0.1.0/docs/BINDING_PATTERNS_ANALYSIS.md +330 -0
- ignition_lint_toolkit-0.1.0/docs/ENHANCED_VALIDATION_COMPLETE.md +217 -0
- ignition_lint_toolkit-0.1.0/docs/GETTING_STARTED.md +294 -0
- ignition_lint_toolkit-0.1.0/docs/IGNITION-LINTER-INTEGRATION.md +161 -0
- ignition_lint_toolkit-0.1.0/docs/JYTHON_VALIDATION_SUMMARY.md +285 -0
- ignition_lint_toolkit-0.1.0/docs/JYTHON_VALIDATION_TEST_REPORT.md +255 -0
- ignition_lint_toolkit-0.1.0/docs/LINTER-INTEGRATION-STRATEGY.md +463 -0
- ignition_lint_toolkit-0.1.0/docs/LINTER_USAGE.md +276 -0
- ignition_lint_toolkit-0.1.0/docs/MULTI_CODEBASE_SUMMARY.md +198 -0
- ignition_lint_toolkit-0.1.0/docs/PROJECT_OVERVIEW.md +218 -0
- ignition_lint_toolkit-0.1.0/docs/SCHEMA_IMPROVEMENT_SUMMARY.md +168 -0
- ignition_lint_toolkit-0.1.0/docs/SUPPRESSION.md +309 -0
- ignition_lint_toolkit-0.1.0/docs/VALIDATION-LINTING-STRATEGY.md +1342 -0
- ignition_lint_toolkit-0.1.0/docs/credits.md +57 -0
- ignition_lint_toolkit-0.1.0/docs/getting-started/basic-usage.md +153 -0
- ignition_lint_toolkit-0.1.0/docs/getting-started/installation.md +85 -0
- ignition_lint_toolkit-0.1.0/docs/guides/cli-reference.md +149 -0
- ignition_lint_toolkit-0.1.0/docs/guides/mcp-server.md +111 -0
- ignition_lint_toolkit-0.1.0/docs/guides/rule-codes.md +130 -0
- ignition_lint_toolkit-0.1.0/docs/guides/suppression.md +238 -0
- ignition_lint_toolkit-0.1.0/docs/integration/github-actions.md +113 -0
- ignition_lint_toolkit-0.1.0/docs/integration/pre-commit.md +81 -0
- ignition_lint_toolkit-0.1.0/docs/intro.md +67 -0
- ignition_lint_toolkit-0.1.0/examples/demo-linting-scenarios.py +249 -0
- ignition_lint_toolkit-0.1.0/examples/demo-linting-showcase.py +584 -0
- ignition_lint_toolkit-0.1.0/examples/good_view.json +44 -0
- ignition_lint_toolkit-0.1.0/examples/test_ignition_indentation_requirement.json +32 -0
- ignition_lint_toolkit-0.1.0/examples/test_view.json +44 -0
- ignition_lint_toolkit-0.1.0/examples/test_view_with_bad_jython.json +55 -0
- ignition_lint_toolkit-0.1.0/pyproject.toml +95 -0
- ignition_lint_toolkit-0.1.0/reports/CORRECTED_LINTING_RESULTS_REPORT.md +249 -0
- ignition_lint_toolkit-0.1.0/reports/ENHANCED_LINTING_RESULTS_REPORT.md +215 -0
- ignition_lint_toolkit-0.1.0/reports/GLOBAL_IGNITION_APPLICATION_REPORT.md +324 -0
- ignition_lint_toolkit-0.1.0/reports/IGNITION_SCRIPT_LINTING_REPORT.md +232 -0
- ignition_lint_toolkit-0.1.0/reports/binding_analysis_report.json +1517 -0
- ignition_lint_toolkit-0.1.0/reports/linting-report.txt +726 -0
- ignition_lint_toolkit-0.1.0/reports/multi_codebase_analysis_results.json +88 -0
- ignition_lint_toolkit-0.1.0/reports/schema_analysis_results.json +148 -0
- ignition_lint_toolkit-0.1.0/scripts/analyze-bindings.py +317 -0
- ignition_lint_toolkit-0.1.0/scripts/analyze-multiple-codebases.py +388 -0
- ignition_lint_toolkit-0.1.0/scripts/analyze-schema-gaps.py +146 -0
- ignition_lint_toolkit-0.1.0/scripts/analyze-validation-failures.py +330 -0
- ignition_lint_toolkit-0.1.0/scripts/apply-final-fixes.py +99 -0
- ignition_lint_toolkit-0.1.0/scripts/apply-scada-improvements.py +176 -0
- ignition_lint_toolkit-0.1.0/scripts/apply-schema-fixes.py +157 -0
- ignition_lint_toolkit-0.1.0/scripts/inspect-components-detailed.py +251 -0
- ignition_lint_toolkit-0.1.0/scripts/validate-components.py +258 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/__init__.py +19 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/_version.py +34 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/action_entry.py +130 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/cli.py +418 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/json_linter.py +237 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/__init__.py +5 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/linter.py +1253 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/schema_loader.py +17 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/perspective/view_model.py +291 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/reporting.py +139 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/__init__.py +23 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema-permissive.json +195 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema-robust.json +695 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/schemas/core-ia-components-schema.json +356 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/scripts/__init__.py +5 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/scripts/linter.py +633 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/server.py +198 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/style_checker.py +91 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/suppression.py +116 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/__init__.py +6 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/expression.py +284 -0
- ignition_lint_toolkit-0.1.0/src/ignition_lint/validators/jython.py +275 -0
- ignition_lint_toolkit-0.1.0/tests/test_cli_helpers.py +20 -0
- ignition_lint_toolkit-0.1.0/tests/test_expression_validator.py +96 -0
- ignition_lint_toolkit-0.1.0/tests/test_jython_validator.py +87 -0
- ignition_lint_toolkit-0.1.0/tests/test_perspective_enhancements.py +208 -0
- ignition_lint_toolkit-0.1.0/tests/test_schema_resolution.py +22 -0
- ignition_lint_toolkit-0.1.0/tests/test_suppression.py +252 -0
- ignition_lint_toolkit-0.1.0/tests/test_view_model.py +162 -0
- ignition_lint_toolkit-0.1.0/tools/ignition-lsp-server.py +107 -0
- ignition_lint_toolkit-0.1.0/tools/ignition-perspective-linter.py +7 -0
- ignition_lint_toolkit-0.1.0/tools/ignition-script-linter.py +7 -0
- ignition_lint_toolkit-0.1.0/tools/jython_whitespace_validator.py +172 -0
- ignition_lint_toolkit-0.1.0/uv.lock +1442 -0
- ignition_lint_toolkit-0.1.0/website/.gitignore +20 -0
- ignition_lint_toolkit-0.1.0/website/README.md +41 -0
- ignition_lint_toolkit-0.1.0/website/docusaurus.config.ts +117 -0
- ignition_lint_toolkit-0.1.0/website/package-lock.json +18441 -0
- ignition_lint_toolkit-0.1.0/website/package.json +47 -0
- ignition_lint_toolkit-0.1.0/website/sidebars.ts +58 -0
- ignition_lint_toolkit-0.1.0/website/src/css/custom.css +215 -0
- ignition_lint_toolkit-0.1.0/website/src/pages/index.tsx +114 -0
- ignition_lint_toolkit-0.1.0/website/static/.nojekyll +0 -0
- ignition_lint_toolkit-0.1.0/website/static/img/favicon.ico +0 -0
- ignition_lint_toolkit-0.1.0/website/tsconfig.json +8 -0
|
@@ -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,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
|