Files
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
2026-10-06 01:47:40 +02:00
..

Adversarial Codex-agent TOML Fixtures (#3242)

Reusable hostile inputs for msd-core/bin/lib/agent-install-check.cjs checkCodexModelPosture().

Per CONTRIBUTING's fixture-provenance rule (#2371), these files are hand-authored against the real Codex .toml shape (the header-field / developer_instructions = '''...''' layout generateCodexAgentToml in bin/install.js emits) — none of them were produced by calling that writer. A fixture generated by the gate's own emitter can only confirm what the emitter already believes about its own output; it cannot surface a shape the emitter's author didn't anticipate.

Tests load them by relative path from tests/agent-install-check.test.cjs so the corpus can grow without touching the writer.

Categories present:

  • model-in-developer-instructions.toml — the headline trap. Contains a literal model = "sonnet" line inside the developer_instructions triple-quoted block, with no model key in the header. A whole-file line-oriented scan (/^model\s*=/m over the entire document) reports a false ANTHROPIC_FLAVORED_MODEL violation here; the correct header-slice scan reports none.
  • commented-model-pin.toml — # model = "sonnet" in the header region. Must not be treated as a live pin.
  • model-verbosity-prefix-collision.toml — only model_verbosity = "low" is present, no model key. A key-prefix probe (/model/) would misfire on this; a full-key-name anchor does not.
  • whitespace-indented-model-pin.toml — model = "sonnet" (leading indentation, spaced =). This one is a violation — whitespace around a real key must still be recognized.
  • CRLF has no committed fixture: .gitattributes (* text=auto eol=lf, repo-wide) normalizes any \r\n file back to LF on commit and on every checkout, so a committed CRLF fixture would silently prove nothing. The CRLF case (row 18a in tests/agent-install-check.test.cjs) instead authors LF content inline and converts it with .replace(/\n/g, '\r\n') at test runtime, keeping the CRLF-ness under the test's control.
  • bom-pinned-model.toml — UTF-8 BOM (EF BB BF) prefix, then a header pinning model = "sonnet". Must be flagged identically to a BOM-free file.