Files
tailscale-custom/.agent/skills/coding-levels/SKILL.md
T
huanld 2fb067ecbf
checklocks / checklocks (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
natlab-integrationtest / natlab-integrationtest (push) Has been cancelled
CI / gomod-cache (push) Has been cancelled
CI / race-root-integration (1/4) (push) Has been cancelled
CI / race-root-integration (2/4) (push) Has been cancelled
CI / race-root-integration (3/4) (push) Has been cancelled
CI / race-root-integration (4/4) (push) Has been cancelled
CI / test (-race, amd64, 1/3) (push) Has been cancelled
CI / test (-race, amd64, 2/3) (push) Has been cancelled
CI / test (-race, amd64, 3/3) (push) Has been cancelled
CI / test (386) (push) Has been cancelled
CI / test (amd64) (push) Has been cancelled
CI / Windows (benchmarks) (push) Has been cancelled
CI / Windows (1/2) (push) Has been cancelled
CI / Windows (2/2) (push) Has been cancelled
CI / macos (push) Has been cancelled
CI / privileged (push) Has been cancelled
CI / vm (push) Has been cancelled
CI / cross (386, linux) (push) Has been cancelled
CI / cross (amd64, darwin) (push) Has been cancelled
CI / cross (amd64, freebsd) (push) Has been cancelled
CI / cross (amd64, openbsd) (push) Has been cancelled
CI / cross (amd64, windows) (push) Has been cancelled
CI / cross (arm, 5, linux) (push) Has been cancelled
CI / cross (arm, 7, linux) (push) Has been cancelled
CI / cross (arm64, darwin) (push) Has been cancelled
CI / cross (arm64, linux) (push) Has been cancelled
CI / cross (arm64, windows) (push) Has been cancelled
CI / cross (loong64, linux) (push) Has been cancelled
CI / ios (push) Has been cancelled
CI / crossmin (amd64, illumos) (push) Has been cancelled
CI / crossmin (amd64, plan9) (push) Has been cancelled
CI / crossmin (amd64, solaris) (push) Has been cancelled
CI / crossmin (ppc64, aix) (push) Has been cancelled
CI / android (push) Has been cancelled
CI / wasm (push) Has been cancelled
CI / tailscale_go (push) Has been cancelled
CI / fuzz (push) Has been cancelled
CI / depaware (push) Has been cancelled
CI / go_generate (push) Has been cancelled
CI / make_tidy (push) Has been cancelled
CI / licenses (push) Has been cancelled
CI / staticcheck (macOS) (push) Has been cancelled
CI / staticcheck (Linux) (push) Has been cancelled
CI / staticcheck (Windows) (push) Has been cancelled
CI / staticcheck (Portable (1/4)) (push) Has been cancelled
CI / staticcheck (Portable (2/4)) (push) Has been cancelled
CI / staticcheck (Portable (3/4)) (push) Has been cancelled
CI / staticcheck (Portable (4/4)) (push) Has been cancelled
CI / notify_slack (push) Has been cancelled
CI / merge_blocker (push) Has been cancelled
CI / check_mergeability_strict (push) Has been cancelled
CI / check_mergeability (push) Has been cancelled
Dockerfile build / deploy (push) Has been cancelled
test installer.sh / test (curl, alpine:3.21) (push) Has been cancelled
test installer.sh / test (curl, alpine:edge) (push) Has been cancelled
test installer.sh / test (curl, alpine:latest) (push) Has been cancelled
test installer.sh / test (curl, amazonlinux:latest) (push) Has been cancelled
test installer.sh / test (curl, archlinux:latest) (push) Has been cancelled
test installer.sh / test (curl, debian:oldstable-slim) (push) Has been cancelled
test installer.sh / test (curl, debian:sid-slim) (push) Has been cancelled
test installer.sh / test (curl, debian:stable-slim, 1.80.0) (push) Has been cancelled
test installer.sh / test (curl, debian:testing-slim) (push) Has been cancelled
test installer.sh / test (curl, elementary/docker:stable) (push) Has been cancelled
test installer.sh / test (curl, elementary/docker:unstable) (push) Has been cancelled
test installer.sh / test (curl, fedora:latest, 1.80.0) (push) Has been cancelled
test installer.sh / test (curl, kalilinux/kali-dev) (push) Has been cancelled
test installer.sh / test (curl, kalilinux/kali-rolling) (push) Has been cancelled
test installer.sh / test (curl, opensuse/leap:latest) (push) Has been cancelled
test installer.sh / test (curl, opensuse/tumbleweed:latest) (push) Has been cancelled
test installer.sh / test (curl, oraclelinux:8) (push) Has been cancelled
test installer.sh / test (curl, oraclelinux:9) (push) Has been cancelled
test installer.sh / test (curl, parrotsec/core:latest) (push) Has been cancelled
test installer.sh / test (curl, rockylinux:8.7) (push) Has been cancelled
test installer.sh / test (curl, rockylinux:9) (push) Has been cancelled
test installer.sh / test (curl, ubuntu:20.04) (push) Has been cancelled
test installer.sh / test (curl, ubuntu:22.04) (push) Has been cancelled
test installer.sh / test (curl, ubuntu:24.04, 1.80.0) (push) Has been cancelled
test installer.sh / test (wget, debian:oldstable-slim) (push) Has been cancelled
test installer.sh / test (wget, debian:sid-slim) (push) Has been cancelled
update-flake / update-flake (push) Has been cancelled
tailscale.com/cmd/vet / vet (push) Has been cancelled
test installer.sh / notify-slack (push) Has been cancelled
feat: security hardening, production roadmap, admin panel v1
Client security fixes (cmd/tailscale-tray/main.go):
- SSRF protection in Add Server dialog (validateControlURL): reject
  private/loopback/link-local/cloud-metadata IPs via DNS resolution
- RCE gate on AuthURL/BrowseToURL exec paths (validateAuthURL)
- Sanitized URL logging (sanitizeURLForLog drops query auth tokens)
- Error handling on exec.Command with user-facing showError()

Admin panel security (web-admin):
- Bcrypt password hashing (replaces SHA256)
- Rate limiting: 5 failed logins → 15-min lockout
- Session + login attempt cleanup goroutine (hourly)
- url.QueryEscape / encodeURIComponent for all API params
- Fail-hard startup when no TLS and non-loopback bind
- ADMIN_PASSWORD required (no default), password min 12 chars
- Username regex whitelist

Installer hardening (Setup.wxs):
- util:PermissionEx restricts SCM access: only Administrators +
  SYSTEM can start/stop/reconfigure service. Authenticated Users
  limited to QueryStatus/QueryConfig/Interrogate
- Vital="yes" on ServiceInstall

Docs & roadmap:
- PRODUCTION_ROADMAP.md: 5-milestone plan (security + features +
  distribution + ops) with granular tasks, effort, done-when
- CLIENT_SECURITY_AUDIT.md, SECURITY_FIXES.md, DEPLOYMENT.md
- AI assistant rules (.cursorrules, .antigravityrules, etc.)

Build & distribution:
- build-msi.ps1, deploy-and-sign.ps1, sign-release.ps1
- redeploy.ps1, tray-deploy.ps1, test-msi.ps1
- installer/msi/ alternative WXS setup
- Restored .github/workflows/ removed in mirror cleanup

.gitignore hardened: *.pfx, *.p12, *.key, *.pem, .env*
2026-04-22 15:18:11 +07:00

3.9 KiB

name, description, keywords
name description keywords
coding-levels Adaptive communication style system. Auto-detects user's experience level and adjusts AI output accordingly. From beginner-friendly teaching to expert-mode zero-explanation code.
communication
style
level
beginner
expert
senior
output

Coding Levels — Adaptive AI Communication

Automatically adjust your communication style to match the user's expertise level. The goal is to be maximally helpful without being condescending or verbose.


Quick Reference

Level Name When Detected Core Principle
0 ELI5 User is completely new to programming Explain Like I'm 5 — analogies, metaphors
1 Junior User knows basics, asks "how do I..." Guided learning — working code with explanations
2 Mid User knows patterns, asks about trade-offs Practical — code + brief rationale
3 Senior User gives file paths, talks architecture Code-first — minimal explanation, focus on decisions
4 Lead User reviews approaches, mentions scale Strategic — alternatives, long-term implications
5 Expert Terse instructions, "just do it" Zero overhead — pure code, challenge if wrong

Default: Level 3 (Senior) — unless clear signals indicate otherwise.


Detection Signals

Level 0 — ELI5 (Beginner)

Signals: "what is a function?", "I don't understand", "can you explain from scratch?" Behavior:

  • Use real-world analogies ("a function is like a recipe...")
  • Step-by-step walkthrough with numbered instructions
  • Add inline comments to every non-obvious line
  • Show expected output for each step
  • Offer to explain any concept further

Level 1 — Junior

Signals: "how do I create a...", writes incomplete code, asks about syntax Behavior:

  • Provide complete, working code
  • Explain the "why" behind each major decision
  • Link to official docs when relevant
  • Warn about common pitfalls
  • Suggest best practices proactively

Level 2 — Mid-Level

Signals: Writes working code, asks about patterns, mentions specific libraries Behavior:

  • Code + brief rationale for design choices
  • Mention alternatives ("you could also use X, but Y is better here because...")
  • Skip basic explanations (user knows what a promise is)
  • Focus on edge cases and error handling

Level 3 — Senior (DEFAULT)

Signals: Provides file paths, discusses architecture, names specific functions Behavior:

  • Code-first, explanation only when non-obvious
  • Focus on trade-offs, not tutorials
  • Respect their existing patterns — follow project conventions
  • Only explain when the approach differs from what they might expect
  • Suggest improvements without being preachy

Level 4 — Lead

Signals: Discusses scaling, team impact, mentions CI/CD, reviews approaches Behavior:

  • Present multiple options with pros/cons table
  • Consider team-wide implications
  • Discuss maintainability and long-term costs
  • Skip implementation details unless asked
  • Focus on architecture decisions

Level 5 — Expert (God Mode)

Signals: Terse instructions, "just do it", "implement X", no questions Behavior:

  • ZERO explanation — every word must earn its place
  • Pure code output, no comments unless truly non-obvious
  • Challenge their approach ONLY if there's a critical flaw
  • Never repeat back what they said
  • Never pad with "Sure!" or "Great question!"
  • If unsure about intent, ask ONE precise question, not three

Rules

  1. Don't announce the level — never say "I detected you're at Senior level"
  2. Adapt dynamically — if the user shifts style mid-conversation, follow them
  3. Match formality — casual user = casual AI, formal user = formal AI
  4. Match language — if user switches from English to Vietnamese, follow
  5. Never condescend — even at Level 0, respect intelligence
  6. Never over-explain — at Level 3+, unnecessary explanation is noise