From b92be13bc6ee5cc430d780d095cc22b8c620a73f Mon Sep 17 00:00:00 2001 From: aaltshuler Date: Tue, 7 Jul 2026 01:43:49 +0300 Subject: [PATCH] =?UTF-8?q?docs(skill):=20review=20follow-ups=20=E2=80=94?= =?UTF-8?q?=20gotcha-table=20consistency,=20stale=20D2=20note,=20example?= =?UTF-8?q?=20naming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Devin caught the gotchas table still advising the tighten-in-follow-up recipe this PR corrects elsewhere; the D2 note claiming deletes inline-commit (staged since 0.8.0 — the rule is a deliberate boundary, not an implementation gap); and the undirected example describing `Related` while traversing `` (text now names `IssueRelated` per the PascalCase->lowerCamelCase convention). --- skills/omnigraph/SKILL.md | 2 +- skills/omnigraph/references/queries.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/skills/omnigraph/SKILL.md b/skills/omnigraph/SKILL.md index 49a19b65..ffbf9522 100644 --- a/skills/omnigraph/SKILL.md +++ b/skills/omnigraph/SKILL.md @@ -377,7 +377,7 @@ These are the traps most likely to bite. Scan this table before debugging any pa | `load --mode merge` after `@embed` source change | stale embeddings | `omnigraph embed --reembed_all` or `load --mode overwrite` | | `schema apply` with feature branches open | rejected | Merge or delete branches first | | `nearest(...)` / `bm25(...)` / `rrf(...)` without `limit` | compile error | Add `limit N` | -| Adding non-nullable property without backfill | unsupported migration | Make optional → backfill → tighten in follow-up apply | +| Adding non-nullable property without backfill | unsupported migration | Make optional → backfill; keep it optional (tightening `T?` → `T` is refused, OG-MF-106) | | `omnigraph init --json` | `unexpected argument --json` | `init` doesn't support `--json`; drop the flag | | `omnigraph init` on an already-initialized URI | `AlreadyInitialized` error (v0.6.0+) | `--force` to re-init (skips the schema preflight; does **not** purge data) | | `schema apply` dropping a property/type | soft-dropped or rejected (no data loss) | add `--allow-data-loss` to actually drop the column | diff --git a/skills/omnigraph/references/queries.md b/skills/omnigraph/references/queries.md index 32498ab0..f2415786 100644 --- a/skills/omnigraph/references/queries.md +++ b/skills/omnigraph/references/queries.md @@ -117,7 +117,7 @@ query employees_of($company: String) { ### Undirected traversal (omnigraph >= 0.8.1) -For symmetric relations (same-endpoint-type edges like `Related: Issue -> Issue`), +For symmetric relations (same-endpoint-type edges like `IssueRelated: Issue -> Issue`), angle brackets match the edge in **either direction**, deduplicated — one pattern replaces querying both directions and merging: @@ -291,7 +291,7 @@ query add_and_link($slug: String, $pattern: String, $createdAt: DateTime, $updat There's no `upsert` keyword at the query level — use `load --mode merge` for bulk upsert. -> **Insert/update-only OR delete-only (the D₂ rule).** A single mutation query may contain inserts and updates, **or** deletes — never both. Mixing a `delete` with an `insert`/`update` in the same query is rejected at parse time. (Inserts/updates go through a staged two-phase publish; deletes inline-commit — omnigraph doesn't yet use Lance's two-phase delete API (it shipped in Lance 7.0.0 but isn't wired in) — so they can't share one atomic statement.) Split a delete-then-insert into two separate mutations. +> **Insert/update-only OR delete-only (the D₂ rule).** A single mutation query may contain inserts and updates, **or** deletes — never both. Mixing a `delete` with an `insert`/`update` in the same query is rejected at parse time. (Deletes stage through the same two-phase publish as inserts/updates since 0.8.0; the D₂ split is a deliberate semantic boundary — one mutation query is constructive XOR destructive, keeping read-your-writes unambiguous — not an implementation gap.) Split a delete-then-insert into two separate mutations. ### Date and DateTime values