Skip to content

Task/sdk 5533/claude setup#501

Open
Anush-Shand wants to merge 10 commits intodevelopfrom
task/SDK-5533/claude-setup
Open

Task/sdk 5533/claude setup#501
Anush-Shand wants to merge 10 commits intodevelopfrom
task/SDK-5533/claude-setup

Conversation

@Anush-Shand
Copy link
Copy Markdown
Contributor

@Anush-Shand Anush-Shand commented Apr 6, 2026

Summary by CodeRabbit

  • Chores
    • Added comprehensive internal development documentation and automation infrastructure supporting SDK maintenance workflows. Includes standardized patterns for cross-platform API wrapper implementation, native SDK changelog analysis with type verification, automated version detection and updates across all platform files, build validation procedures, changelog generation with strict formatting requirements, and example app update guidelines.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2131849c-2725-4027-a1f1-d9170ae3d63b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

A comprehensive Claude agent automation framework is added for the CleverTap React Native SDK update workflow. The PR introduces 7 agent definitions orchestrating version gathering, changelog analysis, API wrapper implementation, version updates, changelog generation, example app updates, and build validation, plus supporting skill definitions for cross-platform patterns, type mapping, and a project documentation file.

Changes

Cohort / File(s) Summary
Agent Definitions
.claude/agents/version-gather.md, .claude/agents/changelog-analyze.md, .claude/agents/api-implement.md, .claude/agents/version-update.md, .claude/agents/changelog-generate.md, .claude/agents/example-app-update.md, .claude/agents/build-validate.md
Seven agent workflow definitions specifying inputs, execution steps, output contracts, and error handling for version detection, changelog analysis, API wrapper implementation, version updating, changelog entry generation, example app UI updates, and build validation.
Skill Definitions
.claude/skills/version-detection/SKILL.md, .claude/skills/native-sdk-changelog-analysis/SKILL.md, .claude/skills/native-sdk-changelog-analysis/references/..., .claude/skills/api-wrapper-patterns/SKILL.md, .claude/skills/changelog-generation/SKILL.md, .claude/skills/example-app-patterns/SKILL.md
Six skill documentation files defining reusable patterns and workflows: version location mapping, 6-step changelog analysis process with type inference rules, cross-platform API wrapper patterns for 7 target files, changelog formatting templates, and example app UI/code patterns with constants and handler conventions.
Command Orchestration
.claude/commands/update-sdk.md
Master orchestration definition for the "Update Native SDKs" command, specifying 5 sequential phases with parallel execution in Phases 2 and 5, phase inputs/outputs, conditional stops, user-gated approvals, and comprehensive success/error criteria.
Project Documentation
CLAUDE.md
Project context file documenting the SDK's role, architecture (JS/TS to native Android/iOS bridge), source layout, component responsibilities, coding conventions, and external documentation links.

Sequence Diagram

sequenceDiagram
    participant User
    participant UpdateSDK as Update SDK<br/>(Orchestrator)
    participant Phase1 as Phase 1:<br/>version-gather
    participant Phase2 as Phase 2:<br/>version-update &<br/>changelog-analyze
    participant Phase3 as Phase 3:<br/>api-implement
    participant Phase4 as Phase 4:<br/>example-app-update
    participant Phase5 as Phase 5:<br/>changelog-generate &<br/>build-validate

    User->>UpdateSDK: Trigger Update
    UpdateSDK->>Phase1: Execute
    Phase1->>Phase1: Detect current &<br/>latest versions
    Phase1-->>User: Await confirmation
    User-->>Phase1: Approve
    Phase1-->>UpdateSDK: Versions output

    par Phase 2 Parallel
        UpdateSDK->>Phase2: Execute version-update
        Phase2->>Phase2: Update all<br/>version files
        Phase2-->>UpdateSDK: Updated files
        UpdateSDK->>Phase2: Execute changelog-analyze
        Phase2->>Phase2: Analyze native SDK<br/>changelogs
        Phase2-->>UpdateSDK: Implementation plan
    end

    UpdateSDK->>Phase3: Execute
    Phase3->>Phase3: Implement API<br/>wrappers (7 layers)
    Phase3-->>UpdateSDK: APIs implemented

    UpdateSDK->>Phase4: Execute
    Phase4->>Phase4: Update Example app<br/>UI & handlers
    Phase4-->>UpdateSDK: App updated

    par Phase 5 Parallel
        UpdateSDK->>Phase5: Execute changelog-generate
        Phase5->>Phase5: Generate formatted<br/>changelog entry
        Phase5-->>UpdateSDK: Entry preview
        UpdateSDK->>Phase5: Execute build-validate
        Phase5->>Phase5: Run npm install &<br/>gradle build
        Phase5-->>UpdateSDK: Build result
    end

    UpdateSDK-->>User: Workflow complete
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • nishant-clevertap
  • CTLalit
  • piyush-kukadiya
  • kushCT

Poem

🐰 Hop, hop, we've laid the groundwork clear,
Seven agents and skills so sincere!
From versions gathered to changelogs penned,
SDK updates from start to end!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title references a Jira task ID (SDK-5533) and indicates the change is about Claude setup, which aligns with the addition of Claude agent definitions, skills, and context documentation files in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 task/SDK-5533/claude-setup

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@francispereira
Copy link
Copy Markdown

francispereira commented Apr 6, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@Anush-Shand
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 7, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🧹 Nitpick comments (8)
.claude/agents/build-validate.md (2)

47-62: Optional: Add language specifier to output format blocks.

The output format code blocks lack language specifiers. Consider adding text or properties for better rendering.

🎨 Proposed formatting improvement
 On success:
-```
+```text
 BUILD_RESULT=success
 NPM_INSTALL=pass
 ANDROID_BUILD=pass
 SUMMARY=All builds passed successfully
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/agents/build-validate.md around lines 47 - 62, Update the fenced
code blocks that show the BUILD_RESULT/NPM_INSTALL/ANDROID_BUILD examples to
include a language specifier (e.g., use ```text or ```properties) for better
rendering; locate the blocks containing the lines "BUILD_RESULT=success" and the
failure example with "BUILD_RESULT=failure"/"ERROR=Full error
output"/"ANALYSIS=Whether error..." and change their opening fences to include
the chosen specifier so the snippets render correctly.

1-72: Consider adding iOS build validation or clarifying scope.

The agent is named build-validate with a description stating it validates "the React Native project builds successfully," but it only validates Android builds (Lines 28-35). iOS build validation is completely absent.

Options:

  1. Add iOS build validation to match the generic name/description
  2. Rename to build-validate-android and update the description to clarify Android-only scope
  3. Add a note explaining why only Android is validated (e.g., iOS requires macOS, not available in sandbox)

Given that the sandbox environment may not support iOS builds (requires Xcode on macOS), option 3 is likely most appropriate.

📝 Proposed clarification
 ---
 name: build-validate
-description: "Validate that the CleverTap React Native project builds successfully after changes. Use as a final verification step after code modifications."
+description: "Validate that the Android portion of the CleverTap React Native project builds successfully after changes. iOS builds require macOS/Xcode and cannot be validated in the sandbox environment. Use as a final verification step after code modifications."
 tools: Glob, Grep, Read, Bash
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/agents/build-validate.md around lines 1 - 72, The agent
'build-validate' currently only runs Android steps (the "Step 2: Build Android
APK" sequence under the Example directory) but its name/description imply
cross-platform validation; update the file to clarify scope by either renaming
the agent to 'build-validate-android' or, preferably, add a clear note in the
header/description that iOS is intentionally excluded because iOS builds require
Xcode/macOS and are not supported in this sandbox environment—mention the agent
name 'build-validate' and the Android step sequence so reviewers can find and
update the description and the README-style "Process" section accordingly.
.claude/agents/version-gather.md (2)

15-17: Optional: Add blank lines around table.

Markdown linting suggests adding blank lines before and after the table for better rendering consistency across parsers.

📋 Proposed formatting improvement
 ## Input
+
 | Variable | Required | Description | Example |
 |----------|----------|-------------|---------|
 | (none) | - | This agent reads version files directly from the repository | - |
+
 ## Process
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/agents/version-gather.md around lines 15 - 17, Add a blank line
before and after the markdown table that starts with the header "| Variable |
Required | Description | Example |" in .claude/agents/version-gather.md so the
table is separated from surrounding text; locate the table by that header row
and insert one empty line immediately above the "| Variable..." line and one
empty line immediately below the final table row.

48-54: Clarify how to detect breaking changes vs new features.

The semantic version bump logic (Lines 50-53) requires determining whether native SDK changes are "breaking changes," "new APIs or features," or "only bug fixes." However, the process doesn't specify how the agent should analyze the fetched changelogs to make this determination.

Consider adding guidance on:

  • Parsing changelog section headers (e.g., "Breaking Changes," "New Features," "Bug Fixes")
  • Keywords to look for in changelog entries
  • Fallback logic when categorization is ambiguous

This would make the version calculation more deterministic and reduce manual judgment requirements.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/agents/version-gather.md around lines 48 - 54, The version-bump step
("Step 4: Calculate New React Native Version") lacks deterministic rules for
classifying changelog entries; update the logic used by the agent that computes
the semantic bump to parse changelog section headers (e.g., "Breaking Changes",
"New Features", "Bug Fixes"), scan for keywords (breaking: "breaking",
"removed", "incompatible", "reverted"; feature: "added", "new", "introduce",
"support"; bug: "fix", "fixed", "patch", "bug"), treat explicit "BREAKING
CHANGE" markers as MAJOR, any "New" or "Added" sections or keyword hits as
MINOR, and only "Fix" sections/keywords as PATCH, and implement fallback rules
when ambiguous (prefer the highest-impact category found; if none, default to
PATCH and flag for manual review); document these parsing rules and the fallback
behavior in the Step 4 description so the agent can deterministically map
changelog content to MAJOR/MINOR/PATCH decisions.
CLAUDE.md (1)

20-26: Optional: Add language specifiers to code blocks.

The architecture diagram (Lines 20-26), project structure (Lines 36-87), and git commit examples (Lines 135-146) lack language specifiers. Consider adding text to improve rendering consistency.

🎨 Proposed formatting improvement
 ## Architecture
 
-```
+```text
 JavaScript/TypeScript Layer (src/)
          | NativeModules / TurboModules
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 20 - 26, Update the fenced code blocks in CLAUDE.md
(the architecture diagram block and other examples showing JavaScript/TypeScript
Layer, Native Android/ iOS Layer and git commit examples) to include a language
specifier of `text` (i.e., change ``` to ```text) so rendering is consistent;
locate the triple-backtick fenced blocks containing the diagram text and the
commit example text and add `text` after each opening ``` to apply the
specifier.
.claude/skills/native-sdk-changelog-analysis/references/examples.md (1)

8-12: Optional: Add language specifiers to example code blocks.

Several fenced code blocks showing example inputs and outputs lack language specifiers (flagged by static analysis at lines where code blocks appear). While these are illustrative examples rather than executable code, adding specifiers like text, markdown, or java would improve rendering.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/native-sdk-changelog-analysis/references/examples.md around
lines 8 - 12, The fenced example blocks (e.g., the block starting with
"Platform: android\nOld Version: 5.0.0\nNew Version: 5.1.0") are missing
language specifiers; update each example code fence in this file to include an
appropriate specifier such as `text`, `markdown`, or `java` (e.g., replace ```
with ```text) so static analyzers and renderers correctly format the examples.
.claude/skills/api-wrapper-patterns/SKILL.md (1)

213-256: Optional: Clarify nullable Boolean behavior across architectures.

Pattern C demonstrates optional parameter handling with a nullable Boolean in Android (Line 247). However, the interaction between the JS default value (Line 221: dismissInAppIfVisible = false) and the nullable Android parameter could be clearer.

Current behavior:

  • Oldarch: JS default ensures a boolean value is always passed, so Android receives true/false
  • Newarch: Codegen may pass null when the optional TypeScript parameter is omitted, despite the JS default

Consider adding a note explaining this architecture-specific difference, or clarifying when the Android null-check (Line 250) would actually trigger.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/api-wrapper-patterns/SKILL.md around lines 213 - 256, The doc
example for discardInAppNotifications and the nullable Boolean
dismissInAppIfVisible is ambiguous across architectures: update the Pattern C
text to state that the JS side (src/index.js) defaulting dismissInAppIfVisible =
false ensures oldarch always passes true/false to the native
discardInAppNotifications, whereas newarch/codegen may pass null when the
TypeScript optional parameter is omitted; clarify that the null branch in
CleverTapModuleImpl.java (the check for dismissInAppIfVisible != null) only
triggers under newarch/codegen behavior and recommend either making the native
signature non-nullable or ensuring codegen inserts the JS default when
generating calls so Android never receives null unless intentionally omitted.
.claude/skills/native-sdk-changelog-analysis/references/type-mapping.md (1)

47-52: Optional: Add language specifiers to code blocks.

The inference rule code blocks (Lines 47-52, 56-61, 75-80) lack language specifiers. While they're illustrative type mappings rather than executable code, adding specifiers improves syntax highlighting and readability.

🎨 Proposed formatting improvement

For cross-platform inference blocks, consider:

-```
+```text
 ArrayList<CTInboxMessage> -> NSArray<CleverTapInboxMessage *> *
 Map<String, Object> -> NSDictionary<NSString *, id> *
 boolean -> BOOL
 void -> void
-```
+```

For documentation format block:

-```
+```java
 // Inferred from Android: ArrayList<CTInboxMessage> -> NSArray<CleverTapInboxMessage *> *
 // Inferred from iOS: NSArray<CleverTapInboxMessage *> * -> ArrayList<CTInboxMessage>
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/native-sdk-changelog-analysis/references/type-mapping.md
around lines 47 - 52, Add appropriate fenced-code-block language specifiers to
the inference rule blocks so they get syntax highlighting and improved
readability; specifically update the blocks containing the mappings like
"ArrayList<CTInboxMessage> -> NSArray<CleverTapInboxMessage *> *", "Map<String,
Object> -> NSDictionary<NSString *, id> *", "boolean -> BOOL", and the
documentation-format example that shows "// Inferred from Android..." to use
```text for cross-platform mapping blocks and ```java for the Android/iOS
documentation example, ensuring the opening fences include the language and the
closing fences remain ``` so the blocks render correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/agents/api-implement.md:
- Around line 45-58: The markdown code blocks showing the environment variables
and failure example lack a fence language; update both fenced blocks to use
"text" (i.e., change the opening fences from ``` to ```text) so markdownlint
passes and readability improves—update the two blocks that include
IMPLEMENTATION_RESULT/APIS_IMPLEMENTED/FILES_MODIFIED/SUMMARY and the block that
shows IMPLEMENTATION_RESULT=partial/APIS_FAILED/ERROR accordingly.

In @.claude/agents/changelog-generate.md:
- Around line 15-41: The markdown table starting at the line defining variables
should be surrounded by blank lines before and after to meet markdownlint rules.
Also, the fenced code block at the end of the output format section should
specify a language such as "text" after the opening triple backticks to
eliminate lint warnings. Add these spacing and language fence fixes around the
table and the output code example respectively.

In @.claude/agents/example-app-update.md:
- Around line 43-49: The fenced block containing the example output lines
(EXAMPLE_RESULT, EXAMPLES_ADDED, SECTIONS_MODIFIED, SECTIONS_CREATED, SUMMARY)
needs an explicit fence language to satisfy markdownlint; change the opening
fence from ``` to ```text so the block is declared as text (i.e., replace the
current ``` with ```text and keep the contents unchanged).

In @.claude/agents/version-gather.md:
- Around line 74-76: The checklist omits location 8; update the success criteria
in .claude/agents/version-gather.md so it verifies Locations 4, 7, and 8 match
(all should be OLD_ANDROID_VERSION) — change the line that currently says
"Locations 4 and 7 verified to match" to include 8 and ensure the wording aligns
with the version-detection skill requirement on line 27 that all three locations
match.

In @.claude/commands/update-sdk.md:
- Around line 72-75: Agent contract mismatch: the changelog-generate agent
currently returns CHANGELOG_RESULT, ENTRY_PREVIEW, and SUMMARY but update-sdk
expects a single CHANGELOG_ENTRY for Phase 5; update the contract so
changelog-generate emits a single CHANGELOG_ENTRY string (formatted markdown)
instead of the three separate fields, or modify update-sdk to accept and combine
CHANGELOG_RESULT/ENTRY_PREVIEW/SUMMARY into CHANGELOG_ENTRY before Phase 5
handling; locate the agent definition named "changelog-generate" and the
consumer "update-sdk" and make the return payload keys match (preferably change
changelog-generate to output CHANGELOG_ENTRY) and update any tests or callers
that reference CHANGELOG_RESULT, ENTRY_PREVIEW, or SUMMARY accordingly.

In @.claude/skills/changelog-generation/SKILL.md:
- Around line 69-74: Update the anchor-generation instructions to reflect the
actual behavior: change the step that currently reads "Replace dots with dashes:
`7.4.2` -> `7-4-2`" to "Remove dots from the version number: `7.4.2` -> `742`"
and ensure the Format line (`#version-X-Y-Z-month-day-year`) and examples
(`#version-742-january-14-2026`, `#version-733-september-20-2025`) are
consistent with this removal rule.

In @.claude/skills/example-app-patterns/SKILL.md:
- Around line 24-32: The fenced code block containing the data flow diagram
(starting with "accordionData[].subCategory[].action  --> 
handleItemAction(item) switch") is missing a language tag; update the
triple-backtick fence to include the language identifier `text` (```text) so
markdownlint recognizes it as a text block and the diagram renders/validates
correctly.

In @.claude/skills/native-sdk-changelog-analysis/SKILL.md:
- Around line 43-75: The docs use two tool names ("web_fetch" and "WebFetch");
update the SKILL.md content to use the canonical "WebFetch" everywhere (replace
all instances of "web_fetch" with "WebFetch") so agent/tool invocation is
consistent; ensure references in steps (e.g., "Use WebFetch to retrieve
changelog", the two occurrences originally at lines referencing web_fetch) and
the "Process" section that mentions fetching files use the exact "WebFetch"
casing to match agent configuration.

In @.claude/skills/version-detection/SKILL.md:
- Line 39: Update the Android dependency example in the SKILL.md doc where it
currently shows implementation
'com.clevertap.android:clevertap-android-sdk:X.Y.Z' to use the correct Gradle
keyword used in the project (api
'com.clevertap.android:clevertap-android-sdk:X.Y.Z'); ensure the artifact string
(com.clevertap.android:clevertap-android-sdk) remains the same and, if desired,
show the actual project version (e.g., 8.0.0) for clarity.
- Around line 53-56: The libVersion conversion currently pads to 6 digits which
is wrong for the MMMPP 5-digit format; update the conversion routine (the
function that converts the integer libVersion in src/index.js — e.g.,
convertIntegerToVersion/parseLibVersion) to treat the value as variable-length
major plus fixed 4-digit minor+patch: convert to string, take the last 4
characters as minor (first two) and patch (last two), use the remaining leading
characters as major, then format as major.minor.patch (dropping any unnecessary
leading zeros in each segment); adjust examples/tests for 40000 -> 4.0.0, 30801
-> 3.8.1, 31002 -> 3.10.2.

---

Nitpick comments:
In @.claude/agents/build-validate.md:
- Around line 47-62: Update the fenced code blocks that show the
BUILD_RESULT/NPM_INSTALL/ANDROID_BUILD examples to include a language specifier
(e.g., use ```text or ```properties) for better rendering; locate the blocks
containing the lines "BUILD_RESULT=success" and the failure example with
"BUILD_RESULT=failure"/"ERROR=Full error output"/"ANALYSIS=Whether error..." and
change their opening fences to include the chosen specifier so the snippets
render correctly.
- Around line 1-72: The agent 'build-validate' currently only runs Android steps
(the "Step 2: Build Android APK" sequence under the Example directory) but its
name/description imply cross-platform validation; update the file to clarify
scope by either renaming the agent to 'build-validate-android' or, preferably,
add a clear note in the header/description that iOS is intentionally excluded
because iOS builds require Xcode/macOS and are not supported in this sandbox
environment—mention the agent name 'build-validate' and the Android step
sequence so reviewers can find and update the description and the README-style
"Process" section accordingly.

In @.claude/agents/version-gather.md:
- Around line 15-17: Add a blank line before and after the markdown table that
starts with the header "| Variable | Required | Description | Example |" in
.claude/agents/version-gather.md so the table is separated from surrounding
text; locate the table by that header row and insert one empty line immediately
above the "| Variable..." line and one empty line immediately below the final
table row.
- Around line 48-54: The version-bump step ("Step 4: Calculate New React Native
Version") lacks deterministic rules for classifying changelog entries; update
the logic used by the agent that computes the semantic bump to parse changelog
section headers (e.g., "Breaking Changes", "New Features", "Bug Fixes"), scan
for keywords (breaking: "breaking", "removed", "incompatible", "reverted";
feature: "added", "new", "introduce", "support"; bug: "fix", "fixed", "patch",
"bug"), treat explicit "BREAKING CHANGE" markers as MAJOR, any "New" or "Added"
sections or keyword hits as MINOR, and only "Fix" sections/keywords as PATCH,
and implement fallback rules when ambiguous (prefer the highest-impact category
found; if none, default to PATCH and flag for manual review); document these
parsing rules and the fallback behavior in the Step 4 description so the agent
can deterministically map changelog content to MAJOR/MINOR/PATCH decisions.

In @.claude/skills/api-wrapper-patterns/SKILL.md:
- Around line 213-256: The doc example for discardInAppNotifications and the
nullable Boolean dismissInAppIfVisible is ambiguous across architectures: update
the Pattern C text to state that the JS side (src/index.js) defaulting
dismissInAppIfVisible = false ensures oldarch always passes true/false to the
native discardInAppNotifications, whereas newarch/codegen may pass null when the
TypeScript optional parameter is omitted; clarify that the null branch in
CleverTapModuleImpl.java (the check for dismissInAppIfVisible != null) only
triggers under newarch/codegen behavior and recommend either making the native
signature non-nullable or ensuring codegen inserts the JS default when
generating calls so Android never receives null unless intentionally omitted.

In @.claude/skills/native-sdk-changelog-analysis/references/examples.md:
- Around line 8-12: The fenced example blocks (e.g., the block starting with
"Platform: android\nOld Version: 5.0.0\nNew Version: 5.1.0") are missing
language specifiers; update each example code fence in this file to include an
appropriate specifier such as `text`, `markdown`, or `java` (e.g., replace ```
with ```text) so static analyzers and renderers correctly format the examples.

In @.claude/skills/native-sdk-changelog-analysis/references/type-mapping.md:
- Around line 47-52: Add appropriate fenced-code-block language specifiers to
the inference rule blocks so they get syntax highlighting and improved
readability; specifically update the blocks containing the mappings like
"ArrayList<CTInboxMessage> -> NSArray<CleverTapInboxMessage *> *", "Map<String,
Object> -> NSDictionary<NSString *, id> *", "boolean -> BOOL", and the
documentation-format example that shows "// Inferred from Android..." to use
```text for cross-platform mapping blocks and ```java for the Android/iOS
documentation example, ensuring the opening fences include the language and the
closing fences remain ``` so the blocks render correctly.

In `@CLAUDE.md`:
- Around line 20-26: Update the fenced code blocks in CLAUDE.md (the
architecture diagram block and other examples showing JavaScript/TypeScript
Layer, Native Android/ iOS Layer and git commit examples) to include a language
specifier of `text` (i.e., change ``` to ```text) so rendering is consistent;
locate the triple-backtick fenced blocks containing the diagram text and the
commit example text and add `text` after each opening ``` to apply the
specifier.
🪄 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

Run ID: 3963c66c-43ae-4497-a3cf-4cbc198b3f5c

📥 Commits

Reviewing files that changed from the base of the PR and between 723323a and c10739f.

📒 Files selected for processing (16)
  • .claude/agents/api-implement.md
  • .claude/agents/build-validate.md
  • .claude/agents/changelog-analyze.md
  • .claude/agents/changelog-generate.md
  • .claude/agents/example-app-update.md
  • .claude/agents/version-gather.md
  • .claude/agents/version-update.md
  • .claude/commands/update-sdk.md
  • .claude/skills/api-wrapper-patterns/SKILL.md
  • .claude/skills/changelog-generation/SKILL.md
  • .claude/skills/example-app-patterns/SKILL.md
  • .claude/skills/native-sdk-changelog-analysis/SKILL.md
  • .claude/skills/native-sdk-changelog-analysis/references/examples.md
  • .claude/skills/native-sdk-changelog-analysis/references/type-mapping.md
  • .claude/skills/version-detection/SKILL.md
  • CLAUDE.md

Comment thread .claude/agents/api-implement.md Outdated
Comment thread .claude/agents/changelog-generate.md
Comment thread .claude/agents/example-app-update.md Outdated
Comment thread .claude/agents/version-gather.md
Comment thread .claude/commands/update-sdk.md
Comment thread .claude/skills/changelog-generation/SKILL.md Outdated
Comment thread .claude/skills/example-app-patterns/SKILL.md
Comment thread .claude/skills/native-sdk-changelog-analysis/SKILL.md Outdated
Comment thread .claude/skills/version-detection/SKILL.md Outdated
Comment thread .claude/skills/version-detection/SKILL.md
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.

2 participants