[Bug]: Local config override file name differs between the docs (`<id>-config.local.yml`) and ConfigManager (`local-config.yml`)
メンテナーはふだん 1 日以内に返信
評価
調査の方向性
src/specify_cli/extensions/__init__.py の ConfigManager._get_local_config を読み、期待されるファイル名をユーザー向け、API、開発者向けの各ガイド、および src/specify_cli/shared_infra.py の ignore パターンと照らし合わせます。issue の再現スクリプトを使って該当するファイル名を確認してください。選んだ名前に、設定の上書き、hook の条件、Git の ignore 動作、関連する削除または復元処理が一致すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Bug Description
The user-facing extension docs tell users to put local overrides in .specify/extensions/<id>/<id>-config.local.yml. ConfigManager._get_local_config reads .specify/extensions/<id>/local-config.yml instead (src/specify_cli/extensions/__init__.py:5350). A user who follows the guide gets no override, both in get_config() and in hook conditions such as config.x is set. The shared .specify/.gitignore only covers extensions/*/local-config.yml (src/specify_cli/shared_infra.py:33), so the documented file is also not ignored by git, although the guide says it is.
Either side could be the one to change. The code, design/extension.md:146 and shared_infra.py:33 use local-config.yml. These say <id>-config.local.yml:
extensions/EXTENSION-USER-GUIDE.md:351,361,377,910extensions/EXTENSION-API-REFERENCE.md:565,887extensions/EXTENSION-DEVELOPMENT-GUIDE.md:388
The remove, backup and rescue code also preserves *-config.local.yml (for example __init__.py:3523-3549).
Steps to Reproduce
Save this as repro.py and run uv run python -I repro.py from the repository root.
import os, tempfile
from pathlib import Path
from specify_cli.extensions import ConfigManager
proj = Path(tempfile.mkdtemp())
d = proj / ".specify/extensions/jira"
d.mkdir(parents=True)
(d / "jira-config.yml").write_text('project:\n key: "MSATS"\n')
(d / "jira-config.local.yml").write_text('project:\n key: "MYTEST"\n')
os.environ.pop("SPECKIT_JIRA_PROJECT_KEY", None)
print("with jira-config.local.yml: project.key =", ConfigManager(proj, "jira").get_value("project.key"))
(d / "jira-config.local.yml").rename(d / "local-config.yml")
print("with local-config.yml: project.key =", ConfigManager(proj, "jira").get_value("project.key"))
Expected Behavior
Per extensions/EXTENSION-USER-GUIDE.md:359-383, jira-config.local.yml overrides jira-config.yml, so project.key is MYTEST. If local-config.yml is the intended name, the user guide, API reference and development guide should say so.
Actual Behavior
with jira-config.local.yml: project.key = MSATS
with local-config.yml: project.key = MYTEST
Specify CLI Version
1.2.4.dev0 (main at 27d14e2)
AI Agent
Not applicable
Operating System
Linux 6.18 (Ubuntu container)
Python Version
Python 3.12.3
Additional Context
The docstring of ConfigManager itself (__init__.py:5267) names local-config.yml, so the code is at least consistent with itself and with the design document.
Also reproduced on macOS (Darwin 25.6, arm64) with Python 3.14.4 and uv run python -I repro.py against 27d14e2; the output matches the above.
AI Disclosure
Found and reproduced with Claude Code (model: Claude Opus 4.8), run autonomously under human supervision. The human reporter re-ran every reproduction above before filing.
- 主要言語
- Python
- スター
- 144k
- フォーク
- 12.9k
- 平均マージ
- 1日 6時間
- マージ済み PR(30日)
- 194
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/spec-kit のほかの issue
-
The Python branch-creation port accepts an oversized `--number` and crashes at `int()` instead of rejecting it対応中かも @github-actions が 3 日前に担当しました。 オープンbug-assess bug-fix bug-test fix-proposed severity-low tests-passing triage-can-wait
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
github/spec-kit#5194 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: `create-new-feature.sh` rejects the feature descriptions `-n`, `-e` and `-E`, which the Python script accepts対応中かも @WOLIKIMCHENG が 8 日前に担当しました。 オープンtriage-can-wait
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: `bundle init <bundle>` initialises with the default integration instead of the bundle's, then aborts with a clash対応中かも @chelsealong が 9 日前に担当しました。 オープンtriage-must-have
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: `specify preset set-priority` does not update agent command files that are already written対応中かも @mikamikasuki が 9 日前に担当しました。 オープンtriage-must-have
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: Extension alias conflict check misses spellings that map to the same file, so one extension overwrites and then deletes another's alias対応中かも @chelsealong が 7 日前に担当しました。 オープンtriage-must-have
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
github/spec-kit の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
yt-project/yt#5624 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NousResearch/hermes-agent#148376 ·
メンテナーはふだん 1 日以内に返信
-
Analysis
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
SACGF/variantgrid#2615 ·
メンテナーはふだん 1 日以内に返信