diff --git a/.fossil-settings/AGENTS.md b/.fossil-settings/AGENTS.md index 020e004b..69ca422c 100644 --- a/.fossil-settings/AGENTS.md +++ b/.fossil-settings/AGENTS.md @@ -11,6 +11,10 @@ Versioned fossil settings (one setting value or glob list per file) for this dua ## Local Contracts +### Commit warning suppression + +- `binary-glob` is `*`: binary checkins are allowed by default with no fossil warnings/prompts (applies to punkshell and is the pattern for sub-projects like tomlish). The aim of an eventually binary-free tree (goals G-004/G-005/G-006) is agent/workflow policy (see root `AGENTS.md` User Preferences) and is deliberately NOT enforced at the local VCS layer. + ### Files each system must not track - **Fossil-generated checkout artifacts**: the `manifest` setting (value `rut`) makes fossil regenerate `manifest`, `manifest.uuid` and `manifest.tags` at the checkout root on every checkin/checkout. Fossil auto-manages them (they never appear in extras and cannot be added). Git must ignore them - root-anchored `/manifest`, `/manifest.uuid`, `/manifest.tags` in `.gitignore` (anchored because nested manifest-named files elsewhere are real content) - and must never track them. diff --git a/.fossil-settings/binary-glob b/.fossil-settings/binary-glob new file mode 100644 index 00000000..43151835 --- /dev/null +++ b/.fossil-settings/binary-glob @@ -0,0 +1,4 @@ +#Allow binary checkins by default - no fossil commit warnings/prompts for binary content. +#The aim of an eventually binary-free tree (goals G-004/G-005/G-006) is agent/workflow +#policy, not something enforced at the local VCS layer. +* diff --git a/AGENTS.md b/AGENTS.md index 1c7fa8ea..0c2854f0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -83,10 +83,10 @@ Default section order: When the user requests a durable behavior change, record it here or in the relevant child AGENTS.md -- LF line endings are strongly preferred for all files in this repository. +- LF line endings are strongly preferred for all files in this repository. Converting a CRLF text file to LF when an edit touches it is correct and welcome - do not preserve CRLF for diff-minimisation. Preserve existing line endings only for files with deliberately mixed/CRLF endings (e.g. line-ending round-trip test data) or when explicitly instructed for a file. - If the active editor is on a source-derived snapshot, bootstrap copy, or build output path such as `src/bootsupport/`, root `modules/`, root `lib/`, `modules_tcl8/`, `modules_tcl9/`, `lib_tcl8/`, or `lib_tcl9/`, confirm the intended target before editing unless the user explicitly named that path. - cmd.exe PATH truncation (this machine, and any Windows machine with a heavily populated PATH): cmd.exe truncates a long PATH, so a tool that resolves fine in PowerShell may be "not found" when invoked via `cmd.exe /c`. Use absolute executable paths inside any `cmd /c` command line, and prefer PowerShell-native invocation unless a console host is specifically required (e.g. hidden-console test harnesses). If a tool is missing only under cmd.exe, suspect truncation before absence. -- Do not commit new executable binaries (shared libs, .exe, native .so/.dll/.dylib, bare ELF/Mach-O, or zip-based .tm modules embedding executables) to the repository. Existing binaries in `bin/`, `src/vfs/`, `src/vendorlib/`, `src/vendormodules/`, and `src/bootsupport/` are there intentionally pending the build/retrieval infrastructure tracked by goals G-004/G-005/G-006; do not flag, "fix", or hassle the developer about these — they are known and will be removed once G-005 (zig build) or G-006 (pre-built download) provides an alternative. This rule stops agents from adding new binaries; it does not block the developer's interim commits of existing vendor/vfs binaries. +- Do not commit new executable binaries (shared libs, .exe, native .so/.dll/.dylib, bare ELF/Mach-O, or zip-based .tm modules embedding executables) to the repository. Existing binaries in `bin/`, `src/vfs/`, `src/vendorlib/`, `src/vendormodules/`, and `src/bootsupport/` are there intentionally pending the build/retrieval infrastructure tracked by goals G-004/G-005/G-006; do not flag, "fix", or hassle the developer about these — they are known and will be removed once G-005 (zig build) or G-006 (pre-built download) provides an alternative. This rule stops agents from adding new binaries; it does not block the developer's interim commits of existing vendor/vfs binaries. It is workflow policy only - deliberately NOT enforced at the local VCS layer: fossil `binary-glob` is `*` (versioned in `.fossil-settings/`) so binary checkins proceed without warnings/prompts, here and in sub-projects like tomlish. ## Commit Conventions (any VCS)