# Statement of changes Apache License 2.0, section 4(b): prominent notice that files carry modifications. ## What is modified **No upstream source file is modified.** No file from `Qwen/Qwen3.8-27B` is edited, renamed, patched or redistributed in this repository, with one exception: the upstream licence text is reproduced byte-for-byte at `licenses/Qwen-Apache-2.0.txt` (sha256 `bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a`) because section 4(a) requires it. That file is unmodified and carries the upstream copyright. The modification this work carries is not an edit to a source file. It is a set of **trained parameters applied to the base model at inference time**, plus an original serving layer that reads the model's logits. Concretely: | Change | Artifact | sha256 | |---|---|---| | LoRA adapter, rank 64, question-side placement, float32 | `adapter/adapter.safetensors` | `d122466d430a058bb6457d919f811160e97fbd20149f4f24ca455c5d83e360a0` | | Trained linear answer heads | `adapter/heads.npz` | `f766d752d7768a419a9657155cf27f042834d9de29392cf7470d8725130e67ab` | | Readout calibration, one positive scalar per answer type | `serving/readout-temperature-v3.json` | file `1a2285d8fd56d17ee1d06a1e9fce866cc0d3b0263730754babb11deea5f1f7c9` / payload `945bad449b7f5ffc88e597277d632fbab81c3c8729e22c8babd3f4a45fe1378b` | | Runtime identity binding (bf16, default) | `serving/serving-binding.json` | payload `0add0efda28902180db757a12160953e0f5d8dc303decc27b2cfda84db900da8` | | Runtime identity binding (fp32) | `serving/serving-binding-fp32.json` | payload `517f263000cf65457751c4fba519221d48ac550e060b241f198b007ae88c59db` | | Runtime identity binding (int8) | `serving/serving-binding-int8.json` | payload `b550254777ceb3f53e7e10e15f7dc9f80f620ddd9c1ed69592190da5f2107f16` | | Experimental evidence head weights | `serving/evidence-head.safetensors` | `5088019adb67e523ef7411cf75e354f1070e5752c132e50f5f3acc4feb1c0f6c` | | Experimental evidence head config | `serving/evidence-head.json` | `b8bf1d642af9f3a830f1ee47c49bda7336d65b56b97fe3625ea1741f133fa244` | | Experimental evidence policy | `serving/evidence-policy.json` | `866888d26a5da9c91ffb1b418334e174a80320ea5f8d2216c2d459f2e25f3c84` | | Serving layer (original work, not derived from upstream code) | `src/` | see `MANIFEST.json` | Base model, unmodified and not redistributed: `Qwen/Qwen3.8-27B` at revision `1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0`, Copyright 2026 Alibaba Cloud, Apache-2.0. The v1.1 adapter and heads were trained on 21 September 2026 (v1.0: 16 to 20 September 2026). The shipped artifacts are identified by the checksums in the table above and in `MANIFEST.json`. ## Which files carry a change notice | File | Why | |---|---| | `NOTICE` | Section 4(b) and 4(c) statement, carried with every copy | | `MODIFICATIONS.md` | this file | | `README.md` | names the base model, the pinned revision and the derivative relationship in the front matter and in the body | | `adapter/config.json` | machine-readable record of the base repo, the pinned revision and both weight checksums | | `serving/serving-binding.json` | pins the exact runtime the weights were measured on and refuses to load against a different one | No file under `src/` carries an upstream change notice, because no file under `src/` contains upstream code. Every file there is original work, written for this project, and is covered by the repository's own Apache-2.0 `LICENSE` and by the copyright line in `NOTICE`. All of the changes described above — the adapter, the heads, the calibration, the serving binding and the serving layer — are Copyright 2026 Doccy Pty Ltd and licensed under Apache-2.0. ## Third-party text scan Before release, **every file staged into this repository was scanned for text originating in third-party source documents.** The scan compared normalised 6-gram and 8-gram shingles of every staged text file against: 1. the 42 third-party source records the training and evaluation panels were built from (Apache-2.0, MIT, BSD-3-Clause, CC BY 4.0, CC BY-SA 4.0, CC0, OGL v3.0 and US-government public-domain assertions); and 2. every generated panel and document corpus on disk. **Result: no third-party document text is present in any shipped file.** The only matches were: * the reproduced Apache-2.0 licence text at `licenses/Qwen-Apache-2.0.txt`, which matches an Apache-2.0 licence document held in the evaluation corpus and is required to be here verbatim; and * the phrase *"A missing fact is not a negative fact"*, which is **our own prompt-template wording** appearing in our own evaluation panels, not third-party text entering our prompts. Acceptance fixtures are excluded from this repository entirely. The fixture documents used in live acceptance are original synthetic text authored for this project and held in tooling that is not distributed. Re-run the scan with `ops/solomon_package.py --scan` in the source project. ## Maintainer notes These warnings used to live in a `PUSH.md` that carried its own instruction to be deleted before the repository was made public. The repository is public now, so that file is gone — from the manifest and from the tree — and the parts of it that are still true are kept here. **Never mutate a published revision.** The serving binding pins by hash and consumers pin by revision. If something is wrong with a published revision, push a **new** revision and a **new** tag. Do not force-push over a revision that has already been fetched: a consumer who pinned it would silently get different weights under a hash they already trusted. **Do not trust a fetch tool's exit code.** The remote-volume fetch used to retrieve the adapter PRINTS "No such file or directory" AND EXITS 0 on a wrong path: a failed download is indistinguishable from a successful one by return code. Never trust the exit status; check that the file exists and that its sha256 matches before treating a fetch as done. The 870 MB adapter in this repository was fetched that way, and the only thing that made the fetch trustworthy was re-hashing the file afterwards. Verify what you downloaded from here the same way: ```sh shasum -a 256 adapter/adapter.safetensors # d122466d430a058bb6457d919f811160e97fbd20149f4f24ca455c5d83e360a0 shasum -a 256 adapter/heads.npz # f766d752d7768a419a9657155cf27f042834d9de29392cf7470d8725130e67ab ``` `MANIFEST.json` carries the size and sha256 of every file here. **Both weight files must go through git-lfs.** `.gitattributes` tracks `*.safetensors` and `*.npz`; confirm with `git lfs ls-files` before committing. An 870 MB blob committed outside LFS has to be undone by rewriting history. **Every generated file here comes from `release/solomon-release.json`.** Editing a generated file by hand breaks the manifest hash and is caught by `ops/solomon_package.py --enforce` as `DRIFTED_SINCE_STAGING`. Change the descriptor or the generator and re-stage. **A calibration may not be carried onto a different adapter.** The temperatures were fitted on this model's logits. Refit and register them for a new adapter, or ship no calibration and serve at T = 1.0, which is always permitted.