reis-mobile 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.claude-plugin/marketplace.json +24 -0
  2. package/.claude-plugin/plugin.json +12 -0
  3. package/CHANGELOG.md +103 -0
  4. package/LICENSE +21 -0
  5. package/README.md +631 -0
  6. package/THIRD_PARTY_NOTICES.md +105 -0
  7. package/agents/flutter-architect.md +92 -0
  8. package/agents/flutter-performance-engineer.md +103 -0
  9. package/agents/flutter-test-engineer.md +100 -0
  10. package/agents/lead-mobile.md +107 -0
  11. package/agents/mobile-code-reviewer.md +66 -0
  12. package/agents/mobile-staff-engineer.md +85 -0
  13. package/agents/plugin-native-expert.md +97 -0
  14. package/bin/reis-mobile.mjs +256 -0
  15. package/commands/debate.md +135 -0
  16. package/commands/doctor.md +23 -0
  17. package/commands/reis-mobile.md +50 -0
  18. package/commands/review.md +53 -0
  19. package/core/config/language.mjs +83 -0
  20. package/core/context/context-engine.mjs +113 -0
  21. package/core/detection/project-probe.mjs +104 -0
  22. package/core/detection/stack-detector.mjs +204 -0
  23. package/core/diagnostics/doctor.mjs +181 -0
  24. package/core/install/claude-plugin.mjs +76 -0
  25. package/core/paths.mjs +4 -0
  26. package/core/registry/frontmatter.mjs +81 -0
  27. package/core/registry/registry.mjs +140 -0
  28. package/core/router/intent-detector.mjs +75 -0
  29. package/core/router/intents.mjs +91 -0
  30. package/core/router/router.mjs +83 -0
  31. package/core/security/redact.mjs +24 -0
  32. package/package.json +35 -0
  33. package/skills/architecture-feature-first/SKILL.md +116 -0
  34. package/skills/bloc/SKILL.md +354 -0
  35. package/skills/code-review/SKILL.md +89 -0
  36. package/skills/dart-3-updates/SKILL.md +223 -0
  37. package/skills/dart-add-unit-test/SKILL.md +126 -0
  38. package/skills/dart-collect-coverage/SKILL.md +145 -0
  39. package/skills/dart-fix-runtime-errors/SKILL.md +170 -0
  40. package/skills/dart-generate-test-mocks/SKILL.md +159 -0
  41. package/skills/dart-migrate-to-checks-package/SKILL.md +532 -0
  42. package/skills/dart-resolve-package-conflicts/SKILL.md +120 -0
  43. package/skills/dart-run-static-analysis/SKILL.md +108 -0
  44. package/skills/dart-use-pattern-matching/SKILL.md +240 -0
  45. package/skills/dart-use-pattern-matching/examples/json_patterns.dart +85 -0
  46. package/skills/detect-mobile-stack/SKILL.md +33 -0
  47. package/skills/effective-dart/SKILL.md +187 -0
  48. package/skills/firebase-ai/SKILL.md +93 -0
  49. package/skills/firebase-analytics/SKILL.md +129 -0
  50. package/skills/firebase-app-check/SKILL.md +124 -0
  51. package/skills/firebase-auth/SKILL.md +224 -0
  52. package/skills/firebase-cloud-firestore/SKILL.md +165 -0
  53. package/skills/firebase-cloud-functions/SKILL.md +148 -0
  54. package/skills/firebase-crashlytics/SKILL.md +182 -0
  55. package/skills/firebase-data-connect/SKILL.md +80 -0
  56. package/skills/firebase-database/SKILL.md +224 -0
  57. package/skills/firebase-in-app-messaging/SKILL.md +111 -0
  58. package/skills/firebase-messaging/SKILL.md +201 -0
  59. package/skills/firebase-remote-config/SKILL.md +131 -0
  60. package/skills/firebase-storage/SKILL.md +158 -0
  61. package/skills/flutter-add-integration-test/SKILL.md +167 -0
  62. package/skills/flutter-add-widget-preview/SKILL.md +149 -0
  63. package/skills/flutter-add-widget-test/SKILL.md +158 -0
  64. package/skills/flutter-adding-home-screen-widgets/SKILL.md +205 -0
  65. package/skills/flutter-animating-apps/SKILL.md +185 -0
  66. package/skills/flutter-app-architecture/SKILL.md +80 -0
  67. package/skills/flutter-apply-architecture-best-practices/SKILL.md +166 -0
  68. package/skills/flutter-build-responsive-layout/SKILL.md +143 -0
  69. package/skills/flutter-building-forms/SKILL.md +125 -0
  70. package/skills/flutter-building-layouts/SKILL.md +131 -0
  71. package/skills/flutter-building-plugins/SKILL.md +209 -0
  72. package/skills/flutter-caching-data/SKILL.md +171 -0
  73. package/skills/flutter-change-notifier/SKILL.md +138 -0
  74. package/skills/flutter-embedding-native-views/SKILL.md +200 -0
  75. package/skills/flutter-errors/SKILL.md +126 -0
  76. package/skills/flutter-fix-layout-issues/SKILL.md +134 -0
  77. package/skills/flutter-handling-concurrency/SKILL.md +182 -0
  78. package/skills/flutter-implement-json-serialization/SKILL.md +157 -0
  79. package/skills/flutter-improving-accessibility/SKILL.md +113 -0
  80. package/skills/flutter-interoperating-with-native-apis/SKILL.md +130 -0
  81. package/skills/flutter-login-usecase/SKILL.md +38 -0
  82. package/skills/flutter-managing-state/SKILL.md +206 -0
  83. package/skills/flutter-project-audit/SKILL.md +66 -0
  84. package/skills/flutter-reducing-app-size/SKILL.md +103 -0
  85. package/skills/flutter-secure-token-store/SKILL.md +35 -0
  86. package/skills/flutter-setting-up-on-macos/SKILL.md +78 -0
  87. package/skills/flutter-setup-declarative-routing/SKILL.md +259 -0
  88. package/skills/flutter-setup-localization/SKILL.md +214 -0
  89. package/skills/flutter-theming-apps/SKILL.md +163 -0
  90. package/skills/flutter-use-http-package/SKILL.md +178 -0
  91. package/skills/flutter-widget-review/SKILL.md +54 -0
  92. package/skills/flutter-working-with-databases/SKILL.md +203 -0
  93. package/skills/flutterfire-configure/SKILL.md +143 -0
  94. package/skills/mobile-security-audit/SKILL.md +101 -0
  95. package/skills/mockito/SKILL.md +149 -0
  96. package/skills/mocktail/SKILL.md +122 -0
  97. package/skills/patrol-e2e-testing/SKILL.md +224 -0
  98. package/skills/provider/SKILL.md +139 -0
  99. package/skills/riverpod/SKILL.md +246 -0
  100. package/skills/testing/SKILL.md +50 -0
  101. package/stacks/android/stack.json +8 -0
  102. package/stacks/flutter/stack.json +8 -0
  103. package/stacks/ios/stack.json +8 -0
  104. package/stacks/kotlin-multiplatform/stack.json +8 -0
  105. package/stacks/react-native/stack.json +8 -0
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "reis-mobile",
3
+ "owner": {
4
+ "name": "Warleson Reis"
5
+ },
6
+ "metadata": {
7
+ "description": "AI agents for mobile engineering",
8
+ "version": "0.3.5"
9
+ },
10
+ "plugins": [
11
+ {
12
+ "name": "reis-mobile",
13
+ "source": "./",
14
+ "description": "AI agents, skills and workflows for Flutter, Android, iOS and React Native development.",
15
+ "version": "0.3.5",
16
+ "author": {
17
+ "name": "Warleson Reis"
18
+ },
19
+ "repository": "https://github.com/wrsilva/reis-mobile",
20
+ "license": "MIT",
21
+ "category": "development"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "reis-mobile",
3
+ "version": "0.3.5",
4
+ "description": "AI agents, skills and workflows for Flutter, Android, iOS and React Native development. Run /reis-mobile:doctor, then /reis-mobile:review.",
5
+ "author": {
6
+ "name": "Warleson Reis"
7
+ },
8
+ "license": "MIT",
9
+ "repository": "https://github.com/wrsilva/reis-mobile",
10
+ "homepage": "https://github.com/wrsilva/reis-mobile",
11
+ "keywords": ["mobile", "flutter", "android", "ios", "react-native", "kotlin-multiplatform", "code-review", "agents", "skills"]
12
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,103 @@
1
+ # Changelog
2
+
3
+ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The project follows [Semantic Versioning](https://semver.org/).
4
+
5
+ ## [0.3.5] - 2026-09-16
6
+
7
+ ### Changed
8
+
9
+ - reis-mobile now ships only as the Claude Code plugin, the Codex plugin and the `reis-mobile` npm package (`npx reis-mobile init`). The Homebrew formula and the `install.sh` / `install.ps1` installers are discontinued; the README explains how to remove them.
10
+ - Releases no longer attach a tarball, `SHA256SUMS` or a Homebrew formula. The release workflow can run twice for the same tag without failing: it skips a GitHub release or npm version that already exists.
11
+ - CI packs the npm package and installs it globally on Linux, macOS and Windows, replacing the installer tests.
12
+
13
+ ### Fixed
14
+
15
+ - The npm package did not include `THIRD_PARTY_NOTICES.md`, which the licenses of the imported skills require. It now ships it, along with `CHANGELOG.md`.
16
+
17
+ ## [0.3.4] - 2026-09-16
18
+
19
+ ### Changed
20
+
21
+ - Back to the `reis-mobile` name everywhere: the CLI command is `reis-mobile` again and the plugin is `reis-mobile@reis-mobile`, with commands and agents under `/reis-mobile:*`. This reverts the renames from v0.3.2 and v0.3.3.
22
+ - `reis-mobile init` refreshes the marketplace, installs `reis-mobile@reis-mobile` and then removes `mobile@reis-mobile`; `init --uninstall` removes both.
23
+ - `install.sh` and `install.ps1` remove the `mobile` / `mobile.cmd` command created by v0.3.3, and can still install the v0.3.3 release.
24
+
25
+ ## [0.3.3] - 2026-09-16
26
+
27
+ ### Changed
28
+
29
+ - **Breaking:** the CLI command is now `mobile` instead of `reis-mobile` (`mobile init`, `mobile doctor`, `mobile --version`...), and the entry point moves to `bin/mobile.mjs`. The npm package, the Homebrew formula (`wrsilva/tap/reis-mobile`), the release assets, the `REIS_MOBILE_*` variables and the install and config folders keep the `reis-mobile` name.
30
+ - `install.sh` and `install.ps1` create `mobile` / `mobile.cmd` and remove the `reis-mobile` command they created before. They still install releases up to v0.3.2, which ship `bin/reis-mobile.mjs`.
31
+
32
+ ### Fixed
33
+
34
+ - `lead-mobile` still told the model to address agents with the old `reis-mobile:` prefix.
35
+
36
+ ## [0.3.2] - 2026-09-16
37
+
38
+ ### Changed
39
+
40
+ - **Breaking:** the plugin is now called `mobile`, so commands and agents move from `/reis-mobile:*` and `reis-mobile:<agent>` to `/mobile:*` and `mobile:<agent>`, and the entry command from `/reis-mobile` to `/mobile`. The plugin id is `mobile@reis-mobile`. The CLI, the repository, the marketplace, the Homebrew formula and the `.reis-mobile/` folder keep the `reis-mobile` name.
41
+ - `reis-mobile init` refreshes the marketplace before installing and removes `reis-mobile@reis-mobile` once `mobile@reis-mobile` is installed; `init --uninstall` removes both.
42
+
43
+ ## [0.3.1] - 2026-09-16
44
+
45
+ ### Added
46
+
47
+ - Answer language: `reis-mobile init pt|en` and `reis-mobile lang [pt|en]` save the language the `/reis-mobile:*` commands answer in to `~/.config/reis-mobile/config.json`. `detect`, `doctor`, `route` and `review` report it as `Language`, and it can be overridden with `--lang` or `REIS_MOBILE_LANG`, which the installers also honor. `init --uninstall` removes the saved file.
48
+
49
+ ### Changed
50
+
51
+ - All agents, skills, commands, documentation and GitHub templates are now written in English. Intent detection still accepts prompts in English and Portuguese.
52
+
53
+ ## [0.3.0] - 2026-09-15
54
+
55
+ ### Added
56
+
57
+ - `/reis-mobile:debate` command: structured debate between three specialists with conflicting priorities. Blind round 1 (avoids anchoring), round 2 rebutting specific points, and a final decision by `lead-mobile`. Flags `--rounds`, `--agents` and `--external`.
58
+ - Model-heterogeneous participants: the command assigns `opus` and `sonnet` by role, overriding the agents' `model: inherit`. Three instances of the same model share the same biases and converge for reasons unrelated to the question being debated; selection guarantees at least two distinct models.
59
+ - **Debate moderation** section in the `lead-mobile` agent: how to weigh evidence against position and close on a decision instead of a tie.
60
+ - `tests/commands.test.mjs`: validates the frontmatter of every command and ensures the agents and skills they reference actually exist — `validate` covered agents, skills and stacks, but not `commands/`.
61
+
62
+ ### Security
63
+
64
+ - `/reis-mobile:debate --external` sends the debate context to the third-party `codex` and `gemini` CLIs. Without the flag, nothing leaves the session. Documented in README.md.
65
+
66
+ ## [0.2.1] - 2026-09-15
67
+
68
+ ### Added
69
+
70
+ - `/reis-mobile` command: entry point that lists the commands and forwards to `doctor`, `review` or, with a free-form request, to the agent and skills for the detected stack. It also appears in the VS Code extension command menu, which does not find `/reis-mobile:doctor` when typing only `/reis-mobile`.
71
+
72
+ ## [0.2.0] - 2026-09-15
73
+
74
+ ### Added
75
+
76
+ - Agents `flutter-architect`, `flutter-performance-engineer`, `flutter-test-engineer`, `mobile-staff-engineer`, `plugin-native-expert` and `lead-mobile`.
77
+ - 63 Flutter, Dart and Firebase skills: 25 from `flutter/skills`, 8 from `dart-lang/skills`, 28 from `evanca/flutter-ai-rules` and 2 original ones (`flutter-login-usecase`, `flutter-secure-token-store`).
78
+ - `THIRD_PARTY_NOTICES.md` with origin and license; frontmatter with `source` and `license` in third-party skills.
79
+ - Frontmatter parser with support for `|` and `>` blocks.
80
+
81
+ ### Changed
82
+
83
+ - The router now finds an agent for `debug`, `test`, `architecture`, `performance` and the other intents, not only for `review`.
84
+ - `/reis-mobile:review` in Flutter projects also loads `code-review`, `effective-dart` and `dart-run-static-analysis`.
85
+
86
+ ## [0.1.0] - 2026-09-15
87
+
88
+ ### Added
89
+
90
+ - `reis-mobile` Claude Code plugin, with a local marketplace.
91
+ - Stack detector: Flutter (app and plugin), React Native (including Expo), Kotlin Multiplatform, native Android and iOS.
92
+ - Registries for stacks, agents and skills, with validation (`reis-mobile validate`).
93
+ - Intent detector in Portuguese and English, and intent + stack → agent + skills router.
94
+ - Context engine with working tree or range diff, lock files excluded and secrets masked.
95
+ - `/reis-mobile:doctor` and `reis-mobile doctor`.
96
+ - `/reis-mobile:review` and `reis-mobile review`.
97
+ - `mobile-code-reviewer` agent.
98
+ - Skills `flutter-project-audit`, `flutter-widget-review`, `mobile-security-audit` and `detect-mobile-stack`.
99
+ - `reis-mobile` CLI: `init`, `detect`, `doctor`, `route`, `review`, `agents`, `skills`, `stacks`, `validate`.
100
+ - `reis-mobile init`: registers (or removes, with `--uninstall`) the plugin in Claude Code.
101
+ - `install.sh` (macOS/Linux) and `install.ps1` (Windows) installers, with SHA-256 verification.
102
+ - Release workflow: tarball, `SHA256SUMS`, Homebrew formula and npm publishing.
103
+ - CI on GitHub Actions (Node 22 and 24, Ubuntu and macOS) and installer tests on Ubuntu, macOS and Windows.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Warleson Reis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.