Skip to content

docs(plugin): basecoat + hotwire CLAUDE.md inaccurately claim view-scope mixin injection #2258

@bpamiri

Description

@bpamiri

Follow-up from #2247 / #2256.

Background

Both package CLAUDE.md files claim the package loader injects methods into the view scope directly:

  • packages/basecoat/CLAUDE.md: "Wheels injects every public method into controller and view scopes via PackageLoader."
  • packages/hotwire/CLAUDE.md: "the main CFC (Hotwire.cfc) contains init() and all public methods, which Wheels injects into controller and view scopes via PackageLoader."

Neither statement is accurate — view is not in variables.mixableComponents, and #2247 now rejects it with a clear error. Helpers are callable in views, but only because Wheels views execute in the controller's variables scope, so controller mixins surface transitively.

Fix

  • Update packages/basecoat/CLAUDE.md to state controller mixins surface in views via the controller scope.
  • Update packages/hotwire/CLAUDE.md with the same correction.
  • Spot-check packages/basecoat/.ai/ARCHITECTURE.md and packages/hotwire/.ai/ARCHITECTURE.md for the same inaccuracy.
  • Make sure the user-facing READMEs still match observed behavior (they already use "via the package mixin system" which is accurate).

Acceptance

  • No package-internal doc claims there is a view mixin target.
  • The explanation of how helpers become available in views describes the controller-scope inheritance, not a direct view mixin.

Out of scope

No code changes — documentation only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions