Tidewall, a security automation agent designed so a team can see what it understood, what it will touch and who agreed, before it acts.Tidewall, סוכן אוטומציה לאבטחת מידע, שעוצב כך שהצוות רואה מה הוא הבין, במה הוא ייגע ומי אישר, לפני שהוא פועל.
In my demo, a small security team at a health insurer guards card numbers and patient records across many cloud accounts. When a storage bucket goes public, automation could fix it in seconds. But a rule that removes access on its own can also cut off a link that real work depends on.
So teams either don't automate, or automate blind. Tidewall is my concept for a third way: an AI agent that drafts a rule from plain words, shows what it understood and would touch, and asks permission before changing data.
Open the prototype Open the Storybook Open the Figma file
My role. A self-initiated concept, solo. I took an old brief for a rule builder toward an agent-centric experience, to learn data security (DSPM) and to practise designing for AI agents. Research, UX, UI, the coded prototype, design system and usability session are mine. One question shaped every decision: how does an AI agent earn permission to act?
Marcus writes the rules. Dana is on call and approves any step that changes data. Elena reads rules to show an auditor what happens. The author can never approve his own rule's destructive steps.
Security automation rules are usually a form: a trigger, conditions and actions. The form says what a rule is, not what it will do. Marcus can't see which buckets it will touch, and Dana is asked to approve a change without its reason.
The original brief asked for that form, plus a bonus question: how could the interface build trust? I made the bonus question the project.
The goal came first: a team should never be surprised by what a rule does. Then the user stories:
As a cloud security engineer, I need to know quickly when there is a data security issue, so I can explore it and set the right rule for it, because I don't want it to happen again.
The problem
My first build was a rule builder with an assistant beside it. On 23 October I named what bothered me: "the overall concept doesn't feel to me like agent centric UX."
Keep every function, and lay Tidewall out like a chat app. The conversation takes the main column, and the rule sits beside it as what the conversation produces, with Map, Rule, Backtest and Summary tabs. Tidewall's own work shows as steps in the conversation, and turning a rule on became a step too: the agent asks before it acts.
The problem
A rule's conditions don't say which resources it touches or who loses access.
The graph is evidence, not an editor, as in the tools I benchmarked. Every rule has a map of who can reach which data and what it would remove, and a 7-day backtest replays past events.
The map got the session's clearest praise: "The diagrams are really excellent." But P1 couldn't tell if it showed what the rule would change or had already changed. So it split into What it covers and What happened, and the backtest became recommended, not required.
The problem
A Slack post can't break anything. Removing public access can take a live site down.
Risk level decides the path. Notifications run on their own and are logged. Anything that changes data waits for someone other than the author, every time, and nothing in the builder can lower that.
If nobody answers in time, the default is to do nothing and escalate. And approvals go where Dana is: a Slack message, then a decision on her phone, with what Tidewall checked in front of her.
The problem
An agent that reads plain words can misread them. "PCI or PHI" and "PCI and PHI" are one word apart, and they match very different data.
Tidewall reads back how it understood the request, and every field says where its value came from: your words, inferred, or an unconfirmed default. Then it asks one open question at a time. A skipped question isn't left to scroll back to, since a late answer could change later ones. If it still matters, Tidewall asks again.
I bet on the conversation to carry understanding. P1 typed his request into the chat, but it only clicked when he opened the rule and saw trigger, condition and action in order: "Oh, now I get it."
The fix: chat and rule are now fully synced. A change in either shows in the other, with Undo.
The conversation is the way in. The structure is how people understand what they built.
I designed in Figma and built with Claude Code as a partner, keeping the decisions mine. Gemini helped explore illustration styles.
The proof isn't a shipped metric. It's a working prototype, a design system, and what the first session changed.
Recruit security people before the first session, not after. One developer is good at finding where a flow breaks, and weak at judging a security call.
Two or three more sessions, with people who write security policies. First, the check P1 never reached because of prototype gaps: will people catch Tidewall reading "or" as "and"? Then P1's question. He expected a nudge to the data owner, since a public link to patient data may be shared with a clinic on purpose. Should access ever be removed automatically?
בדמו שלי, צוות אבטחה קטן בחברת ביטוח בריאות שומר על מספרי כרטיסי אשראי ותיקים רפואיים בהרבה חשבונות ענן. כשאחסון נתונים נפתח לציבור, אוטומציה יכולה לתקן את זה בשניות. אבל כלל שמסיר גישה בעצמו יכול גם לנתק קישור שעבודה אמיתית תלויה בו.
אז צוותים או שלא עושים אוטומציה, או שעושים אותה בעיניים עצומות. Tidewall הוא הקונספט שלי לדרך שלישית: סוכן AI שמנסח כלל ממילים פשוטות, מראה מה הבין ובמה הוא עומד לגעת, ומבקש רשות לפני שהוא משנה נתונים.
לפתוח את האב-טיפוס לפתוח את ה-Storybook לפתוח את הקובץ ב-Figma
התפקיד שלי. פרויקט קונספט ביוזמתי, לבד. לקחתי בריף ישן לבניית כללים לכיוון של חוויה שמבוססת על סוכן, כדי ללמוד אבטחת מידע (DSPM) ולתרגל עיצוב לסוכני AI. המחקר, חוויית המשתמש, הממשק, האב-טיפוס בקוד, מערכת העיצוב ומבדק השמישות הם שלי. שאלה אחת עיצבה כל החלטה: איך סוכן AI מרוויח את הרשות לפעול?
מרקוס כותב את הכללים. דנה בתורנות ומאשרת כל צעד שמשנה נתונים. אלנה קוראת כללים כדי להראות למבקר מה קורה. מי שכתב כלל לעולם לא יכול לאשר את הצעדים ההרסניים שלו.
כללי אוטומציה בכלי אבטחה הם בדרך כלל טופס: טריגר, תנאים ופעולות. הטופס אומר מה הכלל, לא מה הוא יעשה. מרקוס לא רואה באילו buckets הכלל ייגע, ודנה מתבקשת לאשר שינוי בלי לדעת למה.
הבריף המקורי ביקש את הטופס הזה, ועוד שאלת בונוס: איך הממשק יכול לבנות אמון? הפכתי את שאלת הבונוס לפרויקט.
קודם המטרה: צוות לעולם לא צריך להיות מופתע ממה שכלל עושה. אחר כך ה-user stories:
בתור מהנדס אבטחת ענן, אני צריך לדעת מהר כשיש בעיית אבטחת מידע, כדי לחקור אותה ולהגדיר לה את הכלל הנכון, כי אני לא רוצה שזה יקרה שוב.
הבעיה
הגרסה הראשונה שבניתי הייתה כלי לבניית כללים עם עוזר בצד. ב-23 באוקטובר כתבתי מה הפריע לי: הקונספט כולו לא הרגיש לי כמו חוויה שמבוססת על סוכן.
לשמור על כל הפונקציות, ולבנות את Tidewall כמו אפליקציית צ'אט. השיחה תופסת את העמודה הראשית, והכלל יושב לידה בתור מה שהשיחה מייצרת, עם הלשוניות Map, Rule, Backtest ו-Summary. העבודה של Tidewall מוצגת כצעדים בשיחה, וגם הפעלת כלל הפכה לצעד: הסוכן שואל לפני שהוא פועל.
הבעיה
התנאים של כלל לא אומרים באילו משאבים הוא נוגע, או למי תיחסם הגישה.
הגרף הוא ראיה, לא עורך, כמו בכלים שהשוויתי. לכל כלל יש מפה של מי יכול להגיע לאילו נתונים ומה הכלל יסיר, ו-backtest של 7 ימים שמריץ מחדש אירועים מהעבר.
המפה קיבלה את המחמאה הכי ברורה במבדק: "הדיאגרמות ממש מצוינות." אבל P1 לא הצליח להבין אם היא מראה מה הכלל ישנה או מה הוא כבר שינה. אז היא התפצלה ל-What it covers ול-What happened, וה-backtest הפך למומלץ במקום לחובה.
הבעיה
הודעה ב-Slack לא יכולה לשבור כלום. הסרת גישה ציבורית יכולה להפיל אתר חי.
רמת הסיכון קובעת את הדרך. התראות רצות לבד ונרשמות ביומן. כל מה שמשנה נתונים מחכה למישהו שאינו מי שכתב את הכלל, בכל פעם, ושום דבר בבונה הכללים לא יכול להוריד את זה.
אם אף אחד לא עונה בזמן, ברירת המחדל היא לא לעשות כלום ולהסלים. והאישורים מגיעים למקום שבו דנה נמצאת: הודעה ב-Slack, ואז החלטה בטלפון, עם מה ש-Tidewall בדק מול העיניים.
הבעיה
סוכן שקורא מילים פשוטות יכול לקרוא אותן לא נכון. "PCI או PHI" ו-"PCI וגם PHI" רחוקים מילה אחת זה מזה, ותואמים נתונים שונים מאוד.
Tidewall חוזר על האופן שבו הבין את הבקשה, וכל שדה אומר מאיפה הגיע הערך שלו: מהמילים שלך, מהסקה, או מברירת מחדל שאף אחד עוד לא אישר. אחר כך הוא שואל שאלה פתוחה אחת בכל פעם. שאלה שדילגו עליה לא נשארת למעלה בשיחה, כי תשובה מאוחרת יכולה לשנות את התשובות שאחריה. אם היא עדיין רלוונטית, Tidewall שואל שוב.
הימרתי על כך שהשיחה תישא את ההבנה. P1 הקליד את הבקשה שלו בצ'אט, אבל זה התחבר לו רק כשפתח את הכלל וראה טריגר, תנאי ופעולה לפי הסדר: "אה, עכשיו הבנתי."
התיקון: הצ'אט והכלל מסונכרנים לגמרי. שינוי באחד מופיע בשני, עם אפשרות לבטל.
השיחה היא הדרך פנימה. המבנה הוא הדרך שבה אנשים מבינים מה בנו.
עיצבתי ב-Figma ובניתי עם Claude Code כשותף, כשההחלטות נשארות שלי. Gemini עזר לחקור סגנונות איור.
ההוכחה כאן היא לא מדד ממוצר שיצא לשוק. היא אב-טיפוס עובד, מערכת עיצוב, ומה שהמבדק הראשון שינה.
לגייס אנשי אבטחה לפני המבדק הראשון, ולא אחריו. מפתח אחד טוב במציאת המקומות שבהם ה-flow נשבר, וחלש בשיפוט של החלטת אבטחה.
עוד שניים או שלושה מבדקים, עם אנשים שכותבים מדיניות אבטחה. קודם הבדיקה ש-P1 לא הגיע אליה בגלל פערים באב-טיפוס: האם אנשים יתפסו את Tidewall קורא "או" בתור "וגם"? אחר כך השאלה של P1. הוא ציפה לתזכורת לבעלים של הנתונים, כי קישור ציבורי לנתונים רפואיים אולי נשלח למרפאה בכוונה. האם בכלל צריך להסיר גישה אוטומטית?