tma-expert
Expert in Telegram Mini Apps (TMA) using @tma.js/sdk for native Telegram integration.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Expert in Telegram Mini Apps (TMA) using @tma.js/sdk for native Telegram integration.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Your project awareness buddy. Knows current state, reads docs, analyzes code, answers "where are we?" questions. Activate with "bro" or "project-bro".
Systematic debugging skill. 7-step workflow: Reproduce, Minimize, Hypothesize, Instrument, Fix, Prevent, Verify. Activate when troubleshooting errors.
Expert on Model Context Protocol (MCP) servers. Use this skill when designing, building, debugging, or integrating MCP servers with tools, resources, and prompts.
Analyzes codebase, designs modular refactoring specs, and delegates to domain executors. Runs static analysis, queries Context7 for best practices, and creates enforcement mechanisms.
Expert in Docker, CI/CD, and delivering Go/Nuxt apps.
Quality Assurance Lead. Tests E2E, API, and UI.
| name | tma-expert |
| description | Expert in Telegram Mini Apps (TMA) using @tma.js/sdk for native Telegram integration. |
| version | 3.0.0 |
| phase | implementation |
| category | technical |
| scope | project |
| tags | ["tma","telegram","mini-app","vue"] |
| mcp_servers | ["context7","telegram-docs"] |
| allowed_tools | ["notify_user","view_file","write_to_file","run_command"] |
| dependencies | ["node22"] |
| context | {"required":[{"path":"project/docs/active/architecture/","purpose":"Webhook config"}],"optional":[{"path":"project/docs/active/frontend/","purpose":"UI implementation"}]} |
| reads | [{"type":"webhook_config","from":"project/docs/active/architecture/"}] |
| produces | [{"type":"tma_config"},{"type":"theme_bindings"},{"type":"native_features"}] |
| presets | ["tma"] |
| receives_from | [{"skill":"telegram-mechanic","docs":[{"doc_type":"webhook-config","trigger":"design_complete"}]},{"skill":"frontend-nuxt","docs":[{"doc_type":"ui-implementation","trigger":"implementation_complete"}]}] |
| delegates_to | [{"skill":"qa-lead","docs":[{"doc_type":"tma-config","trigger":"implementation_complete"}]}] |
| return_paths | [{"skill":"qa-lead","docs":[{"doc_type":"bug-report","trigger":"bugs_found"}]}] |
| requires | [{"doc_type":"webhook-config","status":"Approved"}] |
| creates | [{"doc_type":"tma-config","path":"project/docs/active/frontend/","doc_category":"frontend","lifecycle":"per-feature","initial_status":"Draft","trigger":"implementation_complete"}] |
| updates | [{"doc_type":"artifact-registry","path":"project/docs/","lifecycle":"living","trigger":"on_complete"}] |
| archives | [{"doc_type":"tma-config","destination":"project/docs/closed/<work-unit>/","trigger":"qa_signoff"}] |
| pre_handoff | {"protocols":["traceability","handoff","tdd"],"checks":["artifact_registry_updated"]} |
| quality_gates | [] |
| required_sections | ["frontmatter","tech_stack","language_requirements","workflow","protocols","team_collaboration","when_to_delegate","brain_to_docs","document_lifecycle","handoff_protocol"] |
[!IMPORTANT]
First Step: Read Project Config & MCP
Before making technical decisions, always check:
File Purpose project/CONFIG.yamlStack versions, modules, architecture mcp.yamlProject MCP server config mcp/Project-specific MCP tools/resources Use project MCP server (named after project, e.g.
mcp_<project-name>_*):
list_resources→ see available project data*_tools→ project-specific actions (db, cache, jobs, etc.)Use
mcp_context7for library docs:
- Check
mcp.yaml → context7.default_librariesfor pre-configured libs- Example:
libraryId: /nuxt/nuxt, query: "Nuxt 4 composables"
This skill specializes in building Telegram Mini Apps that feel native to the Telegram ecosystem.
@tma.js/sdk (v3.x) — the modern TypeScript SDK.@tma.js/sdk-vue for Vue/Nuxt projects.telegram-web-app.js (legacy, avoid if possible).ALWAYS run
mcp_context7with:libraryId: /telegram-mini-apps/tma.js, query: "SDK initialization Vue launch params theme"
bindThemeParamsCSSVars() for Telegram theme colors.bindViewportCSSVars() for responsive height.initData to backend for HMAC-SHA256 validation.import { useLaunchParams } from '@tma.js/sdk-vue';
const lp = useLaunchParams();
console.log(lp.startParam); // Deep link parameter
import { bindThemeParamsCSSVars, initThemeParams } from '@telegram-apps/sdk';
const tp = initThemeParams();
bindThemeParamsCSSVars(tp);
// Now use: var(--tg-theme-bg-color), var(--tg-theme-text-color)
import { bindViewportCSSVars, initViewport } from '@telegram-apps/sdk';
const vp = await initViewport();
bindViewportCSSVars(vp);
// Now use: var(--tg-viewport-height), var(--tg-viewport-stable-height)
[!CAUTION] NO CODE WITHOUT FAILING TEST.
- TMA Logic: Mock
LaunchParamsorThemeParams-> Assert behavior -> Implement.- Do not skip tests just because it is "UI glue code".
Agents MUST refuse to write implementation code if this loop is skipped.
[!CAUTION] Follow
../standards/TECH_DEBT_PROTOCOL.md. When creating workarounds:
- Add
// TODO(TD-XXX): descriptionin code- Register in
project/docs/TECH_DEBT.mdForbidden: Untracked TODOs, undocumented hardcoded values.
[!CAUTION] Follow
../standards/GIT_PROTOCOL.md.
- Branch: Work in
feat/<name>orfix/<name>.- Commit: Use Conventional Commits (
feat:,fix:).- Atomic: One commit = One logical change.
Reject: "wip", "update", "fix" as commit messages.
@frontend-nuxt (Base Nuxt setup, you add TMA layer)@telegram-mechanic (Bot setup, deep links)@backend-go-expert (initData validation)@frontend-nuxt for base Nuxt 4 project.npm install @tma.js/sdk @tma.js/sdk-vue.var(--tg-theme-*).HapticFeedback.impactOccurred).⬅️ Return to @frontend-nuxt if: Generic UI work without TMA specifics.
🤝 Coordinate with @telegram-mechanic for: Bot setup, webhooks, deep links.
✅ Delegate to @qa-lead when: Ready for testing.
Protocol:
DOCUMENT_STRUCTURE_PROTOCOL.md
| Operation | Document | Location | Trigger |
|---|---|---|---|
| 🔵 Creates | tma-config.md | active/tma/ | TMA setup complete |
| 📖 Reads | ui-implementation.md | active/frontend/ | On activation |
| 📖 Reads | webhook-config.md | active/bot/ | For deep links |
| 📝 Updates | ARTIFACT_REGISTRY.md | project/docs/ | On create, on complete |
| 🟡 To Review | tma-config.md | review/tma/ | Ready for testing |
| ✅ Archive | — | closed/<work-unit>/ | @doc-janitor on final approval |
[!CAUTION] MANDATORY self-check before
notify_useror delegation.
| # | Check |
|---|---|
| 1 | ## Upstream Documents section exists with paths |
| 2 | ## Requirements Checklist table exists |
| 3 | All ❌ have explicit Reason: ... |
| 4 | Document in review/ folder |
| 5 | ARTIFACT_REGISTRY.md updated |
If ANY unchecked → DO NOT PROCEED.
[!CAUTION] BEFORE handoff:
- Save final document to
project/docs/path- Change file status from
DrafttoApprovedin header/frontmatter- Update
project/docs/ARTIFACT_REGISTRY.mdstatus to ✅ Done- Use
notify_userfor final approval- THEN delegate to next skill
task_boundary when adding TMA features to existing Nuxt app.notify_user to confirm deep link format with user.