跳到正文
cccskills
免费在 GitHub 公开

windows-compatibility

Review cross-platform code and Git commands for filename, path, and shell compatibility issues. Apply shared timestamp utilities, platform-aware path handling, and file-based commit messages when working across Windows, macOS, and Linux.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Cross-platform path handling and command patterns

查看安装方法

适用场景

  • Creating timestamped filenames that work on Windows
  • Reviewing path construction and comparison across platforms
  • Writing multiline Git commit messages in PowerShell
  • Finding code that assumes the current directory is the repository root

包含的文件(1)

  • SKILL.md3.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Context

Squad runs on Windows, macOS, and Linux. Several bugs have been traced to platform-specific assumptions: ISO timestamps with colons (illegal on Windows), git -C with Windows paths (unreliable), forward-slash paths in Node.js on Windows.

Patterns

Filenames & Timestamps

  • Never use colons in filenames: ISO 8601 format 2026-03-15T05:30:00Z is illegal on Windows
  • Use safeTimestamp() utility: Replaces colons with hyphens → 2026-03-15T05-30-00Z
  • Centralize formatting: Don't inline .toISOString().replace(/:/g, '-') — use the utility

Git Commands

  • Never use git -C {path}: Unreliable with Windows paths (backslashes, spaces, drive letters)
  • Always cd first: Change directory, then run git commands
  • Check for changes before commit: git diff --cached --quiet (exit 0 = no changes)

Commit Messages

  • Never embed newlines in -m flag: Backtick-n (\n) fails silently in PowerShell
  • Use temp file + -F flag: Write message to file, commit with git commit -F $msgFile

Paths

  • Never assume CWD is repo root: Always use TEAM ROOT from spawn prompt or run git rev-parse --show-toplevel
  • Use path.join() or path.resolve(): Don't manually concatenate with / or \

Path Comparison (Case Sensitivity)

  • Never use case-sensitive startsWith or === for path comparison on Windows or macOS: These filesystems are case-insensitive — C:\Users\ and c:\users\ refer to the same location
  • Use platform-aware comparison: Check process.platform === 'win32' || process.platform === 'darwin' and lowercase both sides before comparing
  • Pattern:
    const CASE_INSENSITIVE = process.platform === 'win32' || process.platform === 'darwin';
    
    function pathStartsWith(fullPath: string, prefix: string): boolean {
      if (CASE_INSENSITIVE) {
        return fullPath.toLowerCase().startsWith(prefix.toLowerCase());
      }
      return fullPath.startsWith(prefix);
    }
    
  • Where it matters: Security checks (path traversal prevention), rootDir confinement, any path-contains-path validation
  • Linux is case-sensitive: Do NOT lowercase on Linux — /Home/ and /home/ are different directories

Examples

✓ Correct:

// Timestamp utility
const safeTimestamp = () => new Date().toISOString().replace(/:/g, '-').split('.')[0] + 'Z';

// Git workflow (PowerShell)
cd $teamRoot
git add .squad/
if ($LASTEXITCODE -eq 0) {
  $msg = @"
docs(ai-team): session log

Changes:
- Added decisions
"@
  $msgFile = [System.IO.Path]::GetTempFileName()
  Set-Content -Path $msgFile -Value $msg -Encoding utf8
  git commit -F $msgFile
  Remove-Item $msgFile
}

✗ Incorrect:

// Colon in filename
const logPath = `.squad/log/${new Date().toISOString()}.md`; // ILLEGAL on Windows

// git -C with Windows path
exec('git -C C:\\src\\squad add .squad/'); // UNRELIABLE

// Inline newlines in commit message
exec('git commit -m "First line\nSecond line"'); // FAILS silently in PowerShell

Anti-Patterns

  • Testing only on one platform (bugs ship to other platforms)
  • Assuming Unix-style paths work everywhere
  • Using git -C because it "looks cleaner" (it doesn't work)
  • Skipping git diff --cached --quiet check (creates empty commits)
  • Wrong — case-sensitive path check on Windows and macOS:
    if (!resolved.startsWith(rootDir + path.sep)) {
      throw new Error('Path traversal blocked');
    }
    // Fails: 'c:\\Users\\temp\\file'.startsWith('C:\\Users\\temp\\') → false
    

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Coordinate work across AI agents with shared rules for locating team files, recording decisions and their reasons, and requesting help. It also defines who owns revisions after a reviewer rejects an artifact.

中文简介正在准备中。当前显示英语简介。

  • Locate team files across separate working directories
  • Record decisions that affect other agents
  • Request input from another specialist
github/gh-aw54212026年10月19日 更新

Set shared development rules for an agent team: keep specific agent names out of product code, tests, and CI configuration, verify affected tests before finishing, and record lessons learned from mistakes.

中文简介正在准备中。当前显示英语简介。

  • Share development rules across multiple agents
  • Keep team-specific agent names out of code and tests
  • Check affected tests before declaring work complete
github/gh-aw54212026年10月19日 更新

Routes requests to design, create, update, debug, or upgrade GitHub Agentic Workflows to the appropriate instructions. It helps the agent select a workflow-specific procedure and apply any additional rules defined for the repository.

中文简介正在准备中。当前显示英语简介。

  • Designing a new workflow through questions
  • Investigating failed runs and recurring errors
  • Upgrading workflows and addressing deprecations
github/gh-aw54212026年10月19日 更新

Prepare architecture proposals before implementation so the team can agree on a direction. Organize evidence, technical choices, effects on existing work, risks, and the first release’s scope into a document with clear recommendations and decision owners.

中文简介正在准备中。当前显示英语简介。

  • Proposing a major architecture change
  • Replanning milestones after a foundation change
  • Comparing technical options before seeking approval
github/gh-aw54212026年10月19日 更新

Update the gh-aw-firewall version used by gh-aw, rebuild generated files, and review release notes and configuration schemas, which define valid settings. It guides related code and test updates while identifying follow-up work that remains.

中文简介正在准备中。当前显示英语简介。

  • Updating the firewall version used by gh-aw
  • Reviewing release notes for integration changes
  • Checking configuration schema differences
github/gh-aw54212026年10月19日 更新

Review git and gh operations in gh-aw workflows to check credential availability for each repository. Identify missing token handoffs, risky expansions of limited checkouts, and error handling needed where credentials are intentionally unavailable.

中文简介正在准备中。当前显示英语简介。

  • Reviewing git operations after repository checkout
  • Checking tokens for private cross-repository access
  • Reviewing sparse and shallow checkout changes
github/gh-aw54212026年10月19日 更新

查看 github 的全部技能

报告此技能的问题