@maccesar/titools 2.2.0 → 2.2.1

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.
package/README.md CHANGED
@@ -1,254 +1,91 @@
1
- # titools - Titanium CLI for AI Coding Assistants
1
+ # TiTools - Titanium CLI for AI coding assistants
2
2
 
3
- A comprehensive CLI that transforms your coding assistant into a **Titanium SDK expert**. Install skills, agents, and documentation for Titanium SDK, Alloy MVC, and PurgeTSS development.
3
+ <div align="center">
4
4
 
5
- ## Compatible Platforms
5
+ ![npm](https://img.shields.io/npm/dm/@maccesar%2Ftitools)
6
+ ![npm](https://img.shields.io/npm/v/@maccesar%2Ftitools)
7
+ ![NPM](https://img.shields.io/npm/l/@maccesar%2Ftitools)
6
8
 
7
- | Platform | Status | Installation Path |
8
- | --------------------------------------------------------- | ------------------ | ------------------- |
9
- | [Claude Code](https://claude.ai/claude-code) | ✅ Fully Compatible | `~/.claude/skills/` |
10
- | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ Fully Compatible | `~/.gemini/skills/` |
11
- | [Codex CLI](https://developers.openai.com/codex/cli/) | ✅ Fully Compatible | `~/.codex/skills/` |
9
+ </div>
12
10
 
13
- All three platforms use the same **Agent Skills open standard**: a `SKILL.md` file with YAML frontmatter.
11
+ A CLI that gives your AI coding assistant access to **Titanium SDK** knowledge. One command installs 7 specialized skills, a research agent, and 100+ reference files for Titanium SDK, Alloy MVC, and PurgeTSS.
14
12
 
15
- ---
16
-
17
- ## Quick Install
18
-
19
- ### NPM Package (Recommended)
20
-
21
- ```bash
22
- npm install -g @maccesar/titools
23
- ```
24
-
25
- This installs the `titools` CLI command globally:
26
-
27
- ```bash
28
- # Install knowledge packages and platform links
29
- titools install
30
-
31
- # Sync knowledge index files in your project
32
- titools sync
33
-
34
- # Update knowledge packages and agent (and refresh existing knowledge index files)
35
- titools update
36
-
37
- # Show version
38
- titools --version
39
- ```
13
+ Without `titools`, assistants fall back on general training data, which is often outdated or off-target for Titanium. With `titools`, your assistant can reference Alloy architecture, memory cleanup patterns, PurgeTSS utility classes, and platform-specific APIs.
40
14
 
41
- **What it installs:**
42
- - ✅ All 7 titanium-* skills
43
- - ✅ ti-pro agent
44
- - ✅ Automatic documentation generation
45
-
46
- **Why use NPM?**
47
- - ✅ Cross-platform support (macOS, Linux, Windows)
48
- - ✅ No sudo required
49
- - ✅ Easy version management
50
- - ✅ Simple updates with `titools update`
15
+ Based on [Vercel’s research on AGENTS.md](https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals), they found that the knowledge index approach achieved a 100% pass rate, compared to 53–79% using skills alone.
51
16
 
52
17
  ---
53
18
 
54
- ## Usage
55
-
56
- ### titools install
57
-
58
- Installs Titanium knowledge packages and platform links.
19
+ ## Quick setup
59
20
 
60
21
  ```bash
61
- titools install [options]
62
- ```
63
-
64
- **Options:**
65
- | Option | Description |
66
- | --------------- | ------------------------------------------------------------------- |
67
- | `-l, --local` | Install skills locally in the current project (`./.agents/skills/`) |
68
- | `-a, --all` | Install to all detected platforms without prompting |
69
- | `--path <path>` | Install to a custom path (skips symlink setup) |
70
-
71
- **What it does:**
72
- - ✅ Installs all 7 titanium-* skills (global or local)
73
- - ✅ Installs ti-pro agent for Claude Code
74
- - ✅ Creates symlinks from platform directories to central skills
75
- - ✅ Detects installed AI platforms and lets you choose which to link
76
- - ✅ Cleans up legacy artifacts (`alloy-expert` skill, `ti-researcher` agent)
77
- - ✅ If run inside a Titanium project, prompts to sync knowledge index files
78
- - ✅ Warns Gemini users if local skills override existing global Gemini skills
79
-
80
- Run inside a Titanium project to install locally or globally from anywhere.
81
-
82
- ### Recommended Setup Flow
83
-
84
- Start in a Titanium project so the instruction files can be created/updated:
22
+ # 1) Install the CLI
23
+ npm install -g @maccesar/titools
85
24
 
86
- ```bash
87
- # 1) Create a Titanium project
88
- ti create
25
+ # 2) Install skills globally
26
+ titools install
89
27
 
90
- # 2) Enter the project
28
+ # 3) Go to your Titanium project
91
29
  cd /path/to/your/project
92
30
 
93
- # 3) Install knowledge packages (global or local)
94
- titools install
95
-
96
- # 4) Sync knowledge index files (AGENTS.md/CLAUDE.md/GEMINI.md)
31
+ # 4) Sync the knowledge index into your project files
97
32
  titools sync
98
- ```
99
-
100
- ### titools sync
101
33
 
102
- Updates the Titanium knowledge index inside your project's instruction files.
34
+ # 5) Start your AI coding assistant
35
+ claude # or gemini, or codex
103
36
 
104
- ```bash
105
- titools sync [path] [options]
37
+ # 6) Ask away!
38
+ # "My ListView with 500 items scrolls like garbage on Android. How do I fix it?"
39
+ # "How should I structure a new app with login, signup, and a dashboard?"
106
40
  ```
107
41
 
108
- **Arguments:**
109
- | Argument | Description |
110
- | -------- | -------------------------------------------- |
111
- | `[path]` | Project path (defaults to current directory) |
112
-
113
- **Options:**
114
- | Option | Description |
115
- | --------------- | ------------------------------------------ |
116
- | `-f, --force` | Overwrite existing files without prompting |
117
- | `-v, --verbose` | Show detailed diagnostics |
118
-
119
- **What it does:**
120
- - Detects Titanium SDK version from `tiapp.xml`
121
- - Prompts you to select which files to sync: `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`
122
- - Inserts or updates a compressed knowledge index block in selected files
123
- - Removes knowledge blocks from unselected files
124
- - Creates files if they don't exist
125
- - Only works inside a Titanium project (requires `tiapp.xml`)
126
-
127
- ### titools update
128
-
129
- Updates installed knowledge packages and agent to the latest version.
42
+ What gets installed:
43
+ - All 7 titanium-related skills to `~/.agents/skills/`
44
+ - ti-pro agent for Claude Code
45
+ - Platform symlinks (Claude Code, Gemini CLI, Codex CLI)
46
+ - Knowledge index in your project's `AGENTS.md`/`CLAUDE.md`/`GEMINI.md`
130
47
 
131
- ```bash
132
- titools update [options]
133
- ```
134
-
135
- **Options:**
136
- | Option | Description |
137
- | ------------- | ------------------------------------------ |
138
- | `-l, --local` | Update local skills in the current project |
139
-
140
- **What it does:**
141
- - Checks GitHub for the latest version
142
- - Downloads and installs updated skills and agents
143
- - Updates platform symlinks for all detected platforms
144
- - Cleans up legacy artifacts (`alloy-expert` skill, `ti-researcher` agent)
145
- - Auto-syncs knowledge index files in Titanium projects
146
- - If only local **or** global skills exist, updates that location automatically
147
- - If both exist, prompts you to choose
148
-
149
- > Note: This updates knowledge packages/agent and refreshes existing knowledge index files, not the CLI binary itself. To update the CLI, use `npm update -g @maccesar/titools`.
150
-
151
- ### titools remove
152
-
153
- Removes knowledge packages, agents, symlinks, and knowledge index blocks.
154
-
155
- ```bash
156
- titools remove [options]
157
- ```
158
-
159
- **Options:**
160
- | Option | Description |
161
- | ------------- | -------------------------------------------- |
162
- | `-l, --local` | Remove local skills from the current project |
163
-
164
- **What it does:**
165
- - Detects all installed components (skills, agents, symlinks, knowledge blocks)
166
- - Prompts you to select what to remove:
167
- - ti-pro agent for Claude Code
168
- - Knowledge index blocks from instruction files (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`)
169
- - Skills from global (`~/.agents/skills/`) or project directory
170
- - Platform symlinks from global or project directory
171
- - Removes both current and legacy artifacts
172
-
173
- ### Verify Installation
174
-
175
- **Check titools version:**
176
- ```bash
177
- titools --version
178
- ```
179
-
180
- **Check central location (global install):**
181
- ```bash
182
- ls ~/.agents/skills/
183
- # Should show: ti-expert, purgetss, ti-ui, ti-howtos, ti-guides, alloy-guides, alloy-howtos
184
- ```
185
-
186
- **Claude Code (skills):**
187
- ```bash
188
- ls -la ~/.claude/skills/
189
- # Should show symlinks pointing to ~/.agents/skills/
190
- ```
191
-
192
- **Claude Code (agents):**
193
- ```bash
194
- ls -la ~/.claude/agents/
195
- # Should show: ti-pro.md
196
- ```
197
-
198
- **Gemini CLI:**
199
- ```bash
200
- gemini skills list
201
- ```
202
-
203
- **Codex CLI:**
204
- ```bash
205
- # Type /skills in Codex or use $ to mention a skill
206
- ```
48
+ Why NPM?
49
+ - Cross-platform (macOS, Linux, Windows)
50
+ - No sudo required
51
+ - Simple updates with `titools update`
207
52
 
208
53
  ---
209
54
 
210
- ## Knowledge Index: Boost AI Performance
211
-
212
- **File selection per assistant:**
213
- - Claude Code → `CLAUDE.md`
214
- - Gemini CLI → `GEMINI.md`
215
- - Codex CLI / others → `AGENTS.md`
55
+ ## Compatible platforms
216
56
 
217
- Run this inside your Titanium project:
57
+ | Platform | Status | Installation Path |
58
+ | --------------------------------------------------------- | ---------------- | ------------------- |
59
+ | [Claude Code](https://claude.ai/claude-code) | Fully Compatible | `~/.claude/skills/` |
60
+ | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Fully Compatible | `~/.gemini/skills/` |
61
+ | [Codex CLI](https://developers.openai.com/codex/cli/) | Fully Compatible | `~/.codex/skills/` |
218
62
 
219
- ```bash
220
- cd /path/to/your/titanium/project
221
- titools sync
222
- ```
63
+ All three platforms use the Agent Skills open standard: a `SKILL.md` file with YAML frontmatter.
223
64
 
224
65
  ---
225
66
 
226
- ### How the Knowledge Index Works
67
+ ## Knowledge index
227
68
 
228
- | Approach | Reported Pass Rate |
229
- | ------------------- | ------------------ |
230
- | No documentation | 53% |
231
- | Skills only | 53-79% |
232
- | **Knowledge index** | **100%** |
69
+ The knowledge index is a compressed documentation map that gets injected into your project's instruction files. It tells the AI where Titanium reference docs are, so it can pull accurate information instead of relying on general training data.
233
70
 
234
- **Why it works (per Vercel’s evaluation):**
235
- - **No decision point** - Information is always present, no need to invoke skills
236
- - **Consistent availability** - Available in every turn, not async-loaded
237
- - **No ordering issues** - No "read docs first vs explore project first" dilemma
71
+ ### Why it works
238
72
 
239
- For details, see `AGENTS-VERCEL-RESEARCH.md`.
73
+ | Approach | Reported Pass Rate |
74
+ | ---------------- | ------------------ |
75
+ | No documentation | 53% |
76
+ | Skills only | 53-79% |
77
+ | Knowledge index | 100% |
240
78
 
241
- ### How to Sync the Knowledge Index
79
+ Per Vercel's evaluation:
80
+ - No decision point: information is present without needing to invoke skills
81
+ - Consistent availability: available in every turn, not async-loaded
82
+ - No ordering issues: avoids "read docs first vs explore project first"
242
83
 
243
- The `titools sync` command will:
244
- 1. Verify this is a Titanium project (checks for `tiapp.xml`)
245
- 2. Detect your Titanium SDK version
246
- 3. Update `AGENTS.md`/`CLAUDE.md`/`GEMINI.md` with a compressed knowledge index
247
- 4. Intelligently merge if file already exists (removes old block, adds new one)
84
+ For details, see `AGENTS-VERCEL-RESEARCH.md`.
248
85
 
249
- **Selection behavior:** The command lets you choose which instruction files to sync and preselects any files that already contain a knowledge block.
86
+ ### What gets generated
250
87
 
251
- ### What the Knowledge Index Contains
88
+ The `titools sync` command generates a block like this inside your project files:
252
89
 
253
90
  ```
254
91
  [Titanium SDK Docs Index]|root: ~/.agents/skills
@@ -258,59 +95,16 @@ The `titools sync` command will:
258
95
  ...
259
96
  ```
260
97
 
261
- The index points to all reference documentation, so your AI assistant can quickly retrieve accurate information without relying on potentially outdated training data.
262
-
263
- ### Version Notice
98
+ File selection per assistant:
99
+ - Claude Code -> `CLAUDE.md`
100
+ - Gemini CLI -> `GEMINI.md`
101
+ - Codex CLI / others -> `AGENTS.md`
264
102
 
265
- The knowledge index is based on the **latest Titanium SDK documentation**. If your project uses an older version, the command will detect and warn you about potential API differences.
266
-
267
- ---
103
+ ### How skills and the knowledge index work together
268
104
 
269
- ## How to Use the Knowledge Index
105
+ The knowledge index provides always-available context (the documentation map). Skills provide specialized, on-demand expertise (the actual knowledge).
270
106
 
271
- Once installed, the AI assistant automatically reads the documentation index in every conversation. Just ask natural questions about Titanium development:
272
-
273
- ### Example Prompts
274
-
275
- **General Architecture:**
276
- ```
277
- "How should I structure a new Alloy app with authentication?"
278
- "What’s a solid pattern for navigation between screens?"
279
- ```
280
-
281
- **PurgeTSS Styling:**
282
- ```
283
- "Can you create a product card with PurgeTSS (image, title, price, buy button)?"
284
- "How do I use the 12‑column grid system in PurgeTSS?"
285
- "Explain why my build fails with platform‑specific properties."
286
- ```
287
-
288
- **UI Components:**
289
- ```
290
- "How do I build a high‑performance ListView with custom templates?"
291
- "Implement pull‑to‑refresh on a ScrollView."
292
- ```
293
-
294
- **Native Features:**
295
- ```
296
- "How do I implement push notifications for iOS and Android?"
297
- "Handle GPS location in the background."
298
- ```
299
-
300
- **Debugging:**
301
- ```
302
- "Why is my ListView scrolling poorly?"
303
- "Fix “Alloy is not defined” in my lib file."
304
- ```
305
-
306
- ---
307
-
308
- ## How Skills Work with the Knowledge Index
309
-
310
- The knowledge index provides always-available context (the documentation index).
311
- **Skills** provide specialized, on-demand expertise.
312
-
313
- Together they work seamlessly:
107
+ Together they work like this:
314
108
 
315
109
  | Your Question | Knowledge Index Provides | Skills Activate |
316
110
  | ------------------------------- | ------------------------------- | ----------------------------- |
@@ -318,42 +112,46 @@ Together they work seamlessly:
318
112
  | "Optimize ListView performance" | Points to docs location | `ti-ui` reads specific files |
319
113
  | "Implement push notifications" | API reference paths | `ti-howtos` provides workflow |
320
114
 
321
- **You don't need to explicitly invoke skills** - the AI detects when to use them based on your question.
115
+ You do not need to explicitly invoke skills. The AI detects when to use them based on your question.
116
+
117
+ ### Version notice
118
+
119
+ The knowledge index is based on the latest Titanium SDK documentation. If your project uses an older version, the command will warn you about potential API differences.
322
120
 
323
121
  ---
324
122
 
325
- ## Skills Overview
123
+ ## Skills overview
326
124
 
327
- | Skill | Purpose | Best For |
328
- | ---------------- | ----------------------------- | --------------------------------------- |
329
- | **ti-expert** | Architecture + Implementation | Starting point for most tasks |
330
- | **purgetss** | Utility-first styling | UI styling and animations |
331
- | **ti-ui** | UI/UX patterns | Complex layouts, ListViews, platform UI |
332
- | **ti-howtos** | Native feature integration | Location, Push, Media, Platform APIs |
333
- | **ti-guides** | SDK fundamentals | Hyperloop, distribution, configuration |
334
- | **alloy-guides** | Alloy MVC reference | Models, Views, Controllers, Widgets |
335
- | **alloy-howtos** | Alloy CLI & debugging | Project setup, CLI commands, errors |
125
+ | Skill | Purpose | Best For |
126
+ | ------------ | ----------------------------- | --------------------------------------- |
127
+ | alloy-guides | Alloy MVC reference | Models, Views, Controllers, Widgets |
128
+ | alloy-howtos | Alloy CLI & debugging | Project setup, CLI commands, errors |
129
+ | purgetss | Utility-first styling | UI styling and animations |
130
+ | ti-expert | Architecture + Implementation | Starting point for most tasks |
131
+ | ti-guides | SDK fundamentals | Hyperloop, distribution, configuration |
132
+ | ti-howtos | Native feature integration | Location, Push, Media, Platform APIs |
133
+ | ti-ui | UI/UX patterns | Complex layouts, ListViews, platform UI |
336
134
 
337
- > **Note:** `ti-guides`, `ti-howtos`, `ti-ui`, `alloy-guides`, and `alloy-howtos` are based on **official Titanium SDK and Alloy documentation**. `ti-expert` and `purgetss` are opinionated and reflect personal coding conventions (biased toward PurgeTSS).
135
+ Note: `ti-guides`, `ti-howtos`, `ti-ui`, `alloy-guides`, and `alloy-howtos` are based on official Titanium SDK and Alloy documentation. `ti-expert` and `purgetss` are opinionated and reflect personal coding conventions (biased toward PurgeTSS).
338
136
 
339
137
  ---
340
138
 
341
- ## Agents (Claude Code Only)
139
+ ## Agents (Claude Code only)
342
140
 
343
- In addition to skills, this repository includes **sub-agents** for Claude Code. Sub-agents run in isolated contexts and are ideal for research tasks that produce verbose output.
141
+ In addition to skills, this repository includes sub-agents for Claude Code. Sub-agents run in isolated contexts and are useful for research tasks that produce verbose output.
344
142
 
345
143
  ### ti-pro
346
144
 
347
- **Deep-dive research specialist that preloads all 7 titanium-\* skills.**
145
+ Deep-dive research specialist that preloads all 7 titanium-related skills.
348
146
 
349
- | Aspect | Details |
350
- | -------------------- | -------------------------------------------- |
351
- | **Location** | `~/.claude/agents/ti-pro.md` |
352
- | **Model** | Sonnet (comprehensive analysis) |
353
- | **Tools** | Read-only (Read, Grep, Glob) |
354
- | **Preloaded Skills** | All 7 titanium-\* skills injected at startup |
147
+ | Aspect | Details |
148
+ | ---------------- | ------------------------------------------------- |
149
+ | Location | `~/.claude/agents/ti-pro.md` |
150
+ | Model | Sonnet (comprehensive analysis) |
151
+ | Tools | Read-only (Read, Grep, Glob) |
152
+ | Preloaded Skills | All 7 titanium-related skills injected at startup |
355
153
 
356
- **When to use the agent vs skills:**
154
+ When to use the agent vs skills:
357
155
 
358
156
  | Use Case | Use This | Why |
359
157
  | ---------------------------- | ------------------------------- | ---------------------------------------------------- |
@@ -363,60 +161,60 @@ In addition to skills, this repository includes **sub-agents** for Claude Code.
363
161
  | Step-by-step implementation | Skills directly | Task-oriented guidance |
364
162
  | Architecture review | `ti-pro` agent | Read-only analysis across all documentation |
365
163
 
366
- **Example prompts for the agent:**
164
+ Example prompts for the agent:
367
165
 
368
166
  ```
369
- "Can you use the ti-pro agent to analyze this Alloy codebases architecture?"
167
+ "Can you use the ti-pro agent to analyze this Alloy codebase's architecture?"
370
168
  "Can you research how to combine location, push, and background sync in Titanium?"
371
169
  "Can you compare ListView vs TableView performance for my use case?"
372
- "Review this Titanium mobile app and identify antipatterns."
170
+ "Review this Titanium mobile app and identify anti-patterns."
373
171
  ```
374
172
 
375
- > **Tip**: For automatic activation, include words like "Titanium", "Alloy", or "mobile app" in your prompt to ensure the specialized agent is used instead of generic code analysis.
173
+ Tip: For automatic activation, include words like "Titanium", "Alloy", or "mobile app" in your prompt to ensure the specialized agent is used instead of generic code analysis.
376
174
 
377
- **Key difference:**
378
- - **Skills** = Interactive help during development (inline, conversational)
379
- - **Agents** = Isolated research tasks (returns summary, keeps verbose output separate)
175
+ Key difference:
176
+ - Skills = interactive help during development (inline, conversational)
177
+ - Agents = isolated research tasks (returns summary, keeps verbose output separate)
380
178
 
381
179
  ---
382
180
 
383
- ## How Skills Work
181
+ ## How skills work
384
182
 
385
- Skills are **automatically activated** based on your questions. Just ask naturally:
183
+ Skills are automatically activated based on your questions. Just ask naturally:
386
184
 
387
185
  ```
388
186
  "Can you create a login screen with email validation and animations?"
389
187
  ```
390
188
 
391
189
  The AI will automatically use:
392
- - `ti-expert` Architecture and controller structure
393
- - `purgetss` Styling classes and animations (if PurgeTSS detected)
394
- - `ti-howtos` Secure token storage
190
+ - `ti-expert` -> Architecture and controller structure
191
+ - `purgetss` -> Styling classes and animations (if PurgeTSS detected)
192
+ - `ti-howtos` -> Secure token storage
395
193
 
396
- **You don't need to call skills explicitly** - the AI reads skill descriptions and loads the appropriate knowledge when needed.
194
+ You do not need to call skills explicitly. The AI reads skill descriptions and loads the appropriate knowledge when needed.
397
195
 
398
- ### Project Detection
196
+ ### Project detection
399
197
 
400
- All skills now include **automatic project detection** to ensure compatibility:
198
+ All skills include automatic project detection to ensure compatibility:
401
199
 
402
- | Skill | What It Detects | How It Works |
403
- | ---------------- | --------------------- | ------------------------------------------------------------- |
404
- | **purgetss** | PurgeTSS installation | Checks for `purgetss/` folder, `config.cjs`, `utilities.tss` |
405
- | **ti-expert** | Alloy vs Classic | Checks for `app/` (Alloy) vs `Resources/` (Classic) structure |
406
- | **alloy-guides** | Alloy projects | Checks for `app/views/`, `app/controllers/` |
407
- | **alloy-howtos** | Alloy projects | Checks for `alloy.jmk`, `config.json` |
408
- | **ti-ui** | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
409
- | **ti-guides** | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
410
- | **ti-howtos** | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
200
+ | Skill | What It Detects | How It Works |
201
+ | ------------ | --------------------- | ------------------------------------------------------------- |
202
+ | purgetss | PurgeTSS installation | Checks for `purgetss/` folder, `config.cjs`, `utilities.tss` |
203
+ | ti-expert | Alloy vs Classic | Checks for `app/` (Alloy) vs `Resources/` (Classic) structure |
204
+ | alloy-guides | Alloy projects | Checks for `app/views/`, `app/controllers/` |
205
+ | alloy-howtos | Alloy projects | Checks for `alloy.jmk`, `config.json` |
206
+ | ti-ui | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
207
+ | ti-guides | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
208
+ | ti-howtos | Titanium projects | Checks for `tiapp.xml` (both Alloy & Classic) |
411
209
 
412
- **Why this matters:**
413
- - PurgeTSS suggestions are **only provided** if PurgeTSS is installed
414
- - Alloy-specific patterns are **only suggested** for Alloy projects
415
- - Classic Titanium projects won't receive inappropriate Alloy advice
210
+ Why this matters:
211
+ - PurgeTSS suggestions are only provided if PurgeTSS is installed
212
+ - Alloy-specific patterns are only suggested for Alloy projects
213
+ - Classic Titanium projects will not receive inappropriate Alloy advice
416
214
 
417
- ### Skill Hierarchy
215
+ ### Skill hierarchy
418
216
 
419
- `ti-expert` acts as the **orchestrator**, delegating to specialized skills when needed:
217
+ `ti-expert` acts as the orchestrator, delegating to specialized skills when needed:
420
218
 
421
219
  ```
422
220
  ┌─────────────────┐
@@ -445,13 +243,13 @@ All skills now include **automatic project detection** to ensure compatibility:
445
243
 
446
244
  ---
447
245
 
448
- ## Skill Details
246
+ ## Skill details
449
247
 
450
248
  ### ti-expert
451
249
 
452
- **The primary skill for Titanium Alloy development.** Start here for most tasks.
250
+ The primary skill for Titanium Alloy development. Start here for most tasks.
453
251
 
454
- **When it activates:**
252
+ When it activates:
455
253
  - Designing project structure
456
254
  - Implementing controllers, views, services
457
255
  - Choosing data strategies (Models vs Collections)
@@ -461,17 +259,17 @@ All skills now include **automatic project detection** to ensure compatibility:
461
259
  - Security patterns
462
260
  - Migrating legacy apps
463
261
 
464
- **Example prompts:**
262
+ Example prompts:
465
263
  ```
466
264
  "How should I structure a new Titanium Alloy app with authentication?"
467
265
  "Create a user service that fetches data from an API."
468
- "Whats the best pattern for navigation between screens?"
266
+ "What's the best pattern for navigation between screens?"
469
267
  "Prevent memory leaks in my controllers."
470
268
  "Migrate classic Titanium code to modern Alloy patterns."
471
- "Whats a clean way to organize services in an Alloy app?"
269
+ "What's a clean way to organize services in an Alloy app?"
472
270
  ```
473
271
 
474
- **Key features:**
272
+ Key features:
475
273
  - Quick decision matrix for common questions
476
274
  - 18 reference guides for deep dives
477
275
  - Delegates to specialized skills when needed
@@ -480,9 +278,9 @@ All skills now include **automatic project detection** to ensure compatibility:
480
278
 
481
279
  ### purgetss
482
280
 
483
- **Utility-first styling toolkit for Titanium/Alloy.**
281
+ Utility-first styling toolkit for Titanium/Alloy.
484
282
 
485
- **When it activates:**
283
+ When it activates:
486
284
  - Setting up PurgeTSS in a project
487
285
  - Complex layouts (Grid system)
488
286
  - Declarative animations (`<Animation>` component)
@@ -491,30 +289,30 @@ All skills now include **automatic project detection** to ensure compatibility:
491
289
  - Platform-specific styling
492
290
  - config.cjs configuration
493
291
 
494
- **Example prompts:**
292
+ Example prompts:
495
293
  ```
496
294
  "How do I set up PurgeTSS in my existing Alloy project?"
497
- "Create a responsive 12column grid layout."
498
- "Add a fadein animation when my view appears."
295
+ "Create a responsive 12-column grid layout."
296
+ "Add a fade-in animation when my view appears."
499
297
  "How do I configure custom colors in config.cjs?"
500
298
  "How do I use Font Awesome 7 icons?"
501
299
  "Style this button differently on iOS vs Android."
502
300
  ```
503
301
 
504
- **Critical rules:**
505
- - **Platform-specific properties REQUIRE modifiers** (e.g., `[platform=ios]`) to prevent cross-platform build failures
506
- - NO flexbox (`flex-row`, `justify-between`) use `horizontal`/`vertical`
507
- - NO `w-full` use `w-screen`
508
- - NO `p-*` on Views use `m-*` on children
509
- - Arbitrary values use parentheses: `w-(100px)`, NOT `w-[100px]`
302
+ Rules:
303
+ - Platform-specific properties require modifiers (e.g., `[platform=ios]`) to prevent cross-platform build failures
304
+ - No flexbox (`flex-row`, `justify-between`) -> use `horizontal`/`vertical`
305
+ - No `w-full` -> use `w-screen`
306
+ - No `p-*` on Views -> use `m-*` on children
307
+ - Arbitrary values use parentheses: `w-(100px)`, not `w-[100px]`
510
308
 
511
309
  ---
512
310
 
513
311
  ### ti-ui
514
312
 
515
- **UI/UX expert for layouts and platform components.**
313
+ UI/UX expert for layouts and platform components.
516
314
 
517
- **When it activates:**
315
+ When it activates:
518
316
  - Layout systems (composite, vertical, horizontal)
519
317
  - ListView/TableView optimization
520
318
  - Event handling and bubbling
@@ -525,18 +323,18 @@ All skills now include **automatic project detection** to ensure compatibility:
525
323
  - Android Action Bar / iOS Navigation patterns
526
324
  - Accessibility (VoiceOver, TalkBack)
527
325
 
528
- **Example prompts:**
326
+ Example prompts:
529
327
  ```
530
- "How do I create a highperformance ListView with custom templates?"
328
+ "How do I create a high-performance ListView with custom templates?"
531
329
  "Handle swipe gestures on table rows."
532
330
  "Set up app icons for all iOS and Android densities."
533
- "Implement pulltorefresh on a ScrollView."
331
+ "Implement pull-to-refresh on a ScrollView."
534
332
  "How do I make my app accessible for VoiceOver users?"
535
333
  "How do I configure the Android Action Bar with custom menu items?"
536
334
  ```
537
335
 
538
- **Key rules:**
539
- - NO `Ti.UI.SIZE` in ListView items (causes jerky scrolling)
336
+ Key rules:
337
+ - No `Ti.UI.SIZE` in ListView items (causes jerky scrolling)
540
338
  - Prefer ListView over TableView for large datasets
541
339
  - Use `dp` units for cross-platform consistency
542
340
  - Remove global listeners on pause
@@ -545,9 +343,9 @@ All skills now include **automatic project detection** to ensure compatibility:
545
343
 
546
344
  ### ti-howtos
547
345
 
548
- **Native feature integration expert.**
346
+ Native feature integration expert.
549
347
 
550
- **When it activates:**
348
+ When it activates:
551
349
  - Location services and Maps
552
350
  - Push notifications (APNs/FCM)
553
351
  - Local notifications
@@ -561,9 +359,9 @@ All skills now include **automatic project detection** to ensure compatibility:
561
359
  - iOS Background Services, iCloud, Keychain
562
360
  - Core Motion, WatchKit
563
361
 
564
- **Example prompts:**
362
+ Example prompts:
565
363
  ```
566
- "How do I implement batteryefficient GPS tracking?"
364
+ "How do I implement battery-efficient GPS tracking?"
567
365
  "How do I set up push notifications for iOS and Android?"
568
366
  "How do I capture and resize photos from the camera?"
569
367
  "Download files with a progress indicator."
@@ -573,7 +371,7 @@ All skills now include **automatic project detection** to ensure compatibility:
573
371
  "Handle background location updates on iOS."
574
372
  ```
575
373
 
576
- **Key rules:**
374
+ Key rules:
577
375
  - Always handle both `onload` and `onerror` for HTTPClient
578
376
  - Always close database handles and result sets
579
377
  - Use `imageAsResized` to avoid memory exhaustion
@@ -583,9 +381,9 @@ All skills now include **automatic project detection** to ensure compatibility:
583
381
 
584
382
  ### ti-guides
585
383
 
586
- **SDK fundamentals and advanced configuration.**
384
+ SDK fundamentals and advanced configuration.
587
385
 
588
- **When it activates:**
386
+ When it activates:
589
387
  - Hyperloop native access
590
388
  - Native module development
591
389
  - App distribution (Play Store, App Store)
@@ -595,7 +393,7 @@ All skills now include **automatic project detection** to ensure compatibility:
595
393
  - CommonJS module patterns
596
394
  - Coding best practices
597
395
 
598
- **Example prompts:**
396
+ Example prompts:
599
397
  ```
600
398
  "How do I access native iOS APIs using Hyperloop?"
601
399
  "Configure tiapp.xml for a production build."
@@ -609,9 +407,9 @@ All skills now include **automatic project detection** to ensure compatibility:
609
407
 
610
408
  ### alloy-guides
611
409
 
612
- **Complete Alloy MVC framework reference.**
410
+ Complete Alloy MVC framework reference.
613
411
 
614
- **When it activates:**
412
+ When it activates:
615
413
  - MVC architecture concepts
616
414
  - Backbone.js models and collections
617
415
  - Data binding patterns
@@ -621,13 +419,13 @@ All skills now include **automatic project detection** to ensure compatibility:
621
419
  - Sync adapters (sql, properties)
622
420
  - Migrations
623
421
 
624
- **Example prompts:**
422
+ Example prompts:
625
423
  ```
626
424
  "Explain how Alloy data binding works."
627
425
  "How do I create a model with the SQLite adapter?"
628
426
  "Bind a collection to a TableView."
629
427
  "How do I build a reusable widget?"
630
- "Show the TSS syntax for platformspecific styles."
428
+ "Show the TSS syntax for platform-specific styles."
631
429
  "How does the Alloy compilation process work?"
632
430
  ```
633
431
 
@@ -635,9 +433,9 @@ All skills now include **automatic project detection** to ensure compatibility:
635
433
 
636
434
  ### alloy-howtos
637
435
 
638
- **Alloy CLI, configuration, and debugging.**
436
+ Alloy CLI, configuration, and debugging.
639
437
 
640
- **When it activates:**
438
+ When it activates:
641
439
  - Alloy CLI commands (new, generate, compile)
642
440
  - Configuration files (alloy.jmk, config.json)
643
441
  - Debugging compilation errors
@@ -646,32 +444,34 @@ All skills now include **automatic project detection** to ensure compatibility:
646
444
  - Best practices and naming conventions
647
445
  - Backbone.Events patterns
648
446
 
649
- **Example prompts:**
447
+ Example prompts:
650
448
  ```
651
449
  "How do I generate a new model with the CLI?"
652
450
  "Configure alloy.jmk build hooks."
653
- "How do I fix No app.js found”?"
451
+ "How do I fix "No app.js found"?"
654
452
  "Create conditional views based on user state."
655
453
  "How do I build a custom XML tag without widgets?"
656
454
  "Set up Backbone.Events for global communication."
657
455
  ```
658
456
 
659
- **Key rules:**
457
+ Key rules:
660
458
  - Use Backbone.Events instead of Ti.App.fireEvent
661
459
  - Never use double underscore prefixes (`__foo`)
662
460
  - Access config at runtime with `Alloy.CFG.yourKey`
663
461
 
664
462
  ---
665
463
 
666
- ## Usage Examples
464
+ ## Usage examples and best practices
465
+
466
+ ### Example prompts
667
467
 
668
- ### Starting a New Project
468
+ Starting a new project:
669
469
  ```
670
470
  "I'm starting a new Titanium Alloy app for a food delivery service.
671
471
  Can you help me set up the project structure?"
672
472
  ```
673
473
 
674
- ### UI Development
474
+ UI development:
675
475
  ```
676
476
  "Can you create a product listing screen with:
677
477
  - Pull-to-refresh
@@ -680,7 +480,7 @@ Can you help me set up the project structure?"
680
480
  - Swipe-to-delete"
681
481
  ```
682
482
 
683
- ### API Integration
483
+ API integration:
684
484
  ```
685
485
  "Can you build a complete authentication flow with:
686
486
  - Login/Register screens
@@ -689,63 +489,201 @@ Can you help me set up the project structure?"
689
489
  - Auto-refresh tokens"
690
490
  ```
691
491
 
692
- ### Performance Optimization
492
+ Performance optimization:
693
493
  ```
694
- "My app is slow the ListView scrolls poorly and memory usage is high. How do I optimize it?"
494
+ "My app is slow - the ListView scrolls poorly and memory usage is high. How do I optimize it?"
695
495
  ```
696
496
 
697
- ### Migration
497
+ Migration:
698
498
  ```
699
499
  "I have a legacy Titanium classic app from 2015. Can you help me migrate it to modern Alloy?"
700
500
  ```
701
501
 
702
- ### Platform-Specific Features
502
+ Platform-specific features:
703
503
  ```
704
- "How do I implement Apple SignIn for iOS and Google SignIn for Android?"
504
+ "How do I implement Apple Sign-In for iOS and Google Sign-In for Android?"
705
505
  ```
706
506
 
707
- ### Debugging
507
+ Debugging:
708
508
  ```
709
- "How do I fix Alloy is not defined in my lib file?"
509
+ "How do I fix "Alloy is not defined" in my lib file?"
710
510
  ```
711
511
 
712
- ### Codebase Analysis (Using Agent)
512
+ Codebase analysis (using agent):
713
513
  ```
714
514
  "Use the ti-pro agent to analyze this project and:
715
515
  - review the overall architecture
716
516
  - identify memory leak patterns
717
- - check for common antipatterns
517
+ - check for common anti-patterns
718
518
  - suggest improvements"
719
519
  ```
720
520
 
521
+ ### Tips for better results
522
+
523
+ 1. Be specific. Instead of "Make a list", try "Can you create a ListView with user avatars, names, and swipe actions?"
524
+ 2. Provide context. Instead of "How do I fix this error?", try "I'm getting this error when compiling: [error message]. Here's my code: [code]"
525
+ 3. Ask for architecture first. For complex features, start with "How should I architect a real-time chat feature?" then follow up with implementation details.
526
+ 4. Mention constraints. "Build a settings screen. Must work offline and sync when connected."
527
+ 5. Reference existing code. "Here's my current controller. How can I improve memory management?"
528
+
529
+ More examples: See [Example Prompts](EXAMPLE-PROMPTS.md) for detailed prompts that test each skill's capabilities.
530
+
721
531
  ---
722
532
 
723
- ## Best Practices
533
+ ## CLI reference
534
+
535
+ ### titools install
536
+
537
+ Installs Titanium skills, agents, and platform symlinks.
538
+
539
+ ```bash
540
+ titools install [options]
541
+ ```
542
+
543
+ Options:
544
+ | Option | Description |
545
+ | --------------- | ------------------------------------------------------------------- |
546
+ | `-l, --local` | Install skills locally in the current project (`./.agents/skills/`) |
547
+ | `-a, --all` | Install to all detected platforms without prompting |
548
+ | `--path <path>` | Install to a custom path (skips symlink setup) |
549
+
550
+ Behavior depends on where you run it:
551
+
552
+ | Context | Behavior |
553
+ | -------------------------- | --------------------------------------------------------------------- |
554
+ | Outside a Titanium project | Installs skills globally to `~/.agents/skills/` |
555
+ | Inside a Titanium project | Prompts you to choose: Global or Local installation |
556
+ | With `--local` flag | Installs skills locally to `./.agents/skills/` in the current project |
557
+
558
+ What it does:
559
+ - Installs all 7 titanium-related skills (global or local depending on context)
560
+ - Installs ti-pro agent for Claude Code
561
+ - Detects installed AI platforms and lets you choose which to link
562
+ - Creates symlinks from platform directories to central skills
563
+ - Cleans up legacy artifacts (`alloy-expert` skill, `ti-researcher` agent)
564
+ - If run inside a Titanium project, prompts to run `titools sync` afterward
565
+ - Warns Gemini users if local skills override existing global Gemini skills
566
+
567
+ ### titools sync
568
+
569
+ Generates a compressed knowledge index inside your project's instruction files (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`).
570
+
571
+ Important: This command only works inside a Titanium project (requires `tiapp.xml`). The knowledge index is project-specific. It detects your SDK version and points to the installed skill references.
572
+
573
+ ```bash
574
+ titools sync [path] [options]
575
+ ```
576
+
577
+ Arguments:
578
+ | Argument | Description |
579
+ | -------- | -------------------------------------------- |
580
+ | `[path]` | Project path (defaults to current directory) |
581
+
582
+ Options:
583
+ | Option | Description |
584
+ | --------------- | ------------------------------------------ |
585
+ | `-f, --force` | Overwrite existing files without prompting |
586
+ | `-v, --verbose` | Show detailed diagnostics |
587
+
588
+ What it does:
589
+ - Verifies you're inside a Titanium project (`tiapp.xml`)
590
+ - Detects Titanium SDK version from `tiapp.xml`
591
+ - Prompts you to select which files to sync: `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`
592
+ - Inserts or updates a compressed knowledge index block in selected files
593
+ - Removes knowledge blocks from unselected files
594
+ - Creates files if they don't exist
595
+
596
+ ### titools update
597
+
598
+ Updates installed skills and agents to the latest version.
599
+
600
+ ```bash
601
+ titools update [options]
602
+ ```
603
+
604
+ Options:
605
+ | Option | Description |
606
+ | ------------- | ------------------------------------------ |
607
+ | `-l, --local` | Update local skills in the current project |
608
+
609
+ Behavior depends on where you run it:
610
+
611
+ | Context | Behavior |
612
+ | --------------------------------------------------------------- | ----------------------------------------------------------- |
613
+ | Outside a Titanium project | Updates global skills in `~/.agents/skills/` (if installed) |
614
+ | Inside a Titanium project (local skills only) | Updates local skills automatically |
615
+ | Inside a Titanium project (both local and global) | Prompts you to choose: Global or Local |
616
+ | Inside a Titanium project (with existing knowledge index files) | Also refreshes `AGENTS.md`/`CLAUDE.md`/`GEMINI.md` |
617
+
618
+ What it does:
619
+ - Checks GitHub for the latest version
620
+ - Downloads and installs updated skills and agents
621
+ - Updates platform symlinks for all detected platforms
622
+ - Cleans up legacy artifacts (`alloy-expert` skill, `ti-researcher` agent)
623
+ - Auto-syncs knowledge index files if they exist in the current project
624
+
625
+ Note: This updates knowledge packages and agents, not the CLI binary itself. To update the CLI, use `npm update -g @maccesar/titools`.
626
+
627
+ ### titools remove
628
+
629
+ Removes skills, agents, symlinks, and knowledge index blocks.
630
+
631
+ ```bash
632
+ titools remove [options]
633
+ ```
634
+
635
+ Options:
636
+ | Option | Description |
637
+ | ------------- | -------------------------------------------- |
638
+ | `-l, --local` | Remove local skills from the current project |
639
+
640
+ What it does:
641
+ - Detects all installed components (skills, agents, symlinks, knowledge blocks)
642
+ - Prompts you to select what to remove:
643
+ - ti-pro agent for Claude Code
644
+ - Knowledge index blocks from instruction files (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`)
645
+ - Skills from global (`~/.agents/skills/`) or project directory
646
+ - Platform symlinks from global or project directory
647
+ - Removes both current and legacy artifacts
648
+
649
+ ### Verify installation
724
650
 
725
- ### 1. Be Specific
726
- Instead of: "Make a list"
727
- Try: "Can you create a ListView with user avatars, names, and swipe actions?"
651
+ Check titools version:
652
+ ```bash
653
+ titools --version
654
+ ```
728
655
 
729
- ### 2. Provide Context
730
- Instead of: "How do I fix this error?"
731
- Try: "I'm getting this error when compiling: [error message]. Here's my code: [code]"
656
+ Check central location (global install):
657
+ ```bash
658
+ ls ~/.agents/skills/
659
+ # Should show: ti-expert, purgetss, ti-ui, ti-howtos, ti-guides, alloy-guides, alloy-howtos
660
+ ```
732
661
 
733
- ### 3. Ask for Architecture First
734
- For complex features, start with:
735
- "How should I architect a real-time chat feature?"
736
- Then follow up with implementation details.
662
+ Claude Code (skills):
663
+ ```bash
664
+ ls -la ~/.claude/skills/
665
+ # Should show symlinks pointing to ~/.agents/skills/
666
+ ```
737
667
 
738
- ### 4. Mention Constraints
739
- "Build a settings screen. Must work offline and sync when connected."
668
+ Claude Code (agents):
669
+ ```bash
670
+ ls -la ~/.claude/agents/
671
+ # Should show: ti-pro.md
672
+ ```
740
673
 
741
- ### 5. Reference Existing Code
742
- "Here's my current controller. How can I improve memory management?"
674
+ Gemini CLI:
675
+ ```bash
676
+ gemini skills list
677
+ ```
743
678
 
744
- > **More examples:** See [Example Prompts](EXAMPLE-PROMPTS.md) for detailed prompts that test each skill's capabilities.
679
+ Codex CLI:
680
+ ```bash
681
+ # Type /skills in Codex or use $ to mention a skill
682
+ ```
745
683
 
746
684
  ---
747
685
 
748
- ## Skill Contents Summary
686
+ ## Skill contents summary
749
687
 
750
688
  | Skill | SKILL.md | References |
751
689
  | ------------ | ----------------------------- | ----------------------------------------------------- |
@@ -761,7 +699,7 @@ Then follow up with implementation details.
761
699
 
762
700
  ## Troubleshooting
763
701
 
764
- ### Skill Not Activating?
702
+ ### Skill not activating?
765
703
 
766
704
  If the AI doesn't seem to use Titanium knowledge:
767
705
  1. Mention "Titanium" or "Alloy" explicitly in your prompt
@@ -769,28 +707,28 @@ If the AI doesn't seem to use Titanium knowledge:
769
707
  3. Reference the technology stack
770
708
  4. Try explicit invocation: "Use the purgetss skill for styling questions"
771
709
 
772
- ### Getting Wrong Suggestions?
710
+ ### Getting wrong suggestions?
773
711
 
774
- If the AI suggests patterns you don't use (e.g., PurgeTSS when you're not using it):
712
+ If the AI suggests patterns you don't use (for example, PurgeTSS when you're not using it):
775
713
  1. The skill may not have detected your project type correctly
776
714
  2. Explicitly mention your stack: "I'm using Classic Titanium, not Alloy"
777
715
  3. Be more specific about what you're building
778
716
 
779
- ### PurgeTSS Not Detected?
717
+ ### PurgeTSS not detected?
780
718
 
781
719
  If the purgetss skill doesn't activate for your PurgeTSS project:
782
720
  1. Verify `purgetss/` folder exists in project root
783
721
  2. Check that `purgetss/config.cjs` exists
784
722
  3. Mention "PurgeTSS" explicitly in your prompt
785
723
 
786
- ### Wrong Advice?
724
+ ### Wrong advice?
787
725
 
788
726
  If the AI suggests incorrect patterns (like flexbox):
789
727
  1. Remind it you're using PurgeTSS
790
728
  2. Reference the correct pattern from memory
791
729
  3. Ask to check the PurgeTSS rules
792
730
 
793
- ### Need More Detail?
731
+ ### Need more detail?
794
732
 
795
733
  Ask the AI to:
796
734
  ```
@@ -832,8 +770,7 @@ npm uninstall -g @maccesar/titools
832
770
  titools remove
833
771
  ```
834
772
 
835
- **Note:** `titools remove` can remove the knowledge index blocks from your project files, but it does not delete the files themselves.
836
-
773
+ Note: `titools remove` can remove the knowledge index blocks from your project files, but it does not delete the files themselves.
837
774
 
838
775
  ---
839
776
 
@@ -852,9 +789,9 @@ titools remove
852
789
 
853
790
  ---
854
791
 
855
- ## Legacy Installation (Not Recommended)
792
+ ## Legacy installation (not recommended)
856
793
 
857
- The bash installer is maintained for backward compatibility but **NPM installation is strongly recommended**.
794
+ The bash installer is maintained for backward compatibility but NPM installation is recommended.
858
795
 
859
796
  ```bash
860
797
  curl -fsSL https://raw.githubusercontent.com/macCesar/titools/main/install.sh | bash
@@ -866,7 +803,7 @@ Use this only if you cannot use NPM for any reason.
866
803
 
867
804
  ## Credits
868
805
 
869
- Created by **César Estrada** ([@macCesar](https://github.com/macCesar)), creator of [PurgeTSS](https://github.com/macCesar/purgeTSS).
806
+ Created by César Estrada ([@macCesar](https://github.com/macCesar)), creator of [PurgeTSS](https://github.com/macCesar/purgeTSS).
870
807
 
871
808
  ## License
872
809