f5b68ad58b
Resolves the PR's conflict with main (2252 commits). Two conflicts, both "each side added an independent block in the same place" — kept both: - gateway/run.py — the housekeeping loop. This branch adds the Skill Sync pulls inside the CURATOR_EVERY branch (12-space indent); main adds a stale-session auto-archive as a sibling `if` at loop level (8-space). Different scopes, so the naive union would have mis-nested the archive block into the curator branch; kept each at its own indent level. - tools/skill_manager_tool.py — the _edit_skill result dict. This branch appends the org auto-propose note; main appends _add_description_prompt_preview(). Independent, order-insensitive. No behaviour dropped from either side. Verified: 3552 passed / 0 failed across 63 suites (scope regenerated to include main's new maybe_auto_archive / _add_description_prompt_preview consumers) via scripts/run_tests.sh. `hermes sync` and `hermes sync status` still work against a live token, resolving the production plane default. The Pyright Optional-parameter warnings in skill_manager_tool.py are pre-existing on main (`content: str = None` etc.), not introduced here.