external-drive-ingest-planning
Plan safe external-drive ingests into repo-aligned storage such as /mnt/ace: read-only mounts, manifests, staged rsync, dedupe-merge gates, GitHub issue traceability, and governance/execution split.
Best use case
external-drive-ingest-planning is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Plan safe external-drive ingests into repo-aligned storage such as /mnt/ace: read-only mounts, manifests, staged rsync, dedupe-merge gates, GitHub issue traceability, and governance/execution split.
Teams using external-drive-ingest-planning should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/external-drive-ingest-planning/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How external-drive-ingest-planning Compares
| Feature / Agent | external-drive-ingest-planning | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Plan safe external-drive ingests into repo-aligned storage such as /mnt/ace: read-only mounts, manifests, staged rsync, dedupe-merge gates, GitHub issue traceability, and governance/execution split.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# External Drive Ingest Planning Use this when planning a safe ingest from an external drive into `/mnt/ace` or another persistent data mount. The class of task is not just "mount the drive"; it is **source-preserving, provenance-tracked data migration with staged copy and dedupe/merge risk controls**. ## Class-first trigger A drive or mounted folder contains legacy/project/reference data that must be mapped into durable repo-aligned destinations, copied safely, and tracked through GitHub before any destructive or ambiguous operation. ## Core principles 1. **No file operations before decisions are locked.** Ask/resolve destination ambiguities first. 2. **Mount source read-only by default.** Never write to the source drive unless explicitly approved. 3. **Separate execution and governance.** Create an execution issue for the concrete ingest and a governance/standard issue if the session surfaces reusable placement policy. 4. **Stage first, merge later.** Copy into `_from_<source-label>/` staging folders; dedupe-merge into the parent only as a second reviewed phase. 5. **Manifest before copy.** Capture source file/size inventory and bounded checksums before rsync. 6. **Cross-link prior art.** Existing layout/dedupe/inventory issues are part of resource intelligence, not optional context. 7. **No self-approval.** For plan-gated repos, create issues/plans/reviews and stop at `status:plan-review` until the user approves. ## Step-by-step workflow ### 1. Live device discovery Run live system checks rather than relying on prior device names: ```bash lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT ``` If NTFS, use a non-mutating check first: ```bash sudo ntfsfix --no-action /dev/sdXY ``` Do **not** run mutating `ntfsfix`, `force`, or a writable mount for archival/ingest work without explicit user approval. ### 2. Read-only mount pattern After confirming the device node and source label: ```bash sudo mkdir -p /mnt/<source-label-lower> sudo ntfs-3g -o ro,big_writes,uid=$(id -u),gid=$(id -g),umask=022 /dev/sdXY /mnt/<source-label-lower> ``` Verify the effective mount mode before any inventory or mapping work: ```bash findmnt /mnt/<source-label-lower> -o TARGET,SOURCE,FSTYPE,OPTIONS ``` For source-preserving ingest workflows, treat `rw` as a blocker even if ownership/perms look correct (`uid/gid`, `umask=022`) and even if `big_writes` is enabled. `big_writes` is useful for later approved high-volume copy performance, but it does not satisfy the source-immutability requirement. If the drive is already mounted read-write, remount read-only before full manifests/checksums: ```bash sudo umount /mnt/<source-label-lower> sudo ntfs-3g -o ro,big_writes,uid=$(id -u),gid=$(id -g),umask=022 /dev/sdXY /mnt/<source-label-lower> ``` If the drive is not visible, stop and ask the user to reconnect it. Do not fabricate source inventory. ### 3. Destination mapping Build a source-to-destination table before copying. For `/mnt/ace`, prefer repo-aligned buckets: ```text /mnt/ace/<repo-name>/<domain>/... ``` Clarify whether ambiguous buckets are real repos or category folders. In the ACE workspace, examples include: - `workspace-hub` = governance/planning/orchestration, not bulk data dumping - `client-c` = real repo bucket for legacy client project material when appropriate - `mkt-a` = mkt-a project/client-number material - `assethold` = asset-holding / real-estate data - `digitalmodel` = engineering workflow/reference/tooling data - `lng-a` = lng-a project/training/codes material - `mkt-a-codes` = standards/regulatory corpus; verify before duplicating codes/regulations ### 4. Issue drafting before execution For a non-trivial ingest, draft issues before copying: 1. **Execution issue** in the operational repo (often `workspace-hub`): exact source-to-destination map, mount policy, manifest plan, rsync/dedupe gates, acceptance criteria. 2. **Governance issue** in the strategy/policy repo if the work clarifies reusable standards: destination-selection rules, staging convention, MOVE-LOG fields, retention policy. Before creating issues: - search for duplicates and prior-art issues - inspect available labels and use existing taxonomy - write long bodies to temp files and create with `gh issue create --body-file` - verify created issue bodies, labels, URLs - cross-link companion issues via comments and/or body updates ### 5. Manifest plan Create a durable planning/intel area, for example: ```text .planning/intel/<source-label>-ingest/ lsblk-before-mount.txt ntfsfix-no-action.txt mount-command.txt source-top-level-inventory.tsv source-file-size-manifest.tsv source-sha256-under-100mb.txt destination-preexisting-inventory/ rsync-dry-run-logs/ rsync-final-logs/ post-copy-verification/ ``` Typical pre-copy commands: ```bash find /mnt/<source> -type f -printf '%P\t%s\n' > .planning/intel/<source>-ingest/source-file-size-manifest.tsv find /mnt/<source> -type f -size -100M -print0 \ | sort -z \ | xargs -0 sha256sum > .planning/intel/<source>-ingest/source-sha256-under-100mb.txt ``` ### 6. Staged rsync pattern Dry-run first: ```bash rsync -aHAXn --info=progress2 --stats \ /mnt/<source>/<folder>/ \ /mnt/ace/<repo>/<domain>/_from_<source-label>/ ``` Final copy only after dry-run review and plan approval: ```bash rsync -aHAX --info=progress2 --stats \ /mnt/<source>/<folder>/ \ /mnt/ace/<repo>/<domain>/_from_<source-label>/ ``` Use `--link-dest` only after validating the parent destination and confirming the option points to the intended existing corpus. ### 7. MOVE-LOG template Each destination bucket should record provenance: ```markdown ## <source-drive-label> ingest - Source drive label: - Source filesystem: - Source device node at ingest: - Source path: - Destination staging path: - Final destination path: - Ingest date: - Operator/agent: - File count: - Byte count: - Manifest path: - Checksum policy: - Rsync dry-run log: - Rsync final log: - Dedupe/merge status: - Retention decision: - Related GitHub issue: ``` ### 8. Plan-gated repo handling If the repo enforces planning: ```text Issue → Resource Intel → Plan → Adversarial Review → status:plan-review → USER APPROVES → status:plan-approved → Execute ``` Do not mount/copy/rsync as implementation until the approved plan gate is satisfied if the task has been scoped as execution work. Discovery commands like `lsblk` are fine; source mutation and destination writes are not. ## Pitfalls - Treating `/dev/sdXY` from a prior session as stable; USB device nodes change. - Treating a successfully accessible read-write NTFS mount as good enough for archival ingest. Check `findmnt` and require `ro` unless the user explicitly overrides source immutability. - Letting a dirty NTFS troubleshooting skill push you into mutating `ntfsfix` before source-preservation decisions are approved. - Copying directly into final parent directories and losing the ability to review dedupe/merge separately. - Using a top-level `_inbox` when per-destination staging better preserves destination ownership. - Creating a governance issue but forgetting to update the execution issue body/comment with the final cross-link. - Using non-existent labels instead of inspecting repo label taxonomy first. - Assuming a folder name is a repo bucket; verify repo existence and local `/mnt/ace` layout. - Treating Windows metadata folders like `$RECYCLE.BIN` and `System Volume Information` as project data; include them in top-level inventory but normally classify as skip/metadata unless the user asks otherwise. - Pasting long Codex prompts directly into a TUI/terminal can inject escape garbage. Prefer writing prompt files with `cat > /tmp/prompt.txt <<'EOF' ... EOF` or `nano`, then running `Codex -p "$(cat /tmp/prompt.txt)"`. ## Verification checklist Before finalizing issue creation or handoff, verify: - live drive visibility or explicitly document that it is not attached - prior-art issues are linked - source-to-destination map reflects user decisions - labels actually exist or issue creation avoids invalid labels - created issue URLs, labels, and body cross-links are correct - no rsync/mount mutation occurred before approval - `Elements` or other source drive remains read-only / untouched until the plan is approved
Related Skills
test-driven-hook-debugging
Debugging and fixing shell hooks by writing isolated test suites first, then using test failures to pinpoint logic bugs
label-driven-prompt-generation-architecture
Pattern for building automation scripts that classify GitHub issues into prompt templates using label-based routing and extract contextual data for batch processing
diagnose-and-mount-dirty-ntfs-drives
Troubleshoot and mount NTFS external drives blocked by dirty filesystem flags
planning-lane-cross-review-permission-fallback
Handle overnight planning-only lanes where plan revision/editing works but real cross-provider review dispatch is permission-blocked.
overnight-planning-noop-run-salvage
Recover when unattended overnight Codex planning runs exit 0 but produce no required artifacts; salvage the wave by auditing existing plan state, generating missing summary artifacts manually, and preserving morning monitoring surfaces.
large-parallel-planning-wave-environment-failure-handoff
Handle large pre-plan-review planning waves that succeed analytically but fail to persist artifacts due to quota exhaustion, sandbox write failures, or cancelled GitHub mutations.
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.
subagent-driven-development
Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).
linkedin-post-to-gtm-ingestion
Review external LinkedIn posts and fold reusable insights into ACE-style GTM docs, capability maps, and content calendars.
github-visual-planning-issues
Create review-friendly GitHub planning issues that supersede stale/seasonal issues and include source-backed image thumbnails for faster human review.
external-repo-adoption-recon
Clone and analyze an external open-source repo (best practices, frameworks, workflow toolkits) to produce a gap analysis against our ecosystem and an adoption cadence plan. Use when a user shares a GitHub URL of a methodology/tooling repo and wants to extract what's useful.
subagent-driven
Execute implementation plans with structured subagent dispatch and two-stage review (spec compliance, then code quality). Based on obra/superpowers.