Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
中文简介正在准备中。当前显示原文说明。
Use when creating or modifying Laravel middleware — request/response filtering, groups, priority, terminable middleware, or route-level assignment.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
Use this skill when working with HTTP middleware:
app/Http/Middleware/ and bootstrap/app.php (or app/Http/Kernel.php) to identify naming conventions, aliases, and current group/global registration.php artisan make:middleware EnsureCustomerIsActive.handle(), return response or pass to next.php artisan make:middleware EnsureCustomerIsActive
declare(strict_types=1);
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureCustomerIsActive
{
public function handle(Request $request, Closure $next): Response
{
if (!$request->user()?->getCustomer()?->isActive()) {
abort(403, 'Customer account is inactive.');
}
return $next($request);
}
}
// Before middleware — runs BEFORE the request hits the controller
public function handle(Request $request, Closure $next): Response
{
// Check something before the request
return $next($request);
}
// After middleware — runs AFTER the controller returns a response
public function handle(Request $request, Closure $next): Response
{
$response = $next($request);
// Modify the response
$response->headers->set('X-Custom-Header', 'value');
return $response;
}
Runs after the response has been sent to the browser:
class LogRequestDuration
{
private float $startTime;
public function handle(Request $request, Closure $next): Response
{
$this->startTime = microtime(true);
return $next($request);
}
public function terminate(Request $request, Response $response): void
{
$duration = microtime(true) - $this->startTime;
Log::info('Request duration', [
'url' => $request->fullUrl(),
'duration_ms' => round($duration * 1000, 2),
]);
}
}
class CheckRole
{
public function handle(Request $request, Closure $next, string $role): Response
{
if (!$request->user()?->hasRole($role)) {
abort(403);
}
return $next($request);
}
}
// Usage in routes
Route::get('/admin', AdminController::class)->middleware('role:admin');
// Route-level
Route::get('/dashboard', DashboardController::class)
->middleware([EnsureCustomerIsActive::class]);
// Group-level
Route::middleware(['auth', EnsureCustomerIsActive::class])->group(function () {
// ...
});
// Global middleware (bootstrap/app.php)
->withMiddleware(function (Middleware $middleware) {
$middleware->append(LogRequestDuration::class);
$middleware->prepend(SetLocale::class);
})
// bootstrap/app.php — control execution order
->withMiddleware(function (Middleware $middleware) {
$middleware->priority([
AuthenticateMiddleware::class,
EnsureCustomerIsActive::class,
CheckRole::class,
]);
})
handle() if the next middleware might also modify it — use terminate() for cleanup.还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
中文简介正在准备中。当前显示原文说明。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
中文简介正在准备中。当前显示原文说明。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
中文简介正在准备中。当前显示原文说明。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
中文简介正在准备中。当前显示原文说明。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
中文简介正在准备中。当前显示原文说明。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
中文简介正在准备中。当前显示原文说明。