Rules
- SCP01: Disallowed domain
- SCP02: URL in allowed_domains
- SCP03: Improper response URL join
- SCP04: Improper response selector
- SCP05: lambda callback
- SCP06: Improper first match extraction
- SCP07: Redefined setting
- SCP08: No project USER_AGENT
- SCP09: robots.txt ignored by default
- SCP10: Incomplete project throttling
- SCP11: Improper setting definition
- SCP12: Imported setting
- SCP13: Incomplete requirements freeze
- SCP14: Unsupported requirement
- SCP15: Insecure requirement
- SCP16: Unmaintained requirement
- SCP17: Redundant setting value
- SCP18: No root stack
- SCP19: Non-root stack
- SCP20: Stack not frozen
- SCP21: No root requirements
- SCP22: Non-root requirements
- SCP23: Invalid scrapinghub.yml
- SCP24: Missing stack requirements
- SCP25: Unexisting requirements.file
- SCP26: requirements.file mismatch
- SCP27: Unknown setting
- SCP28: Deprecated setting
- SCP29: Setting needs upgrade
- SCP30: Removed setting
- SCP31: Missing setting requirement
- SCP32: Wrong setting method
- SCP33: Base setting use
- SCP34: Missing changing setting
- SCP35: No-op setting update
- SCP36: Invalid setting value
- SCP37: Unpicklable setting value
- SCP38: Low project throttling
- SCP39: No contact info
- SCP40: Unneeded setting get
- SCP41: Unneeded import path
- SCP42: Unneeded path string
- SCP43: Unsupported Path object
- SCP45: Unsafe meta copy
- SCP46: Raw Zyte API params