Lần đầu tôi thấy một library mà không có tí code nào
whenwords là một thư viện format thời gian nhưng không có 1 dòng code nào. Thay vào đó, repo giữ SPEC.md để mô tả hành vi cần có, tests.yaml để định nghĩa test case dạng input/output (độc lập ngôn ngữ), và INSTALL.md là prompt để bạn dán vào Claude/Codex/Cursor… để LLM tự sinh implementation + test runner. Thư viện target 5 hàm phổ biến: timeago, duration, parse_duration, human_date, date_range.
Và LLM có thể support được nhiều ngôn ngữ nên việc sinh code sẽ đúng theo nhu cầu của bạn.
Đây là một repo nhỏ nhưng gợi ý một cách làm khác đi trong LLM-era.
Nếu bạn từng đau đầu vì “cùng một logic, 7 SDK khác nhau”, hướng này khá hợp lý. Spec là source of truth. Tests là contract. Implementation là thứ có thể thay và có thể regen. Repo không chứa code, repo chứa định nghĩa.
Vậy cái giá phải trả là gì? Không có reference implementation thì mỗi lần gen có thể ra khác nhau, khó review. Và nếu spec/test thiếu edge-case (timezone/DST/locale/rounding) thì implementation sẽ khó chính xác. Thay vì tôi có 1 well-tested library thì tôi chỉ có toàn định nghĩa ở mặt lý thuyết.
Tôi đánh giá ở mức thử nghiệm ý tượng, wide-adoption? not yet.