fix: Use FilterMode enum for root task scoping with exclude-only filters
Replace inline filter string parsing in the builder with a structured
FilterMode enum returned from scope resolution. This pushes
classification into the scope layer where TargetSelector is already
parsed, fixing correctness gaps with directory-based root exclusion
(e.g. --filter=!{.}) and eliminating duplicated filter microsyntax
knowledge.
Add unit tests for classify_filter_mode covering all filter mode
combinations (exclude-only, root exclusion by name/directory/wildcard,
mixed filters, affected, inference). Update ARCHITECTURE.md per repo
policy.
Fixes #8672