You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
audit-project MVP lint rules for SciTeX/Clew conventions (PS-PATH-001 / PS-PATH-002 / PS-CLEW-001 / PS-AGENT-001) (#98). Four new rules under src/scitex_dev/_cli/audit/_project/:
PS-PATH-001 (E) — config/PATH.yaml with the forbidden outer PATH: wrapper. The filename gives the namespace; wrapping moves real values to CONFIG.PATH.PATH.<KEY> and breaks 100% of access sites with AttributeError.
PS-PATH-002 (E) — config/PATH.yaml leaf values without the f"..." prefix. eval(CONFIG.PATH.<KEY>) on bare "./data/foo" raises SyntaxError because the body parses as a Python expression ./data/foo, not a string literal.
PS-CLEW-001 (W) — *.py calls scitex_clew.add_claim but the same module never calls clew.verify_claim / clew.list_claims for self-verification. Encourages the "solver runs Clew at its own runtime and notices failures itself" pattern from the paper-scitex-clew operator directive 2026-06-01.
PS-AGENT-001 (E) — scripts/agent/*.py registers clew claims but never persists a real claims.json file. The DAG terminus must be a file, not a script node.
34 new tests (25 + 9 split-siblings to comply with PA-307 §3 TQ002 / TQ007).
linter: host the scitex-umbrella STX-I001–I007 (import hygiene) and STX-S001–S008 (@stx.session structure) rules in-house as first-class engine built-ins (_rules/_import_hygiene.py, _rules/_session_structure.py, registered in _rules.ALL_RULES). Every id, severity, category, message, suggestion, and requires gate is preserved verbatim, so runtime behavior is identical — the scitex-gated rules still fire only when scitex is installed. These no longer depend on the umbrella's scitex_dev.linter.plugins entry-point plugin; scitex-dev linter surfaces them straight from its own registry. The plugin-loader mechanism is untouched (other leaf packages still use it). Umbrella-thinning Phase A — lets the umbrella delete its scitex/_linter_plugin.py once it pins this release.
Fixed
Skill page scientific/02_research-project_03_project-structure-config-and-data.md (#97): the YAML example violated the two firm rules immediately above it (outer PATH: wrapper + bare-string leaves). Rewritten to follow both rules unambiguously; the rules themselves are unchanged — they were already correct.
Changed
Untracked the orphan docs/to_claude/examples/example-python-project-scitex/config/PATH.yaml example (gitignored by .gitignore:14 but accidentally tracked from before the gitignore line was added). The same file is correctly untracked in scitex-clew and scitex-io. Aligns scitex-dev with the rest of the ecosystem.