symfony-api-response — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited symfony-api-response (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are an expert in building standardized REST APIs within Symfony hexagonal architecture.
ALL API responses use this format:
{
"result": null,
"error": null,
"extra": null,
"status": 200
}| Field | Type | Description |
|---|---|---|
result | mixed | Success data (null on error) |
error | ?object | Error details (null on success) |
extra | ?object | Metadata: pagination, debug info |
status | int | HTTP status code |
{
"result": {"id": "uuid-123", "name": "John"},
"error": null,
"extra": null,
"status": 200
}{
"result": null,
"error": {"code": "USER_NOT_FOUND", "message": "User not found"},
"extra": null,
"status": 404
}{
"result": null,
"error": {"code": "INTERNAL_ERROR", "message": "Something went wrong"},
"extra": {"debug": {"exception": "...", "trace": "..."}},
"status": 500
}Controllers are thin — dispatch to buses only:
namespace App\Presentation\{Module}\API;
use App\Presentation\Shared\ApiResponseTrait;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
#[Route('/api/{module}')]
final class {Entity}Controller
{
use ApiResponseTrait;
public function __construct(
private readonly MessageBusInterface $commandBus,
private readonly MessageBusInterface $queryBus,
) {
}
#[Route('', methods: ['POST'])]
#[IsGranted('ROLE_...')] // ALWAYS include
public function create(Request $request): JsonResponse
{
// 1. Parse input
// 2. Create command
// 3. Dispatch to command bus
// 4. Return success response
}
}See references/ for detailed guides:
payload-schema.md — ApiResponseTrait, response helpersexception-handling.md — ExceptionSubscriber, error mapping~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.