This index is the source-of-truth entry point for user-facing APIs in Reflaxe.Elixir.
Included in this index:
- Metadata tags used by examples and user-facing guides
- Public runtime/library surfaces under
std/phoenix,std/ecto,std/elixir,std/plug,std/exunit - User-facing macro/flag references in
docs/04-api-reference
Not included as primary reference surface:
- Internal compiler pipeline internals under
src/reflaxe/elixir/ast/**unless directly exposed to users
- Deep guidance: high-impact surfaces (Phoenix, Ecto, OTP/runtime integration, metadata semantics)
- Concise reference: long-tail APIs, module inventory, and cross-links
- Metadata and annotation semantics:
docs/04-api-reference/ANNOTATIONS.md - Router DSL:
docs/04-api-reference/ROUTER_DSL.md - Compiler/user feature flags:
docs/04-api-reference/FEATURE_FLAGS.md - Macro API usage guidance:
docs/04-api-reference/HAXE_MACRO_APIS.md - Phoenix API deep dive:
docs/04-api-reference/PHOENIX_API_REFERENCE.md - LiveSocket assign API (consumer + technical):
docs/04-api-reference/LIVE_SOCKET_ASSIGN_API.md - Ecto API deep dive:
docs/04-api-reference/ECTO_API_REFERENCE.md - Elixir runtime API deep dive:
docs/04-api-reference/ELIXIR_RUNTIME_API_REFERENCE.md - Type-safe OTP child-spec API:
docs/04-api-reference/TYPE_SAFE_CHILD_SPEC.md
Use this section as the concise contract for assistant/tooling retrieval.
- Router DSL (
docs/04-api-reference/ROUTER_DSL.md):- typed tokens are default (
pipeline(browser),plug(accepts),pipeThrough([browser])) *Unsafeconstructors are explicit escape hatches for dynamic/legacy values
- typed tokens are default (
- OTP child specs (
docs/04-api-reference/TYPE_SAFE_CHILD_SPEC.md):- typed module refs are default (
TypeSafeChildSpec.endpoint(Endpoint)) *Unsafemethods are escape hatches for dynamic/legacy strings
- typed module refs are default (
- Existing pure Elixir modules should keep typed callsites by using small extern boundaries:
@:native("...") extern class ... {}- in strict-mode contexts, mark app-local extern boundaries explicitly with
@:unsafeExtern
- Canonical references:
- Router DSL:
docs/04-api-reference/ROUTER_DSL.md - Child specs:
docs/04-api-reference/TYPE_SAFE_CHILD_SPEC.md - Interop boundaries:
docs/02-user-guide/INTEROP_WITH_EXISTING_ELIXIR.md
- Router DSL:
| Tag | Purpose | Primary Reference |
|---|---|---|
@:appName |
Configure OTP app/module naming | ANNOTATIONS.md |
@:application |
OTP Application module generation | ANNOTATIONS.md |
@:behaviour |
Behavior contract definition | ANNOTATIONS.md |
@:build |
Build-macro hook | ANNOTATIONS.md |
@:callback |
Required behavior callback | ANNOTATIONS.md |
@:changeset |
Changeset generation/config | ANNOTATIONS.md |
@:channel |
Phoenix Channel module | ANNOTATIONS.md |
@:component |
Phoenix component module + entrypoints | ANNOTATIONS.md |
@:controller |
Phoenix controller module | ANNOTATIONS.md |
@:elixirIdiomatic |
Idiomatic enum/result shape preference | ANNOTATIONS.md |
@:endpoint |
Phoenix endpoint module | ANNOTATIONS.md |
@:endpointSockets |
Endpoint socket mount declarations | ANNOTATIONS.md |
@:exunit |
ExUnit test module marker | ANNOTATIONS.md |
@:field |
Ecto schema field marker | ANNOTATIONS.md |
@:from |
Implicit conversion into type | ANNOTATIONS.md |
@:genserver |
GenServer module behavior | ANNOTATIONS.md |
@:gettext |
Gettext integration surface marker | ANNOTATIONS.md |
@:has_many |
Ecto has_many association marker | ANNOTATIONS.md |
@:hxx_mode |
HXX mode selection | ANNOTATIONS.md |
@:hxx_no_inline_markup |
Disable inline-markup rewrite | ANNOTATIONS.md |
@:impl |
Protocol implementation marker | ANNOTATIONS.md |
@:keep |
Prevent DCE elimination | ANNOTATIONS.md |
@:liveview |
Phoenix LiveView module | ANNOTATIONS.md |
@:migration |
Ecto migration class marker | ANNOTATIONS.md |
@:module |
Module macro convenience marker | ANNOTATIONS.md |
@:native |
Explicit Elixir module/function naming | ANNOTATIONS.md |
@:optional |
Optional contract/typedef field marker | ANNOTATIONS.md |
@:optional_callback |
Optional behavior callback | ANNOTATIONS.md |
@:overload |
Alternate typing signatures | ANNOTATIONS.md |
@:phoenixWebModule |
Generate AppWeb helper module |
ANNOTATIONS.md |
@:phxHookNames |
Hook-name registry metadata | ANNOTATIONS.md |
@:presence |
Phoenix Presence module | ANNOTATIONS.md |
@:presenceTopic |
Default presence topic metadata | ANNOTATIONS.md |
@:primary_key |
Schema primary key marker | ANNOTATIONS.md |
@:private |
Private API surface marker | ANNOTATIONS.md |
@:protocol |
Protocol definition marker | ANNOTATIONS.md |
@:query |
Reserved/experimental query marker | ANNOTATIONS.md |
@:repo |
Ecto repository config marker | ANNOTATIONS.md |
@:route |
Legacy/manual route metadata | ROUTER_DSL.md |
@:router |
Phoenix router module | ANNOTATIONS.md |
@:routes |
Typed route declarations | ROUTER_DSL.md |
@:schema |
Ecto schema module | ANNOTATIONS.md |
@:slot |
Component slot metadata | ANNOTATIONS.md |
@:socket |
Phoenix socket module | ANNOTATIONS.md |
@:socketChannels |
Socket topic routing metadata | ANNOTATIONS.md |
@:supervisor |
OTP supervisor marker | ANNOTATIONS.md |
@:template |
Template binding metadata | ANNOTATIONS.md |
@:test |
ExUnit test method marker | ANNOTATIONS.md |
@:timestamps |
Schema timestamps marker | ANNOTATIONS.md |
@:to |
Implicit conversion from type | ANNOTATIONS.md |
@:use |
Behavior-use convention marker in examples | ANNOTATIONS.md |
@:validate_format |
Changeset format validation metadata | ANNOTATIONS.md |
@:validate_length |
Changeset length validation metadata | ANNOTATIONS.md |
@:validate_number |
Changeset numeric validation metadata | ANNOTATIONS.md |
@:validate_required |
Changeset required-field metadata | ANNOTATIONS.md |
@:virtual |
Virtual schema field marker | ANNOTATIONS.md |
Core:
std/phoenix/Phoenix.hxstd/phoenix/Component.hxstd/phoenix/LiveSocket.hxstd/phoenix/Channel.hxstd/phoenix/Presence.hxstd/phoenix/PresenceBehavior.hxstd/phoenix/PresenceModule.hxstd/phoenix/PhoenixFlash.hxstd/phoenix/PubSubShim.hxstd/phoenix/SafePubSub.hxstd/phoenix/Token.hxstd/phoenix/JS.hx
Channels and wire types:
std/phoenix/channels/JoinResult.hxstd/phoenix/channels/ReplyResult.hxstd/phoenix/channels/TypedChannelServer.hx
Template/HXX:
std/phoenix/hxx/H.hxstd/phoenix/hxx/HXX2.hxstd/phoenix/hxx/HeexTemplate.hxstd/phoenix/hxx/ast/HeexNode.hxstd/phoenix/hxx/ast/HeexAttr.hx
Types and registries:
std/phoenix/types/Assigns.hxstd/phoenix/types/AssignKey.hxstd/phoenix/types/Socket.hxstd/phoenix/types/Slot.hxstd/phoenix/types/Flash.hxstd/phoenix/types/FlashMessage.hxstd/phoenix/types/RouteParams.hxstd/phoenix/types/HXXTypes.hxstd/phoenix/types/HXXComponentRegistry.hxstd/phoenix/types/HtmlComponent.hx
Testing:
std/phoenix/test/Conn.hxstd/phoenix/test/ConnTest.hxstd/phoenix/test/LiveView.hxstd/phoenix/test/LiveViewTest.hx
std/ecto/Schema.hxstd/ecto/Changeset.hxstd/ecto/ChangesetApi.hxstd/ecto/ChangesetBridge.hxstd/ecto/Repository.hxstd/ecto/DatabaseAdapter.hxstd/ecto/Migration.hxstd/ecto/Migrator.hxstd/ecto/Query.hxstd/ecto/TypedQuery.hxstd/ecto/TypedQueryInstanceMacros.hxstd/ecto/TypedQueryMacrosBridge.hxstd/ecto/Params.hxstd/ecto/test/Sandbox.hx
Core modules:
std/elixir/Atom.hx,std/elixir/Kernel.hx,std/elixir/Enum.hx,std/elixir/List.hx,std/elixir/Tuple.hxstd/elixir/ElixirMap.hx,std/elixir/ElixirString.hx,std/elixir/ElixirEnum.hxstd/elixir/Application.hx,std/elixir/GenServer.hx,std/elixir/Process.hx,std/elixir/Task.hx,std/elixir/TaskSupervisor.hxstd/elixir/DateTime.hx,std/elixir/System.hx,std/elixir/Regex.hx,std/elixir/Stream.hxstd/elixir/File.hx,std/elixir/Path.hx,std/elixir/IO.hx,std/elixir/Code.hx,std/elixir/Module.hxstd/elixir/Registry.hx,std/elixir/Node.hx,std/elixir/HttpClient.hx,std/elixir/Jason.hxstd/elixir/ErlangCrypto.hx,std/elixir/ErlangMath.hx
OTP helpers:
std/elixir/otp/Application.hxstd/elixir/otp/Supervisor.hxstd/elixir/otp/TypeSafeChildSpec.hx
Typed wrappers (std/elixir/types):
AgentRef.hx,Atom.hx,ExitReason.hx,GenServerCallbackResults.hx,GenServerOption.hx,GenServerRef.hxMessageQueueData.hx,MonitorInfo.hx,Pid.hx,Priority.hx,ProcessDictionary.hx,ProcessFlag.hx,ProcessInfo.hxReference.hx,RegistryKey.hx,RegistryOptions.hx,Result.hx,TaskRef.hx,TaskResult.hx,Term.hx,TermDecoder.hx
- Plug:
std/plug/Conn.hx,std/plug/CSRFProtection.hx - ExUnit:
std/exunit/Assert.hx,std/exunit/TestCase.hx
- Add/update relevant tag semantics in
ANNOTATIONS.md - Add/update deep-dive page for affected namespace
- Ensure index links resolve (
npm run guard:docs-links) - For new metadata usage in examples, add contextual first-use comments in the example file