From 055f0f18b6c81c3c7d8635d0022e6f40bfb3fdf1 Mon Sep 17 00:00:00 2001 From: Matic Jurglic Date: Thu, 16 Jul 2026 08:58:22 +0000 Subject: [PATCH] Reimport skills from boxel-workspaces (removes edit-tracking convention) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full reimport via scripts/import-from-workspaces.mjs against the current boxel-workspaces source. Headline change is retiring the `.gts` edit-tracking convention — the line-1 `// ═══ [EDIT TRACKING: ON] Mark all changes with ⁿ ═══` banner, the sequential `// ⁿ` markers, and all prose/rules/checklists/examples that taught it — including removing the tracking Cardinal Rule and renumbering the remaining rules 1–13. Because this is a faithful reimport (not a scoped delta), it also carries the other content that had drifted ahead in boxel-workspaces since the last sync (boxel-environment references, integration-surfaces, and write-text-file/`.json` wording in source-code-editing / glossary / file-editing / boxel-create-instance). Verified: `import-from-workspaces.mjs --check` reports the checkout matches the source. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Hyod3e9qr2vwrN421Pjv4E --- commands/boxel-add-field.md | 1 - commands/boxel-create-instance.md | 8 +-- commands/boxel-debug-runtime.md | 2 +- commands/boxel-edit-template.md | 2 +- commands/boxel-search-cards.md | 2 +- index.md | 14 +++--- skills/boxel-create-edit-cards/SKILL.md | 2 +- skills/boxel-environment/SKILL.md | 10 ++-- .../references/calling-commands.md | 17 +++---- .../references/card-tool-selection.md | 11 ++-- .../references/host-commands-reference.md | 8 +-- .../references/source-code-editing.md | 3 +- .../references/workflows-and-orchestration.md | 4 +- skills/boxel-patterns/SKILL.md | 2 +- .../patterns/attach-remote-image/README.md | 4 +- .../example.gts | 31 ++++-------- .../show-count-tiles-from-query/example.gts | 2 +- .../references/integration-surfaces.md | 6 +-- skills/boxel/SKILL.md | 27 +++++----- skills/boxel/references/core-patterns.md | 16 +++--- .../boxel/references/defensive-programming.md | 4 +- .../boxel/references/delegated-rendering.md | 6 +-- skills/boxel/references/file-editing.md | 5 +- skills/boxel/references/imagedef.md | 2 +- skills/boxel/references/lint-workflow.md | 2 +- skills/boxel/references/quick-reference.md | 17 +++---- skills/boxel/references/template-syntax.md | 2 - .../scripts/instance-correctness-scan.py | 2 +- skills/glossary.md | 4 +- skills/source-code-editing/SKILL.md | 50 ++----------------- 30 files changed, 100 insertions(+), 166 deletions(-) diff --git a/commands/boxel-add-field.md b/commands/boxel-add-field.md index 8ff33c7..c9673e9 100644 --- a/commands/boxel-add-field.md +++ b/commands/boxel-add-field.md @@ -39,7 +39,6 @@ boxel: - [ ] The new field uses `linksTo`/`linksToMany` if it points at a CardDef, `contains`/`containsMany` if FieldDef. - [ ] Computed fields wrap field access in try/catch when crossing card boundaries. - [ ] No self-referencing computed fields. -- [ ] Tracking marker `ⁿ` added on every changed line (if tracking mode is on). - [ ] Changed `.gts` files passed installed npm `boxel` lint (`npx boxel file lint ... --file ` before push and `npx boxel lint --realm ` after push). ## Failure Recovery diff --git a/commands/boxel-create-instance.md b/commands/boxel-create-instance.md index c4b27c4..31d13f2 100644 --- a/commands/boxel-create-instance.md +++ b/commands/boxel-create-instance.md @@ -20,7 +20,7 @@ boxel: ## Read -1. `skills/boxel/SKILL.md` — cardinal rules 13-14 (external URLs in `links.self`, `linksToMany` indexed keys) plus `references/data-management.md` for the full JSON:API instance shapes (`containsMany` arrays, empty links, `adoptsFrom`). +1. `skills/boxel/SKILL.md` — cardinal rules 12-13 (external URLs in `links.self`, `linksToMany` indexed keys) plus `references/data-management.md` for the full JSON:API instance shapes (`containsMany` arrays, empty links, `adoptsFrom`). 2. `skills/boxel/references/card-references.md` — how every `links.self` resolves (`./` / `../` / absolute; bare paths throw). Also `references/core-concept.md` "Relationship path resolution" and "`adoptsFrom.module` — URL of the .gts, NOT including the export name". 3. `skills/boxel/references/base-field-catalog.md` — DateField vs DateTimeField value contract; the image URL/ImageDef pair pattern. 4. `skills/boxel-patterns/patterns/theme-first-workflow/README.md` — theme linking via `relationships["cardInfo.theme"]`, absolute URLs for nested folders, and why Theme cards omit the self-theme relationship. @@ -29,7 +29,7 @@ boxel: ## Procedure -1. Decide the tool: `write-text-file` (new instance, simple shape), `patch-fields` (existing instance, surgical), `patchCardInstance` (existing instance, full replace), or SEARCH/REPLACE (large or structural). +1. Decide the tool: SEARCH/REPLACE with a `(new)` marker (new instance), `patch-fields` (existing instance, surgical), or `patchCardInstance` (existing instance, full replace). 2. Compose the JSON: `"data"` envelope, `"type": "card"`, `meta.adoptsFrom` (module + name), `attributes`, `relationships` — shapes per the Read list above. 3. Include `attributes.cardInfo` unless there's a specific reason not to (it's the user's edit surface); set `relationships["cardInfo.theme"]` when this instance should carry its own theme. Theme instances themselves omit that relationship. 4. Match date string formats to the schema's field type (DateField vs DateTimeField); put external image URLs in the paired `*URL` attribute, never in a relationship. @@ -39,10 +39,10 @@ boxel: - [ ] `"data"` envelope; `meta.adoptsFrom` has `module` (no export-name suffix) + `name`. - [ ] Every `links.self` starts with `./`, `../`, or `http` (see `card-references.md`). -- [ ] `linksToMany` uses indexed keys, `containsMany` is an array in attributes, empty links use `"self": null` (cardinal rule 14 + `data-management.md`). +- [ ] `linksToMany` uses indexed keys, `containsMany` is an array in attributes, empty links use `"self": null` (cardinal rule 13 + `data-management.md`). - [ ] `attributes` is an object (never a JSON string); `relationships` is its sibling, not nested inside it. - [ ] `attributes.cardInfo` present; theme linkage decided per `theme-first-workflow`; no self-theme on Theme instances. -- [ ] Date values match field type; image URLs in the `*URL` attribute (cardinal rule 13 + `base-field-catalog.md`). +- [ ] Date values match field type; image URLs in the `*URL` attribute (cardinal rule 12 + `base-field-catalog.md`). ## Verification after push diff --git a/commands/boxel-debug-runtime.md b/commands/boxel-debug-runtime.md index 8626aca..a194990 100644 --- a/commands/boxel-debug-runtime.md +++ b/commands/boxel-debug-runtime.md @@ -46,5 +46,5 @@ boxel: ## Failure Recovery -- Can't reproduce → ask the user for exact reproduction steps. Boxel runtime errors often surface differently for different ages of edit-tracking state. +- Can't reproduce → ask the user for exact reproduction steps. - Loop detected (same commands repeating) → STOP and tell the user. Don't barrel forward. diff --git a/commands/boxel-edit-template.md b/commands/boxel-edit-template.md index 1dfb100..0d5b0b0 100644 --- a/commands/boxel-edit-template.md +++ b/commands/boxel-edit-template.md @@ -31,7 +31,7 @@ boxel: ## Procedure 1. Read the current template — confirm which format you're editing. -2. SEARCH/REPLACE the template. Preserve `