{"version":"2.1.310","anchor":"project-docs-sent-as-text-in-context-new-gated","canonical_anchor":"project-docs-sent-as-text-in-context-new-gated","heading":"Project documents can be sent as text, and project_write checks a document was seen before replacing it","tier":"soon","area":"Project Documents","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.310\/e\/project-docs-sent-as-text-in-context-new-gated","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.310","markdown":"### Project documents can be sent as text, and project_write checks a document was seen before replacing it\n\nProject documents can be sent to Claude as plain text, and project_write refuses to replace a document whose current text Claude has not seen\n\n**What**\n\nA project in Claude Code can hold knowledge documents: files of reference material that belong to the project. Two linked pieces were added:\n\n- Sending documents as text: when a project does not use knowledge search, new code reads the project's documents and puts their text straight into what Claude is given to read. Documents that are left out are recorded. This needs two server switches, `tengu_lovely_rain` and `tengu_peppy_spindle`.\n\n- Checking before replacing: when `project_write` replaces an existing document (not one written from a `local_path`) and a check for what Claude has in view is available, it first reads the document's current text. If that read fails, the write stops with the message 'Write not done; nothing in the project was changed'. If the document is not 'in view', meaning Claude has not been shown its current text, the write is refused. Before, `project_write` replaced the document directly.\n\nThis comes on top of the existing version check on `project_write`, which refuses a write when the document changed since it was read. The new check is about whether Claude has actually seen the text it is replacing.\n\nThe flag server returned `tengu_lovely_rain` and `tengu_peppy_spindle` as off for this site's account and for an anonymous visitor, but no reading has been taken under this release yet.\n\n**Why**\n\nThe check stops Claude from overwriting a project document with new content when it never saw what the document said. Projects with small sets of documents may have them given to Claude directly once the switches are turned on.\n\n- Flag `tengu_lovely_rain`: Off in both readings (read for one account on one subscription tier against v2.1.310; this account: off, anonymous baseline: off, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Flag `tengu_peppy_spindle`: Off in both readings (read for one account on one subscription tier against v2.1.310; this account: off, anonymous baseline: off, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Project Documents\n- Tier: Nothing to try yet\n- Useful: 4\/5\n- Signal: 5\/5\n- Scope: individual\n- Heads-up: no\n- Present in the build but not switched on"}