Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 29s
Validate Config / YAML Lint (pull_request) Failing after 14s
Smoke Test / smoke (pull_request) Failing after 22s
Validate Config / JSON Validate (pull_request) Successful in 22s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 1m6s
Validate Config / Python Test Suite (pull_request) Has been skipped
Validate Config / Shell Script Lint (pull_request) Failing after 1m5s
Validate Config / Cron Syntax Check (pull_request) Successful in 12s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 13s
Validate Config / Playbook Schema Validation (pull_request) Successful in 30s
PR Checklist / pr-checklist (pull_request) Successful in 4m36s
Architecture Lint / Lint Repository (pull_request) Failing after 23s
Add scripts/triage_backlog.py — a mechanized triage tool for the timmy-config issue backlog. Implements the smallest concrete fix required by #478: close stale issues (>14d inactive) and apply P0/P1/P2/P3 priority labels to remaining open issues. Features: - Fetches all open issues via Gitea API (type=issues filter) - Detects stale issues: no activity for STALE_DAYS (14) - Identifies potential duplicates by normalized title - Assigns priority labels (P0=critical/security, P1=high/bugs, P2=medium, P3=low/enhancement) - Creates P0-P3 labels if missing in the target repo - Dry-run default; --close-stale to enact closures - JSON output mode for automation; --output for report files - Exit code 1 when stale issues found (CI-friendly) Tests (tests/test_triage_backlog.py): 11 tests covering stale detection, duplicate normalization, and priority heuristics. Closes #478