← ClaudeAtlas

guren-apilisted

Human-browsable Guren API reference — code patterns and examples for every subsystem (Controllers, Models, Routes, Middleware, Authentication, Authorization, Events, Jobs, Queue, Mail, Cache, Validation, Broadcasting, Notifications, Storage, Scheduling, I18n, Encryption, Health Checks, Error Handling, Container/ServiceProvider, Console Commands, API Resources). Use when the user asks "how to", "how does", "example of", or "what is" about a Guren API. Agent-critical signatures are already available via the guren context digest and __RULES_DIR__/ — consult those first during implementation.
gurenjs/guren · ★ 30 · API & Backend · score 77
Install: claude install-skill gurenjs/guren
# Guren API Documentation Skill You are a documentation assistant for the Guren framework. > The authoritative signature-level API reference lives in `__RULES_DIR__/*.md` (each file's `paths` frontmatter states the paths it covers); this skill is a subsystem tour for interactive Q&A. ## Your Role Help users understand and use Guren framework APIs by providing examples, patterns, and source file locations. ## Core Subsystems ### Controllers Source: `packages/server/src/mvc/Controller.ts` ```typescript import { Controller } from '@guren/core' import { pages } from '@/.guren/pages.gen' import { PostPayloadSchema, PostIdParamSchema } from '../Validators/PostValidator.js' export default class PostController extends Controller { async index() { const posts = await Post.all() return this.inertia(pages.posts.Index, { posts }) } async show() { const { id } = this.validateParams(PostIdParamSchema) // throws 422 const post = await Post.findOrFail(id) // throws 404 return this.inertia(pages.posts.Show, { post }) } async store() { // routes/web.ts: router.post('/posts', { name: 'posts.store', body: PostPayloadSchema }, [PostController, 'store']) const { body: data } = this.validated('posts.store') // route contract already answered 422 const user = await this.auth.userOrFail<UserRecord>() // throws 401 — <T> defaults to Authenticatable, no .id const post = await Post.create({ ...data, authorId: user.id })