Repository navigation
Replace the misleading .claudeignore troubleshooting entry (#1843) - #3634
ayushcodes10 wants to merge 3 commits into
Conversation
Claude Code never shipped .claudeignore support: the original feature request was closed in favor of permissions deny read rules, and a long tail of user reports confirms the file is silently ignored when present. The README's prompt cache troubleshooting entry told users to add graph.json and graphify out to a .claudeignore file, which is a no op that leaves the symptom in place. Replaced with the supported settings.json deny rule, plus a note that it trades off against the wiki as navigation workflow, since a deny rule blocks reading those files too. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Corrects the prompt-cache troubleshooting guidance in the README to use permissions.deny in .claude/settings.json instead of the non-existent .claudeignore, since Claude Code never shipped .claudeignore support and the old advice was a no-op. Adds a note that the deny rule also blocks reading graph.json/graphify-out/, so it conflicts with the wiki-as-navigation workflow. Records both in the changelog under 0.9.63.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 235 functions depend on the 235 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 235 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 235 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
286 of 286 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety — the selection is not trustworthy on its own (see below). CI should run the whole suite.
tests/test_affected_cli.py— full-run-safetytests/test_affected_member_seed.py— full-run-safetytests/test_agents_platform.py— full-run-safetytests/test_analyze.py— full-run-safetytests/test_anthropic_custom_endpoint.py— full-run-safetytests/test_antigravity_install.py— full-run-safetytests/test_apm_fallback_version.py— full-run-safetytests/test_architecture_doc.py— full-run-safetytests/test_astro_extraction.py— full-run-safetytests/test_astro_import_ids.py— full-run-safetytests/test_atomic_canvas_export.py— full-run-safetytests/test_atomic_version_stamp.py— full-run-safetytests/test_atomic_writes.py— full-run-safetytests/test_backend_env_isolation.py— full-run-safetytests/test_backend_extras.py— full-run-safetytests/test_benchmark.py— full-run-safetytests/test_benchmark_raw_graph.py— full-run-safetytests/test_build.py— full-run-safetytests/test_build_merge_dedup_scope.py— full-run-safetytests/test_build_merge_hyperedges_and_prune.py— full-run-safetytests/test_build_merge_shrink_guard.py— full-run-safetytests/test_builtin_global_type_refs.py— full-run-safetytests/test_cache.py— full-run-safetytests/test_callflow_html.py— full-run-safetytests/test_cargo_introspect.py— full-run-safetytests/test_carried_hyperedge_remap.py— full-run-safetytests/test_case_sensitive_resolution.py— full-run-safetytests/test_charmap_encoding.py— full-run-safetytests/test_chunking.py— full-run-safetytests/test_cjs_module_extension.py— full-run-safetytests/test_claude_cli_backend.py— full-run-safetytests/test_claude_md.py— full-run-safetytests/test_cli_broken_pipe.py— full-run-safetytests/test_cli_export.py— full-run-safetytests/test_cli_help.py— full-run-safetytests/test_cluster.py— full-run-safetytests/test_codebuddy.py— full-run-safetytests/test_community_hub_labels.py— full-run-safetytests/test_community_labels_skill.py— full-run-safetytests/test_confidence.py— full-run-safetytests/test_corrupt_graph_json.py— full-run-safetytests/test_cpp_nested_and_cli.py— full-run-safetytests/test_cpp_objc_cross_file_calls.py— full-run-safetytests/test_cpp_preprocess.py— full-run-safetytests/test_cross_extension_reexport_self_cycle.py— full-run-safetytests/test_cross_language_call_resolution.py— full-run-safetytests/test_cross_repo_external_call_guards.py— full-run-safetytests/test_cross_repo_member_calls.py— full-run-safetytests/test_cross_repo_shared_types.py— full-run-safetytests/test_csharp_call_site_generic_args.py— full-run-safety- … and 236 more
non-code file(s) changed (
CHANGELOG.md,README.md) → running the full suite for safety (a code graph can't see config/fixture/data deps)
changed code file(s) with no mapped test (
CHANGELOG.md,README.md) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Resolves a conflict in README.md: upstream trimmed the whole inline Troubleshooting section to a single link to the hosted docs site after this branch diverged, superseding every entry in it, including the inaccurate claudeignore one this branch corrected. Took upstream's version, since there is no entry left here for the fix to apply to; the inaccurate advice this branch was correcting is gone from the README either way. The CHANGELOG entry documenting the fix for the version it actually shipped under stands on its own and is unaffected.
|
Thanks @ayushcodes10! One small thing: our changelog and release notes are built from PR titles, so we use the conventional-commits format, for example: Prefixes we use: |
Summary
Fixes #1843. The README's prompt-cache troubleshooting entry told users to add `graph.json`/`graphify-out/` to a `.claudeignore` file to stop Claude Code's prompt cache from invalidating on every write. Claude Code never shipped `.claudeignore` support — the original feature request (anthropics/claude-code#579) was closed in favor of `permissions.deny` rules, and a long tail of user reports confirms the file is silently ignored when present. The README's remedy is a no-op: users create the file, nothing changes, and the symptom persists.
Fix
Replaced with the supported mechanism:
```json
// .claude/settings.json
{ "permissions": { "deny": ["Read(./graphify-out/**)", "Read(./graph.json)"] } }
```
Added a note that this trades off against the wiki-as-navigation workflow (`export wiki`, `graphify-out/wiki/`), since a deny rule also blocks reading those files, not just writes.
Test plan
🤖 Generated with Claude Code