`save_init_options()` omitted a final newline, causing
`end-of-file-fixer` from .pre-commit-config.yaml (#3430) to flag
a diff on every `specify integration upgrade` run.
Append `\n` to the `json.dumps()` output to match POSIX
expectations and align with `integration_state.py` which already
includes the trailing newline.
Ref: https://github.com/github/spec-kit/pull/3430
Extension command registration now resolves the active skills directory before writing command artifacts. This lets initialized skills-backed agents recover a missing active skills directory while preserving the existing preset registration behavior.
Add regression coverage for missing active skills directories, shared skills directories, and symlinked parent guards.
Fixes#2769.
Co-authored-by: OpenAI Codex <codex@openai.com>