Skip to content

Never invent proof about the user's business, with a user-triggered demo mode - #205

Merged
lucaslyl merged 2 commits into
mainfrom
eco-600-never-invent-proof-about-the-users-business-with-a-user
Oct 12, 2026
Merged

lucaslyl merged 2 commits into
mainfrom
eco-600-never-invent-proof-about-the-users-business-with-a-user

Conversation

@lucaslyl

Copy link
Copy Markdown
Contributor

Linear: ECO-600

Why

With no real details, first builds invent claims about the user's business: named dentists, ratings, testimonials, "since" years, a made-up team and policies. A blunt "never invent" goes the other way and turns sample records into empty boxes (every menu price a "PRICE" box). #196 added one scoped sentence to the Just build it path; this adds the full rule, for every build.

What changes

  • critical-rules.md → Never invent proof:
    • Copy or record? Copy that claims something about the user's real business (ratings, testimonials, staff, "since" years, awards, services, its own prices or hours) needs a source the user supplied. Records the app stores (menu items, screenings, demo patients) are invented freely, prices included.
    • A missing claim is omitted by default, given a role the brief establishes, or at most two marked slots per page.
    • Demo mode, only on the user's word (concept, mockup, pitch, demo): invented proof is allowed, each claim tagged "Sample", with guardrails (no real publications, platforms, awards or credentials; a fictional street, a 555-01xx number; never an invented identity on a personal site).
  • index.md: the real-details question gets It's a concept or pitch — make up realistic details, marked as samples, and Ask one call of questions before a "Just build it" build #196's sentence links to the rule.
  • The playbook's sample-content line and the glossary point to it.

Tested

Claude in the terminal, Just build it, the user skipping the details, one run each:

Prompt Before After
Italian restaurant 13 placeholder boxes, every menu price a box 2 boxes, a priced menu ($16, $24…), nothing invented about the business
Italian restaurant, concept answer — A finished page (name, chef, quotes, hours) with 10 "Sample" tags
Dental clinic An invented team and a same-day policy, 8 boxes Neither, 2 boxes

Not covered

  • Not run on the in-app assistant's default model.
  • From review: wording "Who's it for?" around realness as the demo trigger, offering the demo version once after a strict build, and a page-level demo notice are left for a follow-up.

🤖 Generated with Claude Code

…emo mode

critical-rules gets a Never invent proof section. Copy that claims something about the user's real business (ratings, testimonials, staff, "since" years, awards, services, its own prices or hours) needs a source the user supplied; records the app stores (menu items, screenings, demo patients) are invented freely, prices included. A missing claim is omitted, given an established role, or at most two marked slots per page. Demo mode, only on the user's word, invents proof tagged "Sample", with guardrails against anything that could belong to someone real.

The real-details question gets a concept-or-pitch option that turns demo mode on, and the playbook's sample-content line and the glossary point to the rule.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Staging Workspace Sync Successful

Successfully synced changes to staging workspace
Workspace: https://realms-staging.stack.cards/skills/
Commit: 065db57
Synced at: 2026-10-12 04:11:43 UTC

Sync Details

Starting push from . to https://realms-staging.stack.cards/skills/
Testing realm access...
Realm access verified
Found 314 files in local directory
No sync manifest found, will upload all files
Uploading 314 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-design/references/layout-gravity.md
  Uploaded: skills/boxel-design/references/layout-vocabulary.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/sample-images.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-motion/SKILL.md
  Uploaded: skills/card-motion/references/choreo.md
  Uploaded: skills/card-motion/references/drag-and-reorder.md
  Uploaded: skills/card-motion/references/element.md
  Uploaded: skills/card-motion/references/layout.md
  Uploaded: skills/card-motion/references/presence.md
  Uploaded: skills/card-motion/references/scroll.md
  Uploaded: skills/card-motion/references/testing.md
  Uploaded: skills/card-motion/references/view-transitions.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/domain-interview/SKILL.md
  Uploaded: skills/domain-interview/references/brief-template.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: 79f86cd [MAJOR] Push: 314 files (~314)
Push completed
Push completed successfully

@lucaslyl
lucaslyl marked this pull request as ready for review October 12, 2026 03:20

@lucaslyl lucaslyl 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 🤖] Lens: whether the new rule agrees with the rest of the skill tree and with itself (the copy/record boundary, the slot cap, the scope of demo mode). I did not re-run the before/after prompts; the table in the description is the only behavioral evidence.

No blocking issues with the rule's direction; one should-fix before merge (1) and three places where the rule resolves differently depending on who reads it (2–4).

  1. Reconcile the sample-data lines in design-playbook.md and domain-interview/SKILL.md with the rule, and give domain-interview a demo-mode route or state its absence (thread on the Never invent proof heading).
  2. Give prices one discriminator and place a stored services list (thread on the copy bullet).
  3. Settle the two-slot cap against personal-site slots (thread on the personal-site sentence).
  4. Scope the "never invent" sentence in index.md for the new concept-or-pitch option (thread there).

- **Gradient Overuse** — Not every element needs a gradient. Gradients are the 2024 over-used signature; flat color with intentional contrast often wins.
- **Average Quality Trap** — Aim for top 1% execution, not median competence. The design-playbook's "internal taste-maker" framing exists to push past the default.

### Never invent proof

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 🤖] The rule claims to hold for every build, but three untouched instructions still say the opposite, and only one playbook line was reconciled:

  • design-playbook.md: the Stage 0d row ("real-feeling content") and the sample-data bullet under the fitted-format guidance ("real names, real prices, real photographs").
  • domain-interview/SKILL.md: the guard "It never invents the user's facts. A business name, a price, a licence number…" flatly forbids what this rule allows for records (prices included), while its sample-data bullet ("real names, real numbers, real dates") demands the opposite of the guard.

domain-interview also has no route to demo mode: nothing in it mentions a concept or pitch, and it never links here. A user on the Plan-first path who says "it's a pitch" gets a brief that placeholders their facts.

Fix: add the copy-or-record clause and a link to this section to those lines, and either give domain-interview the same user-word trigger or state that demo mode does not apply on that path. Regression (the new rule makes them contradict); belongs in this PR given the "every build" scope.

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 a02fbd2. The Stage 0d row and the sample-records bullet in design-playbook.md, and the never-invents guard and the sample-data bullet in domain-interview/SKILL.md, now scope "real content" to records the app stores and link to this section. The guard names sample records and demo mode as its exceptions. domain-interview has no concept-or-pitch question of its own; demo mode there turns on the user's own word, per the link. Resolves this thread.


- **Copy that claims something about the user's real business**: a hero line, an About section, a
rating badge, a testimonial, "Trusted by 2,000 families", "Since 1998", an award, a named member
of staff, the business's own prices or opening hours stated as fact, a service or policy it

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 🤖] Prices sit on both sides of the copy/record line. This bullet makes "the business's own prices … stated as fact" copy, and "a service … it offers" is copy too, while the record bullet makes a menu item's price free to invent. A restaurant menu (the tested case) and a dental "Services & fees" list stored as item cards have the same shape and land on opposite sides, so two builders will classify them differently.

The rule needs a discriminator that doesn't depend on topic, and a stated side for a stored services list. For example: a price is a record when it is a field on an item card the user adds, edits or removes; it is copy when it appears in prose or a headline ("from $89", "lunch $12"). The glossary entry repeats "its own prices or hours" and should follow whatever wording lands. Introduced here; non-blocking, but it is the case the rule most needs to resolve.

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 a02fbd2. Records are interchangeable entries the user edits and the page only lists (a dish, a drink, a product, a screening). Fees for a service the business performs are copy even when stored as cards, and so is a price written in prose or a headline. Running the skill text over the same prompts: a restaurant run with details skipped still gets a priced menu (18-22 priced lines across 3 runs), and a dental "Services & fees" run gets no invented fees (0 across 3 runs, against 13-16 before the change). Resolves this thread.

Even in demo mode, invent nothing that could belong to someone real: no quote attributed to a real
publication, no rating from a real platform, no award from a real body, no credential (medical,
legal, financial), an obviously fictional street, a 555-01xx phone number and an `example.com`
address. A personal site (a portfolio, a CV) never gets an invented identity: its owner's facts are

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 🤖] This contradicts the cap at the marked-slot step. "Its owner's facts are always slots" on a portfolio or CV means name, headline, bio, employer and contact, well past "at most two per page; reaching for a third means omitting instead". A personal site can't omit its owner's name, so the two rules can't both hold.

Say which wins: either the cap is lifted for personal sites (and the slots still use the one visibly-unfinished style), or the owner's facts are limited to a named short list. Introduced here; non-blocking.

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 🤖] Resolved in wording, not yet in behavior. a02fbd2 lifts the two-slot cap for a personal site's owner facts and moves the exception into its own bolded paragraph. In test runs a portfolio with the concept answer still got an invented owner in 3 of 3 runs, because the model follows the user's literal answer over that paragraph. Adding "(not the owner of a personal site)" to the option label in index.md made it slots-only in 3 of 3, but the pages carried 22-26 placeholders. Whether a pitch for a personal site should get a Sample owner instead is still an open decision, so this thread stays open.

Comment thread index.md Outdated
- **Real details** — "Anything true about this place a competitor couldn't say? Type two or three (a name, a street, a price, the building, an odd policy)." Its options are *No details — leave marked slots for them*, *No details — leave those sections out*, *It's a concept or pitch — make up realistic details, marked as samples* and, as the call's last question, *Skip the rest — you decide and build*; the choice UI's free-text answer carries the details.

Plain words, labels the user would say themselves. Every skip is an option in the choice UI, never a line asking the user to type "skip". Skip any question the prompt already answers: for the feel, named colours, a mood word, a brand, a logo or a reference site; for the details, facts already in the prompt. Use supplied details verbatim, and never invent facts about the user's own place or business: no made-up business name, address, staff names, rating, reviews, founding year, awards or prices of theirs; a missing one gets a marked slot or its section is left out, as the user picked. Sample records (the contacts in a CRM, the dishes on a recipe card) still look real, as the design-playbook asks. That is the whole interview for this path: one call, then build. Anything more is `domain-interview`'s job.
Plain words, labels the user would say themselves. Every skip is an option in the choice UI, never a line asking the user to type "skip". Skip any question the prompt already answers: for the feel, named colours, a mood word, a brand, a logo or a reference site; for the details, facts already in the prompt. Use supplied details verbatim, and never invent facts about the user's own place or business: no made-up business name, address, staff names, rating, reviews, founding year, awards or prices of theirs; a missing one gets a marked slot or its section is left out, as the user picked. Sample records (the contacts in a CRM, the dishes on a recipe card) still look real, as the design-playbook asks. The full rule, and the demo mode the concept-or-pitch answer turns on, are in [`critical-rules.md`](skills/boxel-design/references/critical-rules.md) → *Never invent proof*. That is the whole interview for this path: one call, then build. Anything more is `domain-interview`'s job.

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 🤖] This sentence is still absolute ("never invent facts… no made-up business name, address… a missing one gets a marked slot or its section is left out, as the user picked"), and the new option makes it false for a user who picked the concept answer: demo mode invents a fictional street, and the tested concept run produced a business name and a chef.

Scope the sentence ("unless the user picked the concept or pitch answer") ahead of the new link sentence, and have critical-rules.md say whether demo mode may invent the business name, since it only speaks of "proof" and the name isn't proof. Introduced here; non-blocking.

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 🤖] Partly resolved in a02fbd2. The sentence now begins "unless the user picked the concept-or-pitch answer", and demo mode may use an obviously fictional business name and street. Still open: in a concept run the model chose a plausible name that could belong to a real business, so "obviously fictional" does not hold as written and needs a stricter rule or an accepted tradeoff.

- design-playbook and domain-interview sample-data lines now scope "real
  content" to records and point at the rule; domain-interview's
  never-invent guard names the sample-record exception and demo mode.
- critical-rules: records are interchangeable entries the user edits
  (dishes, products, screenings); fees for a service the business
  performs are copy. Personal sites are an explicit exception to demo
  mode and the two-slot cap does not apply to their owner slots. Demo
  mode may use an obviously fictional business name.
- index.md: the never-invent sentence is scoped to builds where the user
  did not pick the concept-or-pitch answer.
- glossary entry follows the records wording.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@lucaslyl
lucaslyl merged commit 065db57 into main Oct 12, 2026
1 check passed
lucaslyl added a commit that referenced this pull request Oct 12, 2026
Drop motion-authoring, motion-baseline and the scroll reveal-and-scrub
pattern: card-motion (glimmer-motion and Choreo) is now the one way to
animate a card, and a build animates only when the user or the design
asks for it. Review no longer marks down a still page.

Never invent proof gains demo mode's guardrails and the two
contradiction fixes from #205; the app rules gain the free
catalog-button row, the viewCard guard and the hand-off note.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.

2 participants