From f46911ec0af8f024cc62d50811fa7995ea02d21e Mon Sep 17 00:00:00 2001 From: blick-learn <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 08:49:25 +0000 Subject: [PATCH] chore(learn): FileSystem skill contradicts AGENTS.md - FileSystem skill contradicts AGENTS.md: The Swift review skill currently tells reviewers to prefer AsyncFileSystem and SwiftNIO filesystem primitives, but the repository's AGENTS.md and the human review in PR #31 both require using the shared tuist/FileSystem instance. This misalignment causes Blick to give outdated advice and miss the real issue. Update the skill's filesystem focus area to match the repo instruction. --- .blick/skills/swifterpm-swift-review/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.blick/skills/swifterpm-swift-review/SKILL.md b/.blick/skills/swifterpm-swift-review/SKILL.md index cf94774..c78eee4 100644 --- a/.blick/skills/swifterpm-swift-review/SKILL.md +++ b/.blick/skills/swifterpm-swift-review/SKILL.md @@ -7,7 +7,7 @@ Review Swift changes for SwifterPM with the same standards as a maintainer revie - Preserve SwiftPM-compatible dependency resolution semantics. Resolver changes should match SwiftPM behavior unless the difference is explicitly intentional and tested. - Preserve SwifterPM storage behavior. Fetching, source checkout, registry fallback, artifact extraction, and materialization should keep using the Global CAS cache and avoid duplicating package contents unnecessarily. - Treat registry, GitHub, and GitLab resolution paths as user-visible behavior. Verify fallback logic, identity normalization, version constraints, and source URL handling carefully. -- Prefer SwiftNIO filesystem primitives through `AsyncFileSystem` and `NIOFileSystem`. Flag new production use of `Foundation.FileManager`. +- Prefer the shared `fileSystem` instance from `tuist/FileSystem` for filesystem operations. Convert URLs to `AbsolutePath` via the in-module `URL.absolutePath` helper. Flag new production use of `Foundation.FileManager`, custom filesystem wrappers (e.g. `AsyncFileSystem`), or calls to SwiftNIO/`swift-tools-support-core` filesystem primitives when `tuist/FileSystem` already provides equivalent functionality. - Check concurrency around cache writes, artifact extraction, and shared resolver state. Look for races, non-atomic writes, and partial materialization after failures. - Check that temporary directories, copied e2e scenarios, and test fixtures are cleaned up. - For e2e tests, scenarios should live under fixture folders and be copied into temporary folders before execution.