Skip to content

feat(icons): rename module icons Rocket→Onboarding and ItManagement→Software#3785

Open
eliseo-juan wants to merge 3 commits intomainfrom
feat/rename-module-icons-rocket-itmanagement
Open

feat(icons): rename module icons Rocket→Onboarding and ItManagement→Software#3785
eliseo-juan wants to merge 3 commits intomainfrom
feat/rename-module-icons-rocket-itmanagement

Conversation

@eliseo-juan
Copy link
Copy Markdown
Contributor

Summary

  • Renames Rocket module icon → Onboarding in both packages/react and packages/react-native
  • Removes ItManagement module icon (was an exact duplicate of Software) in both packages
  • Updates F0AvatarModule/modules.ts map: get_startedOnboarding, it_managementSoftware

Details

packages/react

  • Created icons/modules/Onboarding.tsx (SVG from former Rocket.tsx)
  • Deleted icons/modules/Rocket.tsx and icons/modules/ItManagement.tsx
  • Updated icons/modules/index.ts exports

packages/react-native

  • Created icons/modules/Onboarding.tsx (SVG from app Rocket paths)
  • Deleted icons/modules/ItManagement.tsx
  • Updated icons/modules/index.ts exports

Backward compatibility

The modules.ts map retains the it_management and get_started keys — they now point to Software and Onboarding respectively. No consumer in Factorial directly imports ItManagement or Rocket from module icons.

Testing

  • packages/react: build + typecheck pass ✅
  • packages/react-native: icons export correctly ✅

Add 4 parallel AI-powered review agents that run on every PR affecting
packages/react/, mirroring Factorial's agentic-checks pattern adapted
to the f0 quality gate areas:

- Code Review: F0 component conventions, TS strictness, exports, styling
- Accessibility Review: WCAG 2.1/2.2 AA, focusRing, ARIA, keyboard
- Storybook Review: story existence, Meta conventions, Snapshot, prop coverage
- Test Coverage Review: test file existence, zeroRender, behavioral coverage

All checks are advisory-only (never block CI) and post findings as PR
comments. Uses the same trust model as Factorial (base-branch script/prompt
copy to prevent prompt injection).
Remove duplicated rules from agent prompts. Each prompt now only defines
the agent role, scope rules, which skills to load, and the verdict format.
All review criteria live in the skills (f0-code-review, a11y, f0-storybook-stories,
f0-storybook-testing, f0-unit-testing, f0-quality-gate) as the single source
of truth.

Reduces total prompt lines from 411 to 189 (-54%).
…oftware

- Rename modules/Rocket to modules/Onboarding (matches Figma 'Onboarding' node)
- Remove modules/ItManagement duplicate (identical SVG to Software, which already exists)
- Update F0AvatarModule/modules.ts: get_started→Onboarding, it_management→Software
- Apply same changes to react-native package
@eliseo-juan eliseo-juan requested a review from a team as a code owner March 27, 2026 11:19
Copilot AI review requested due to automatic review settings March 27, 2026 11:19
@github-actions github-actions bot added feat react Changes affect packages/react react-native Changes affect packages/react-native labels Mar 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

✅ No New Circular Dependencies

No new circular dependencies detected. Current count: 0

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 27, 2026

📦 Alpha Package Version Published

Use pnpm i github:factorialco/f0#npm/alpha-pr-3785 to install the package

Use pnpm i github:factorialco/f0#e41a48f5ddbb2b8e0012eee4e2db623eafe7a7f5 to install this specific commit

@github-actions
Copy link
Copy Markdown
Contributor

🔍 Visual review for your branch is published 🔍

Here are the links to:

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the design-system module icon set by renaming/remapping specific module icons across packages/react and packages/react-native, and introduces a new “agentic checks” GitHub Action workflow + supporting scripts/prompts to run AI-based advisory reviews on PRs touching packages/react/**.

Changes:

  • Rename module icon RocketOnboarding and update the F0AvatarModule module-id → icon mapping accordingly.
  • Remove duplicate module icon ItManagement and remap it_management to Software.
  • Add an “Agentic Checks (Beta)” workflow with a runner script and prompt files for code/a11y/storybook/test-coverage reviews.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/react/src/icons/modules/index.ts Updates module icon barrel exports (remove Rocket/ItManagement exports, add Onboarding).
packages/react/src/icons/modules/Onboarding.tsx Adds the renamed Onboarding module icon component (formerly Rocket).
packages/react/src/icons/modules/ItManagement.tsx Removes duplicate ItManagement module icon.
packages/react/src/components/avatars/F0AvatarModule/modules.ts Remaps get_started → Onboarding and it_management → Software while keeping keys stable.
packages/react-native/src/icons/modules/index.ts Updates React Native module icon barrel exports (adds Onboarding, removes ItManagement) but currently introduces semicolons.
packages/react-native/src/icons/modules/Onboarding.tsx Adds the new React Native Onboarding module icon component.
packages/react-native/src/icons/modules/ItManagement.tsx Removes duplicate ItManagement module icon (RN).
.github/workflows/agentic-checks.yml Adds workflow to run AI-based advisory checks for React PR changes.
.github/scripts/agentic-check.sh Adds the runner script that fetches PR diff, runs Copilot CLI, and comments verdicts back to the PR.
.github/agent-prompts/code-review.md Adds the code-review agent prompt template.
.github/agent-prompts/a11y-review.md Adds the accessibility-review agent prompt template.
.github/agent-prompts/storybook-review.md Adds the Storybook-review agent prompt template.
.github/agent-prompts/test-coverage-review.md Adds the test-coverage-review agent prompt template.

Comment on lines +1 to +41
export { default as Benefits } from "./Benefits";
export { default as Calendar } from "./Calendar";
export { default as Cards } from "./Cards";
export { default as ClockIn } from "./ClockIn";
export { default as Complaints } from "./Complaints";
export { default as Discover } from "./Discover";
export { default as Documents } from "./Documents";
export { default as Engagement } from "./Engagement";
export { default as Finance } from "./Finance";
export { default as Goals } from "./Goals";
export { default as Home } from "./Home";
export { default as Hub } from "./Hub";
export { default as Onboarding } from "./Onboarding";
export { default as Inbox } from "./Inbox";
export { default as Kudos } from "./Kudos";
export { default as Marketplace } from "./Marketplace";
export { default as Meetings } from "./Meetings";
export { default as MyDocuments } from "./MyDocuments";
export { default as Organization } from "./Organization";
export { default as Overviews } from "./Overviews";
export { default as Pages } from "./Pages";
export { default as Payroll } from "./Payroll";
export { default as Performance } from "./Performance";
export { default as Profile } from "./Profile";
export { default as Projects } from "./Projects";
export { default as Recruitment } from "./Recruitment";
export { default as Reports } from "./Reports";
export { default as SalaryAdvance } from "./SalaryAdvance";
export { default as Sales } from "./Sales";
export { default as Settings } from "./Settings";
export { default as Shifts } from "./Shifts";
export { default as Social } from "./Social";
export { default as Software } from "./Software";
export { default as Spaces } from "./Spaces";
export { default as Spending } from "./Spending";
export { default as Tasks } from "./Tasks";
export { default as TimeOff } from "./TimeOff";
export { default as TimeTracking } from "./TimeTracking";
export { default as Trainings } from "./Trainings";
export { default as Treasury } from "./Treasury";
export { default as Workflows } from "./Workflows";
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

packages/react-native uses oxfmt with semi: false (see packages/react-native/.oxfmtrc.jsonc). This file was changed to include semicolons on every export, which will cause pnpm --filter @factorialco/f0-react-native run format:check to fail. Re-run oxfmt (or remove semicolons) so the barrel matches the repo formatting config.

Suggested change
export { default as Benefits } from "./Benefits";
export { default as Calendar } from "./Calendar";
export { default as Cards } from "./Cards";
export { default as ClockIn } from "./ClockIn";
export { default as Complaints } from "./Complaints";
export { default as Discover } from "./Discover";
export { default as Documents } from "./Documents";
export { default as Engagement } from "./Engagement";
export { default as Finance } from "./Finance";
export { default as Goals } from "./Goals";
export { default as Home } from "./Home";
export { default as Hub } from "./Hub";
export { default as Onboarding } from "./Onboarding";
export { default as Inbox } from "./Inbox";
export { default as Kudos } from "./Kudos";
export { default as Marketplace } from "./Marketplace";
export { default as Meetings } from "./Meetings";
export { default as MyDocuments } from "./MyDocuments";
export { default as Organization } from "./Organization";
export { default as Overviews } from "./Overviews";
export { default as Pages } from "./Pages";
export { default as Payroll } from "./Payroll";
export { default as Performance } from "./Performance";
export { default as Profile } from "./Profile";
export { default as Projects } from "./Projects";
export { default as Recruitment } from "./Recruitment";
export { default as Reports } from "./Reports";
export { default as SalaryAdvance } from "./SalaryAdvance";
export { default as Sales } from "./Sales";
export { default as Settings } from "./Settings";
export { default as Shifts } from "./Shifts";
export { default as Social } from "./Social";
export { default as Software } from "./Software";
export { default as Spaces } from "./Spaces";
export { default as Spending } from "./Spending";
export { default as Tasks } from "./Tasks";
export { default as TimeOff } from "./TimeOff";
export { default as TimeTracking } from "./TimeTracking";
export { default as Trainings } from "./Trainings";
export { default as Treasury } from "./Treasury";
export { default as Workflows } from "./Workflows";
export { default as Benefits } from "./Benefits"
export { default as Calendar } from "./Calendar"
export { default as Cards } from "./Cards"
export { default as ClockIn } from "./ClockIn"
export { default as Complaints } from "./Complaints"
export { default as Discover } from "./Discover"
export { default as Documents } from "./Documents"
export { default as Engagement } from "./Engagement"
export { default as Finance } from "./Finance"
export { default as Goals } from "./Goals"
export { default as Home } from "./Home"
export { default as Hub } from "./Hub"
export { default as Onboarding } from "./Onboarding"
export { default as Inbox } from "./Inbox"
export { default as Kudos } from "./Kudos"
export { default as Marketplace } from "./Marketplace"
export { default as Meetings } from "./Meetings"
export { default as MyDocuments } from "./MyDocuments"
export { default as Organization } from "./Organization"
export { default as Overviews } from "./Overviews"
export { default as Pages } from "./Pages"
export { default as Payroll } from "./Payroll"
export { default as Performance } from "./Performance"
export { default as Profile } from "./Profile"
export { default as Projects } from "./Projects"
export { default as Recruitment } from "./Recruitment"
export { default as Reports } from "./Reports"
export { default as SalaryAdvance } from "./SalaryAdvance"
export { default as Sales } from "./Sales"
export { default as Settings } from "./Settings"
export { default as Shifts } from "./Shifts"
export { default as Social } from "./Social"
export { default as Software } from "./Software"
export { default as Spaces } from "./Spaces"
export { default as Spending } from "./Spending"
export { default as Tasks } from "./Tasks"
export { default as TimeOff } from "./TimeOff"
export { default as TimeTracking } from "./TimeTracking"
export { default as Trainings } from "./Trainings"
export { default as Treasury } from "./Treasury"
export { default as Workflows } from "./Workflows"

Copilot uses AI. Check for mistakes.
Comment on lines +224 to +232
SUMMARY="### ${CHECK_EMOJI} ${CHECK_NAME}: Passed

${VERDICT_SUMMARY}"

echo "${SUMMARY}" >> "${GITHUB_STEP_SUMMARY:-/dev/null}"

# Post a success comment to the PR (so reviewers can see it ran)
post_pr_comment "${SUMMARY}"
else
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

In the success path, VERDICT_SUMMARY is posted to the PR comment without running redact_secrets(). Since the model output is untrusted, this can leak sensitive values (e.g., tokens echoed by the agent) into a PR comment. Apply redaction to the pass path as well (and ideally to any content posted outside the Actions log).

Copilot uses AI. Check for mistakes.
- synchronize
- reopened
paths:
- "packages/react/**"
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The workflow is filtered to only run when files under packages/react/** change. That means PRs that modify the agentic-check implementation itself (e.g. .github/scripts/agentic-check.sh or .github/agent-prompts/*) won’t run this check, making it easy to break the automation without noticing. Consider expanding the paths: list to include the workflow/script/prompt locations as well.

Suggested change
- "packages/react/**"
- "packages/react/**"
- ".github/workflows/agentic-checks.yml"
- ".github/scripts/agentic-check.sh"
- ".github/agent-prompts/**"

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown
Contributor

Coverage Report for packages/react

Status Category Percentage Covered / Total
🔵 Lines 44.45% 10515 / 23651
🔵 Statements 43.76% 10836 / 24759
🔵 Functions 36.59% 2387 / 6522
🔵 Branches 35.99% 6718 / 18665
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/react/src/components/avatars/F0AvatarModule/modules.ts 100% 100% 100% 100%
packages/react/src/icons/modules/index.ts 100% 100% 100% 100%
Generated in workflow #12283 for commit 4ee34c2 by the Vitest Coverage Report Action

@github-actions
Copy link
Copy Markdown
Contributor

📱 Expo Go Preview Published

  • Branch: development

  • Message: `feat(icons): rename module icons Rocket→Onboarding and ItManagement→Software

  • Rename modules/Rocket to modules/Onboarding (matches Figma 'Onboarding' node)

  • Remove modules/ItManagement duplicate (identical SVG to Software, which already exists)

  • Update F0AvatarModule/modules.ts: get_started→Onboarding, it_management→Software

  • Apply same changes to react-native package`

  • Group ID: e6f05443-7efb-4859-8f8d-b9de9158096f

  • Created at: 2026-03-27T11:27:27.956Z

Links

QR Code

Expo Go Preview QR

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

Labels

feat react Changes affect packages/react react-native Changes affect packages/react-native

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants