The paper agrees with the code — guide v11, README, DESIGN re-rulings, and the adjudicated sweep

Step 7 of strategy/01-git-excision.md, the companions. The agent guide bumps to v11: the Git section teaches repo-resident etiquette alone (stage only your own paths, commit your own changes, leave app-maintained files to the app) — existing boards heal to the new text on next open. README re-anchors: the four git feature bullets out, tiers say the complete Mac experience is free, and one bullet states the format's git-friendliness promise. The changelog drops the never-shipped git entries. DESIGN re-rules: 06 retired with Undo routing migrated to 13 (now the sole substrate's doc, seam kept open), 07 retired as written pending the ops-service workstream, 14 retired as superseded record, 12 carries the second pivot note, the index reflects all of it; the charter gets a pointer note (the anchors' full re-ruling stays with the user). InertGitTests renames to GitAgnosticStorageTests — the excision restores its original claim app-wide. And the sweep: ~70 comment sites across 36 files adjudicated against the keeper list, every present-tense description of the excised machinery made past tense or repointed, keepers untouched. 2,707 tests green.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
2026-08-08 12:31:27 -04:00
parent 8cf1457814
commit 445d035a83
50 changed files with 397 additions and 313 deletions
+30 -17
View File
@@ -84,7 +84,15 @@ enum AgentGuide {
/// the zero-read minimum (`mkdir` plus one `index.md`, no `order`, no `schema`; it lands at the
/// lane's bottom and the app stamps a real rank on its first touch) while still teaching
/// *writing* `order` as the way to control position, which is the only way to control it.
static let version = 10
/// **v11 rewrites Git for the excision** (strategy/01-git-excision.md, ruled 2026-08-08):
/// app-managed git is gone the app never runs git, and the auto-commit the old section
/// promised no longer exists, so shipping v10's text would document machinery to agents that
/// isn't there. The section now teaches repo-resident etiquette alone the format stays
/// deliberately git-friendly, a board may live in a repository of the user's own, and there an
/// agent stages only its own paths, commits its own changes with clear messages, and leaves the
/// app-maintained files to the app. The stamping section drops its auto-commit clause the same
/// way.
static let version = 11
// MARK: - The version marker
@@ -235,9 +243,8 @@ enum AgentGuide {
/// when the decision called for it.
///
/// **Called inside `BoardStore.performWrite`**, so both halves ride one watcher bracket: the
/// rescue and the guide land as a single app-mediated reload, and (under Pro) as a
/// single honestly-attributed commit rather than a foreign-looking rename followed by an
/// app write (06-history-undo.md Commit messages, "Update agent guide (vN)").
/// rescue and the guide land as a single app-mediated reload rather than as two foreign-looking
/// events.
///
/// The move is `FileManager.moveItem` and nothing else: it preserves the bytes exactly the
/// displaced file may not even be UTF-8 and it **fails rather than overwrite** if
@@ -298,8 +305,8 @@ enum AgentGuide {
}
try BoardWriter.atomicReplace(text: content, at: guideURL, operation: .agentGuide)
// Heal-marked: the guide's refresh is app-initiated work, and its commit is its own
// ("Update agent guide (vN)" already commits alone 06-history-undo.md Commit messages).
// Heal-marked: the guide's refresh is app-initiated work, and the ledger records it as the
// heal it is rather than as anyone's edit.
EchoLedger.current?.markHeal(at: guideURL)
return displaced
}
@@ -420,11 +427,11 @@ enum AgentGuide {
Add `modified-by: <your-name>` (e.g. `modified-by: claude`) to the
frontmatter of every `index.md` you write — it attributes the change in the
app and, on git boards, in the auto-commit. The app clears the stamp on its
own writes, so **re-stamp on every write, and after every move**: a bare
folder move rewrites no file, so the moved card arrives unstamped unless you
touch its `index.md` again. When you need exact authorship, commit your
changes yourself instead (see Git below).
app. The app clears the stamp on its own writes, so **re-stamp on every
write, and after every move**: a bare folder move rewrites no file, so the
moved card arrives unstamped unless you touch its `index.md` again. On a
board that lives in a git repository of the user's own, committing your
changes yourself (see Git below) records exact authorship as well.
## Creating a card
@@ -567,14 +574,20 @@ enum AgentGuide {
## Git
Some boards are git repositories — because the board lives inside a repo of
yours, or because Lanework Pro manages its history. Two rules when one is:
Lanework itself never runs git: the app manages no repository, makes no
commits, and never reads `.git`. But the format is deliberately
git-friendly — one file per card, stable UUID folder names, byte-faithful
rewrites — and a board may live inside a repository of the user's own.
When it does:
- **Stage only your own paths** — never `git add -A` or `git add .`: a
sweep would commit the user's not-yet-committed changes under your name.
- Committing your changes yourself is fine and gives you exact authorship;
the app follows along. If you don't commit, Lanework Pro auto-commits
your changes as external edits (attributed via `modified-by` when you
stamped it).
- **Commit your own changes, with clear messages** — nothing else will
commit them for you, and a semantic message ("Move card 'Fix login' to
Doing") is the history the user will actually read.
- **Leave the app-maintained files to the app** — this guide and the
seeded `.gitignore` are rewritten by Lanework when they need to be;
don't edit or delete them, and don't commit changes to the user's other
files that you didn't make.
"""
}