Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md | Legal requirements by country | `legal.md` |
Security audit
Security checks for vulnerabilities and agentic risk
This invoice skill handles sensitive billing data, but its storage, PDF generation, numbering, and optional sending are coherent with its stated invoicing purpose.
Install only if you are comfortable keeping billing records, client tax IDs, addresses, emails, invoice PDFs, and your payment details in ~/billing. Review client details, invoice numbers, totals, and email recipients before finalizing or sending invoices, because finalized invoice numbers may need correction through a credit note rather than simple deletion.
Referenced artifact was not completely inspected
| Legal requirements by country | `legal.md` |
The skill explicitly defines local storage locations for client and business records, including tax IDs, addresses, billing configuration, and invoice drafts, but does not warn the user that sensitive financial and personally identifiable data will be stored on disk. This can lead users to provide regulated or confidential data without informed consent or appropriate local protection measures, increasing the risk of privacy exposure on shared or insecure systems.
The workflow includes sending invoices by email, which may transmit sensitive financial and identifying information to external recipients, yet the skill does not explicitly disclose this transmission risk. Without a warning and confirmation step, users may unintentionally expose invoice contents through misaddressed emails, insecure mail handling, or use in environments where outbound transmission is restricted.
The markdown states "When user says "factura a Acme"" as an activation cue, but it does not define whether this is an explicit trigger phrase, an example utterance, or the full scope of when the skill should activate. Without constraints or negative examples, similar everyday Spanish phrasing about invoices could unintentionally invoke the skill.
The skill instructs the agent to create and update persistent client records in index.json without requiring explicit confirmation, authorization checks, or a warning that stored customer data will be modified. In an agent context, this can lead to accidental or prompt-induced changes to billing identities, tax IDs, addresses, or payment terms, causing data integrity issues and potentially misdirected invoices or compliance problems.
This markdown file defines activation behavior, so SQP-1 applies. The explicit trigger phrase is specific, but the added "or similar" leaves the invocation scope undefined and could cause unintended activation from loosely related everyday Spanish billing requests without clear boundaries or negative examples.
The skill instructs collection and storage of client name, tax ID, address, and email in clients/index.json, which is sensitive personal and business data. Without an explicit warning, consent/retention guidance, or storage-protection expectations, users may expose regulated data or store it insecurely, especially in shared agent environments.
The markdown specifies a destructive/irreversible workflow: once finalized, the invoice number is locked and corrections require issuing a credit note. Although the consequence is noted later, there is no prominent user warning in the skill description before or at the point of finalize action to ensure users understand the irreversible effect.
The examples and interaction patterns are written as if the skill expects Spanish utterances, such as "factura a Acme" and "Cambia la dirección de Acme a...", with no indication that other languages are supported or that Spanish is a required locale. This can violate language/locale policy when users are not given a choice or clear opt-in.
The file contains explicit prompts to ask the user in Spanish (e.g. '¿Necesitas facturación con TicketBAI?' and '¿Facturas a administración pública?') but does not indicate that language should match the user's preference. This can violate a language/locale policy when the skill is used in broader multilingual contexts.
The template hardcodes Spanish invoice labels such as 'Fecha', 'Vencimiento', 'CLIENTE', 'Descripción', and payment text, which imposes a specific language/locale in the generated output. The file does not indicate that this is optional, configurable, or limited to a Spain/Spanish-specific use case.
This markdown file uses Spanish-facing document labels and examples such as "Factura", "Fecha", and "Sin valor fiscal" alongside English headings and guidance. Under the policy rule for language/locale, the file presents a fixed mixed-language experience without explicitly giving the user a language option or stating that the skill is intentionally limited to Spanish invoice workflows.
No suspicious patterns detected.