Verified against Semitexa Ultimate 2026.09.19.1020

Llm attributes

Every attribute declared by Llm, with the signature the code has and a usage quoted from the codebase.

#[AsAiPersona]

Semitexa\Llm\Attribute\AsAiPersona

Applies to: class

parameter type required
context string yes
isDefault bool no
#[AsAiPersona(context: 'framework', isDefault: true)]
final class FrameworkPersona implements AiPersonaInterface

— vendor/semitexa/llm/src/Application/Service/Persona/FrameworkPersona.php

#[AsAiSkill]

Semitexa\Llm\Attribute\AsAiSkill

Applies to: class

parameter type required
allowed string|bool no
summary string no
useWhen string no
avoidWhen string no
riskLevel Semitexa\Llm\Domain\Enum\AiRiskLevel|string no
confirmation Semitexa\Llm\Domain\Enum\AiConfirmationMode|string no
supportsDryRun bool no
argumentPolicy Semitexa\Llm\Domain\Enum\AiArgumentPolicy|string no
exposeArguments array no
requiredArguments array no
executionKind Semitexa\Llm\Domain\Enum\AiExecutionKind|string no
channels array|string no
name string no
icon string no
entry string no
argumentHints array no
#[AsAiSkill(
    allowed: 'env::AI_ENABLE_SEED_SKILL::false',
    summary: 'Seed local demo data when the project explicitly allows this skill.',
    useWhen: 'User wants to seed local demo fixtures in a safe non-production context.',
    avoidWhen: 'Production data is involved or the env flag is not enabled.',
    riskLevel: AiRiskLevel::High,
    confirmation: AiConfirmationMode::Always,
    argumentPolicy: 'allowlisted',
    exposeArguments: ['tenant', 'force'],
)]
final class SeedDemoDataCommand extends Command

— vendor/semitexa/demo/resources/examples/Llm/EnvControlledSkill.example.php