Identify the input text (typically one word or a short phrase). Default behavior lowercases the text and ignores non-letters so repeated letters like a/ A are merged.
Run scripts/count_letters.py "<text>" to get a frequency table. Use the optional flags when needed:
--case-sensitive keeps uppercase and lowercase separate.--include-non-alpha counts digits/punctuation as-is.--json returns machine-friendly JSON for downstream processing.Summarize the counts for the user. Include clarifying notes (e.g., whether you ignored punctuation) when relevant.
Lightweight CLI/utility that powers this skill. It exposes two layers:
python3 scripts/count_letters.py "balloon" --jsonfrom scripts.count_letters import count_letters and call count_letters(text, case_sensitive=False, include_non_alpha=False) to get a collections.Counter.Sample CLI output (default options):
text
$ python3 scripts/count_letters.py "balloon"
Character Count
--------- -----
a 1
b 1
l 2
o 2
n 1
Sample JSON output (good for embedding directly into responses):
text
$ python3 scripts/count_letters.py "AaB!" --case-sensitive --include-non-alpha --json
{"A": 1, "a": 1, "B": 1, "!": 1}
balloon contains b×1, a×1, l×2, o×2, n×1 (case-insensitive, punctuation ignored).”--json flag.--include-non-alpha is not set, the script intentionally reports “(no characters were counted)”. Explain why in the response.