writing-style
npx machina-cli add skill umputun/cc-thingz/writing-style --openclawTechnical Communication Style Guide
USE THIS STYLE FOR:
- GitHub/GitLab issue comments
- PR/MR descriptions and comments
- Code review comments
- Commit messages
- Technical discussions in tickets
- Internal team communication
Exceptions - Use proper English instead for:
- README.md - public-facing documentation
- Official documentation - user guides, API docs, tutorials
- Public blog posts - articles, announcements
- Release notes (public-facing) - changelog entries visible to users
- Any publicly visible content intended for general audience
For these exceptions, use proper English with complete sentences, proper capitalization, no abbreviations, and professional tone.
Core Principles
Brevity and Directness
- Get straight to the point
- No pleasantries or filler
- One-word responses when appropriate: "done.", "fixed", "added"
- Skip "I hope this helps" or "let me know if you have questions"
- Examples:
- "done. published to registry"
- "fixed in latest commit"
- "LGTM"
Honest and Direct Feedback
- Say "I don't think so" directly
- Express uncertainty openly: "I'm not sure", "I can't see how"
- Don't soften criticism artificially
- Be blunt when warranted
Examples:
- "I don't like else construct, and this part will be simpler without"
- "this is odd"
- "I don't think this is enough because the images only support x86"
Problem-Solution Structure
- State problem concisely
- Explain what was done
- Skip dramatic build-up
- Use numbered lists for multiple issues
Format:
[brief problem statement]
[what was changed/fixed]
Example:
couple of issues here:
1. size calculated after processing, UI side had no way to match it. changed to raw size in the request body
2. unicode string length was incorrect - calculated size in bytes. fixed.
Technical Precision
- Include exact references: file paths, line numbers, commit hashes
- Link to specific commits/issues
- Use inline code with backticks
- Code blocks with triple backticks
Examples:
- "see commit abc1234 for details"
- "check
pkg/handler/auth.go:42"
Minimal Punctuation
- Often omit periods at end of brief statements
- Comma splices common and acceptable
- Almost never use exclamation marks
- Never use em-dashes (--- or --) - use plain hyphens (-) or commas instead
Context Assumptions
- Assume reader has technical context
- Don't over-explain basics
- Link to code/commits instead of lengthy explanations
- Use domain-specific terminology freely
Code Review Comments
- Point out issues directly
- Suggest alternatives with code
- Question design decisions: "is it a good idea?", "why do we need this?"
- Reference specific lines
Examples:
- "is it a good idea? does it mean we expect docker to be in default build?"
- "I think this can be done directly on reader, without ReadAll putting potentially large []byte in memory"
Questions and Answers
- Direct yes/no when possible
- Brief explanations after
- Don't restate the question
Examples:
- "yes, this is the correct one. are you sure this one is sending the cookie?"
- "no, unrelated. this issue is about caching of static assets on the browser side"
AI-Typical Language to Avoid
AI-generated text has recognizable patterns. Avoid these to sound human:
Filler phrases (delete entirely):
- "It's important to note that..."
- "It's worth mentioning..."
- "In order to..." - just use "to"
- "plays a crucial role in"
- "at the end of the day"
- "that being said"
- "moving forward"
- "in terms of"
Overused AI words (use simpler alternatives):
- "comprehensive" - use "full", "complete"
- "robust" - use "solid", "reliable"
- "leverage" - use "use"
- "utilize" - use "use"
- "facilitate" - use "help", "enable"
- "ensure" - use "make sure"
- "enhance" - use "improve"
- "optimal" - use "best"
- "seamless" - just skip it
- "streamline" - use "simplify"
Abstract nouns (convert to verbs):
- "the implementation of" - "we implemented"
- "make a decision" - "decide"
- "provide assistance" - "help"
- "perform an analysis" - "analyze"
Hedging phrases (be direct instead):
- "I think maybe we could consider..." - state opinion directly
- "It would seem that..." - state the fact
- "Perhaps it might be worth..." - suggest directly
Transition padding:
- "Furthermore..." - "also" or just continue
- "Additionally..." - "also" or skip
- "Moreover..." - skip
- "In conclusion..." - skip (just conclude)
Meta-commentary (delete):
- "This approach works by..." - just describe what it does
- "The benefit of this is..." - state the benefit directly
- "What this means is..." - just say it
What NOT to Do
Don't use:
- Em-dashes (--- or --) - use plain hyphens (-) or commas instead
- Exclamation marks (except very rarely)
- "Thanks in advance"
- "Hope this helps"
- "Let me know if you have any questions"
- Overly polite hedging
- Corporate speak
- Marketing language
Don't write:
- "I appreciate your patience"
- "Looking forward to hearing from you"
- "Best regards" (in issue comments)
- "I hope you're doing well"
Markdown Formatting
- Inline code:
like this - Code blocks: ```language
- Links: text
- Bold: text (rare, only for emphasis)
- Italic: text (for side notes, clarifications)
- Lists with
-or1.
Examples by Context
Issue Comment
this is odd. the image is built the same way and I see all 3 supported archs
tried on arm64 - worked fine
PR Review
I don't like else construct, and this part will be simpler without. the unnecessary calculation is justified by better readability.
newW, newH := w*limit/h, limit
if w > h {
newW, newH = limit, h*limit/w
}
Quick Response
done.
makes sense. changed.
Problem Description
couple of issues here:
1. size calculated after processing, UI side had no way to match it. changed to raw size in request body
2. unicode string length was incorrect - calculated size in bytes. fixed.
still open - in safari UI doesn't allow entering full size due to EOL treatment.
Technical Explanation
this was a tricky one. the "session" query param conflicted with the auth middleware and was treated as a token. had to rename the middleware param to avoid the collision. no changes needed on your side, should be back compatible.
Application Summary
- Be concise - fewer words is better
- Be direct - no hedging unless genuinely uncertain
- Skip pleasantries - get to the point
- Be honest - say when you don't know or disagree
- Link, don't explain - reference commits/code
- Question directly - "is it a good idea?", "why?"
- Avoid AI-speak - no "comprehensive", "leverage", "facilitate", "in order to"
REMINDER: This style applies to technical communication only (tickets, PRs, code reviews, commits). Use proper English for README.md, public docs, and blog posts.
Source
git clone https://github.com/umputun/cc-thingz/blob/master/plugins/review/skills/writing-style/SKILL.mdView on GitHub Overview
Use this style for GitHub/GitLab issues, PRs/MRs, code reviews, and commit messages. It emphasizes brevity, direct feedback, and precise formatting in technical contexts, helping teams communicate clearly and move work forward.
How This Skill Works
Messages start with a brief problem statement and a clear change summary. Use exact references to files/lines, inline code with backticks, and the problem-solution format to keep discussions focused and scannable.
When to Use It
- GitHub/GitLab issue comments
- PR/MR descriptions and comments
- Code review comments
- Commit messages
- Technical discussions in tickets
Quick Start
- Step 1: Write a brief problem statement for the ticket or review
- Step 2: Describe the change with a concise summary and code references in backticks
- Step 3: Format using the problem-solution structure and keep it direct
Best Practices
- Lead with a brief problem statement and a concrete fix
- Use the problem-solution structure and number issues when needed
- Reference exact file paths, line numbers, and commits with inline code
- Keep sentences short, remove filler, and avoid AI-speak
- Assume technical reader; link to code/commits rather than lengthy explanations
Example Use Cases
- couple of issues here: 1. size calculated after processing, UI side had no way to match it. changed to raw size in the request body 2. unicode string length was incorrect - calculated size in bytes. fixed.
- check `pkg/handler/auth.go:42`
- fixed in latest commit
- LGTM
- I don't think this is enough because the images only support x86