Skill.md
- SKILL.md
--- name: adaptive-stem-alignment description: Incremental audio production with duration mismatch handling, adaptive stem extension, and pre-mix alignment verification ---
Skill.md
Diagnose and resolve file access issues by verifying directory structure, then reading multiple files in parallel batches for efficient auditing, with built-in guidance for validating TypeScript import patterns.
SKILL.md
---
name: verify-directory-structure-parallel-audit
description: Diagnose and resolve file access issues by verifying directory structure, then reading multiple files in parallel batches for efficient auditing, with built-in guidance for validating TypeScript import patterns.
---
# Verify Directory Structure — Parallel Audit
This skill provides a systematic approach to diagnosing file access issues and auditing source trees efficiently. It extends basic directory verification with **parallel batch file reading** (dramatically reducing iteration count when many files must be inspected) and a dedicated **TypeScript import validation** phase that catches a common class of structural bugs.
---
## Steps
### Phase 1 — Directory Verification
1. **Identify Target Paths**: Collect every file or directory path involved in the operation. Prefer absolute paths to eliminate ambiguity.
2. **Enumerate with `list_dir`**: Call `list_dir` on each relevant directory. Record all file names, sizes, and modification dates. This is your ground truth before touching any file.
3. **Verify Existence & Permissions**: Confirm the directory exists and that the current user has read (and, if needed, write/execute) permissions. If a directory is missing, create it before proceeding. If permissions are insufficient, adjust them before retrying.
4. **Build a File Manifest**: From the `list_dir` output, compile the complete list of files to be audited. Group them logically (e.g., by subdirectory or file type) so they can be read in parallel batches.
---
### Phase 2 — Parallel Batch File Reading
> **Why this matters**: Reading files sequentially costs one iteration per file. Reading them in parallel batches collapses N files into ⌈N/batch_size⌉ iterations — a significant speedup when auditing dozens of files.
5. **Determine Batch Size**: Default to reading **5–10 files per batch**. Reduce the batch size if individual files are very large; increase it for small config/index files.
6. **Issue Parallel `read_file` Calls**: Within each batch, invoke `read_file` for all files simultaneously (a single iteration). Do not wait for one file before requesting the next within the same batch.
```
Batch 1 (parallel): read_file(src/components/A.tsx)
read_file(src/components/B.tsx)
read_file(src/components/C.tsx)
read_file(src/components/D.tsx)
read_file(src/components/E.tsx)
Batch 2 (parallel): read_file(src/components/F.tsx)
...
```
7. **Collect & Triage Results**: After each batch completes, scan results for errors (file-not-found, permission denied) and flag them immediately. Do not abort the remaining batches; continue and aggregate all findings.
8. **Re-verify Missing Files**: For any file reported as missing, re-run `list_dir` on its parent directory to confirm whether the file truly does not exist or whether the path was wrong. Correct the path and retry the single file if necessary.
---
### Phase 3 — TypeScript Import Validation
> This phase targets a common class of structural bugs found when auditing TypeScript source trees.
9. **Identify Import Statements**: For every `.ts` / `.tsx` file read in Phase 2, extract all `import` lines.
10. **Classify Import Kind — Value vs. Type**:
| Pattern | Correct usage |
|---|---|
| `import Foo from '...'` | Runtime value (class, function, object) |
| `import { Foo } from '...'` | Runtime value export |
| `import type Foo from '...'` | Type-only import (erased at compile time) |
| `import type { Foo } from '...'` | Type-only named import |
| `import { type Foo } from '...'` | Inline type modifier (TS 4.5+) |
11. **Flag Value Imports Used Only as Types**: If an identifier imported without `type` is used **only** in type positions (`: Foo`, `as Foo`, `implements Foo`, generic parameters), it should be converted to `import type`. This prevents accidental runtime dependencies and satisfies `verbatimModuleSyntax` / `isolatedModules` compiler flags.
```typescript
// ❌ Before — value import used only as a type
import { UserProfile } from './types';
const handler = (u: UserProfile) => { ... };
// ✅ After — type-only import
import type { UserProfile } from './types';
const handler = (u: UserProfile) => { ... };
```
12. **Flag Duplicate Imports**: Detect cases where the same module is imported more than once in a file (often from copy-paste). Merge them into a single import statement.
```typescript
// ❌ Duplicate
import { A } from './utils';
import { B } from './utils';
// ✅ Merged
import { A, B } from './utils';
```
13. **Verify Barrel / Index Exports**: When a directory contains an `index.ts` (barrel file), confirm that every component or module expected to be publicly accessible is re-exported. Cross-reference against the file manifest from Phase 1.
14. **Apply Fixes & Re-audit**: Apply all import corrections as a single write pass per file. After writing, re-read the affected files (parallel batch) to confirm the fixes took effect.
---
### Phase 4 — Final Validation & Report
15. **Retry the Original Operation**: With the directory structure confirmed and import issues resolved, retry the operation that originally failed.
16. **Log an Audit Report**: Produce a concise summary covering:
- Total files enumerated and read
- Number of batches used (highlight the iteration savings vs. sequential)
- Import issues found and fixed (value→type conversions, duplicate merges, missing barrel exports)
- Any remaining unresolved issues with recommended next steps
---
## Quick Reference: Batch Reading Pattern
```
# Sequential (slow) — N iterations for N files
read_file(file1) → wait → read_file(file2) → wait → ...
# Parallel batch (fast) — ⌈N/B⌉ iterations for N files, batch size B
[read_file(file1), read_file(file2), ..., read_file(fileB)] ← 1 iteration
[read_file(fileB+1), ...] ← 1 iteration
```
---
## Best Practices
- **Always enumerate before reading**: `list_dir` first, then batch-read. Never guess file names.
- **Use absolute paths** throughout to avoid working-directory ambiguity.
- **Batch by locality**: Group files from the same directory in the same batch to keep context coherent.
- **Type imports are zero-cost at runtime**: Prefer `import type` for any symbol used exclusively as a TypeScript type. This is especially important in projects with `isolatedModules: true`.
- **Barrel files are contracts**: Treat `index.ts` exports as the public API of a module. Missing exports are bugs even if the underlying file is correct.
- **Log intermediate findings**: If issues persist after Phase 3, dump the full audit log for offline debugging.
---
## Common Fix Categories (Checklist)
- [ ] Directory missing → create with `mkdir -p`
- [ ] Permissions insufficient → `chmod`/`chown` or escalate
- [ ] Path typo → re-enumerate with `list_dir`, correct path
- [ ] Value import used as type → add `import type`
- [ ] Duplicate imports → merge into single statement
- [ ] Missing barrel export → add re-export to `index.ts`
- [ ] Circular import → restructure module boundaries