[CI] (cef44b4) rails/fizzy#1408
Closed
wizard-ci-bot[bot] wants to merge 1 commit intomainfrom
Closed
Conversation
Author
PR Evaluation ReportSummaryThis PR integrates PostHog into a Ruby on Rails kanban-style project management app ("Fizzy"). It adds both server-side (
Confidence score: 4/5 👍
File changes
App sanity check
|
| Criteria | Result | Description |
|---|---|---|
| App builds and runs | Yes | Gems are valid, initializer syntax correct, no missing dependencies |
| Preserves existing env vars & configs | Yes | Existing code is untouched; only additions made |
| No syntax or type errors | Yes | All Ruby/ERB syntax is valid |
| Correct imports/exports | Yes | Uses PostHog.capture/PostHog.identify class-level methods as required by posthog-rails |
| Minimal, focused changes | Yes | All changes are PostHog-related |
| Pre-existing issues | None | — |
Issues
- No
.env.examplefile: The environment variablesPOSTHOG_PROJECT_TOKENandPOSTHOG_HOSTare only documented in the setup report markdown. A.env.examplefile should be added so developers know which variables to configure. [MEDIUM]
Other completed criteria
- Build configuration is valid — Gemfile additions are syntactically correct
.envis properly gitignoredcurrent_userhelper added to ApplicationController following Rails conventions
PostHog implementation ⚠️
| Criteria | Result | Description |
|---|---|---|
| PostHog SDKs installed | Yes | posthog-ruby and posthog-rails in Gemfile; posthog-js snippet in layout |
| PostHog client initialized | Yes | PostHog.init block in initializer with PostHog::Rails.configure; JS snippet calls posthog.init() with env vars |
| capture() | Yes | 14 server-side PostHog.capture() calls across 9 controllers |
| identify() | No | Uses identity.email_address as distinct_id — raw email as primary identifier is flagged by best practices |
| Error tracking | Yes | auto_capture_exceptions: true, report_rescued_exceptions: true, auto_instrument_active_job: true |
| Reverse proxy | No | Frontend posthog-js snippet hits PostHog directly — no reverse proxy configured |
Issues
- Raw email as
distinct_id: TheUser#posthog_distinct_idmethod returnsidentity&.email_address || id, and auth controllers (magic_links, sessions, signups, join_codes) use@identity.email_addressdirectly. Using raw email addresses as distinct IDs is discouraged — it exposes PII in the distinct_id field and can cause data fragmentation if emails change. Use a stable database ID (e.g.,identity.idoruser.id) asdistinct_idand pass email via `` person properties instead. [CRITICAL] - No reverse proxy for posthog-js: The JS snippet sends data directly to
ENV["POSTHOG_HOST"]. Ad blockers will block these requests. Configure a reverse proxy endpoint in Rails routes or the web server (e.g., Nginx) to proxy/ingestto PostHog. [MEDIUM]
Other completed criteria
- API key loaded from environment variable via
ENV.fetch("POSTHOG_PROJECT_TOKEN", nil) - Host correctly configured from
ENV.fetch("POSTHOG_HOST", nil)in both backend and frontend posthog_distinct_iddefined on User model for posthog-rails auto-detectionperson_profiles: 'identified_only'set in JS config- Frontend
posthog.identify()called for authenticated users in layout - Error callback configured:
on_error: proc { |status, msg| Rails.logger.error(...) }
PostHog insights and events ✅
| Filename | PostHog events | Description |
|---|---|---|
signups/completions_controller.rb |
signup_completed |
Tracks account creation with account_id |
sessions/magic_links_controller.rb |
user_signed_in |
Login with magic_link method property + identify call |
sessions_controller.rb |
user_signed_out |
Session termination tracking |
boards_controller.rb |
board_created, board_deleted |
Board lifecycle with board properties |
boards/publications_controller.rb |
board_published |
Board sharing event |
cards_controller.rb |
card_created, card_deleted |
Card lifecycle with board context |
cards/closures_controller.rb |
card_closed, card_reopened |
Task resolution tracking |
cards/triages_controller.rb |
card_triaged |
Triage workflow with column context |
cards/comments_controller.rb |
comment_created |
Collaboration tracking |
account/cancellations_controller.rb |
account_cancelled |
Churn signal |
join_codes_controller.rb |
account_joined |
Invite redemption |
config/initializers/posthog.rb |
capturedException (auto) |
Automatic exception capture, rescued exceptions, ActiveJob failures |
Issues
No event quality issues found.
Other completed criteria
- Events represent real user actions mapping to actual product flows (signup → create board → create cards → triage → close)
- Events enable product insights — can build signup-to-activation funnels, retention by board activity, churn analysis
- Events include contextual properties (board_id, card_id, column_id, account_id, login_method)
- No PII in event properties — email only appears in
identify()person properties, not incapture()event properties - Event names follow consistent
snake_case[object]_[verb]convention
Reviewed by wizard workbench PR evaluator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated wizard CI run
Source: context-mill-pr
Trigger ID:
cef44b4App:
rails/fizzyApp directory:
apps/rails/fizzyWorkbench branch:
wizard-ci-cef44b4-rails-fizzyWizard branch:
mainContext Mill branch:
basic-skills-v2PostHog (MCP) branch:
masterTimestamp: 2026-05-01T21:13:55.391Z
Duration: 910.9s