@maccesar/titools 2.10.0 → 3.1.0

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 (99) hide show
  1. package/AGENTS-VERCEL-RESEARCH.md +23 -12
  2. package/README.md +81 -182
  3. package/agents/ti-pro.md +8 -14
  4. package/lib/cleanup.js +13 -0
  5. package/lib/commands/skills.js +2 -1
  6. package/lib/commands/update.js +4 -1
  7. package/lib/config.js +9 -11
  8. package/lib/platform.js +1 -1
  9. package/package.json +2 -3
  10. package/skills/purgetss/SKILL.md +12 -0
  11. package/skills/purgetss/references/animation-advanced.md +0 -9
  12. package/skills/purgetss/references/app-branding.md +20 -0
  13. package/skills/purgetss/references/appearance-module.md +85 -27
  14. package/skills/purgetss/references/apply-directive.md +60 -0
  15. package/skills/purgetss/references/arbitrary-values.md +41 -0
  16. package/skills/purgetss/references/cli-commands.md +52 -17
  17. package/skills/purgetss/references/custom-rules.md +36 -19
  18. package/skills/purgetss/references/customization-deep-dive.md +37 -15
  19. package/skills/purgetss/references/grid-layout.md +45 -26
  20. package/skills/purgetss/references/icon-fonts.md +27 -25
  21. package/skills/purgetss/references/installation-setup.md +28 -2
  22. package/skills/purgetss/references/ios-large-titles.md +31 -15
  23. package/skills/purgetss/references/multi-density-images.md +57 -0
  24. package/skills/purgetss/references/opacity-modifier.md +11 -2
  25. package/skills/purgetss/references/semantic-colors.md +44 -1
  26. package/skills/purgetss/references/tikit-components.md +1 -3
  27. package/skills/alloy-guides/SKILL.md +0 -190
  28. package/skills/alloy-guides/references/CLI_TASKS.md +0 -233
  29. package/skills/alloy-guides/references/CONCEPTS.md +0 -171
  30. package/skills/alloy-guides/references/CONTROLLERS.md +0 -279
  31. package/skills/alloy-guides/references/MODELS.md +0 -1214
  32. package/skills/alloy-guides/references/PURGETSS.md +0 -46
  33. package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +0 -235
  34. package/skills/alloy-guides/references/VIEWS_STYLES.md +0 -375
  35. package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +0 -102
  36. package/skills/alloy-guides/references/VIEWS_XML.md +0 -581
  37. package/skills/alloy-guides/references/WIDGETS.md +0 -160
  38. package/skills/alloy-howtos/SKILL.md +0 -181
  39. package/skills/alloy-howtos/references/best_practices.md +0 -121
  40. package/skills/alloy-howtos/references/cli_reference.md +0 -230
  41. package/skills/alloy-howtos/references/config_files.md +0 -158
  42. package/skills/alloy-howtos/references/custom_tags.md +0 -148
  43. package/skills/alloy-howtos/references/debugging_troubleshooting.md +0 -78
  44. package/skills/alloy-howtos/references/samples.md +0 -156
  45. package/skills/ti-api/SKILL.md +0 -109
  46. package/skills/ti-api/references/api-android.md +0 -675
  47. package/skills/ti-api/references/api-app-platform.md +0 -636
  48. package/skills/ti-api/references/api-core.md +0 -764
  49. package/skills/ti-api/references/api-data-network.md +0 -641
  50. package/skills/ti-api/references/api-media.md +0 -655
  51. package/skills/ti-api/references/api-modules-ble-bluetooth.md +0 -657
  52. package/skills/ti-api/references/api-modules-coremotion-urlsession.md +0 -411
  53. package/skills/ti-api/references/api-modules-map.md +0 -632
  54. package/skills/ti-api/references/api-modules-nfc.md +0 -725
  55. package/skills/ti-api/references/api-modules-social-misc.md +0 -526
  56. package/skills/ti-api/references/api-services.md +0 -700
  57. package/skills/ti-api/references/api-ui-android.md +0 -499
  58. package/skills/ti-api/references/api-ui-extras.md +0 -702
  59. package/skills/ti-api/references/api-ui-ios-animator.md +0 -378
  60. package/skills/ti-api/references/api-ui-ios.md +0 -756
  61. package/skills/ti-api/references/api-ui-lists.md +0 -581
  62. package/skills/ti-api/references/api-ui-text-input.md +0 -607
  63. package/skills/ti-api/references/api-ui-views.md +0 -572
  64. package/skills/ti-api/references/api-ui-windows-navigation.md +0 -676
  65. package/skills/ti-api/references/api-xml-global.md +0 -743
  66. package/skills/ti-guides/SKILL.md +0 -75
  67. package/skills/ti-guides/references/advanced-data-and-images.md +0 -155
  68. package/skills/ti-guides/references/android-manifest.md +0 -97
  69. package/skills/ti-guides/references/app-distribution.md +0 -373
  70. package/skills/ti-guides/references/application-frameworks.md +0 -366
  71. package/skills/ti-guides/references/cli-reference.md +0 -700
  72. package/skills/ti-guides/references/coding-best-practices.md +0 -150
  73. package/skills/ti-guides/references/commonjs-advanced.md +0 -279
  74. package/skills/ti-guides/references/hello-world.md +0 -99
  75. package/skills/ti-guides/references/hyperloop-native-access.md +0 -458
  76. package/skills/ti-guides/references/javascript-primer.md +0 -402
  77. package/skills/ti-guides/references/reserved-words.md +0 -36
  78. package/skills/ti-guides/references/resources.md +0 -172
  79. package/skills/ti-guides/references/style-and-conventions.md +0 -104
  80. package/skills/ti-guides/references/tiapp-config.md +0 -655
  81. package/skills/ti-howtos/SKILL.md +0 -143
  82. package/skills/ti-howtos/references/android-platform-deep-dives.md +0 -609
  83. package/skills/ti-howtos/references/automation-fastlane-appium.md +0 -96
  84. package/skills/ti-howtos/references/buffer-codec-streams.md +0 -162
  85. package/skills/ti-howtos/references/cross-platform-development.md +0 -358
  86. package/skills/ti-howtos/references/debugging-profiling.md +0 -473
  87. package/skills/ti-howtos/references/extending-titanium.md +0 -684
  88. package/skills/ti-howtos/references/google-maps-v2.md +0 -172
  89. package/skills/ti-howtos/references/ios-map-kit.md +0 -149
  90. package/skills/ti-howtos/references/ios-platform-deep-dives.md +0 -595
  91. package/skills/ti-howtos/references/local-data-sources.md +0 -310
  92. package/skills/ti-howtos/references/location-and-maps.md +0 -267
  93. package/skills/ti-howtos/references/media-apis.md +0 -268
  94. package/skills/ti-howtos/references/notification-services.md +0 -539
  95. package/skills/ti-howtos/references/remote-data-sources.md +0 -339
  96. package/skills/ti-howtos/references/tutorials.md +0 -552
  97. package/skills/ti-howtos/references/using-modules.md +0 -182
  98. package/skills/ti-howtos/references/web-content-integration.md +0 -288
  99. package/skills/ti-howtos/references/webpack-build-pipeline.md +0 -125
@@ -49,21 +49,32 @@ The index maps skills to their reference docs:
49
49
  ```
50
50
 
51
51
  How the assistant should use it:
52
- - Need Backbone.Models patterns? Read `~/.agents/skills/alloy-guides/references/MODELS.md`
53
- - Need the PurgeTSS grid system? Read `~/.agents/skills/purgetss/references/grid-layout.md`
54
52
  - Need ListView performance tips? Read `~/.agents/skills/ti-ui/references/listviews-and-performance.md`
53
+ - Need the PurgeTSS grid system? Read `~/.agents/skills/purgetss/references/grid-layout.md`
54
+ - Need controller cleanup patterns? Read `~/.agents/skills/ti-expert/references/controller-patterns.md`
55
+ - Need Backbone.Models patterns (with `tidev/skills` installed)? Read `~/.agents/skills/alloy-guides/references/MODELS.md`
55
56
 
56
57
  ### Skill overview
57
58
 
58
- | Skill | Purpose | Best for |
59
- | ---------------- | ----------------------------- | --------------------------------------------- |
60
- | **alloy-guides** | Alloy MVC reference | Models, views, controllers, widgets |
61
- | **alloy-howtos** | Alloy CLI and debugging | Project setup, CLI commands, errors |
62
- | **purgetss** | Utility-first styling | UI styling, animations, grid layouts |
63
- | **ti-expert** | Architecture + implementation | Starting point for most Alloy tasks |
64
- | **ti-guides** | SDK fundamentals | Hyperloop, distribution, tiapp.xml, CLI |
65
- | **ti-howtos** | Native feature integration | Location, push, media, platform-specific APIs |
66
- | **ti-ui** | UI/UX patterns | Layouts, ListViews, gestures, platform UI |
59
+ TiTools ships 3 opinionated skills:
60
+
61
+ | Skill | Purpose | Best for |
62
+ | ------------- | ----------------------------- | --------------------------------------------- |
63
+ | **ti-expert** | Architecture + implementation | Starting point for most Alloy tasks |
64
+ | **purgetss** | Utility-first styling | UI styling, animations, grid layouts |
65
+ | **ti-ui** | UI/UX patterns | Layouts, ListViews, gestures, platform UI |
66
+
67
+ The doc-based reference skills live in [`tidev/skills`](https://github.com/tidev/skills) (community-maintained):
68
+
69
+ | Skill | Purpose | Best for |
70
+ | ---------------- | ----------------------------- | ---------------------------------------------- |
71
+ | **ti-api** | Complete API reference | Properties, methods, events, constants |
72
+ | **ti-guides** | SDK fundamentals | Hyperloop, distribution, tiapp.xml, CLI |
73
+ | **ti-howtos** | Native feature integration | Location, push, media, platform-specific APIs |
74
+ | **alloy-guides** | Alloy MVC reference | Models, views, controllers, widgets |
75
+ | **alloy-howtos** | Alloy CLI and debugging | Project setup, CLI commands, errors |
76
+
77
+ Install both for the full coverage matrix originally shipped by TiTools v2.x.
67
78
 
68
79
  ### For complex workflows
69
80
 
@@ -73,7 +84,7 @@ The **ti-pro** agent (installed in `~/.claude/agents/`) handles:
73
84
  - Cross-referencing framework patterns
74
85
  - Platform-specific differences
75
86
 
76
- It preloads all 7 titanium-* skills for broader coverage.
87
+ It preloads the 3 TiTools skills and recommends consulting `tidev/skills` when the question touches API surface, native-feature how-tos, MVC reference, or SDK fundamentals.
77
88
 
78
89
  ## How to use
79
90
 
package/README.md CHANGED
@@ -8,12 +8,14 @@
8
8
 
9
9
  </div>
10
10
 
11
- TiTools is a Titanium SDK toolkit for AI coding assistants. It provides 8 skills, a research agent, and 100+ reference files for Titanium SDK, Alloy MVC, and PurgeTSS.
11
+ TiTools is a Titanium SDK toolkit for AI coding assistants. It ships 3 opinionated skills (`ti-expert`, `purgetss`, `ti-ui`), a research agent, and reference files covering Titanium architecture, PurgeTSS styling, and UI/UX patterns.
12
12
 
13
13
  The reference files are maintained against official documentation whenever an official source exists, so the assistant can retrieve current framework behavior instead of guessing from generic training data.
14
14
 
15
15
  Without TiTools, assistants rely on general training data. That data can be outdated or too generic for Titanium work. With TiTools, the assistant can look up Alloy architecture, memory cleanup patterns, PurgeTSS utility classes, and platform-specific APIs.
16
16
 
17
+ > **v3.0.0 — doc-based skills moved to `tidev/skills`.** Five documentation-only skills (`ti-api`, `ti-guides`, `ti-howtos`, `alloy-guides`, `alloy-howtos`) are now maintained in the official [`tidev/skills`](https://github.com/tidev/skills) repository alongside the rest of the TiDev community tooling. TiTools now focuses on the three opinionated skills above. See [Doc-based skills moved to tidev/skills](#doc-based-skills-moved-to-tidevskills) below for upgrade notes.
18
+
17
19
  Vercel's AGENTS.md evaluation reports a 100% pass rate for the knowledge index approach, compared to 53-79% using skills alone.
18
20
 
19
21
  ---
@@ -38,7 +40,7 @@ The fastest way to get started with Claude Code. One command to add the marketpl
38
40
  ```
39
41
 
40
42
  What you get:
41
- - All 8 Titanium skills
43
+ - All 3 TiTools skills (`ti-expert`, `purgetss`, `ti-ui`)
42
44
  - ti-pro research agent
43
45
  - Session hook that auto-detects Titanium projects (`tiapp.xml`, Alloy, PurgeTSS)
44
46
  - Slash commands: `/ti-check`, `/ti-new-screen`, `/ti-audit`
@@ -72,9 +74,9 @@ claude # or gemini, or codex
72
74
  ```
73
75
 
74
76
  What gets installed:
75
- - All 8 titanium-related skills to `~/.agents/skills/`
77
+ - The 3 TiTools skills to `~/.agents/skills/`
76
78
  - ti-pro agent for Claude Code
77
- - Platform symlinks (Claude Code, Gemini CLI, Codex CLI)
79
+ - Platform symlinks for Claude Code and Gemini CLI (Codex CLI auto-discovers from `~/.agents/skills/` — no symlink needed)
78
80
  - Knowledge index in your project's `AGENTS.md`/`CLAUDE.md`/`GEMINI.md`
79
81
  - Claude Code SessionStart hook for auto-updates
80
82
 
@@ -99,13 +101,45 @@ Use **Option A** if you only use Claude Code. Use **Option B** if you use multip
99
101
 
100
102
  ---
101
103
 
104
+ ## Doc-based skills moved to tidev/skills
105
+
106
+ Starting with **v3.0.0**, five documentation-only skills migrated to the official [`tidev/skills`](https://github.com/tidev/skills) repository:
107
+
108
+ - `ti-api` — Complete Titanium API reference
109
+ - `ti-guides` — SDK fundamentals (Hyperloop, distribution, tiapp.xml)
110
+ - `ti-howtos` — Native feature integration (location, push, media, platform-specific APIs)
111
+ - `alloy-guides` — Alloy MVC framework reference
112
+ - `alloy-howtos` — Alloy CLI, configuration, debugging
113
+
114
+ **Why the move?** These skills are pure documentation mirrors of official Titanium and Alloy docs, so they belong in the community-maintained TiDev repository alongside the SDK source itself. Hansemann ([@hansemannn](https://github.com/hansemannn)) — TiDev maintainer — accepted the first batch in [tidev/skills#1](https://github.com/tidev/skills/pull/1) and `ti-howtos` followed in [tidev/skills#2](https://github.com/tidev/skills/pull/2).
115
+
116
+ **What stays in TiTools:** the three *opinionated* skills that reflect personal Titanium conventions and toolchain choices (PurgeTSS-first styling, specific architecture patterns).
117
+
118
+ ### Upgrading from v2.x
119
+
120
+ If you have v2.x installed, the five migrated skills will be **auto-removed** the next time you run `titools update` (they're listed in `LEGACY_SKILLS`). To get them back, install from `tidev/skills` directly:
121
+
122
+ ```bash
123
+ git clone https://github.com/tidev/skills.git ~/Developer/git-clones/tidev-skills
124
+ # Then symlink the five skills into ~/.agents/skills/ or your AI assistant's skills dir
125
+ ln -s ~/Developer/git-clones/tidev-skills/skills/ti-api ~/.agents/skills/ti-api
126
+ ln -s ~/Developer/git-clones/tidev-skills/skills/ti-guides ~/.agents/skills/ti-guides
127
+ ln -s ~/Developer/git-clones/tidev-skills/skills/ti-howtos ~/.agents/skills/ti-howtos
128
+ ln -s ~/Developer/git-clones/tidev-skills/skills/alloy-guides ~/.agents/skills/alloy-guides
129
+ ln -s ~/Developer/git-clones/tidev-skills/skills/alloy-howtos ~/.agents/skills/alloy-howtos
130
+ ```
131
+
132
+ Refer to the [`tidev/skills` README](https://github.com/tidev/skills#readme) for the canonical install instructions, which may evolve independently of TiTools.
133
+
134
+ ---
135
+
102
136
  ## Compatible platforms
103
137
 
104
138
  | Platform | Status | Installation Path |
105
139
  | --------------------------------------------------------- | ---------------- | ------------------- |
106
140
  | [Claude Code](https://claude.ai/claude-code) | Fully Compatible | `~/.claude/skills/` |
107
141
  | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Fully Compatible | `~/.gemini/skills/` |
108
- | [Codex CLI](https://developers.openai.com/codex/cli/) | Fully Compatible | `~/.codex/skills/` |
142
+ | [Codex CLI](https://developers.openai.com/codex/cli/) | Fully Compatible | `~/.agents/skills/` (auto-discovered) |
109
143
 
110
144
  All three platforms use the Agent Skills open standard: a `SKILL.md` file with YAML frontmatter.
111
145
 
@@ -160,7 +194,7 @@ Together they work like this:
160
194
  | ------------------------------- | ------------------------------- | ----------------------------- |
161
195
  | "Create a login screen" | Context about project structure | `ti-expert`, `ti-ui` |
162
196
  | "Optimize ListView performance" | Points to docs location | `ti-ui` reads specific files |
163
- | "Implement push notifications" | API reference paths | `ti-howtos` provides workflow |
197
+ | "Implement push notifications" | API reference paths | `ti-howtos` (via tidev/skills) |
164
198
 
165
199
  You do not need to explicitly invoke skills. The AI detects when to use them based on your question.
166
200
 
@@ -172,18 +206,16 @@ The knowledge index is based on the latest Titanium SDK documentation. If your p
172
206
 
173
207
  ## Skills overview
174
208
 
175
- | Skill | Purpose | Best For |
176
- | ------------ | ------------------------------- | ------------------------------------------------------------------------------- |
177
- | alloy-guides | Alloy MVC reference | Models, Views, Controllers, Widgets |
178
- | alloy-howtos | Alloy CLI and debugging | Project setup, CLI commands, errors |
179
- | purgetss | Utility-first styling | UI styling and animations |
180
- | ti-api | Complete API reference | Properties, methods, events, constants |
181
- | ti-expert | Architecture and implementation | Starting point for most tasks |
182
- | ti-guides | SDK fundamentals | Hyperloop, distribution, configuration |
183
- | ti-howtos | Native feature integration | Location, Push, Media, Platform APIs |
184
- | ti-ui | UI/UX patterns | Complex layouts, ListViews, platform UI |
209
+ | Skill | Purpose | Best For |
210
+ | --------- | ------------------------------- | --------------------------------------- |
211
+ | ti-expert | Architecture and implementation | Starting point for most tasks |
212
+ | purgetss | Utility-first styling | UI styling and animations |
213
+ | ti-ui | UI/UX patterns | Complex layouts, ListViews, platform UI |
185
214
 
186
- Note: `ti-guides`, `ti-howtos`, `ti-ui`, `alloy-guides`, and `alloy-howtos` are based on official Titanium SDK and Alloy documentation. `purgetss` is opinionated in workflow and conventions, but its reference files are audited against the official PurgeTSS documentation for verifiable classes and behavior. `ti-expert` and `purgetss` reflect personal coding conventions (biased toward PurgeTSS).
215
+ Notes:
216
+ - `purgetss` reference files are audited against the official PurgeTSS documentation, but the workflow conventions are opinionated.
217
+ - `ti-expert` and `ti-ui` reflect personal Titanium conventions (biased toward PurgeTSS, Alloy-first).
218
+ - For purely doc-based references (API surface, native-feature how-tos, Alloy MVC, SDK guides, Alloy CLI), install [`tidev/skills`](https://github.com/tidev/skills) — it pairs cleanly with TiTools.
187
219
 
188
220
  ---
189
221
 
@@ -193,14 +225,14 @@ In addition to skills, this repository includes sub-agents for Claude Code. Sub-
193
225
 
194
226
  ### ti-pro
195
227
 
196
- Deep-dive research specialist that preloads all 8 titanium-related documentation skills.
228
+ Deep-dive research specialist that preloads the 3 TiTools skills.
197
229
 
198
- | Aspect | Details |
199
- | ---------------- | ------------------------------------------------------- |
200
- | Location | `~/.claude/agents/ti-pro.md` |
201
- | Model | Sonnet (comprehensive analysis) |
202
- | Tools | Read-only (Read, Grep, Glob) |
203
- | Preloaded Skills | All 8 Titanium documentation skills injected at startup |
230
+ | Aspect | Details |
231
+ | ---------------- | ------------------------------------------------ |
232
+ | Location | `~/.claude/agents/ti-pro.md` |
233
+ | Model | Sonnet (comprehensive analysis) |
234
+ | Tools | Read-only (Read, Grep, Glob) |
235
+ | Preloaded Skills | `ti-expert`, `purgetss`, `ti-ui` |
204
236
 
205
237
  When to use the agent vs skills:
206
238
 
@@ -241,8 +273,8 @@ When installed as a plugin, TiTools provides slash commands for common tasks:
241
273
 
242
274
  These commands automatically invoke the relevant skills:
243
275
  - `/ti-check` reads `tiapp.xml` and reports project health
244
- - `/ti-new-screen` uses `alloy-guides` + `purgetss` to create properly structured files
245
- - `/ti-audit` uses `ti-expert` + `ti-ui` + `purgetss` + `alloy-guides` for comprehensive review
276
+ - `/ti-new-screen` uses `ti-expert` + `purgetss` to create properly structured files
277
+ - `/ti-audit` uses `ti-expert` + `ti-ui` + `purgetss` for comprehensive review
246
278
 
247
279
  ---
248
280
 
@@ -269,7 +301,7 @@ Skills are automatically activated based on your questions. Just ask naturally:
269
301
  The AI will automatically use:
270
302
  - `ti-expert` -> Architecture and controller structure
271
303
  - `purgetss` -> Styling classes and animations (if PurgeTSS detected)
272
- - `ti-howtos` -> Secure token storage
304
+ - `ti-howtos` from [`tidev/skills`](https://github.com/tidev/skills) (if installed) -> Secure token storage
273
305
 
274
306
  You do not need to call skills explicitly. The AI reads skill descriptions and loads the appropriate knowledge when needed.
275
307
 
@@ -277,15 +309,11 @@ You do not need to call skills explicitly. The AI reads skill descriptions and l
277
309
 
278
310
  All skills include automatic project detection to ensure compatibility:
279
311
 
280
- | Skill | What It Detects | How It Works |
281
- | ------------ | --------------------- | ------------------------------------------------------------- |
282
- | purgetss | PurgeTSS installation | Checks for `purgetss/` folder, `config.cjs`, `utilities.tss` |
283
- | ti-expert | Alloy vs Classic | Checks for `app/` (Alloy) vs `Resources/` (Classic) structure |
284
- | alloy-guides | Alloy projects | Checks for `app/views/`, `app/controllers/` |
285
- | alloy-howtos | Alloy projects | Checks for `alloy.jmk`, `config.json` |
286
- | ti-ui | Titanium projects | Checks for `tiapp.xml` (both Alloy and Classic) |
287
- | ti-guides | Titanium projects | Checks for `tiapp.xml` (both Alloy and Classic) |
288
- | ti-howtos | Titanium projects | Checks for `tiapp.xml` (both Alloy and Classic) |
312
+ | Skill | What It Detects | How It Works |
313
+ | --------- | --------------------- | ------------------------------------------------------------- |
314
+ | purgetss | PurgeTSS installation | Checks for `purgetss/` folder, `config.cjs`, `utilities.tss` |
315
+ | ti-expert | Alloy vs Classic | Checks for `app/` (Alloy) vs `Resources/` (Classic) structure |
316
+ | ti-ui | Titanium projects | Checks for `tiapp.xml` (both Alloy and Classic) |
289
317
 
290
318
  Why this matters:
291
319
  - PurgeTSS suggestions are only provided if PurgeTSS is installed
@@ -302,25 +330,17 @@ Why this matters:
302
330
  │ (Start Here) │
303
331
  └────────┬────────┘
304
332
 
305
- ┌────────────────────┼────────────────────┐
306
-
307
-
308
- ┌───────────────┐ ┌───────────────┐ ┌───────────────┐
309
- │ purgetss │ │ ti-ui │ │ ti-howtos │
310
- │ (Styling) │ │ (UI/UX) │ │ (Native) │
311
- └───────────────┘ └───────────────┘ └───────────────┘
312
- │ │ │
313
- └────────────────────┼────────────────────┘
314
-
315
- ┌────────────────────┼────────────────────┐
316
- │ │ │
317
- ▼ ▼ ▼
318
- ┌───────────────┐ ┌───────────────┐ ┌───────────────┐
319
- │ ti-guides │ │ alloy-guides │ │ alloy-howtos │
320
- │ (SDK) │ │ (MVC) │ │ (CLI) │
321
- └───────────────┘ └───────────────┘ └───────────────┘
333
+ ┌────────────┴────────────┐
334
+
335
+
336
+ ┌───────────────┐ ┌───────────────┐
337
+ │ purgetss │ │ ti-ui │
338
+ │ (Styling) │ │ (UI/UX) │
339
+ └───────────────┘ └───────────────┘
322
340
  ```
323
341
 
342
+ For pure API / native-feature how-to / MVC / SDK reference docs, install [`tidev/skills`](https://github.com/tidev/skills) alongside TiTools — its `ti-api`, `ti-guides`, `ti-howtos`, `alloy-guides`, and `alloy-howtos` skills layer below this hierarchy without conflict.
343
+
324
344
  ---
325
345
 
326
346
  ## Skill details
@@ -421,123 +441,7 @@ Key rules:
421
441
 
422
442
  ---
423
443
 
424
- ### ti-howtos
425
-
426
- Native feature integration expert.
427
-
428
- When it activates:
429
- - Location services and Maps
430
- - Push notifications (APNs/FCM)
431
- - Local notifications
432
- - Camera and Gallery
433
- - Audio/Video playback
434
- - File system operations
435
- - SQLite databases
436
- - HTTPClient networking
437
- - WebView integration
438
- - Android Intents and Services
439
- - iOS Background Services, iCloud, Keychain
440
- - Core Motion, WatchKit
441
-
442
- Example prompts:
443
- ```
444
- "How do I implement battery-efficient GPS tracking?"
445
- "How do I set up push notifications for iOS and Android?"
446
- "How do I capture and resize photos from the camera?"
447
- "Download files with a progress indicator."
448
- "How should I store sensitive data in iOS Keychain?"
449
- "Create an Android background service."
450
- "Integrate with Apple Watch using WatchKit."
451
- "Handle background location updates on iOS."
452
- ```
453
-
454
- Key rules:
455
- - Always handle both `onload` and `onerror` for HTTPClient
456
- - Always close database handles and result sets
457
- - Use `imageAsResized` to avoid memory exhaustion
458
- - Configure proper permissions in tiapp.xml
459
-
460
- ---
461
-
462
- ### ti-guides
463
-
464
- SDK fundamentals and advanced configuration.
465
-
466
- When it activates:
467
- - Hyperloop native access
468
- - Native module development
469
- - App distribution (Play Store, App Store)
470
- - tiapp.xml configuration
471
- - CLI commands and options
472
- - Memory and bridge optimization
473
- - CommonJS module patterns
474
- - Coding best practices
475
-
476
- Example prompts:
477
- ```
478
- "How do I access native iOS APIs using Hyperloop?"
479
- "Configure tiapp.xml for a production build."
480
- "What do I need for Google Play submission?"
481
- "How do I create a native Android module?"
482
- "Optimize bridge crossings for better performance."
483
- "List reserved words I should avoid."
484
- ```
485
-
486
- ---
487
-
488
- ### alloy-guides
489
-
490
- Complete Alloy MVC framework reference.
491
-
492
- When it activates:
493
- - MVC architecture concepts
494
- - Backbone.js models and collections
495
- - Data binding patterns
496
- - XML markup elements
497
- - TSS styling syntax
498
- - Widget development
499
- - Sync adapters (sql, properties)
500
- - Migrations
501
-
502
- Example prompts:
503
- ```
504
- "Explain how Alloy data binding works."
505
- "How do I create a model with the SQLite adapter?"
506
- "Bind a collection to a TableView."
507
- "How do I build a reusable widget?"
508
- "Show the TSS syntax for platform-specific styles."
509
- "How does the Alloy compilation process work?"
510
- ```
511
-
512
- ---
513
-
514
- ### alloy-howtos
515
-
516
- Alloy CLI, configuration, and debugging.
517
-
518
- When it activates:
519
- - Alloy CLI commands (new, generate, compile)
520
- - Configuration files (alloy.jmk, config.json)
521
- - Debugging compilation errors
522
- - Conditional views
523
- - Custom XML tags
524
- - Best practices and naming conventions
525
- - Backbone.Events patterns
526
-
527
- Example prompts:
528
- ```
529
- "How do I generate a new model with the CLI?"
530
- "Configure alloy.jmk build hooks."
531
- "How do I fix "No app.js found"?"
532
- "Create conditional views based on user state."
533
- "How do I build a custom XML tag without widgets?"
534
- "Set up Backbone.Events for global communication."
535
- ```
536
-
537
- Key rules:
538
- - Use Backbone.Events instead of Ti.App.fireEvent
539
- - Never use double underscore prefixes (`__foo`)
540
- - Access config at runtime with `Alloy.CFG.yourKey`
444
+ > **Looking for `ti-api`, `ti-guides`, `ti-howtos`, `alloy-guides`, or `alloy-howtos`?** Those five documentation-only skills now live in [`tidev/skills`](https://github.com/tidev/skills). See [Doc-based skills moved to tidev/skills](#doc-based-skills-moved-to-tidevskills) for install instructions.
541
445
 
542
446
  ---
543
447
 
@@ -636,7 +540,7 @@ Behavior depends on where you run it:
636
540
  | With `--local` flag | Installs skills locally to `./.agents/skills/` in the current project |
637
541
 
638
542
  What it does:
639
- - Installs all 8 titanium-related skills (global or local depending on context)
543
+ - Installs the 3 TiTools skills (global or local depending on context)
640
544
  - Installs ti-pro agent for Claude Code
641
545
  - Detects installed AI platforms and lets you choose which to link
642
546
  - Creates symlinks from platform directories to central skills
@@ -823,22 +727,17 @@ Then only add `large-title-enabled` per-window as needed:
823
727
  </Window>
824
728
  ```
825
729
 
826
- This pattern is documented across four skills: `ti-ui`, `ti-expert`, `ti-api`, and `purgetss`.
730
+ This pattern is documented across three TiTools skills: `ti-ui`, `ti-expert`, and `purgetss`. The `ti-api` skill in [`tidev/skills`](https://github.com/tidev/skills) also documents the underlying Window properties.
827
731
 
828
732
  ---
829
733
 
830
734
  ## Skill contents summary
831
735
 
832
- | Skill | SKILL.md | References |
833
- | ------------ | ----------------------------- | ----------------------------------------------------- |
834
- | alloy-guides | MVC Quick Start | 10 files (models, views, widgets, etc.) |
835
- | alloy-howtos | Best Practices | 6 files (CLI, config, debugging, etc.) |
836
- | purgetss | Setup + Critical Rules | 21 files (grid, animations, icons, class-index, etc.) |
837
- | ti-api | API Quick Reference | 14 files (windows, views, lists, media, etc.) |
838
- | ti-expert | Architecture + Implementation | 19 refs + 1 asset (patterns, testing, security, etc.) |
839
- | ti-guides | Core Workflow | 14 files (hyperloop, distribution, etc.) |
840
- | ti-howtos | Integration Workflow | 18 files (location, media, maps, automation, etc.) |
841
- | ti-ui | UI Rules + Platform Diffs | 14 files (layouts, lists, gestures, etc.) |
736
+ | Skill | SKILL.md | References |
737
+ | --------- | ----------------------------- | ----------------------------------------------------- |
738
+ | ti-expert | Architecture + Implementation | 21 files (patterns, testing, security, etc.) |
739
+ | purgetss | Setup + Critical Rules | 29 files (grid, animations, icons, class-index, etc.) |
740
+ | ti-ui | UI Rules + Platform Diffs | 14 files (layouts, lists, gestures, etc.) |
842
741
 
843
742
  ---
844
743
 
package/agents/ti-pro.md CHANGED
@@ -1,13 +1,9 @@
1
1
  ---
2
2
  name: ti-pro
3
- description: Titanium SDK and Alloy research specialist. Loads the 7 Titanium skills and uses them together to answer research-style questions. Use for codebase analysis, architecture reviews, Titanium SDK implementation research, cross-feature questions, and platform-specific differences. Returns concrete findings with file and line references.
3
+ description: Titanium SDK and Alloy research specialist. Loads the 3 TiTools skills and uses them together to answer research-style questions. Use for codebase analysis, architecture reviews, Titanium SDK implementation research, cross-feature questions, and platform-specific differences. Returns concrete findings with file and line references.
4
4
  skills:
5
- - alloy-guides
6
- - alloy-howtos
7
- - purgetss
8
5
  - ti-expert
9
- - ti-guides
10
- - ti-howtos
6
+ - purgetss
11
7
  - ti-ui
12
8
  tools: Read, Grep, Glob, Bash
13
9
  model: sonnet
@@ -19,16 +15,14 @@ You are a research specialist for Titanium SDK and Alloy mobile development. Wit
19
15
 
20
16
  ## What You Do
21
17
 
22
- When invoked, you research complex topics by consulting all 7 Titanium skills:
18
+ When invoked, you research complex topics by consulting the 3 TiTools skills:
23
19
 
24
20
  - `ti-expert` - Architecture, patterns, conventions
25
- - `alloy-guides` - Alloy MVC complete reference
26
- - `alloy-howtos` - CLI, config, debugging
27
21
  - `purgetss` - Utility-first styling classes (optional add-on; use when the project already has it or the user asks about it)
28
- - `ti-guides` - SDK official guides, Hyperloop, distribution
29
- - `ti-howtos` - Native features, platform-specific APIs
30
22
  - `ti-ui` - UI/UX patterns, layouts, gestures
31
23
 
24
+ If the user has [`tidev/skills`](https://github.com/tidev/skills) installed alongside TiTools, also consult its doc-based skills (`ti-api`, `ti-guides`, `ti-howtos`, `alloy-guides`, `alloy-howtos`) when API surface, native-feature how-tos, MVC reference, or SDK fundamentals are part of the question.
25
+
32
26
  ## Research Process
33
27
 
34
28
  1. **Understand the query** - Identify what needs research.
@@ -53,7 +47,7 @@ When invoked, you research complex topics by consulting all 7 Titanium skills:
53
47
  | -------------------------------------------- | -------------------------------------- |
54
48
  | `/ti-expert` for architecture guidance | Inline consultation during development |
55
49
  | `/purgetss` to verify a class | Quick inline reference |
56
- | `/ti-howtos` for step-by-step implementation | Task-oriented guidance |
50
+ | `/ti-ui` for UI/UX patterns and layouts | Task-oriented guidance |
57
51
  | Main conversation for iterative work | Sub-agents run in isolation |
58
52
 
59
53
  ## Response Format
@@ -73,10 +67,10 @@ Your app uses `Ti.App.fireEvent` which causes memory leaks.
73
67
 
74
68
  ## Key Points
75
69
  - **ti-expert/references/anti-patterns.md:45** - Ti.App.fireEvent leaks memory
76
- - **alloy-howtos/references/best_practices.md:23** - Use Backbone.Events instead
70
+ - **ti-expert/references/controller-patterns.md:23** - Use Backbone.Events instead
77
71
 
78
72
  ## Solution
79
- [Code example from alloy-howtos]
73
+ [Code example from ti-expert]
80
74
  ```
81
75
 
82
76
  ## Tool Usage
package/lib/cleanup.js CHANGED
@@ -9,6 +9,7 @@ import {
9
9
  LEGACY_AGENTS,
10
10
  getAgentsSkillsDir,
11
11
  getClaudeAgentsDir,
12
+ getCodexSkillsDir,
12
13
  } from './config.js';
13
14
  import { detectPlatforms } from './platform.js';
14
15
  import { existsSync, lstatSync, rmSync } from 'fs';
@@ -53,6 +54,14 @@ export function removeLegacySkillSymlinks(platformSkillsDir) {
53
54
  return removeSkillSymlinks(platformSkillsDir, { legacyOnly: true });
54
55
  }
55
56
 
57
+ // Codex reads skills from the canonical ~/.agents/skills/, so any TiTools-managed
58
+ // symlinks at ~/.codex/skills/ from earlier versions are redundant and should be
59
+ // cleaned up. Targets both active and legacy skill names.
60
+ export function removeCodexRedundantSymlinks(baseDir) {
61
+ const codexSkillsDir = getCodexSkillsDir(baseDir);
62
+ return removeSkillSymlinks(codexSkillsDir);
63
+ }
64
+
56
65
  export function removeSkills(baseDir, options = {}) {
57
66
  const skillsDir = getAgentsSkillsDir(baseDir);
58
67
  const skillList = getSkillList(options);
@@ -74,6 +83,8 @@ export function cleanupLegacyArtifacts(baseDir) {
74
83
  removeLegacySkillSymlinks(platform.skillsDir);
75
84
  }
76
85
 
86
+ removeCodexRedundantSymlinks(baseDir);
87
+
77
88
  if (baseDir) {
78
89
  removeSkills(undefined, { legacyOnly: true });
79
90
  removeAgents(undefined, { legacyOnly: true });
@@ -81,6 +92,7 @@ export function cleanupLegacyArtifacts(baseDir) {
81
92
  for (const platform of globalPlatforms) {
82
93
  removeLegacySkillSymlinks(platform.skillsDir);
83
94
  }
95
+ removeCodexRedundantSymlinks(undefined);
84
96
  }
85
97
  }
86
98
 
@@ -89,6 +101,7 @@ export default {
89
101
  getAgentList,
90
102
  removeSkillSymlinks,
91
103
  removeLegacySkillSymlinks,
104
+ removeCodexRedundantSymlinks,
92
105
  removeSkills,
93
106
  removeAgents,
94
107
  cleanupLegacyArtifacts,
@@ -120,7 +120,8 @@ export async function skillsCommand(options) {
120
120
 
121
121
  if (detectedPlatforms.length === 0 && !options.path && !isLocal) {
122
122
  console.log(chalk.yellow('No AI coding assistants detected globally.'));
123
- console.log('Install one of: Claude Code, Gemini CLI, or Codex CLI');
123
+ console.log('Install one of: Claude Code or Gemini CLI.');
124
+ console.log('(Codex CLI is supported via the canonical ~/.agents/skills/ — no platform-specific symlink needed.)');
124
125
  console.log('Or use: titools install --local');
125
126
  process.exit(1);
126
127
  }
@@ -30,6 +30,7 @@ import { formatList, isTitaniumProject } from '../utils.js';
30
30
  import { getAgentsSkillsDir } from '../config.js';
31
31
  import { existsSync } from 'fs';
32
32
  import { join, resolve } from 'path';
33
+ import os from 'os';
33
34
 
34
35
  /**
35
36
  * Check if a platform has any skill symlinks installed
@@ -105,7 +106,9 @@ export async function updateCommand(options) {
105
106
  if (!options.local) {
106
107
  const projectDir = process.cwd();
107
108
  const isProject = isTitaniumProject(projectDir);
108
- const hasLocalSkills = isProject && hasSkillsAt(projectDir);
109
+ // When cwd === home, "local" and "global" point to the same .agents/skills dir
110
+ const isHomeDir = projectDir === os.homedir();
111
+ const hasLocalSkills = !isHomeDir && isProject && hasSkillsAt(projectDir);
109
112
  const hasGlobalSkills = hasSkillsAt(undefined);
110
113
 
111
114
  // Only show prompt if BOTH local and global skills exist
package/lib/config.js CHANGED
@@ -31,18 +31,19 @@ export const REPO_API_URL = 'https://api.github.com/repos/macCesar/titools';
31
31
  // Skills to install
32
32
  export const SKILLS = [
33
33
  'ti-expert',
34
- 'ti-api',
35
34
  'purgetss',
36
35
  'ti-ui',
37
- 'ti-howtos',
38
- 'ti-guides',
39
- 'alloy-guides',
40
- 'alloy-howtos',
41
36
  ];
42
37
  // Legacy skills to remove during updates/uninstall
38
+ // ti-api, ti-guides, ti-howtos, alloy-guides, alloy-howtos moved to https://github.com/tidev/skills in v3.0.0
43
39
  export const LEGACY_SKILLS = [
44
40
  'alloy-expert',
45
41
  'ti-branding',
42
+ 'ti-api',
43
+ 'ti-guides',
44
+ 'ti-howtos',
45
+ 'alloy-guides',
46
+ 'alloy-howtos',
46
47
  ];
47
48
 
48
49
  // Agents to install
@@ -77,12 +78,9 @@ export const getPlatforms = (baseDir = os.homedir()) => [
77
78
  skillsDir: getGeminiSkillsDir(baseDir),
78
79
  configDir: path.join(baseDir, '.gemini'),
79
80
  },
80
- {
81
- name: 'codex',
82
- displayName: 'Codex CLI',
83
- skillsDir: getCodexSkillsDir(baseDir),
84
- configDir: path.join(baseDir, '.codex'),
85
- },
81
+ // Codex CLI is intentionally omitted: it auto-discovers skills from the
82
+ // canonical ~/.agents/skills/ per the agentskills.io standard, so a
83
+ // platform-specific symlink at ~/.codex/skills/ would be redundant.
86
84
  ];
87
85
 
88
86
  // Files to install
package/lib/platform.js CHANGED
@@ -26,7 +26,7 @@ export function detectPlatforms(baseDir) {
26
26
 
27
27
  /**
28
28
  * Get platform by name
29
- * @param {string} name - Platform name (claude, gemini, codex)
29
+ * @param {string} name - Platform name (claude, gemini)
30
30
  * @param {string} baseDir - Optional base directory
31
31
  * @returns {Object|null} Platform object or null
32
32
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maccesar/titools",
3
- "version": "2.10.0",
3
+ "version": "3.1.0",
4
4
  "description": "Titanium SDK skills and agents for AI coding assistants (Claude Code, Gemini CLI, Codex CLI)",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -57,8 +57,7 @@
57
57
  "lib/",
58
58
  "skills/",
59
59
  "agents/",
60
- "AGENTS-VERCEL-RESEARCH.md",
61
- "scripts/titools-docs"
60
+ "AGENTS-VERCEL-RESEARCH.md"
62
61
  ],
63
62
  "publishConfig": {
64
63
  "access": "public"