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.

5 stars

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

$curl -o ~/.claude/skills/external-drive-ingest-planning/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/workspace-hub/external-drive-ingest-planning/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/external-drive-ingest-planning/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How external-drive-ingest-planning Compares

Feature / Agentexternal-drive-ingest-planningStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

5
from vamseeachanta/workspace-hub

Debugging and fixing shell hooks by writing isolated test suites first, then using test failures to pinpoint logic bugs

label-driven-prompt-generation-architecture

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Troubleshoot and mount NTFS external drives blocked by dirty filesystem flags

planning-lane-cross-review-permission-fallback

5
from vamseeachanta/workspace-hub

Handle overnight planning-only lanes where plan revision/editing works but real cross-provider review dispatch is permission-blocked.

overnight-planning-noop-run-salvage

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.

subagent-driven-development

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Review external LinkedIn posts and fold reusable insights into ACE-style GTM docs, capability maps, and content calendars.

github-visual-planning-issues

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Execute implementation plans with structured subagent dispatch and two-stage review (spec compliance, then code quality). Based on obra/superpowers.