Skip to content

Say a caller's filter and a grant on one path into a list must meet in one element - #177

Merged
habdelra merged 3 commits into
mainfrom
cs-13344-list-path-limit
Oct 6, 2026
Merged

habdelra merged 3 commits into
mainfrom
cs-13344-list-path-limit

Conversation

@habdelra

@habdelra habdelra commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

In service of the operation-permission policies, which scope a search to what a caller's grants admit by composing the grants into the caller's own query. This adds a paragraph to card-operations-authoring, under "What a policy does to a search", for a limit a caller writing a search will hit. When the caller's filter and a query grant test the same path into a list, one element of the list must satisfy both. So a teacher whose grant reads .teacherIds | any(. == actor()) finds no classroom by searching teacherIds for a colleague. Conditions on different fields of a list's items are each met by any element.

The index query engine shares one alias per path into a list, so both conditions test the same element. cardstack/boxel#6561 pins this with tests. The policy author's side of the same limit is in realm-policy-authoring §7 in #174.

Linear: CS-13344

🤖 Generated with Claude Code

…n one element

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Staging Workspace Sync Successful

Successfully synced changes to staging workspace
Workspace: https://realms-staging.stack.cards/skills/
Commit: 42a96bb
Synced at: 2026-10-06 18:55:16 UTC

Sync Details

Starting push from . to https://realms-staging.stack.cards/skills/
Testing realm access...
Realm access verified
Found 300 files in local directory
No sync manifest found, will upload all files
Uploading 300 file(s) via /_atomic...
  Uploaded: skills/boxel/scripts/instance-correctness-scan.py
  Uploaded: index.json
  Uploaded: index.md
  Uploaded: realm.json
  Uploaded: skills/boxel/SKILL.md
  Uploaded: skills/boxel/references/base-field-catalog.md
  Uploaded: skills/boxel/references/card-references.md
  Uploaded: skills/boxel/references/command-development.md
  Uploaded: skills/boxel/references/command-invocation-modes.md
  Uploaded: skills/boxel/references/common-imports.md
  Uploaded: skills/boxel/references/container-query-fitted-layout.md
  Uploaded: skills/boxel/references/core-concept.md
  Uploaded: skills/boxel/references/core-patterns.md
  Uploaded: skills/boxel/references/data-management.md
  Uploaded: skills/boxel/references/date-math.md
  Uploaded: skills/boxel/references/default-index-card.md
  Uploaded: skills/boxel/references/defensive-link-traversal.md
  Uploaded: skills/boxel/references/defensive-programming.md
  Uploaded: skills/boxel/references/delegated-rendering.md
  Uploaded: skills/boxel/references/design-playbook.md
  Uploaded: skills/boxel/references/enumerations.md
  Uploaded: skills/boxel/references/external-libraries.md
  Uploaded: skills/boxel/references/file-editing.md
  Uploaded: skills/boxel/references/fitted-formats.md
  Uploaded: skills/boxel/references/formatters.md
  Uploaded: skills/boxel/references/icons.md
  Uploaded: skills/boxel/references/imagedef.md
  Uploaded: skills/boxel/references/lint-workflow.md
  Uploaded: skills/boxel/references/prefers-wide-format.md
  Uploaded: skills/boxel/references/query-systems.md
  Uploaded: skills/boxel/references/quick-reference.md
  Uploaded: skills/boxel/references/qunit-testing.md
  Uploaded: skills/boxel/references/relationship-loading-state.md
  Uploaded: skills/boxel/references/searchable-fields.md
  Uploaded: skills/boxel/references/spec-usage.md
  Uploaded: skills/boxel/references/styling-design.md
  Uploaded: skills/boxel/references/template-syntax.md
  Uploaded: skills/boxel/references/theme-design-system.md
  Uploaded: skills/boxel-create-edit-cards/SKILL.md
  Uploaded: skills/boxel-design/SKILL.md
  Uploaded: skills/boxel-design/references/asset-selection-guidelines.md
  Uploaded: skills/boxel-design/references/critical-rules.md
  Uploaded: skills/boxel-environment/SKILL.md
  Uploaded: skills/boxel-environment/references/assistant-persona.md
  Uploaded: skills/boxel-environment/references/calling-commands.md
  Uploaded: skills/boxel-environment/references/card-tool-selection.md
  Uploaded: skills/boxel-environment/references/common-errors.md
  Uploaded: skills/boxel-environment/references/diagnosing-broken-links.md
  Uploaded: skills/boxel-environment/references/fresh-realm-push-integrity.md
  Uploaded: skills/boxel-environment/references/host-commands-reference.md
  Uploaded: skills/boxel-environment/references/indexing-operations.md
  Uploaded: skills/boxel-environment/references/markdown-edit.md
  Uploaded: skills/boxel-environment/references/searching-and-querying.md
  Uploaded: skills/boxel-environment/references/shared-mirror-safety.md
  Uploaded: skills/boxel-environment/references/source-code-editing.md
  Uploaded: skills/boxel-environment/references/user-environment-awareness.md
  Uploaded: skills/boxel-environment/references/workflows-and-orchestration.md
  Uploaded: skills/boxel-file-def/SKILL.md
  Uploaded: skills/boxel-file-def/references/available-fields.md
  Uploaded: skills/boxel-file-def/references/filedef-first-class-file-support.md
  Uploaded: skills/boxel-file-def/references/filedef-vs-base64imagefield.md
  Uploaded: skills/boxel-file-def/references/import-paths.md
  Uploaded: skills/boxel-file-def/references/markdowndef-vs-markdownfield.md
  Uploaded: skills/boxel-file-def/references/no-inline-binary.md
  Uploaded: skills/boxel-file-def/references/rendering-file-fields-in-templates.md
  Uploaded: skills/boxel-file-def/references/type-hierarchy.md
  Uploaded: skills/boxel-file-def/references/using-filedef-in-cards.md
  Uploaded: skills/boxel-flavored-markdown/SKILL.md
  Uploaded: skills/boxel-flavored-markdown/references/authoring-notes.md
  Uploaded: skills/boxel-flavored-markdown/references/base-syntax.md
  Uploaded: skills/boxel-flavored-markdown/references/bfm-extensions-beyond-commonmarkgfm.md
  Uploaded: skills/boxel-flavored-markdown/references/card-directives-the-boxel-extension.md
  Uploaded: skills/boxel-flavored-markdown/references/quick-reference.md
  Uploaded: skills/boxel-flavored-markdown/references/where-bfm-is-used.md
  Uploaded: skills/boxel-markdown-format/SKILL.md
  Uploaded: skills/boxel-markdown-format/references/delegation-composes.md
  Uploaded: skills/boxel-markdown-format/references/essential-helper-markdownescape.md
  Uploaded: skills/boxel-markdown-format/references/pitfalls.md
  Uploaded: skills/boxel-markdown-format/references/rendering-markdown-html-at-runtime.md
  Uploaded: skills/boxel-markdown-format/references/shape-of-a-static-markdown-template.md
  Uploaded: skills/boxel-markdown-format/references/the-default-usually-good-enough.md
  Uploaded: skills/boxel-markdown-format/references/the-markdown-helpers-toolkit.md
  Uploaded: skills/boxel-markdown-format/references/when-youre-done.md
  Uploaded: skills/boxel-markdown-format/references/worked-example-note-card-with-custom-markdown.md
  Uploaded: skills/boxel-patterns/SKILL.md
  Uploaded: skills/boxel-patterns/patterns/app-card-home-with-search/README.md
  Uploaded: skills/boxel-patterns/patterns/attach-remote-image/README.md
  Uploaded: skills/boxel-patterns/patterns/automate-declared-captures/README.md
  Uploaded: skills/boxel-patterns/patterns/automate-declared-captures/example.gts
  Uploaded: skills/boxel-patterns/patterns/automate-image-steering/README.md
  Uploaded: skills/boxel-patterns/patterns/automate-image-steering/example.gts
  Uploaded: skills/boxel-patterns/patterns/automate-linked-to-me-lookup/README.md
  Uploaded: skills/boxel-patterns/patterns/automate-linked-to-me-lookup/example.gts
  Uploaded: skills/boxel-patterns/patterns/automate-run-command-cli/README.md
  Uploaded: skills/boxel-patterns/patterns/automate-run-command-cli/example.gts
  Uploaded: skills/boxel-patterns/patterns/build-planning-cards-trio/README.md
  Uploaded: skills/boxel-patterns/patterns/build-site-config-with-theme/README.md
  Uploaded: skills/boxel-patterns/patterns/build-site-config-with-theme/example.gts
  Uploaded: skills/boxel-patterns/patterns/cardinfo-override-title/README.md
  Uploaded: skills/boxel-patterns/patterns/cardinfo-override-title/example.gts
  Uploaded: skills/boxel-patterns/patterns/collab-yjs-shared-document/README.md
  Uploaded: skills/boxel-patterns/patterns/command-atomic-install/README.md
  Uploaded: skills/boxel-patterns/patterns/command-atomic-install/example.gts
  Uploaded: skills/boxel-patterns/patterns/command-data-resource/README.md
  Uploaded: skills/boxel-patterns/patterns/command-data-resource/example.gts
  Uploaded: skills/boxel-patterns/patterns/command-optimistic-pipeline/README.md
  Uploaded: skills/boxel-patterns/patterns/command-optimistic-pipeline/example.gts
  Uploaded: skills/boxel-patterns/patterns/command-typed-with-progress/README.md
  Uploaded: skills/boxel-patterns/patterns/command-typed-with-progress/example.gts
  Uploaded: skills/boxel-patterns/patterns/command-with-skill-card-ref/README.md
  Uploaded: skills/boxel-patterns/patterns/command-with-skill-card-ref/example.gts
  Uploaded: skills/boxel-patterns/patterns/containsmany-sorted-render/README.md
  Uploaded: skills/boxel-patterns/patterns/containsmany-sorted-render/example.gts
  Uploaded: skills/boxel-patterns/patterns/format-morph-shared-component/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-capture-card-format/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-capture-card-format/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-chess-js-via-cdn/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-chess-js-via-cdn/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-filedef-generated-image/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-filedef-generated-image/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-leaflet-via-cdn/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-leaflet-via-cdn/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-one-shot-llm/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-one-shot-llm/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-openrouter-image-generation/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-openrouter-image-generation/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-send-request-via-proxy/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-send-request-via-proxy/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-three-js-3mf-fabrication/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-three-js-3mf-fabrication/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-three-js-via-cdn/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-three-js-via-cdn/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-thumbnail-card-ai/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-thumbnail-card-ai/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-tone-js-via-cdn/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-tone-js-via-cdn/example.gts
  Uploaded: skills/boxel-patterns/patterns/integrate-web-audio-synthesis/README.md
  Uploaded: skills/boxel-patterns/patterns/integrate-web-audio-synthesis/example.gts
  Uploaded: skills/boxel-patterns/patterns/layout-3d-card-carousel/README.md
  Uploaded: skills/boxel-patterns/patterns/layout-3d-card-carousel/example.gts
  Uploaded: skills/boxel-patterns/patterns/layout-design-board/README.md
  Uploaded: skills/boxel-patterns/patterns/layout-design-board/example.gts
  Uploaded: skills/boxel-patterns/patterns/layout-kanban-drag-drop/README.md
  Uploaded: skills/boxel-patterns/patterns/layout-kanban-drag-drop/example.gts
  Uploaded: skills/boxel-patterns/patterns/layout-sectioned-record-with-nav/README.md
  Uploaded: skills/boxel-patterns/patterns/layout-sectioned-record-with-nav/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-command-menu-item/README.md
  Uploaded: skills/boxel-patterns/patterns/link-command-menu-item/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-discriminated-action-resolver/README.md
  Uploaded: skills/boxel-patterns/patterns/link-discriminated-action-resolver/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-element-tag-helper/README.md
  Uploaded: skills/boxel-patterns/patterns/link-element-tag-helper/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-flip-card/README.md
  Uploaded: skills/boxel-patterns/patterns/link-flip-card/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-host-mode-paths/README.md
  Uploaded: skills/boxel-patterns/patterns/link-host-mode-paths/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-onclick-outside/README.md
  Uploaded: skills/boxel-patterns/patterns/link-onclick-outside/example.gts
  Uploaded: skills/boxel-patterns/patterns/link-view-transition/README.md
  Uploaded: skills/boxel-patterns/patterns/link-view-transition/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-atomic-field-factory/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-atomic-field-factory/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-base-class-taxonomy/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-base-class-taxonomy/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-lru-cached-parser/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-lru-cached-parser/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-recursive-fielddef/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-recursive-fielddef/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-resource-class-data-loader/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-resource-class-data-loader/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-sensitive-stub-pair/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-sensitive-stub-pair/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-typed-activity-feed/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-typed-activity-feed/example.gts
  Uploaded: skills/boxel-patterns/patterns/organize-variant-field-dispatcher/README.md
  Uploaded: skills/boxel-patterns/patterns/organize-variant-field-dispatcher/example.gts
  Uploaded: skills/boxel-patterns/patterns/pick-rating/README.md
  Uploaded: skills/boxel-patterns/patterns/pick-rating/example.gts
  Uploaded: skills/boxel-patterns/patterns/pick-typed-sort/README.md
  Uploaded: skills/boxel-patterns/patterns/pick-typed-sort/example.gts
  Uploaded: skills/boxel-patterns/patterns/polymorphic-field-subclass/README.md
  Uploaded: skills/boxel-patterns/patterns/resource-consume-from-context/README.md
  Uploaded: skills/boxel-patterns/patterns/resource-consume-from-context/example.gts
  Uploaded: skills/boxel-patterns/patterns/resource-for-state/README.md
  Uploaded: skills/boxel-patterns/patterns/show-card-list-with-views/README.md
  Uploaded: skills/boxel-patterns/patterns/show-card-list-with-views/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-count-tiles-from-query/README.md
  Uploaded: skills/boxel-patterns/patterns/show-count-tiles-from-query/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-filedef-audio-player/README.md
  Uploaded: skills/boxel-patterns/patterns/show-filedef-audio-player/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-list-prefer-prerendered/README.md
  Uploaded: skills/boxel-patterns/patterns/show-list-prefer-prerendered/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-pdf-annotations-filedef/README.md
  Uploaded: skills/boxel-patterns/patterns/show-pdf-annotations-filedef/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-runtime-markdown-html/README.md
  Uploaded: skills/boxel-patterns/patterns/show-runtime-markdown-html/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-table-from-query/README.md
  Uploaded: skills/boxel-patterns/patterns/show-table-from-query/example.gts
  Uploaded: skills/boxel-patterns/patterns/show-wiki-links/README.md
  Uploaded: skills/boxel-patterns/patterns/show-wiki-links/example.gts
  Uploaded: skills/boxel-patterns/patterns/theme-first-workflow/README.md
  Uploaded: skills/boxel-patterns/patterns/theme-first-workflow/example.gts
  Uploaded: skills/boxel-patterns/references/ai-image-models.md
  Uploaded: skills/boxel-patterns/references/integration-surfaces.md
  Uploaded: skills/boxel-patterns/references/libraries.md
  Uploaded: skills/boxel-patterns/references/pattern-authoring.md
  Uploaded: skills/boxel-patterns/references/pattern-backlog.md
  Uploaded: skills/boxel-patterns/scripts/audit-host-command-refs.mjs
  Uploaded: skills/boxel-skill-authoring/SKILL.md
  Uploaded: skills/boxel-theme-development/SKILL.md
  Uploaded: skills/boxel-theme-development/references/design-md-adapter.md
  Uploaded: skills/boxel-theme-development/references/shadcn-boxel-token-mapping.md
  Uploaded: skills/boxel-ui-component-discovery/SKILL.md
  Uploaded: skills/boxel-ui-guidelines/SKILL.md
  Uploaded: skills/boxel-ui-guidelines/references/checklist.md
  Uploaded: skills/boxel-ui-guidelines/references/delegated-render-control.md
  Uploaded: skills/boxel-ui-guidelines/references/field-rendering-fields-vs-model.md
  Uploaded: skills/boxel-ui-guidelines/references/font-loading-theme-card-owns-imports.md
  Uploaded: skills/boxel-ui-guidelines/references/prefer-component-apis-write-new-components-when-needed.md
  Uploaded: skills/boxel-ui-guidelines/references/prevent-content-overflow.md
  Uploaded: skills/boxel-ui-guidelines/references/print-and-published-output.md
  Uploaded: skills/boxel-ui-guidelines/references/style-budget.md
  Uploaded: skills/boxel-ui-guidelines/references/template-patterns.md
  Uploaded: skills/boxel-ui-guidelines/references/theme-token-contract.md
  Uploaded: skills/boxel-ui-guidelines/references/ui-review-procedure.md
  Uploaded: skills/boxel-ui-guidelines/references/use-boxel-design-tokens-for-theming.md
  Uploaded: skills/boxel-ui-guidelines/references/use-boxel-ui-components.md
  Uploaded: skills/boxel-ui-guidelines/references/use-container-queries-not-viewport-units.md
  Uploaded: skills/boxel-workspace-cardinal-rules/SKILL.md
  Uploaded: skills/bxl-authoring/SKILL.md
  Uploaded: skills/card-operations-authoring/SKILL.md
  Uploaded: skills/catalog-listing/SKILL.md
  Uploaded: skills/catalog-listing/references/submission-workflow.md
  Uploaded: skills/catalog-reuse/SKILL.md
  Uploaded: skills/ember-best-practices/README.md
  Uploaded: skills/ember-best-practices/SKILL.md
  Uploaded: skills/ember-best-practices/rules/a11y-automated-testing.md
  Uploaded: skills/ember-best-practices/rules/a11y-form-labels.md
  Uploaded: skills/ember-best-practices/rules/a11y-keyboard-navigation.md
  Uploaded: skills/ember-best-practices/rules/a11y-route-announcements.md
  Uploaded: skills/ember-best-practices/rules/a11y-semantic-html.md
  Uploaded: skills/ember-best-practices/rules/advanced-concurrency.md
  Uploaded: skills/ember-best-practices/rules/advanced-data-loading-with-ember-concurrency.md
  Uploaded: skills/ember-best-practices/rules/advanced-helpers.md
  Uploaded: skills/ember-best-practices/rules/advanced-modifiers.md
  Uploaded: skills/ember-best-practices/rules/advanced-tracked-built-ins.md
  Uploaded: skills/ember-best-practices/rules/bundle-direct-imports.md
  Uploaded: skills/ember-best-practices/rules/bundle-embroider-static.md
  Uploaded: skills/ember-best-practices/rules/bundle-lazy-dependencies.md
  Uploaded: skills/ember-best-practices/rules/component-args-validation.md
  Uploaded: skills/ember-best-practices/rules/component-avoid-classes-in-examples.md
  Uploaded: skills/ember-best-practices/rules/component-avoid-constructors.md
  Uploaded: skills/ember-best-practices/rules/component-avoid-lifecycle-hooks.md
  Uploaded: skills/ember-best-practices/rules/component-cached-getters.md
  Uploaded: skills/ember-best-practices/rules/component-class-fields.md
  Uploaded: skills/ember-best-practices/rules/component-composition-patterns.md
  Uploaded: skills/ember-best-practices/rules/component-controlled-forms.md
  Uploaded: skills/ember-best-practices/rules/component-file-conventions.md
  Uploaded: skills/ember-best-practices/rules/component-memory-leaks.md
  Uploaded: skills/ember-best-practices/rules/component-minimal-tracking.md
  Uploaded: skills/ember-best-practices/rules/component-on-modifier.md
  Uploaded: skills/ember-best-practices/rules/component-reactive-chains.md
  Uploaded: skills/ember-best-practices/rules/component-strict-mode.md
  Uploaded: skills/ember-best-practices/rules/component-tracked-toolbox.md
  Uploaded: skills/ember-best-practices/rules/component-use-glimmer.md
  Uploaded: skills/ember-best-practices/rules/exports-named-with-default-fallback.md
  Uploaded: skills/ember-best-practices/rules/helper-builtin-functions.md
  Uploaded: skills/ember-best-practices/rules/helper-composition.md
  Uploaded: skills/ember-best-practices/rules/helper-plain-functions.md
  Uploaded: skills/ember-best-practices/rules/performance-on-modifier-vs-handlers.md
  Uploaded: skills/ember-best-practices/rules/route-lazy-routes.md
  Uploaded: skills/ember-best-practices/rules/route-loading-substates.md
  Uploaded: skills/ember-best-practices/rules/route-model-caching.md
  Uploaded: skills/ember-best-practices/rules/route-parallel-model.md
  Uploaded: skills/ember-best-practices/rules/route-templates.md
  Uploaded: skills/ember-best-practices/rules/service-cache-responses.md
  Uploaded: skills/ember-best-practices/rules/service-data-requesting.md
  Uploaded: skills/ember-best-practices/rules/service-ember-data-optimization.md
  Uploaded: skills/ember-best-practices/rules/service-owner-linkage.md
  Uploaded: skills/ember-best-practices/rules/service-shared-state.md
  Uploaded: skills/ember-best-practices/rules/template-avoid-computation.md
  Uploaded: skills/ember-best-practices/rules/template-conditional-rendering.md
  Uploaded: skills/ember-best-practices/rules/template-each-key.md
  Uploaded: skills/ember-best-practices/rules/template-fn-helper.md
  Uploaded: skills/ember-best-practices/rules/template-helper-imports.md
  Uploaded: skills/ember-best-practices/rules/template-let-helper.md
  Uploaded: skills/ember-best-practices/rules/template-only-component-functions.md
  Uploaded: skills/ember-best-practices/rules/testing-library-dom-abstraction.md
  Uploaded: skills/ember-best-practices/rules/testing-modern-patterns.md
  Uploaded: skills/ember-best-practices/rules/testing-msw-setup.md
  Uploaded: skills/ember-best-practices/rules/testing-no-raf-for-state.md
  Uploaded: skills/ember-best-practices/rules/testing-qunit-dom-assertions.md
  Uploaded: skills/ember-best-practices/rules/testing-render-patterns.md
  Uploaded: skills/ember-best-practices/rules/testing-test-waiters.md
  Uploaded: skills/ember-best-practices/rules/vscode-setup-recommended.md
  Uploaded: skills/glossary.md
  Uploaded: skills/query-backed-relationships/SKILL.md
  Uploaded: skills/realm-policy-authoring/SKILL.md
  Uploaded: skills/rich-markdown-reports/SKILL.md
  Uploaded: skills/source-code-editing/SKILL.md
Skipping 2 realm-managed remote artifact(s): index.json, realm.json

Checkpoint created: 0fe1652 [MAJOR] Push: 300 files (~300)
Push completed
Push completed successfully

@habdelra habdelra left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Claude Code 🤖] I checked the paragraph against the engine: how the table-valued tree aliases are keyed in expression.ts, composePolicyScopedFilter and its callers (including the saved-search path in handle-search.ts), the membership shapes a grant compiles to (asMembership in policy-filter.ts), and the boxel pinning tests. I also compared it with the realm-policy-authoring §7 rewrite on the open companion PR and with the surrounding section's style.

No blocking issues. The claims match the engine. The tree alias is keyed tree_<column>_<fieldPath> on the full dotted path, so two conditions on one path share one element, and different paths fan out independently. A grant compiles only .list | any(. == v) or .links | any(.id == v), so the parenthetical "the list itself, or the same field of the cards it links to" covers every list shape a grant can produce. The paragraph agrees with the §7 rewrite on substance. It reads in the section's bold-lead style.

  1. One wording nit: "no classroom at all" holds only for a single grant (inline thread).
  2. Unverified: the boxel pinning tests ("a caller filter and a grant on the same list") have not run green in CI yet. Every earlier run on that branch was cancelled, and the current run is still in progress. Consider merging this after those tests pass, since the paragraph cites them as the pin.

Comment on lines +722 to +725
teacher whose grant reads `.teacherIds | any(. == actor())` finds every
classroom they teach by searching `teacherIds` for themselves, and no classroom
at all by searching `teacherIds` for a colleague, not even one that lists them
both. Write such a search against another field. A saved search's own filter is

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Claude Code 🤖] "No classroom at all" is true only when this is the teacher's only query grant. Could it say "no classroom this grant admits" instead? The grants compose as any: [...] and share the one teacherIds alias, so a policy that also grants .ownerId == actor() still returns a classroom the teacher owns whose teacherIds lists the colleague. The element is the colleague and the owner branch holds. As written, a reader whose policy pairs ownership with membership will think the doc is wrong when that row comes back.

Non-blocking wording fix. It's not a regression; the same sentence is in the realm-policy-authoring §7 rewrite on the other open PR, so the two should change together.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Claude Code 🤖] Fixed in c882c1b (reflowed in 26f2cf1). The example now says the teacher finds none of the classrooms the membership grant admits, and that a classroom another of their query grants admits, such as one they own, is still found. The matching §7 sentence in #174 is with that PR's author.

habdelra and others added 2 commits October 6, 2026 10:25
…mits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@habdelra
habdelra requested a review from a team October 6, 2026 14:33
@habdelra
habdelra merged commit 42a96bb into main Oct 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants