Skip to content

docs(extensions): name the runtime local override file - #5159

Open
gavenren wants to merge 2 commits into
github:mainfrom
gavenren:docs/5083-local-config-name
Open

gavenren wants to merge 2 commits into
github:mainfrom
gavenren:docs/5083-local-config-name

Conversation

@gavenren

Copy link
Copy Markdown
Contributor

Description

The guides name <id>-config.local.yml, but ConfigManager reads local-config.yml and 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.
  • Ran the issue reproduction in an isolated temporary Git project: the old filename leaves project.key=MSATS; renaming it to local-config.yml returns MYTEST. git check-ignore confirms 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

  • I did use AI assistance.

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.

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)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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

Comment thread extensions/EXTENSION-USER-GUIDE.md

# 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)
@gavenren

Copy link
Copy Markdown
Contributor Author

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.

@mnriem mnriem added the triage-must-have Verdict: high-value, important work for Spec Kit — do first label Oct 28, 2026
@mnriem
mnriem requested a max review from Copilot October 28, 2026 16:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the documentation and template updates aligning local-override references with local-config.yml.

1 open issue
1 resolved since last review

Review effort: Max

@mnriem

mnriem commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

Please address Copilot feedback

@mnriem mnriem added the author-awaiting Waiting on author response label Oct 28, 2026
@gavenren

Copy link
Copy Markdown
Contributor Author

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues were identified for the documentation and template updates aligning local override references with local-config.yml.

1 open issue

Review effort: Max

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author-awaiting Waiting on author response triage-must-have Verdict: high-value, important work for Spec Kit — do first

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Local config override file name differs between the docs (<id>-config.local.yml) and ConfigManager (local-config.yml)

3 participants