spec-kitty / spec-kitty/spec-kitty
Fork packaging: complete package-identity SSOT (detection layer + internal spec-kitty-cli hardcodes)
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 165
- Avg merge
- 14h 52m
- Merged PRs (30d)
- 303
Description
Follow-up from the #2859 landing-pass review (paula-patterns MAJOR-1, architect-alphonso). #2859 wires the `DistributionProfile` through argv/display/version resolution, but two clusters still hardcode the upstream distribution name, so a renamed fork is only partially supported:
**Detection layer (paula MAJOR-1)** — resolve the fork name (+ aliases) instead of `_PACKAGE_NAME = "spec-kitty-cli"`:
- `src/specify_cli/compat/_detect/install_method.py:62,102,195,209`
- `src/specify_cli/compat/_adapters/uv_receipt.py:90,148,324` (equality → membership over {name, *aliases})
**Internal self-references (broad sweep)** — route through `resolve_cli_package_name()` where the value is user-facing identity; keep as tool-lineage only where a stamp is deliberately the upstream tool:
- `src/specify_cli/core/file_lock.py:114` (provenance stamp)
- `src/charter/synthesizer/{synthesize_pipeline.py:65,orchestrator.py:132,resynthesize_pipeline.py:364}`
- `src/specify_cli/shims/generator.py:48`, `src/specify_cli/template/asset_generator.py:23`
Each site needs a per-case adjudication (identity vs lineage) + a regression test. Being addressed as a fold on the #2859 branch by the landing pass; this issue tracks the scope and any deferred sites.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Contributor guide
Research direction
Start with the DistributionProfile and resolve_cli_package_name() work from #2859, then inspect the listed detection files and internal self-reference sites. Decide for each occurrence whether it represents fork identity or upstream lineage, and add a regression test for each addressed case; the scope is complete when detection, aliases, and user-facing references no longer rely on inappropriate hardcodes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, developer-experience, tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100