Skip to content

Replace the misleading .claudeignore troubleshooting entry (#1843) - #3634

Open
ayushcodes10 wants to merge 3 commits into
Graphify-Labs:v8from
ayushcodes10:fix-1843-claudeignore-doc
Open

ayushcodes10 wants to merge 3 commits into
Graphify-Labs:v8from
ayushcodes10:fix-1843-claudeignore-doc

Conversation

@ayushcodes10

Copy link
Copy Markdown
Contributor

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

  • Docs-only change; no code paths affected. Confirmed no test pins the old `.claudeignore` text.
  • Full suite: `python3 -m pytest -q` — 5621 passed, 68 skipped, no regressions.

🤖 Generated with Claude Code

ayushcodes10 and others added 2 commits September 17, 2026 20:06
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>

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-safety
  • tests/test_affected_member_seed.py — full-run-safety
  • tests/test_agents_platform.py — full-run-safety
  • tests/test_analyze.py — full-run-safety
  • tests/test_anthropic_custom_endpoint.py — full-run-safety
  • tests/test_antigravity_install.py — full-run-safety
  • tests/test_apm_fallback_version.py — full-run-safety
  • tests/test_architecture_doc.py — full-run-safety
  • tests/test_astro_extraction.py — full-run-safety
  • tests/test_astro_import_ids.py — full-run-safety
  • tests/test_atomic_canvas_export.py — full-run-safety
  • tests/test_atomic_version_stamp.py — full-run-safety
  • tests/test_atomic_writes.py — full-run-safety
  • tests/test_backend_env_isolation.py — full-run-safety
  • tests/test_backend_extras.py — full-run-safety
  • tests/test_benchmark.py — full-run-safety
  • tests/test_benchmark_raw_graph.py — full-run-safety
  • tests/test_build.py — full-run-safety
  • tests/test_build_merge_dedup_scope.py — full-run-safety
  • tests/test_build_merge_hyperedges_and_prune.py — full-run-safety
  • tests/test_build_merge_shrink_guard.py — full-run-safety
  • tests/test_builtin_global_type_refs.py — full-run-safety
  • tests/test_cache.py — full-run-safety
  • tests/test_callflow_html.py — full-run-safety
  • tests/test_cargo_introspect.py — full-run-safety
  • tests/test_carried_hyperedge_remap.py — full-run-safety
  • tests/test_case_sensitive_resolution.py — full-run-safety
  • tests/test_charmap_encoding.py — full-run-safety
  • tests/test_chunking.py — full-run-safety
  • tests/test_cjs_module_extension.py — full-run-safety
  • tests/test_claude_cli_backend.py — full-run-safety
  • tests/test_claude_md.py — full-run-safety
  • tests/test_cli_broken_pipe.py — full-run-safety
  • tests/test_cli_export.py — full-run-safety
  • tests/test_cli_help.py — full-run-safety
  • tests/test_cluster.py — full-run-safety
  • tests/test_codebuddy.py — full-run-safety
  • tests/test_community_hub_labels.py — full-run-safety
  • tests/test_community_labels_skill.py — full-run-safety
  • tests/test_confidence.py — full-run-safety
  • tests/test_corrupt_graph_json.py — full-run-safety
  • tests/test_cpp_nested_and_cli.py — full-run-safety
  • tests/test_cpp_objc_cross_file_calls.py — full-run-safety
  • tests/test_cpp_preprocess.py — full-run-safety
  • tests/test_cross_extension_reexport_self_cycle.py — full-run-safety
  • tests/test_cross_language_call_resolution.py — full-run-safety
  • tests/test_cross_repo_external_call_guards.py — full-run-safety
  • tests/test_cross_repo_member_calls.py — full-run-safety
  • tests/test_cross_repo_shared_types.py — full-run-safety
  • tests/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.
@github-actions github-actions Bot added the needs:title PR title should follow the conventional-commit format label Oct 10, 2026
@github-actions

Copy link
Copy Markdown

Thanks @ayushcodes10! One small thing: our changelog and release notes are built from PR titles, so we use the conventional-commits format, for example:

fix(python): resolve a bare stdlib import correctly

Prefixes we use: feat, fix, docs, chore, refactor, test, perf, build, ci. Editing the PR title clears this automatically. This is just a nudge and does not block review.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs:title PR title should follow the conventional-commit format

Projects

None yet

Development

Successfully merging this pull request may close these issues.

README troubleshooting recommends .claudeignore, which Claude Code does not support

1 participant