update
Update an existing .claudeignore file by adding, removing, or revising entries based on current repository state.
What this skill does
# Update .claudeignore
Modify an existing `.claudeignore` file based on the user's request or
a fresh analysis of the repository.
---
## Step 1: Read the current file
Read `.claudeignore` from the project root.
If the file does not exist, tell the user:
> "No `.claudeignore` found in this project. Use `claudeignore:create`
> to generate one from scratch."
Do not fall through to creation logic.
---
## Step 2: Determine what changed
There are three update modes:
### Mode A: Explicit request
The user asks to add or remove specific entries (e.g., "add data/",
"remove debug/", "stop ignoring reports/").
- Parse the request into add/remove operations.
- Skip the scan — the user knows what they want.
### Mode B: Drift check
The user asks to "review" or "refresh" the claudeignore, or simply
invokes `claudeignore:update` without specifics.
1. Scan the repository (same as create Step 1).
2. Compare the scan results against the current `.claudeignore`:
- **Missing entries**: directories that should be ignored but aren't.
Apply the heuristic: large, generated, noisy, secret, or not useful
for day-to-day coding decisions → should be ignored.
- **Missing secrets**: check for `.env`, `.env.*`, `*.pem`, `*.key`,
or credential files that aren't ignored yet.
- **Stale entries**: directories in `.claudeignore` that no longer
exist in the repo.
- **Questionable entries**: source directories, manifests
(`pyproject.toml`, `package.json`), or key docs (`README.md`,
`CLAUDE.md`) that are being ignored — likely a mistake.
- **Over-ignored**: files Claude needs to understand the project
structure (core config, tooling config) that are currently ignored.
3. Present findings as a diff.
### Mode C: From arguments
If arguments are provided, parse them as directives:
- Bare directory names → add them (e.g., `update data/ logs/`)
- Prefixed with `-` or `!` → remove them (e.g., `update -debug/ !reports/`)
- `--refresh` or `--check` → trigger drift check (Mode B)
---
## Step 3: Present the changes
Show the user what will change using a before/after or diff format:
```
Changes to .claudeignore:
+ data/ # add — 450 MB data files, not source code
+ logs/ # add — log output, not useful for context
- debug/ # remove — user wants debug scripts indexed
~ stubs/ → stubs/py # modify — narrow the scope
```
Ask:
> "Here are the proposed changes. Apply them? (yes / edit / no)"
---
## Step 4: Apply changes
After confirmation:
1. Read the current `.claudeignore` content.
2. Apply the additions, removals, and modifications.
3. Maintain the category comment structure — add new entries under the
appropriate category header, or create a new category if needed.
4. Remove empty category sections (header with no entries below it).
5. Write the updated file.
---
## Step 5: Report
After writing, report:
- Summary of changes (N added, N removed, N modified)
- Any stale entries that were cleaned up
- Reminder about on-demand reading of ignored paths
---
## Constraints
- **Never remove entries without confirmation.** Even stale entries
might be intentional (anticipating future directories).
- **Preserve existing comments and structure.** Don't reformat the
entire file just to add one entry.
- **Warn on source directory ignores.** If the user asks to ignore
`src/`, `lib/`, `tests/`, or `scripts/`, flag it:
> "Warning: `src/` contains source code. Ignoring it means I won't
> see your application code. Are you sure?"
- **Warn on manifest/config ignores.** If the user asks to ignore
`pyproject.toml`, `package.json`, `tsconfig.json`, or similar, flag it:
> "Warning: this is a project manifest. Ignoring it means I won't
> understand your project's dependencies and tooling. Are you sure?"
- **Always recommend secrets.** During drift checks, if `.env`,
`.env.*`, `*.pem`, `*.key`, or credential files exist and aren't
ignored, flag them as recommended additions — defense in depth
against sensitive content entering context.
- **Validate entries exist.** When adding directories, check that they
actually exist. If they don't, warn the user but still add if they
confirm — they may be anticipating future directories.
- **Read-only on error.** If the file can't be parsed or written,
report the error and stop. Do not silently create a new file.
---
## Argument handling
Arguments are parsed as directives (see Mode C above). If no arguments
are provided and the user's message doesn't specify what to change,
default to Mode B (drift check).
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.