Add conservative linting via ruff. Focus on catching real bugs, not enforcing style.
Integrate with existing quality_gates.py.
pyproject.toml with ruff config (conservative rules only)quality_gates.py extended with gate_lint_check() for pre-merge[tool.ruff]
target-version = "py311"
line-length = 120
select = ["F", "E9", "S1"] # Pyflakes, syntax errors, security basics
ignore = ["S101"] # Allow assert statements
exclude = ["archive/", "migrations/", "scripts/"]
[tool.ruff.per-file-ignores]
"test_*.py" = ["S"] # Allow security rules in testspyproject.toml with conservative configruff check on entire codebase — catalog findingsgate_lint_check() to quality_gates.py for core files onlyextend-ignore-names key from pyflakes section{
"_reset_note": "This task was reset after a database incident on 2026-04-17.\n\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\ncorruption. Some work done during Apr 16-17 may have been lost.\n\n**Before starting work:**\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\n\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\nSCIDEX_DB_BACKEND=postgres env var.",
"_reset_at": "2026-04-18T06:29:22.046013+00:00",
"_reset_from_status": "done"
}