Real values from a live run had reached the README, the demo and several fixtures: a chat name, its dialog id, Telegram file ids, filenames from the chat, and the archive's own statistics. This repository archives a private chat, so those name a real account and its contents, and history keeps them long after the file is edited. The values are gone from every commit. CLAUDE.md records the rule so they do not come back, with a placeholder for each kind — a fixture keeps the property it exists to test, so a multi-byte filename test still gets a multi-byte name, just an invented one.
1.3 KiB
Project instructions
No real data in the repository
Everything committed here — code, tests, comments, docs, sample output — uses abstract example values. Never a real chat name, chat id, message id, filename, account handle, or archive statistic, including ones taken from a session transcript or a live run.
This repository archives a private Telegram chat, so real values name a real account and its contents. Once committed they persist in history even after the file is edited, and scrubbing them means rewriting history and force-pushing.
Use placeholders instead:
| Kind | Use |
|---|---|
| chat username | mychannel, @mychannel |
| chat / dialog id | 1234567890 (Bot API form -1001234567890) |
| message id | small round numbers, e.g. 4242 |
| Telegram file id | 1000000000000000001 and up |
| remote | myremote:archive, or a named backend when the backend matters |
| filenames | descriptive fakes; keep the property under test (unicode, emoji, length) |
| counts and sizes | round numbers that are obviously illustrative |
Keep the property a fixture exists to test. A test for multi-byte names still needs a multi-byte name — make it an invented one, not a real file's.
Real values from a live run belong in the terminal, and in plans/, which is
git-ignored.