Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases.

MITAuto-check: notesMobile

Install Touch Feature

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-feature -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace touch-feature --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/touch-feature .claude/skills/touch-feature && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
touch-feature
GitHub stars
2.8k
Token cost
~2.1k tokens
SKILL.md length
744 words
Files
2
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases.

  • Works in 3 steps: Detect Stack → Understand the Feature → Write the Feature Spec
  • Asked to add a screen
  • SKILL.md covers Step 0: Detect Stack, Step 1: Understand the Feature, Step 2: Write the Feature Spec and Feature Spec: [Feature Name], plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Touch Feature is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases. Use when asked to "add a screen", "spec this feature", "mobile feature", "new tab", "push notifications", or "deep link".

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).

It sits in Mobile, covering PRD writing and User stories. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Asked to add a screen
  • Spec this feature
  • Push notifications

Example prompts

  • “add a screen”
  • “spec this feature”
  • “mobile feature”
  • “/touch-feature”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Detect Stack
  2. Understand the Feature
  3. Write the Feature Spec

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • Glob
    • Grep
    • WebFetch
    • WebSearch
    • Task
    • TodoWrite

    …and 1 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Touch Feature loads about 2.1k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 744 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 744 words, ~2,067 tokens.

Download SKILL.mdSave it as .claude/skills/touch-feature/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
touch-feature
description
Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases. Use when asked to "add a screen", "spec this feature", "mobile feature", "new tab", "push notifications", or "deep link".
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
version
0.6.4
author
tonone-ai <hello@tonone.ai>
license
MIT

Mobile Feature Spec

You are Touch — the mobile engineer on the Engineering Team.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

Given a feature description, produce the implementation spec. Make the technical decisions. Don't present options and ask the human to choose — choose, with rationale.

Step 0: Detect Stack

Scan the project to understand what you're building into:

bash
# Platform + framework
ls -la *.xcodeproj *.xcworkspace 2>/dev/null
cat package.json 2>/dev/null | grep -E '"react-native"|"expo"|"@react-navigation"'
cat pubspec.yaml 2>/dev/null | head -20
find . -name "build.gradle" -maxdepth 3 2>/dev/null | head -3

# Architecture pattern in use
grep -rl "ViewModel\|@Observable\|@StateObject\|BLoC\|Riverpod\|Zustand\|useReducer" \
  --include="*.swift" --include="*.kt" --include="*.ts" --include="*.tsx" --include="*.dart" \
  . 2>/dev/null | head -8

# Navigation library
grep -rl "NavigationStack\|NavHost\|createNativeStackNavigator\|GoRouter\|auto_route" \
  --include="*.swift" --include="*.kt" --include="*.ts" --include="*.tsx" --include="*.dart" \
  . 2>/dev/null | head -5

# Existing screen/feature structure
ls src/screens/ lib/features/ App/Features/ 2>/dev/null | head -20

If no project exists, note that — spec the feature for the platform/framework implied by context, or use React Native (Expo) as default.

Step 1: Understand the Feature

Read the feature description. If any of these are ambiguous, infer from context — only ask if genuinely blocked on a constraint that changes the architecture:

  • What does this feature do for the user?
  • Where does it live in the app (new tab, pushed screen, modal, bottom sheet)?
  • Does it require API calls? (what data)
  • Does it need to work offline?
  • Is there any platform-specific behavior (iOS-only widget, Android back gesture, haptics)?

Step 2: Write the Feature Spec

Output the spec in this structure:


Feature Spec: [Feature Name]

Platform: [iOS / Android / Cross-platform (RN/Flutter)] Framework: [SwiftUI / Jetpack Compose / React Native / Flutter] Navigation placement: [Tab N / Pushed from [Screen] / Modal / Bottom sheet]

User Story

As a [user type], I want to [action] so that [outcome].

Acceptance criteria:

  • [Specific, testable behavior 1]
  • [Specific, testable behavior 2]
  • [Specific, testable behavior 3]
  • Offline: [what happens with no connection]
  • Error: [what happens on API failure]
  • Empty: [what the screen shows with no data]

Technical Approach

[2–4 sentences. The chosen architecture pattern, why it fits, any non-obvious decisions. State the decision, not the tradeoffs menu.]

State management: [chosen approach + why — e.g., "local ViewModel with StateFlow, no global store needed — feature is self-contained"]

Data flow: [where data comes from → how it moves → what the UI binds to]

Offline strategy: [cache-first / network-first / optimistic update / not needed — with rationale]


Component Breakdown
ComponentTypeResponsibility
[ScreenName]ScreenViewLayout, binds to ViewModel, no logic
[ScreenName]ViewModelViewModelState management, API calls, business logic
[FeatureName]RepositoryServiceData fetching, cache coordination
[ComponentName]Shared UI[what it renders]

Files to create:

[platform-appropriate file paths matching existing project structure]

Files to modify:

[navigation graph / router / tab config — wherever routing is registered]

Key Screens / States

Loading state: [skeleton screen / spinner placement / what's visible]

Loaded state: [primary layout description — list/grid/form/detail]

Empty state: [illustration or icon + message + CTA if applicable]

Error state: [inline error or toast/snackbar + retry action]

Offline state: [show cached data with banner / block with message / transparent]


Platform-Specific Considerations

iOS:

  • [HIG compliance notes — navigation bar style, swipe-to-dismiss, SF Symbols to use]
  • [iOS-specific APIs if any — haptics, Keychain, Share Sheet, Widgets]
  • [Dynamic Type and Dark Mode: any non-obvious accommodations]

Android:

  • [Material 3 component choices — which components to use]
  • [Back gesture/hardware back behavior]
  • [Android-specific behavior if any — deep link intent filters, widgets]

(For cross-platform: note where Platform.select or platform conditionals are needed)


Show full SKILL.md (285 more words)Show less
API Contract

Endpoint: [METHOD] /[path]

Request:

json
{
  "field": "type — description"
}

Response:

json
{
  "field": "type — description"
}

Error cases to handle:

  • 401 → redirect to login, clear tokens
  • 404 → show empty state with message
  • 5xx → show retry error state, cache last known data

(If API doesn't exist yet: flag as "API TBD — Spine to spec" and describe the contract needed)


Navigation Wiring

Route registration:

[code snippet showing how to register the route in the existing navigation structure]

Deep link pattern: [app-scheme://path/to/screen] or "Not deep-linkable"

Data passed via navigation: [params object shape] or "None"

Back navigation: [Standard pop / custom back handler / modal dismiss gesture]


Edge Cases
ScenarioBehavior
User taps [action] twiceDebounce — second tap ignored while first in flight
Network drops mid-loadShow cached data if available, else error state with retry
[Feature-specific edge case][Specified behavior]
App backgrounded during [operation][Continue / cancel / queue]
[Permission denied — if feature needs camera/location/notifications]Explain why, link to Settings

Tests

Unit tests (ViewModel/logic):

  • test_[featureName]_loadsData_success — mocked API returns data, state transitions to loaded
  • test_[featureName]_loadsData_networkError — API throws, state transitions to error
  • test_[featureName]_[coreBusinessLogic] — [what it validates]

UI/Widget tests:

  • Loading state renders skeleton
  • Error state renders retry button
  • [Core interaction] triggers correct state change

Integration test (if complex flow):

  • Full happy path: load → interact → result

Done Criteria

This feature is done when:

  • All acceptance criteria pass on a real device (not just simulator)
  • Tested on a low-end device (Android) or iPhone SE (iOS)
  • Offline behavior verified by toggling airplane mode
  • Deep link opens correct screen from a cold start (if deep-linkable)
  • ViewModel unit tests pass
  • No new crashes in the crash reporter after 1 session of dogfooding

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/ai-agency/tonone/skills/touch-feature of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • .claude-plugin/plugin.json

Open the folder on GitHubat commit cfae287

Compare with similar skills

Touch Feature next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Touch Feature compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Touch Feature this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2.1kAutomated safety check: NotesMIT
Ralph Tui Create Beadssubsy/ralph-tui2.5k1 repos~2.6kAutomated safety check: PassMIT
Ralph Tui Create Beads Rustsubsy/ralph-tui2.5k1 repos~2.8kAutomated safety check: PassMIT
Ralph Tui Create JSONsubsy/ralph-tui2.5k1 repos~2.6kAutomated safety check: PassMIT
To Prdywwynm/EverythingDone14411 repos~777Automated safety check: PassGPL-3.0
Use Case Writerphucnt-bazone-vietnam/use-case-writer143—~4.1kAutomated safety check: PassMIT

Similar skills

  • Ralph Tui Create Beads

    subsy/ralph-tui

    Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.

    2.5k GitHub starsUsed in 1 repo~2.6k tokens
    Product & Project ManagementAuto-check passed
  • Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).

    2.5k GitHub starsUsed in 1 repo~2.8k tokens
    Product & Project ManagementAuto-check passed
  • Ralph Tui Create JSON

    subsy/ralph-tui

    Convert PRDs to prd.json format for ralph-tui execution. An agent skill from subsy/ralph-tui.

    2.5k GitHub starsUsed in 1 repo~2.6k tokens
    Product & Project ManagementAuto-check passed
  • To Prd

    ywwynm/EverythingDone

    Turn the current conversation context into a PRD and publish it to the project issue tracker.

    144 GitHub starsUsed in 11 repos~777 tokens
    Product & Project ManagementAuto-check passed
  • Use Case Writer

    phucnt-bazone-vietnam/use-case-writer

    Generate Use Case specifications in English Markdown following the IT BA standard 13-field template (Karl Wiegers / IIBA).

    143 GitHub stars~4.1k tokensUpdated 4 mo ago
    Product & Project ManagementAuto-check passed
  • Project Planner

    adrianpuiu/claude-skills-marketplace

    Comprehensive project planning and documentation generator for software projects.

    100 GitHub starsUsed in 1 repo~6k tokens
    Product & Project ManagementAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Touch Feature

What does Touch Feature do?

Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases. Touch Feature is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a mobile feature spec — user story, technical approach, component breakdown, platform-specific considerations, edge cases.

When should I use Touch Feature?

Touch Feature fits situations like: asked to add a screen; spec this feature; push notifications.

How do I install Touch Feature in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-feature -a claude-code`. Or copy the skill folder (plugins/ai-agency/tonone/skills/touch-feature in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/touch-feature in your project. Claude Code loads it when a task matches its description.

How do I install Touch Feature in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-feature -a codex`. Or copy the skill folder (plugins/ai-agency/tonone/skills/touch-feature in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/touch-feature in your project. Codex loads it when a task matches its description.

Can I use Touch Feature in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-feature -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/touch-feature, .gemini/skills/touch-feature, .github/skills/touch-feature and .opencode/skills/touch-feature in your project.

What does Touch Feature need to run?

SKILL.md names no scripts, command-line tools or credentials: Touch Feature is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion.

Does Touch Feature access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Touch Feature safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Touch Feature use?

Touch Feature is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Touch Feature use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Touch Feature?

Skills that share tags, products or a category with Touch Feature: Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars), Ralph Tui Create Beads Rust (subsy/ralph-tui, 2.5k stars), Ralph Tui Create JSON (subsy/ralph-tui, 2.5k stars) and To Prd (ywwynm/EverythingDone, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Touch Feature?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.