landing_page-controllers
Guide to Phoenix Controller structure in landing_page_backend using FallbackController, tuple responses, and permission plugs.
Skill by Vũ Lưu
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vuluu2k-landing-page-controllers
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/landing-page-controllers
What's inside
- Skill name
landing_page-controllers- Description
- Guide to Phoenix Controller structure in landing_page_backend using FallbackController, tuple responses, and permission plugs.
- License
- MIT
- Metadata
- author: Vũ Lưu · source: Source code landing_page_backend · version: 2026.03.30
- Instructions
- 71 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
Files (2)
- SKILL.md
- core-fallback.md · references/
SKILL.md (first lines)
# Landing Page — Controllers
> Phoenix Controller conventions for Landing Page Backend.
## Core
| Topic | Description | Reference |
|-------|-------------|-----------|
| FallbackController | Centralized response handling via tuples | [core-fallback](references/core-fallback.md) |
| Permission Plugs | Action-level permission guards | [core-fallback](references/core-fallback.md) |
| Ecto.Multi in Controllers | Transactional operations across multiple steps | [core-fallback](references/core-fallback.md) |
## Quick Reference
```elixir
defmodule LandingPageWeb.V1.OrganizationController do
use LandingPageWeb, :controller
alias Ecto.Multi
alias LandingPage.{Tools, Organizations, Repo}
alias LandingPage.Organizations.{Organization, OrganizationMember}
# Permission plugs — chỉ áp dụng cho specific actions
plug LandingPageWeb.Plug.PermissionCheck,
[role: :organization_admin, type: :organization]
when action in [:bulk_update_rights, :update_invite_code]
plug LandingPageWeb.Plug.SubscriptionPlug
when action in [:create_organization]
action_fallback LandingPageWeb.FallbackController
def create_organization(conn, %{"name" => name}) do
account = conn.assigns.account
invite_code = Tools.randomizer(3) <> "-" <> Tools.randomizer(1) <> "-" <> Tools.randomizer(2)
multi = Multi.new()
|> Multi.run(:organization, fn _, _ ->
Organizations.create_organization(%{
name: name, owner_id: account.id,
settings: %{sync: %{sync_draft_to_pos: true}},
invite_code: invite_code
})
end)
|> Multi.run(:organization_members, fn _, %{organization: org} ->
Organizations.create_organization_members(org.id, account.id,
Enum.OrganizationPermission.value(:organization_owner))
end)
case Repo.transaction(multi) do
{:ok, result} ->
org = Repo.preload(result.organization, :owner)
{:success, :with_data, "organization", Organization.json(org)}
_ ->
{:failed, :with_reason, "Create Organization Failed! ERROR CODE: CO0001"}
end
end
def list_organizations(conn, params) do
account = conn.assigns.account
case Organizations.get_organizations(account.id, params) do
{:ok, orgs} ->
{:success, :with_data, "organizations", Enum.map(orgs, &Organization.json/1)}
_ ->
{:failed, :with_reason, "Failed to get organizations"}
end
end
end
```From vuluu2k/skills, MIT.
More from vuluu2k/skills
- 0.437score
pinia
Vũ Lưu
Pinia state management for Vue 3 using Composition API (Setup Stores) — TypeScript-first, storeToRefs for reactivity, focused stores, and API calls in…
SkillDFreshness: D★ 1Claude Code +9 - 0.434score
pinia-options
Vũ Lưu
Pinia state management for Vue using Options API style — define stores with state, getters, actions, and use them in Options API components via…
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-permission
Vũ Lưu
Rule-based permission checking in BuilderX SPA using bitwise operations from @/composable/employeePermission.
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-api
Vũ Lưu
Standardized API fetching for BuilderX SPA using useApiget, useApipost, useApiDelete, and useApiProgress from @/composable/fetch.
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-design
Vũ Lưu
Standardized design system for BuilderX SPA.
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
landing_page-schemas
Vũ Lưu
Guidelines for creating Ecto Schemas in landing_page_backend, including binary UUID primary keys, virtual fields, custom json/1 function, and multiple…
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
landing_page-vue2-editor
Vũ Lưu
Vue 2 Options API patterns for the Landing Page editor — Vuex namespaced stores, Ant Design Vue components, mixins, computed getters/setters, and axios API…
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
builderx_api-schemas
Vũ Lưu
Guidelines for creating Ecto Schemas in builderx_api, including composite primary keys, custom json function and Ecto.Changeset.
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
landing_page-contexts
Vũ Lưu
Guide to Context module patterns in landing_page_backend — Ecto queries, dynamic query building, Ecto.Multi, and Outbox messaging.
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
landing_page-plugs
Vũ Lưu
Custom Plug middleware patterns in landing_page_backend — authentication (JWT/Passport), authorization, permission checking, and rate limiting.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
builderx_api-controllers
Vũ Lưu
Guide to Phoenix Controller structure in builderx_api using FallbackController and standard tuple responses.
SkillDFreshness: D★ 1Claude Code +9 - 0.426score
deepinfra
Vũ Lưu
Guide to setting up and using DeepInfra API for LLM and image generation models.
SkillDFreshness: D★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 30, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2026.03.30
- License
- MIT
- Repository
- github.com/vuluu2k/skills
- Website
- vskill.vercel.app
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Vũ Lưu
- 0.437score
pinia
Vũ Lưu
Pinia state management for Vue 3 using Composition API (Setup Stores) — TypeScript-first, storeToRefs for reactivity, focused stores, and API calls in…
SkillDFreshness: D★ 1Claude Code +9 - 0.434score
pinia-options
Vũ Lưu
Pinia state management for Vue using Options API style — define stores with state, getters, actions, and use them in Options API components via…
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-permission
Vũ Lưu
Rule-based permission checking in BuilderX SPA using bitwise operations from @/composable/employeePermission.
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-api
Vũ Lưu
Standardized API fetching for BuilderX SPA using useApiget, useApipost, useApiDelete, and useApiProgress from @/composable/fetch.
SkillDFreshness: D★ 1Claude Code +9 - 0.433score
builderx_spa-design
Vũ Lưu
Standardized design system for BuilderX SPA.
SkillDFreshness: D★ 1Claude Code +9 - 0.430score
builderx_api-schemas
Vũ Lưu
Guidelines for creating Ecto Schemas in builderx_api, including composite primary keys, custom json function and Ecto.Changeset.
SkillDFreshness: D★ 1Claude Code +9
Cite this page
landing_page-controllers skill. Agent Mart. https://agentmart.dev/skills/vuluu2k-landing-page-controllers (last updated 2026-10-24)