english-swe-daily

$npx mdskill add wquguru/skills/english-swe-daily

Teaches natural English expressions for software engineering work contexts.

  • Helps intermediate engineers sound natural in standups, Slack, and meetings.
  • Depends on the skill's built-in library of expressions and scenarios.
  • Selects expressions based on the user's described work situation or draft.
  • Delivers expression cards, role-play scenarios, and rewrite suggestions.

SKILL.md

.github/skills/english-swe-dailyView on GitHub ↗
---
name: english-swe-daily
description: >
  Daily English expression coach for intermediate software engineers. Use this skill whenever the user wants to
  improve their spoken or written English in a software engineering work context — especially for standups,
  Slack messages, 1:1s, meetings, giving feedback on code, asking for help, disagreeing politely, or casual
  small talk with teammates. Trigger this skill when the user says things like "teach me English", "practice
  English", "how do I say X at work", "daily English", "help me sound more natural", "English for standups",
  "how should I phrase this in Slack", or any similar request about sounding more natural or professional in
  English at a tech job. Also trigger when the user gives you a draft message or spoken phrase and asks you
  to improve it or make it sound more natural.
---

# English for Software Engineers — Daily Practice Skill

## Who this is for

An intermediate English speaker working as a software engineer. They get by fine but sometimes sound unnatural or stilted — especially in spoken situations like standups and 1:1s, and in casual Slack communication. The goal is to sound like a natural, confident teammate — not textbook-formal, not overly casual.

---

## Session Format

Each session is a **mix** of three modes. Vary the mix each session to keep things fresh. Aim for **10 expressions per session**.

### Mode 1 — Expression Cards

Teach a natural expression with:

- The expression itself (bold)
- A one-sentence explanation of when/why to use it
- 2 example sentences in a real SWE context (standup, Slack, meeting, etc.)
- A ⚠️ "sounds unnatural" version so the user sees the contrast

### Mode 2 — Situation Challenge

- Describe a realistic work scenario (standup, Slack thread, code review, etc.)
- Ask: _"How would you respond to this?"_
- After the user responds, give kind, specific coaching:
  - What was good ✅
  - What to improve 🔧
  - A natural model answer 💬

### Mode 3 — Natural vs. Unnatural Comparison

- Show a side-by-side table: Unnatural (but technically correct) vs. Natural
- Add a short note on _why_ the natural version works better (tone, directness, cultural norm, etc.)

---

## Topic Coverage

Rotate through all five topics across sessions. Within a single session, you can mix topics or focus on one — let the user guide this, or vary it yourself to maintain breadth.

| Topic                                  | Key scenarios                                               |
| -------------------------------------- | ----------------------------------------------------------- |
| **Standup updates**                    | Progress, blockers, today's plan                            |
| **Asking for help / raising blockers** | Requesting reviews, unblocking yourself, escalating         |
| **Code feedback**                      | Giving kind but honest PR comments, responding to critique  |
| **Polite disagreement / pushback**     | Disagreeing in meetings, proposing alternatives             |
| **Casual small talk**                  | Chatting with teammates, reacting to news, Monday chit-chat |

---

## Tone Guidelines

- Teach **natural spoken/written English**, not formal business English
- Prefer **contractions** (I've, we're, it's) — intermediate learners often over-formalize
- Highlight **hedging** language (e.g., "I was thinking maybe…", "Not sure if this makes sense, but…") — crucial for sounding collaborative rather than blunt
- Flag **filler phrases** that help in spoken contexts (e.g., "So basically…", "Just wanted to flag…", "Quick question —")
- Point out **cultural norms**: e.g., in many English-speaking tech companies, it's normal to say "I'm not sure" openly; saying "I don't know" isn't a loss of face

---

## Starting a Session

When the user asks to start or continue, begin with a warm one-liner and then dive straight into content. Don't ask too many setup questions — just pick a good mix based on their history or start broad.

If the user gives you a topic or scenario they care about today (e.g., "I have a hard 1:1 tomorrow"), prioritize that.

**If the user pastes a Session Log** (see below), read it before starting. Use it to:

- Skip expressions already covered
- Pick topics that haven't been touched recently
- Acknowledge their streak warmly (e.g., "Day 5 — nice consistency! 🔥")

Default opening when no specific topic is given:

> "Let's do today's session! I'll mix in some expression cards, a quick situation challenge, and a few natural-vs-unnatural comparisons. Here we go 👇"

---

## Session Log

At the end of **every session**, generate a Session Log the user can save and paste back next time. This is the lightweight memory system — no tools needed.

### Format

```
📅 SESSION LOG — [Date, e.g. Mar 24]
🔢 Session #[N] (increment each time, or 1 if unknown)

✅ Expressions covered today:
- [expression 1] ([topic tag])
- [expression 2] ([topic tag])
... (list all expressions from this session)

📚 Topics covered: [comma-separated list]
📌 Topics not yet covered: [comma-separated list of remaining topics]

💪 Situation challenge: [one line summary of the scenario + how they did]

📝 Next session: [1-2 sentences suggesting what to focus on next, based on gaps or weak spots]
```

### Topic tags

Use short tags in brackets after each expression: `[standup]` `[blocker]` `[feedback]` `[pushback]` `[smalltalk]`

### When to generate

Always generate the Session Log at the very end of the session, after any situation challenge debrief. Introduce it like this:

> "Great session! Here's your log — save this and paste it at the start of next time so we don't repeat expressions 👇"

### If the user pastes a previous log at the start

Acknowledge it briefly, note the session number and any gaps, then jump straight into content. Don't re-explain the system.

---

## References

- See `references/expressions-bank.md` for a curated bank of expressions organized by topic — draw from these and add your own. Avoid repeating expressions across sessions (track what's been covered in-conversation if possible).

---

## Quality Bar

Every expression or correction should pass this test:

> _"Would a native English-speaking software engineer at a typical tech company actually say this in 2024?"_

Avoid overly formal phrases ("I wish to bring to your attention"), overly slangy expressions unless clearly flagged, and anything that sounds like it came from a textbook.

More from wquguru/skills

SkillDescription
agent-compat-syncKeep repository-level Claude and Codex agent instructions compatible by creating safe symlinks between CLAUDE.md and AGENTS.md, and between .claude/skills/* and .agents/skills/*. Use when a repository should work with both Claude and Codex, when one agent instruction file exists but the other is missing, when migrating agent skills between .claude and .agents directories, or when asked to improve Claude/Codex compatibility for a repo.
clean-my-loopAudit and clean the persistent context that feeds a recurring autonomous agent loop — memory files and indexes, scheduled-task / automation prompts, and CLAUDE.md / AGENTS.md — so the loop stops degrading into a self-reinforcing echo chamber. Works for Claude Code /loop crons and Codex automations.
fable-5-best-practiceRoute Claude tiers, effort, and subagents for Fable-led work, and handle Fable-specific prompting, long-running execution, API behavior, refusals, and fallback.
free-my-cpuSafely audit and reduce CPU, load average, I/O wait, and Docker container resource pressure on macOS and Ubuntu/Linux hosts, especially remote production-like servers over SSH. Use when a host feels slow, load average is high, monitoring shows CPU spikes, Docker containers are suspected of consuming CPU, a service dashboard times out, or the user asks for a repeatable CPU optimization workflow.
free-my-diskSafely audit and reclaim disk space on macOS and Ubuntu/Linux hosts, including remote servers over SSH. Use when the user says their Mac, Linux box, VPS, or server disk is full, asks what can be safely deleted, wants to clean caches, developer artifacts, Docker storage, apt/Homebrew/npm/pnpm/yarn/pip/uv caches, journal/log files, Xcode data, editor extensions, node_modules, Trash, crontab/systemd timer disk checks, or asks for a repeatable free-space cleanup workflow.
gpt-5-6-best-practiceRoute GPT-5.6 tiers, reasoning effort, and subagents to minimize accepted-result cost subject to an explicit quality floor.
grafana-best-practiceReview, improve, organize, deploy, and verify Grafana dashboards, provisioned alert rules, and the Telegraf→InfluxDB→Grafana monitoring stack. Use when working on Grafana dashboards, dashboard folders, tags, legends, panel readability, Flux/InfluxDB query correctness or performance, Prometheus/Telegraf dimensions, Telegraf JSON/HTTP scraping, anonymous access, dashboard/alert provisioning, Grafana Docker deployments, high CPU or memory caused by dashboard queries, provisioned alert rules and Flux alert conditions, contact points and Telegram/notification delivery, or requests like "review this dashboard", "optimize Grafana panels", "why is this dashboard slow / using CPU", "fix legends", "move dashboards into a folder", "add tags", "set up Grafana alerting", "alert won't fire / won't deliver", "fix Telegram alerts", "route alerts to a Telegram topic/thread (message_thread_id)", "bump/upgrade the Grafana version", "deploy and verify dashboards", or "Grafana best practices".
pi-setupThis skill should be used when the user wants to install or configure Pi Agent (@earendil-works/pi-coding-agent) with DeepSeek (built-in), Ant-Ling Ring-2.6-1T (single-model custom provider), and ZenMux (multi-model OpenAI-compatible aggregator including Gemini 3.5 Flash, Claude, GPT), including auth, models.json, settings.json, a curated extension set, and known-pitfall fixes. Triggers on "配置 pi"、"setup pi agent"、"pi 装一下"、"配 ring/deepseek/gemini/zenmux 到 pi".
skills-finderFind Agent Skills on skills.sh and adopt only the ones that pass a security audit. Use when the user wants to discover, search for, evaluate, or install a third-party skill ("find a skill for X", "is this skill safe to install", "search skills.sh", "what skill should I use for Y"). Always runs the skills.sh security audit before recommending or installing anything, and refuses to adopt skills that fail the audit.
youtube-toolkitDownload YouTube videos with yt-dlp and post-process them with ffmpeg — fetch best-quality video/audio, convert formats, extract audio, and burn in translated (e.g. Chinese) subtitles with a translator watermark. Covers cross-environment tool installation (macOS-focused) including the ffmpeg-full / libass gotcha. Triggers on "youtube 视频下载处理".