Skip to content

Commit f754101

Browse files
dadachiclaude
andcommitted
contributing: link to rename-safety contract
The agent at nativeapptemplate-agent mechanically renames Shop, Shopkeeper, and ItemTag across all case forms when generating customized projects. Some substrate patterns ("Swipe an item tag to ...") read correctly here but produce ungrammatical output ("Swipe an patient to ...") after the rename pipeline substitutes a consonant-starting word. The canonical conventions for substrate maintainers live in docs/SUBSTRATE-CONTRACT.md in the agent repo. Linking from CONTRIBUTING so future PRs touching user-facing strings see the rules before merging. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 95b03eb commit f754101

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,16 @@ Architecture: Simple MVVM Layered Architecture with `@Observable` state manageme
4848
- Tests use [Swift Testing](https://developer.apple.com/xcode/swift-testing/).
4949
- Place new tests alongside existing ones mirroring the source structure.
5050

51+
## Rename safety
52+
53+
This substrate is consumed by [`nativeapptemplate-agent`](https://github.com/nativeapptemplate/nativeapptemplate-agent), which mechanically renames `Shop`, `Shopkeeper`, and `ItemTag` (and all their case forms — PascalCase, snake_case, camelCase, flat, UPPER_SNAKE, humanized lower/title/sentence × singular/plural) to user-chosen target words. Some patterns that read fine in this repo break when renamed.
54+
55+
Before merging changes that touch user-facing strings, test descriptors, or comments mentioning domain entities, read the [substrate rename-safety contract](https://github.com/nativeapptemplate/nativeapptemplate-agent/blob/main/docs/SUBSTRATE-CONTRACT.md).
56+
57+
**Quick rule of thumb:** avoid `"a"` / `"an"` directly preceding `Shop`, `Shopkeeper`, or `ItemTag` (or their humanized forms) — write self-contained or article-free phrasings instead.
58+
59+
**Failure mode this prevents:** a string like `"Swipe an item tag to ..."` reads correctly here but produces `"Swipe an patient to ..."` after the rename pipeline substitutes a consonant-starting word like `Patient`.
60+
5161
## Development Setup
5262

5363
See [README.md](README.md) for full setup instructions.

0 commit comments

Comments
 (0)