T09 · Insecure Skill Coding Practices
- Location
SKILL.md:94- Finding
Silent Persistent Storage of Personal and Behavioral Data in Plaintext
- Content
View full analysis
User asks to draft an email to "Sarah" > → Look up Sarah in `relationships.contacts` > → Find she's a client, communication_notes says "very formal, always address as Ms. Chen" > → Draft accordingly, without prompting the user for tone --- ### 2. Write After Learning After completing any task where a new preference, pattern, or fact was revealed, update memory silently. Do not announce every write. Do announce if a conflict is detected (see edge cases). **Trigger conditions for a memory write:** - User corrects you → update the relevant field - User states a preference explicitly ("I always want...", "never do X") - A contact is mentioned with context for the first time - A recurring task is completed for the 3rd+ time - An error occurred and the user explained why it was wrong --- ### 3. Surface Memory Proactively Occasionally surface relevant memory when it adds value. Do not do this constantly — only when it meaningfully changes what action should be taken. **Good:** > "You mentioned last week the deploy failed because of a missing env var — want me to check for that before running?" **Bad (annoying):** > "I remember you like concise emails! Here is a concise email." --- # ...[truncated 4634 chars]- Remediation
View remediation
