Skip to content

feat: add E01 Platform Foundation wireframes (7 screens)#33

Merged
phuongnse merged 2 commits into
mainfrom
docs/wireframes-e01
May 17, 2026
Merged

feat: add E01 Platform Foundation wireframes (7 screens)#33
phuongnse merged 2 commits into
mainfrom
docs/wireframes-e01

Conversation

@phuongnse

@phuongnse phuongnse commented May 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • 7 new wireframe screens covering all user-facing ACs in E01 (F01, F02, F04)
  • All .excalidraw + .svg files generated and committed
  • Wireframe callouts added to F01, F02, F04 feature files
  • docs/playbooks/wireframes.md screen inventory updated (26 → 27 screens)

Screens

Screen Feature Coverage
register-org F01 US-001 (registration form), US-004 (plan subtitle)
email-confirmation F01 US-001 (post-submit card + resend link)
verify-email F01 US-002 (2×2 grid: pending / success / expired / invalid)
workspace-provisioning F01 US-003 (2-column: in-progress + failed + retry states)
pricing F04 US-004 (plan selection), US-010 (current plan badge, upgrade CTA)
settings-org F02 US-005 (profile form), US-006 (usage stats), US-007 (danger zone)
settings-org-delete-modal F02 US-007 (dimmed overlay + type-to-confirm delete modal)

Out of scope

US-012 (Platform Admin plan override) — back-office action for the Axis team, not an org-user screen. Documented as gap in F04 with rationale; Swagger UI serves as MVP interface.

Test plan

  • Open each .svg in browser — all 7 screens render correctly
  • Wireframe callout links in F01/F02/F04 resolve to correct files

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added wireframe references for tenant registration, organization management, and subscription plans features
    • Created new UI wireframes for registration, email verification, pricing, and organization settings screens
    • Updated and refined design documentation with additional visual assets

Review Change Stack

Screens (all ACs covered):
- register-org: 5-field registration form with plan subtitle (US-001, US-004)
- email-confirmation: post-submit check-email card + resend link (US-001, US-002)
- verify-email: 2x2 grid of all 4 verification states (US-002)
- workspace-provisioning: 2-column layout — in-progress + failed states (US-003)
- pricing: public 3-column plan comparison with Current plan badge (US-004, US-010)
- settings-org: profile form, usage stats, danger zone (US-005, US-006, US-007)
- settings-org-delete-modal: dimmed overlay + type-to-confirm modal (US-007)

US-012 gap documented in F04 feature file: Platform Admin portal
is out of scope for org-user wireframes; Swagger UI serves as MVP UI.

Wireframe callouts added to F01, F02, F04. wireframes.md updated (27 screens).
@coderabbitai

coderabbitai Bot commented May 17, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR adds documentation and wireframe assets for the E01 platform foundation features. Epic documentation is updated with links to new design screens, seven new Excalidraw wireframes define the registration and organization management flows, the wireframes playbook inventory is updated to document the expanded set of generated screens, and existing wireframes are regenerated with updated metadata.

Changes

E01 Platform Foundation Documentation and Wireframes

Layer / File(s) Summary
Epic feature documentation updates
docs/epics/E01-platform-foundation/features/F01-tenant-registration.md, docs/epics/E01-platform-foundation/features/F02-organization-management.md, docs/epics/E01-platform-foundation/features/F04-subscription-plans.md
Tenant registration, organization management, and subscription plan epic docs are linked to new wireframes at the top of each document. F04 adds an implementation status note for US-012 clarifying that the Platform Admin "Change plan" UI has no wireframe and should use the Swagger UI for MVP.
E01 platform foundation wireframe assets
docs/wireframes/E01-platform-foundation/register-org.excalidraw, docs/wireframes/E01-platform-foundation/email-confirmation.excalidraw, docs/wireframes/E01-platform-foundation/verify-email.excalidraw, docs/wireframes/E01-platform-foundation/workspace-provisioning.excalidraw, docs/wireframes/E01-platform-foundation/pricing.excalidraw, docs/wireframes/E01-platform-foundation/settings-org.excalidraw, docs/wireframes/E01-platform-foundation/settings-org-delete-modal.excalidraw
Seven new Excalidraw wireframes define screens for the platform foundation: a registration form, email confirmation prompt, email verification state diagram, workspace provisioning progress states, pricing plan comparison, organization settings panel, and organization deletion confirmation modal.
Wireframes playbook inventory updates
docs/playbooks/wireframes.md
The wireframes playbook is updated to record that the generator creates 27 screens instead of 19, and a new E01-platform-foundation row is added to the screen inventory listing all seven new screens.
Existing wireframe metadata regeneration
docs/wireframes/E02-identity-access/accept-invitation.excalidraw, docs/wireframes/E02-identity-access/change-password.excalidraw, docs/wireframes/E02-identity-access/forgot-password.excalidraw, docs/wireframes/E02-identity-access/login.excalidraw, docs/wireframes/E02-identity-access/register.excalidraw, docs/wireframes/E02-identity-access/settings-security.excalidraw, docs/wireframes/E02-identity-access/settings-users.excalidraw, docs/wireframes/E03-data-modeling/data-classes.excalidraw, docs/wireframes/E03-data-modeling/data-models.excalidraw
E02 and E03 wireframes are regenerated with updated per-element metadata (seed and versionNonce values); visual layout, content, and identifiers remain unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • phuong-labs/axis#30: Modifies the wireframes playbook documentation to establish the wireframe generation workflow and inventory baseline.
  • phuong-labs/axis#31: Updates the wireframes playbook to extend the screen inventory with additional generated screens from the baseline.

Poem

🐰 In frames we draw the future bright,
Seven screens now catch the light,
Registration, mail, and settings true,
The platform's form takes shape anew!
With metadata fresh and counts renewed,
The foundation's wireframed and reviewed!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly summarizes the main change: adding seven E01 Platform Foundation wireframes. It is concise, specific, and accurately reflects the primary purpose of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/wireframes-e01

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/playbooks/wireframes.md`:
- Line 16: The inventory count is inconsistent:
`docs/wireframes/generate-screens.mjs` declares 27 screens but the inventory
table only lists 26 (groups: `_shared/`, `E01-platform-foundation`,
`E02-identity-access`, `E03-data-modeling`, `E04-workflow-builder`,
`E05-form-builder`, `E06-workflow-engine`), so locate the missing screen entry
in the inventory table and either add the missing screen row (so the table lists
all 27 screens) or adjust the top-line declaration to 26; reference the group
names above to find which group is missing an item and update the markdown table
accordingly.

In
`@docs/wireframes/E01-platform-foundation/settings-org-delete-modal.excalidraw`:
- Line 1: Several Excalidraw elements (e.g., "sdm_card", "sdm_overlay",
"sdm_del") use roughness: 0 and must be changed to roughness: 1; find those
element objects in the JSON and update their roughness property to 1 so the file
matches the repo wireframe convention (apply the same change to any other
element entries that currently have roughness: 0).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c79c3bac-b87a-4a7b-acc6-47742a245f6c

📥 Commits

Reviewing files that changed from the base of the PR and between 5d14d81 and 27115bf.

⛔ Files ignored due to path filters (25)
  • docs/wireframes/E01-platform-foundation/email-confirmation.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/pricing.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/register-org.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/settings-org-delete-modal.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/settings-org.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/verify-email.svg is excluded by !**/*.svg
  • docs/wireframes/E01-platform-foundation/workspace-provisioning.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/accept-invitation.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/change-password.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/forgot-password.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/login.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/register.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/settings-roles.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/settings-security.svg is excluded by !**/*.svg
  • docs/wireframes/E02-identity-access/settings-users.svg is excluded by !**/*.svg
  • docs/wireframes/E03-data-modeling/data-classes.svg is excluded by !**/*.svg
  • docs/wireframes/E03-data-modeling/data-models.svg is excluded by !**/*.svg
  • docs/wireframes/E03-data-modeling/records.svg is excluded by !**/*.svg
  • docs/wireframes/E04-workflow-builder/workflow-editor.svg is excluded by !**/*.svg
  • docs/wireframes/E04-workflow-builder/workflows.svg is excluded by !**/*.svg
  • docs/wireframes/E05-form-builder/form-editor.svg is excluded by !**/*.svg
  • docs/wireframes/E05-form-builder/form-submission.svg is excluded by !**/*.svg
  • docs/wireframes/E05-form-builder/forms.svg is excluded by !**/*.svg
  • docs/wireframes/E06-workflow-engine/execution-detail.svg is excluded by !**/*.svg
  • docs/wireframes/E06-workflow-engine/executions.svg is excluded by !**/*.svg
📒 Files selected for processing (30)
  • docs/epics/E01-platform-foundation/features/F01-tenant-registration.md
  • docs/epics/E01-platform-foundation/features/F02-organization-management.md
  • docs/epics/E01-platform-foundation/features/F04-subscription-plans.md
  • docs/playbooks/wireframes.md
  • docs/wireframes/E01-platform-foundation/email-confirmation.excalidraw
  • docs/wireframes/E01-platform-foundation/pricing.excalidraw
  • docs/wireframes/E01-platform-foundation/register-org.excalidraw
  • docs/wireframes/E01-platform-foundation/settings-org-delete-modal.excalidraw
  • docs/wireframes/E01-platform-foundation/settings-org.excalidraw
  • docs/wireframes/E01-platform-foundation/verify-email.excalidraw
  • docs/wireframes/E01-platform-foundation/workspace-provisioning.excalidraw
  • docs/wireframes/E02-identity-access/accept-invitation.excalidraw
  • docs/wireframes/E02-identity-access/change-password.excalidraw
  • docs/wireframes/E02-identity-access/forgot-password.excalidraw
  • docs/wireframes/E02-identity-access/login.excalidraw
  • docs/wireframes/E02-identity-access/register.excalidraw
  • docs/wireframes/E02-identity-access/settings-roles.excalidraw
  • docs/wireframes/E02-identity-access/settings-security.excalidraw
  • docs/wireframes/E02-identity-access/settings-users.excalidraw
  • docs/wireframes/E03-data-modeling/data-classes.excalidraw
  • docs/wireframes/E03-data-modeling/data-models.excalidraw
  • docs/wireframes/E03-data-modeling/records.excalidraw
  • docs/wireframes/E04-workflow-builder/workflow-editor.excalidraw
  • docs/wireframes/E04-workflow-builder/workflows.excalidraw
  • docs/wireframes/E05-form-builder/form-editor.excalidraw
  • docs/wireframes/E05-form-builder/form-submission.excalidraw
  • docs/wireframes/E05-form-builder/forms.excalidraw
  • docs/wireframes/E06-workflow-engine/execution-detail.excalidraw
  • docs/wireframes/E06-workflow-engine/executions.excalidraw
  • docs/wireframes/generate-screens.mjs

| `docs/wireframes/components.mjs` | **Single source of truth** — primitives, colors, layout constants, helpers |
| `docs/wireframes/generate-template.mjs` | 34-section component kit — imports from `components.mjs`, exports all builders |
| `docs/wireframes/generate-screens.mjs` | 19 screen wireframes — imports builders from the template, places them via `component()` |
| `docs/wireframes/generate-screens.mjs` | 27 screen wireframes — imports builders from the template, places them via `component()` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Count the number of .excalidraw files generated by generate-screens.mjs

fd -e excalidraw . docs/wireframes/E0 docs/wireframes/_shared | wc -l

Repository: phuong-labs/axis

Length of output: 145


🏁 Script executed:

# Find the correct path structure for wireframes
fd -type d wireframes docs/

Repository: phuong-labs/axis

Length of output: 231


🏁 Script executed:

# Read the relevant section of the file to verify the inventory table and line 16
cat -n docs/playbooks/wireframes.md | sed -n '10,30p'

Repository: phuong-labs/axis

Length of output: 1093


🏁 Script executed:

# Check the inventory table section (lines 396-402 mentioned in review)
cat -n docs/playbooks/wireframes.md | sed -n '390,410p'

Repository: phuong-labs/axis

Length of output: 990


🏁 Script executed:

# Count actual .excalidraw files in the wireframes directory
find docs/wireframes -name "*.excalidraw" -type f | wc -l

Repository: phuong-labs/axis

Length of output: 63


Screen inventory incomplete: 27 declared but inventory table only lists 26.

The screen inventory table (lines 396–402) documents only 26 screens: _shared/ (1) + E01-platform-foundation/ (7) + E02-identity-access/ (8) + E03-data-modeling/ (3) + E04-workflow-builder/ (2) + E05-form-builder/ (3) + E06-workflow-engine/ (2) = 26 screens, but line 16 correctly declares 27 screens. One screen is missing from the inventory documentation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/playbooks/wireframes.md` at line 16, The inventory count is
inconsistent: `docs/wireframes/generate-screens.mjs` declares 27 screens but the
inventory table only lists 26 (groups: `_shared/`, `E01-platform-foundation`,
`E02-identity-access`, `E03-data-modeling`, `E04-workflow-builder`,
`E05-form-builder`, `E06-workflow-engine`), so locate the missing screen entry
in the inventory table and either add the missing screen row (so the table lists
all 27 screens) or adjust the top-line declaration to 26; reference the group
names above to find which group is missing an item and update the markdown table
accordingly.

@@ -0,0 +1 @@
{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_bg","type":"rectangle","x":0,"y":0,"width":1200,"height":700,"strokeColor":"#D9D7D1","backgroundColor":"#F4F3EF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1501,"versionNonce":1502},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_sidebar","type":"rectangle","x":0,"y":0,"width":230,"height":700,"strokeColor":"#D9D7D1","backgroundColor":"#FFFFFF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1503,"versionNonce":1504},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_logo_bg","type":"rectangle","x":0,"y":0,"width":230,"height":60,"strokeColor":"#D9D7D1","backgroundColor":"#F9F8F5","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1505,"versionNonce":1506},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_logo_t","type":"text","x":30,"y":18,"width":150,"height":26,"strokeColor":"#667A6E","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1507,"versionNonce":1508,"text":"⬡ Axis","fontSize":18,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"⬡ Axis","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_ni_0","type":"rectangle","x":8,"y":72,"width":214,"height":36,"strokeColor":"transparent","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1509,"versionNonce":1510},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nl_0","type":"text","x":30,"y":81,"width":170,"height":18,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1511,"versionNonce":1512,"text":"Data Models","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Data Models","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_ni_1","type":"rectangle","x":8,"y":116,"width":214,"height":36,"strokeColor":"transparent","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1513,"versionNonce":1514},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nl_1","type":"text","x":30,"y":125,"width":170,"height":18,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1515,"versionNonce":1516,"text":"Workflows","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Workflows","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_ni_2","type":"rectangle","x":8,"y":160,"width":214,"height":36,"strokeColor":"transparent","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1517,"versionNonce":1518},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nl_2","type":"text","x":30,"y":169,"width":170,"height":18,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1519,"versionNonce":1520,"text":"Forms","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Forms","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_ni_3","type":"rectangle","x":8,"y":204,"width":214,"height":36,"strokeColor":"transparent","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1521,"versionNonce":1522},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nl_3","type":"text","x":30,"y":213,"width":170,"height":18,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1523,"versionNonce":1524,"text":"Executions","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Executions","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_ni_4","type":"rectangle","x":8,"y":248,"width":214,"height":36,"strokeColor":"#A8BAB1","backgroundColor":"#EDF0EE","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1525,"versionNonce":1526},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nacc_4","type":"rectangle","x":8,"y":248,"width":3,"height":36,"strokeColor":"#667A6E","backgroundColor":"#667A6E","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1527,"versionNonce":1528},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_nl_4","type":"text","x":30,"y":257,"width":170,"height":18,"strokeColor":"#667A6E","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1529,"versionNonce":1530,"text":"Settings","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Settings","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_user_div","type":"line","x":8,"y":648,"width":214,"height":0,"strokeColor":"#D9D7D1","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1531,"versionNonce":1532,"points":[[0,0],[214,0]],"lastCommittedPoint":null,"startBinding":null,"endBinding":null,"startArrowhead":null,"endArrowhead":null},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_uav","type":"ellipse","x":16,"y":654,"width":32,"height":32,"strokeColor":"#A8BAB1","backgroundColor":"#EDF0EE","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1533,"versionNonce":1534},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_un","type":"text","x":56,"y":662,"width":140,"height":16,"strokeColor":"#2B2F33","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1535,"versionNonce":1536,"text":"Alex Brown","fontSize":12,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Alex Brown","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_hdr","type":"rectangle","x":230,"y":0,"width":970,"height":60,"strokeColor":"#D9D7D1","backgroundColor":"#FFFFFF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1537,"versionNonce":1538},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_page_title","type":"text","x":250,"y":18,"width":300,"height":24,"strokeColor":"#2B2F33","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1539,"versionNonce":1540,"text":"Settings — Organization","fontSize":18,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Settings — Organization","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_srch","type":"rectangle","x":944,"y":12,"width":160,"height":36,"strokeColor":"#D9D7D1","backgroundColor":"#F4F3EF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1541,"versionNonce":1542},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_srch_t","type":"text","x":958,"y":22,"width":140,"height":16,"strokeColor":"#8A9099","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1543,"versionNonce":1544,"text":"⌕ Search…","fontSize":12,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"⌕ Search…","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_notif","type":"ellipse","x":1112,"y":12,"width":36,"height":36,"strokeColor":"#D9D7D1","backgroundColor":"#F4F3EF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1545,"versionNonce":1546},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_notif_t","type":"text","x":1112,"y":21,"width":36,"height":18,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1547,"versionNonce":1548,"text":"🔔","fontSize":12,"fontFamily":1,"textAlign":"center","verticalAlign":"top","containerId":null,"originalText":"🔔","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_av","type":"ellipse","x":1156,"y":12,"width":36,"height":36,"strokeColor":"#A8BAB1","backgroundColor":"#EDF0EE","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1549,"versionNonce":1550},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_av_t","type":"text","x":1156,"y":21,"width":36,"height":18,"strokeColor":"#667A6E","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1551,"versionNonce":1552,"text":"AB","fontSize":12,"fontFamily":1,"textAlign":"center","verticalAlign":"top","containerId":null,"originalText":"AB","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_bg_h","type":"text","x":250,"y":80,"width":300,"height":28,"strokeColor":"#2B2F33","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1553,"versionNonce":1554,"text":"Organization Profile","fontSize":20,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Organization Profile","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_bg_dz","type":"rectangle","x":250,"y":360,"width":930,"height":72,"strokeColor":"#C08078","backgroundColor":"#F3ECEA","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1555,"versionNonce":1556},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_bg_dt","type":"text","x":266,"y":376,"width":300,"height":18,"strokeColor":"#9E4A44","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1557,"versionNonce":1558,"text":"Delete organization","fontSize":14,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Delete organization","lineHeight":1.25},{"angle":0,"opacity":40,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_overlay","type":"rectangle","x":0,"y":0,"width":1200,"height":700,"strokeColor":"transparent","backgroundColor":"#2B2F33","fillStyle":"solid","strokeWidth":0,"strokeStyle":"solid","roughness":0,"roundness":null,"seed":1559,"versionNonce":1560},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_card","type":"rectangle","x":360,"y":210,"width":480,"height":280,"strokeColor":"#4A5058","backgroundColor":"#FFFFFF","fillStyle":"solid","strokeWidth":2,"strokeStyle":"solid","roughness":0,"roundness":{"type":3},"seed":1561,"versionNonce":1562},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_title","type":"text","x":380,"y":228,"width":380,"height":24,"strokeColor":"#9E4A44","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1563,"versionNonce":1564,"text":"Delete organization","fontSize":16,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Delete organization","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_close","type":"text","x":800,"y":226,"width":20,"height":20,"strokeColor":"#8A9099","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1565,"versionNonce":1566,"text":"×","fontSize":18,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"×","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_hdiv","type":"line","x":360,"y":262,"width":480,"height":0,"strokeColor":"#D9D7D1","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1567,"versionNonce":1568,"points":[[0,0],[480,0]],"lastCommittedPoint":null,"startBinding":null,"endBinding":null,"startArrowhead":null,"endArrowhead":null},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_body","type":"text","x":380,"y":278,"width":440,"height":52,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1569,"versionNonce":1570,"text":"This action is permanent and cannot be undone.\nAll data will be deleted after a 30-day grace period.","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"This action is permanent and cannot be undone.\nAll data will be deleted after a 30-day grace period.","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_inp_l","type":"text","x":380,"y":340,"width":440,"height":16,"strokeColor":"#8A9099","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1571,"versionNonce":1572,"text":"Type 'Acme Corp' to confirm:","fontSize":12,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Type 'Acme Corp' to confirm:","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_inp_inp","type":"rectangle","x":380,"y":360,"width":440,"height":40,"strokeColor":"#D9D7D1","backgroundColor":"#FFFFFF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1573,"versionNonce":1574},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_inp_ph","type":"text","x":392,"y":371,"width":416,"height":18,"strokeColor":"#8A9099","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1575,"versionNonce":1576,"text":"Acme Corp","fontSize":13,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Acme Corp","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_fdiv","type":"line","x":360,"y":434,"width":480,"height":0,"strokeColor":"#D9D7D1","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1577,"versionNonce":1578,"points":[[0,0],[480,0]],"lastCommittedPoint":null,"startBinding":null,"endBinding":null,"startArrowhead":null,"endArrowhead":null},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_cancel_btn","type":"rectangle","x":548,"y":446,"width":80,"height":36,"strokeColor":"#D9D7D1","backgroundColor":"#FFFFFF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":{"type":3},"seed":1579,"versionNonce":1580},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_cancel_btn_t","type":"text","x":548,"y":456,"width":80,"height":16,"strokeColor":"#4A5058","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1581,"versionNonce":1582,"text":"Cancel","fontSize":13,"fontFamily":1,"textAlign":"center","verticalAlign":"top","containerId":null,"originalText":"Cancel","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_del","type":"rectangle","x":636,"y":446,"width":184,"height":36,"strokeColor":"#D9D7D1","backgroundColor":"#F4F3EF","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":0,"roundness":{"type":3},"seed":1583,"versionNonce":1584},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_del_t","type":"text","x":636,"y":456,"width":184,"height":16,"strokeColor":"#D9D7D1","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1585,"versionNonce":1586,"text":"Delete organization","fontSize":13,"fontFamily":1,"textAlign":"center","verticalAlign":"top","containerId":null,"originalText":"Delete organization","lineHeight":1.25},{"angle":0,"opacity":100,"groupIds":[],"isDeleted":false,"boundElements":null,"updated":1700000000000,"link":null,"locked":false,"version":1,"id":"sdm_hint","type":"text","x":380,"y":454,"width":240,"height":14,"strokeColor":"#D9D7D1","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1,"strokeStyle":"solid","roughness":1,"roundness":null,"seed":1587,"versionNonce":1588,"text":"Enabled when name matches exactly","fontSize":10,"fontFamily":1,"textAlign":"left","verticalAlign":"top","containerId":null,"originalText":"Enabled when name matches exactly","lineHeight":1.25}],"appState":{"gridSize":8,"viewBackgroundColor":"#ffffff"},"files":{}} No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Set all Excalidraw elements to roughness: 1 to match repo wireframe convention.

This file includes elements with roughness: 0, which breaks the required sketch aesthetic for wireframes in this path.

Suggested fix pattern
- "roughness":0
+ "roughness":1

Apply this to all elements currently using roughness:0 (e.g., overlay/card/delete-button shapes).

As per coding guidelines, docs/wireframes/**/*.excalidraw must use “Format: Excalidraw JSON (roughness: 1, sketch aesthetic).”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wireframes/E01-platform-foundation/settings-org-delete-modal.excalidraw`
at line 1, Several Excalidraw elements (e.g., "sdm_card", "sdm_overlay",
"sdm_del") use roughness: 0 and must be changed to roughness: 1; find those
element objects in the JSON and update their roughness property to 1 so the file
matches the repo wireframe convention (apply the same change to any other
element entries that currently have roughness: 0).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant