Repository navigation
Conversation
Use local-config.yml in the user guide, API reference, development guide, CLI reference, and template comments. ConfigManager and the managed ignore rule already use that name; the old instructions silently failed to apply. Validation: 21 existing ConfigManager checks and 4 managed-ignore checks passed. Reproduced the old filename being ignored by ConfigManager and verified the documented filename overrides project.key and is gitignored. git diff --check passed. No runtime behavior or configuration values change. Fixes github#5083 Assisted-by: OpenAI Codex (model: unknown, autonomous)
There was a problem hiding this comment.
🟡 Changes recommended
The template and user-guide ignore rules still fail to cover local-config.yml, leaving local overrides trackable and risking exposure of private settings.
2 open issues
What changed in this PR
Aligns Spec Kit’s extension configuration documentation with local-config.yml, the filename already used by the runtime, to address the mismatch reported in #5083. Runtime loading, preservation, and configuration values are unchanged.
Changes:
- Correct local-override filenames in configuration layouts, precedence lists, and examples.
- Update the starter configuration template’s guidance comment.
| File | Description |
|---|---|
extensions/template/config-template.yml |
Corrects the local-override filename in a comment. |
extensions/EXTENSION-USER-GUIDE.md |
Updates configuration layouts, precedence, and development examples. |
extensions/EXTENSION-DEVELOPMENT-GUIDE.md |
Corrects the documented local-override path. |
extensions/EXTENSION-API-REFERENCE.md |
Updates configuration precedence and directory layout. |
docs/reference/extensions.md |
Aligns CLI reference examples with the runtime filename. |
Review effort: Max
|
|
||
| # Local Overrides: | ||
| # For local development, create my-extension-config.local.yml (gitignored) | ||
| # For local development, create local-config.yml (gitignored) |
Address PR github#5159 review by correcting both user-guide ignore examples and adding local-config.yml to the extension source template's ignore rules. Preserve the legacy template pattern for compatibility. Validation: temporary Git repositories reproduce both missed local-config.yml matches before the change. Afterward, the template ignores current and legacy override names, the guide snippet ignores installed local-config.yml, and ordinary project configs remain trackable (five real Git checks passed). git diff --check passed. Assisted-by: OpenAI Codex (model: unknown, autonomous)
|
Addressed both review findings in da2483b. The Version Control list and copyable ignore snippet now name .specify/extensions/*/local-config.yml. The extension source template also ignores local-config.yml, alongside its legacy *-config.local.yml rule. Verified with temporary Git repositories using the actual template and the guide snippet: both missed local-config.yml matches reproduce before the change. Afterward, all five checks pass: current and legacy template override names are ignored, the installed local override is ignored by the guide snippet, and ordinary project config files remain trackable in both contexts. git diff --check passed. AI disclosure: OpenAI Codex acted autonomously on behalf of @gavenren to make these review corrections, run the checks and write this summary. Exact underlying model identifiers and reasoning settings are unavailable; no human review or manual testing is claimed. |
|
Please address Copilot feedback |
|
Rechecked current head da2483b after the follow-up request. The remaining template finding is already addressed there: extensions/template/.gitignore contains local-config.yml on line 2 and retains *-config.local.yml on line 3. Current file: https://github.com/github/spec-kit/blob/da2483baccb1f9925be1db3433ab88269137225f/extensions/template/.gitignore Re-ran git check-ignore in fresh temporary repositories using that exact committed template and the committed guide snippet. All five checks pass: current and legacy local overrides are ignored by the template, the guide ignores the installed local override, and ordinary project configuration stays trackable in both contexts. Please re-review da2483b. AI disclosure: posted on behalf of @gavenren by OpenAI Codex in ChatGPT Work Mode, acting autonomously. AI rechecked the committed files, ran these checks and wrote this response. The exact underlying model and reasoning setting are unavailable; no human review or manual testing is claimed. |

Description
The guides name
<id>-config.local.yml, but ConfigManager readslocal-config.ymland the managed Git ignore rule covers that filename. Following the current guide therefore leaves overrides unapplied and the supposedly local file trackable.Use the existing runtime filename consistently in the extension user guide, API reference, development guide, CLI reference, and config template comment. Runtime loading, preservation, and configuration values are unchanged.
Fixes #5083.
Testing
.venv/bin/python -m pytest tests/test_extensions.py -k ConfigManager -q: 21 passed..venv/bin/python -m pytest tests/test_shared_infra_gitignore.py -q: 4 passed.project.key=MSATS; renaming it tolocal-config.ymlreturnsMYTEST.git check-ignoreconfirms the corrected filename is ignored by the managed rule.git diff --check: passed.No new behavioral tests were added for documentation and comments. The full repository suite was not run.
AI Disclosure
OpenAI Codex in ChatGPT Work Mode acted autonomously on behalf of @gavenren. AI investigated the issue, checked competing PRs, edited the documentation, ran the listed validation, and authored the commit and this description. Exact model identifiers and reasoning settings were not exposed by the runtime. No human line-by-line review or manual testing is claimed. The commit includes an
Assisted-by:trailer.