{"id":"262b06fd-10f7-40c4-93d7-972c453c2adc","entityType":"agent","slug":"clawhub-oomol-oo-asana","name":"Asana","canonicalUrl":"https://www.xpersona.co/agent/clawhub-oomol-oo-asana","canonicalPath":"/agent/clawhub-oomol-oo-asana","generatedAt":"2026-10-11T16:02:01.483Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":null},"description":"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-asana","sourceUrl":"https://clawhub.ai/oomol/oo-asana","homepage":"https://clawhub.ai/oomol/skills/oo-asana","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/oomol/oo-asana","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/oomol/skills/oo-asana","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Asana technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":null},"stars":null,"forks":null,"downloads":1061,"packageName":null,"latestVersion":"1.0.5","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T12:58:41.101Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T12:58:41.115Z","lastCrawledAt":"2026-10-11T12:58:41.101Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T12:58:41.101Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.5","createdAt":"2026-09-20T03:15:07.950Z","changelog":"- Operate Asana through an OOMOL-connected account using the `oo` CLI, without handling raw Asana tokens. - Inspect live action schemas before running connector actions for accurate request and response payloads. - Read Asana data across workspaces, users, teams, projects, sections, tasks, stories, tags, attachments, and custom fields. - Create and update Asana resources including tasks, subtasks, projects, teams, tags, comments, attachments, and custom fields. - Manage task/project relationships such as sections, followers, members, dependencies, dependents, tags, and parent tasks. - Includes explicit safety guidance for read, write, and destructive actions. Source: `oomol-lab/skills@792ad44`","fileCount":3,"zipByteSize":4855},{"version":"1.0.4","createdAt":"2026-09-15T04:04:03.147Z","changelog":"- Operate Asana through the OOMOL-connected `oo` CLI without handling raw credentials. - Inspect live action schemas before constructing requests. - Read, search, list, and retrieve workspaces, teams, projects, tasks, sections, tags, users, stories, attachments, and custom fields. - Create and update Asana projects, tasks, subtasks, comments, teams, tags, users, sections, attachments, dependencies, followers, memberships, and custom fields. - Delete or remove Asana resources with explicit confirmation safeguards for destructive actions. Source: `oomol-lab/skills@75bac03`","fileCount":3,"zipByteSize":4974},{"version":"1.0.2","createdAt":"2026-07-29T16:19:44.295Z","changelog":"- Connects Codex to Asana through the OOMOL `oo` CLI and server-side credentials. - Supports reading Asana workspaces, projects, tasks, sections, users, teams, tags, stories, attachments, and custom fields. - Adds write actions for creating and updating tasks, projects, sections, teams, tags, comments, attachments, and custom fields. - Includes relationship management for followers, members, tags, dependencies, subtasks, project placement, and task parents. - Marks mutating and destructive actions clearly, with guidance to confirm payloads before changing or deleting Asana data. Source: `oomol-lab/skills@1d96f6f`","fileCount":3,"zipByteSize":4956},{"version":"1.0.1","createdAt":"2026-06-09T10:08:28.250Z","changelog":"- Operates Asana through the OOMOL `asana` connector and `oo` CLI using server-side managed credentials. - Supports workspace and project discovery with `list_workspaces`, `get_workspace`, `list_projects`, and `get_project`. - Reads task details and project task lists with pagination-aware actions. - Creates projects and tasks with optional metadata such as notes, owners, assignees, dates, display settings, and custom fields. - Updates existing projects and tasks, with clear safety guidance for write actions. Source: `oomol-lab/skills@146ef20`","fileCount":3,"zipByteSize":3401},{"version":"1.0.0","createdAt":"2026-06-03T16:00:05.434Z","changelog":"- Adds the initial `oo-asana` skill for operating Asana through an OOMOL-connected account using the `asana` connector and `oo` CLI. - Supports workspace and project discovery, including listing workspaces, getting workspace details, listing projects, and fetching individual projects. - Supports task workflows for creating tasks, retrieving task details, updating tasks, and listing tasks within a project with pagination. - Supports project management actions for creating and updating Asana projects with configurable fields such as notes, owner, dates, and display settings. - Provides per-action reference docs and a schema-first workflow so agents inspect live connector schemas before constructing payloads. - Defines safety guidance for read, write, and destructive operations, including confirmation requirements before changing Asana state.","fileCount":13,"zipByteSize":8758}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-asana","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-asana` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/oomol/oo-asana before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T16:02:01.482Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-asana/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":null},"readme":"Skill: Asana\n\nOwner: oomol\n\nSummary: Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.\n\nTags: latest:1.0.5\n\nVersion history:\n\nv1.0.5 | 2026-09-20T03:15:07.950Z | user\n\n- Operate Asana through an OOMOL-connected account using the `oo` CLI, without handling raw Asana tokens.\n- Inspect live action schemas before running connector actions for accurate request and response payloads.\n- Read Asana data across workspaces, users, teams, projects, sections, tasks, stories, tags, attachments, and custom fields.\n- Create and update Asana resources including tasks, subtasks, projects, teams, tags, comments, attachments, and custom fields.\n- Manage task/project relationships such as sections, followers, members, dependencies, dependents, tags, and parent tasks.\n- Includes explicit safety guidance for read, write, and destructive actions.\n\nSource: `oomol-lab/skills@792ad44`\n\nv1.0.4 | 2026-09-15T04:04:03.147Z | user\n\n- Operate Asana through the OOMOL-connected `oo` CLI without handling raw credentials.\n- Inspect live action schemas before constructing requests.\n- Read, search, list, and retrieve workspaces, teams, projects, tasks, sections, tags, users, stories, attachments, and custom fields.\n- Create and update Asana projects, tasks, subtasks, comments, teams, tags, users, sections, attachments, dependencies, followers, memberships, and custom fields.\n- Delete or remove Asana resources with explicit confirmation safeguards for destructive actions.\n\nSource: `oomol-lab/skills@75bac03`\n\nv1.0.2 | 2026-07-29T16:19:44.295Z | user\n\n- Connects Codex to Asana through the OOMOL `oo` CLI and server-side credentials.\n- Supports reading Asana workspaces, projects, tasks, sections, users, teams, tags, stories, attachments, and custom fields.\n- Adds write actions for creating and updating tasks, projects, sections, teams, tags, comments, attachments, and custom fields.\n- Includes relationship management for followers, members, tags, dependencies, subtasks, project placement, and task parents.\n- Marks mutating and destructive actions clearly, with guidance to confirm payloads before changing or deleting Asana data.\n\nSource: `oomol-lab/skills@1d96f6f`\n\nv1.0.1 | 2026-06-09T10:08:28.250Z | user\n\n- Operates Asana through the OOMOL `asana` connector and `oo` CLI using server-side managed credentials.\n- Supports workspace and project discovery with `list_workspaces`, `get_workspace`, `list_projects`, and `get_project`.\n- Reads task details and project task lists with pagination-aware actions.\n- Creates projects and tasks with optional metadata such as notes, owners, assignees, dates, display settings, and custom fields.\n- Updates existing projects and tasks, with clear safety guidance for write actions.\n\nSource: `oomol-lab/skills@146ef20`\n\nv1.0.0 | 2026-06-03T16:00:05.434Z | user\n\n- Adds the initial `oo-asana` skill for operating Asana through an OOMOL-connected account using the `asana` connector and `oo` CLI.\n- Supports workspace and project discovery, including listing workspaces, getting workspace details, listing projects, and fetching individual projects.\n- Supports task workflows for creating tasks, retrieving task details, updating tasks, and listing tasks within a project with pagination.\n- Supports project management actions for creating and updating Asana projects with configurable fields such as notes, owner, dates, and display settings.\n- Provides per-action reference docs and a schema-first workflow so agents inspect live connector schemas before constructing payloads.\n- Defines safety guidance for read, write, and destructive operations, including confirmation requirements before changing Asana state.\n\nArchive index:\n\nArchive v1.0.5: 3 files, 4855 bytes\n\nFiles: skill-card.md (1829b), SKILL.md (11347b), _meta.json (127b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.5\"\n  services: [\"asana\"]\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_project_custom_field` — Add a custom field setting to an Asana project. [write]\n- `add_project_followers` — Add users as followers of an Asana project. [write]\n- `add_project_members` — Add users as members of an Asana project. [write]\n- `add_section_task` — Move a task into a section, optionally at a specific position. [write]\n- `add_task_dependencies` — Add dependencies to an Asana task. [write]\n- `add_task_dependents` — Add dependent tasks to an Asana task. [write]\n- `add_task_followers` — Add followers to an Asana task. [write]\n- `add_task_project` — Add an Asana task to a project with optional section placement. [write]\n- `add_task_tag` — Add a tag to an Asana task. [write]\n- `add_team_user` — Add an existing organization user to an Asana team. [write]\n- `add_workspace_user` — Add or invite a user to an Asana workspace or organization. [write]\n- `create_attachment` — Attach a downloaded public file or external resource URL to an Asana object. [write]\n- `create_custom_field` — Create an Asana custom field in a workspace. [write]\n- `create_custom_field_enum_option` — Create an option for an Asana enum or multi-enum custom field. [write]\n- `create_project` — Create a project at exactly one workspace or team location. [write]\n- `create_project_section` — Create a section in an Asana project, optionally at a specific position. [write]\n- `create_subtask` — Create a direct subtask under an Asana task. [write]\n- `create_tag` — Create a tag in an Asana workspace through the generic tag endpoint. [write]\n- `create_task` — Create an Asana task in a project, workspace, or parent task. [write]\n- `create_task_story` — Create a comment story on an Asana task. [write]\n- `create_team` — Create an Asana team within an organization. [write]\n- `create_team_project` — Create a project in an Asana team. [write]\n- `create_workspace_project` — Create a project in an Asana workspace or organization. [write]\n- `create_workspace_tag` — Create a tag in an Asana workspace or organization. [write]\n- `delete_attachment` — Delete an Asana attachment. [destructive]\n- `delete_custom_field` — Delete an Asana custom field. [destructive]\n- `delete_project` — Delete an Asana project. [destructive]\n- `delete_section` — Delete an empty Asana project section. [destructive]\n- `delete_story` — Delete an Asana story or task comment created by the authenticated user. [destructive]\n- `delete_tag` — Delete an Asana tag. [destructive]\n- `delete_task` — Delete an Asana task. [destructive]\n- `duplicate_project` — Start an asynchronous job to duplicate an Asana project. [write]\n- `duplicate_task` — Duplicate an Asana task and selected associations. [write]\n- `get_attachment` — Get an Asana attachment by gid.\n- `get_custom_field` — Get an Asana custom field by gid.\n- `get_project` — Get an Asana project by gid.\n- `get_project_task_counts` — Get all documented task and milestone counts for an Asana project.\n- `get_section` — Get an Asana project section by gid.\n- `get_story` — Get an Asana story, including a task comment story, by gid.\n- `get_tag` — Get an Asana tag by gid.\n- `get_task` — Get a single Asana task by gid.\n- `get_task_by_custom_id` — Get an Asana task by workspace and custom ID.\n- `get_team` — Get an Asana team by gid.\n- `get_user` — Get an Asana user by gid, email, or the special identifier \"me\".\n- `get_workspace` — Get an Asana workspace or organization by gid.\n- `get_workspace_events` — Read the Enterprise workspace event stream from an optional sync token and return Asana's next sync state.\n- `get_workspace_user` — Get a user record in the context of an Asana workspace or organization.\n- `insert_custom_field_enum_option` — Reorder an option in an Asana enum or multi-enum custom field. [write]\n- `insert_project_section` — Move a section before or after another section in the same project. [write]\n- `list_attachments` — List attachments on an Asana task, project, or project brief.\n- `list_project_custom_field_settings` — List the custom field settings on an Asana project.\n- `list_project_sections` — List sections in an Asana project.\n- `list_project_tasks` — List tasks within an Asana project.\n- `list_projects` — List projects filtered by exactly one workspace or team.\n- `list_section_tasks` — List tasks in an Asana section.\n- `list_subtasks` — List direct subtasks of an Asana task.\n- `list_tag_tasks` — List tasks carrying an Asana tag.\n- `list_tags` — List tags in an Asana workspace through the generic tag endpoint.\n- `list_task_dependencies` — List tasks that an Asana task depends on.\n- `list_task_dependents` — List tasks that depend on an Asana task.\n- `list_task_projects` — List projects associated with a task.\n- `list_task_stories` — List each story and comment recorded on an Asana task.\n- `list_task_tags` — List the Asana tags attached to a task.\n- `list_tasks` — List tasks matching Asana's general task filters.\n- `list_team_custom_field_settings` — List the custom field settings on an Asana team. Asana returns this collection without pagination.\n- `list_team_projects` — List projects shared with a team.\n- `list_team_users` — List users who belong to an Asana team.\n- `list_user_favorites` — List a user's favorite Asana resources within a workspace.\n- `list_user_task_list_tasks` — List tasks in an Asana user task list.\n- `list_user_teams` — List the teams to which an Asana user belongs in an organization.\n- `list_users` — List users visible to the connected account, optionally filtered by workspace or team.\n- `list_workspace_custom_fields` — List the custom fields in an Asana workspace.\n- `list_workspace_projects` — List projects in an Asana workspace or organization.\n- `list_workspace_tags` — List tags in an Asana workspace or organization.\n- `list_workspace_teams` — List teams in an Asana organization workspace.\n- `list_workspace_users` — List users in an Asana workspace or organization.\n- `list_workspaces` — List the Asana workspaces and organizations visible to the connected account.\n- `remove_project_custom_field` — Remove a custom field setting from an Asana project. [destructive]\n- `remove_project_followers` — Remove users from an Asana project's followers. [destructive]\n- `remove_project_members` — Remove users from an Asana project. [destructive]\n- `remove_task_dependencies` — Remove dependencies from an Asana task. [destructive]\n- `remove_task_dependents` — Remove dependent tasks from an Asana task. [destructive]\n- `remove_task_followers` — Remove followers from an Asana task. [destructive]\n- `remove_task_project` — Remove an Asana task from a project. [destructive]\n- `remove_task_tag` — Remove a tag from an Asana task. [destructive]\n- `remove_team_user` — Remove a user from an Asana team. [destructive]\n- `remove_workspace_user` — Remove a user from an Asana workspace or organization. [destructive]\n- `search_workspace_projects` — Search projects in a workspace using Asana's documented project filters. Asana does not paginate search results; use limit to cap the page size.\n- `search_workspace_tasks` — Search tasks in an Asana workspace using advanced filters.\n- `set_task_parent` — Set, change, or remove an Asana task's parent. [destructive]\n- `update_custom_field` — Update an Asana custom field. [write]\n- `update_custom_field_enum_option` — Update an Asana enum option. [write]\n- `update_project` — Update one or more writable fields on an Asana project. [write]\n- `update_section` — Rename an Asana project section. [write]\n- `update_story` — Update the text, HTML, or pinned state of an Asana comment story. [write]\n- `update_tag` — Update one or more mutable fields on an Asana tag. [write]\n- `update_task` — Update an existing Asana task. [write]\n- `update_team` — Update an existing Asana team. [write]\n- `update_user` — Update an Asana user's display name or custom field values. [write]\n- `update_workspace` — Rename an existing Asana workspace or organization. [write]\n- `update_workspace_user` — Update an Asana user in the context of a workspace or organization. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Asana state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Asana is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=asana\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Asana homepage: https://asana.com\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1789874107950\n}\n\nFile v1.0.5:skill-card.md\n\n## Description:\n\nOperate Asana through an OOMOL-connected account to read, create, update, and delete Asana data using the oo CLI.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees, external users, and developers use this skill to operate Asana workspaces, projects, tasks, teams, users, tags, stories, attachments, and custom fields through an OOMOL-connected Asana account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can read, create, update, and delete Asana resources, including destructive actions.\n\nMitigation: Require user confirmation for actions tagged [write] or [destructive], and verify the target and payload before execution.\n\nRisk: The skill documentation includes remote installer commands for the oo CLI.\n\nMitigation: Do not run installer commands automatically; install the CLI only from a trusted source after verifying the installer or using safer platform package steps.\n\n## Reference(s):\n\n- [Asana homepage](https://asana.com)\n- [oo CLI](https://github.com/oomol-lab/oo-cli)\n\n## Skill Output:\n\n**Output Type(s):** [shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline bash commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Connector runs return JSON responses with data and meta.executionId.]\n\n## Skill Version(s):\n\n1.0.5 (source: server evidence release.version and skill metadata.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.4: 3 files, 4974 bytes\n\nFiles: skill-card.md (2080b), SKILL.md (11341b), _meta.json (127b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.4\"\n  services: [\"asana\"]\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_project_custom_field` — Add a custom field setting to an Asana project. [write]\n- `add_project_followers` — Add users as followers of an Asana project. [write]\n- `add_project_members` — Add users as members of an Asana project. [write]\n- `add_section_task` — Move a task into a section, optionally at a specific position. [write]\n- `add_task_dependencies` — Add dependencies to an Asana task. [write]\n- `add_task_dependents` — Add dependent tasks to an Asana task. [write]\n- `add_task_followers` — Add followers to an Asana task. [write]\n- `add_task_project` — Add an Asana task to a project with optional section placement. [write]\n- `add_task_tag` — Add a tag to an Asana task. [write]\n- `add_team_user` — Add an existing organization user to an Asana team. [write]\n- `add_workspace_user` — Add or invite a user to an Asana workspace or organization. [write]\n- `create_attachment` — Attach a downloaded public file or external resource URL to an Asana object. [write]\n- `create_custom_field` — Create an Asana custom field in a workspace. [write]\n- `create_custom_field_enum_option` — Create an option for an Asana enum or multi-enum custom field. [write]\n- `create_project` — Create a project at exactly one workspace or team location. [write]\n- `create_project_section` — Create a section in an Asana project, optionally at a specific position. [write]\n- `create_subtask` — Create a direct subtask under an Asana task. [write]\n- `create_tag` — Create a tag in an Asana workspace through the generic tag endpoint. [write]\n- `create_task` — Create an Asana task in a project, workspace, or parent task. [write]\n- `create_task_story` — Create a comment story on an Asana task. [write]\n- `create_team` — Create an Asana team within an organization. [write]\n- `create_team_project` — Create a project in an Asana team. [write]\n- `create_workspace_project` — Create a project in an Asana workspace or organization. [write]\n- `create_workspace_tag` — Create a tag in an Asana workspace or organization. [write]\n- `delete_attachment` — Delete an Asana attachment. [destructive]\n- `delete_custom_field` — Delete an Asana custom field. [destructive]\n- `delete_project` — Delete an Asana project. [destructive]\n- `delete_section` — Delete an empty Asana project section. [destructive]\n- `delete_story` — Delete an Asana story or task comment created by the authenticated user. [destructive]\n- `delete_tag` — Delete an Asana tag. [destructive]\n- `delete_task` — Delete an Asana task. [destructive]\n- `duplicate_project` — Start an asynchronous job to duplicate an Asana project. [write]\n- `duplicate_task` — Duplicate an Asana task and selected associations. [write]\n- `get_attachment` — Get an Asana attachment by gid.\n- `get_custom_field` — Get an Asana custom field by gid.\n- `get_project` — Get an Asana project by gid.\n- `get_project_task_counts` — Get all documented task and milestone counts for an Asana project.\n- `get_section` — Get an Asana project section by gid.\n- `get_story` — Get an Asana story, including a task comment story, by gid.\n- `get_tag` — Get an Asana tag by gid.\n- `get_task` — Get a single Asana task by gid.\n- `get_task_by_custom_id` — Get an Asana task by workspace and custom ID.\n- `get_team` — Get an Asana team by gid.\n- `get_user` — Get an Asana user by gid, email, or the special identifier \"me\".\n- `get_workspace` — Get an Asana workspace or organization by gid.\n- `get_workspace_events` — Read the Enterprise workspace event stream from an optional sync token and return Asana's next sync state.\n- `get_workspace_user` — Get a user record in the context of an Asana workspace or organization.\n- `insert_custom_field_enum_option` — Reorder an option in an Asana enum or multi-enum custom field. [write]\n- `insert_project_section` — Move a section before or after another section in the same project. [write]\n- `list_attachments` — List attachments on an Asana task, project, or project brief.\n- `list_project_custom_field_settings` — List the custom field settings on an Asana project.\n- `list_project_sections` — List sections in an Asana project.\n- `list_project_tasks` — List tasks within an Asana project.\n- `list_projects` — List projects filtered by exactly one workspace or team.\n- `list_section_tasks` — List tasks in an Asana section.\n- `list_subtasks` — List direct subtasks of an Asana task.\n- `list_tag_tasks` — List tasks carrying an Asana tag.\n- `list_tags` — List tags in an Asana workspace through the generic tag endpoint.\n- `list_task_dependencies` — List tasks that an Asana task depends on.\n- `list_task_dependents` — List tasks that depend on an Asana task.\n- `list_task_projects` — List projects associated with a task.\n- `list_task_stories` — List each story and comment recorded on an Asana task.\n- `list_task_tags` — List the Asana tags attached to a task.\n- `list_tasks` — List tasks matching Asana's general task filters.\n- `list_team_custom_field_settings` — List the custom field settings on an Asana team. Asana returns this collection without pagination.\n- `list_team_projects` — List projects shared with a team.\n- `list_team_users` — List users who belong to an Asana team.\n- `list_user_favorites` — List a user's favorite Asana resources within a workspace.\n- `list_user_task_list_tasks` — List tasks in an Asana user task list.\n- `list_user_teams` — List the teams to which an Asana user belongs in an organization.\n- `list_users` — List users visible to the connected account, optionally filtered by workspace or team.\n- `list_workspace_custom_fields` — List the custom fields in an Asana workspace.\n- `list_workspace_projects` — List projects in an Asana workspace or organization.\n- `list_workspace_tags` — List tags in an Asana workspace or organization.\n- `list_workspace_teams` — List teams in an Asana organization workspace.\n- `list_workspace_users` — List users in an Asana workspace or organization.\n- `list_workspaces` — List the Asana workspaces and organizations visible to the connected account.\n- `remove_project_custom_field` — Remove a custom field setting from an Asana project. [destructive]\n- `remove_project_followers` — Remove users from an Asana project's followers. [destructive]\n- `remove_project_members` — Remove users from an Asana project. [destructive]\n- `remove_task_dependencies` — Remove dependencies from an Asana task. [destructive]\n- `remove_task_dependents` — Remove dependent tasks from an Asana task. [destructive]\n- `remove_task_followers` — Remove followers from an Asana task. [destructive]\n- `remove_task_project` — Remove an Asana task from a project. [destructive]\n- `remove_task_tag` — Remove a tag from an Asana task. [destructive]\n- `remove_team_user` — Remove a user from an Asana team. [destructive]\n- `remove_workspace_user` — Remove a user from an Asana workspace or organization. [destructive]\n- `search_workspace_projects` — Search projects in a workspace using Asana's documented project filters. Asana does not paginate search results; use limit to cap the page size.\n- `search_workspace_tasks` — Search tasks in an Asana workspace using advanced filters.\n- `set_task_parent` — Set, change, or remove an Asana task's parent. [write]\n- `update_custom_field` — Update an Asana custom field. [write]\n- `update_custom_field_enum_option` — Update an Asana enum option. [write]\n- `update_project` — Update one or more writable fields on an Asana project. [write]\n- `update_section` — Rename an Asana project section. [write]\n- `update_story` — Update the text, HTML, or pinned state of an Asana comment story. [write]\n- `update_tag` — Update one or more mutable fields on an Asana tag. [write]\n- `update_task` — Update an existing Asana task. [write]\n- `update_team` — Update an existing Asana team. [write]\n- `update_user` — Update an Asana user's display name or custom field values. [write]\n- `update_workspace` — Rename an existing Asana workspace or organization. [write]\n- `update_workspace_user` — Update an Asana user in the context of a workspace or organization. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Asana state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Asana is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=asana\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Asana homepage: https://asana.com\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1789445043147\n}\n\nFile v1.0.4:skill-card.md\n\n## Description:\n\nUse Asana through the OOMOL-connected oo CLI to read, search, create, update, and delete Asana work items and related resources.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to operate Asana workspaces from an agent through OOMOL-connected actions, including task, project, team, tag, attachment, story, and custom field workflows. It is suited to agent-assisted project management automation where state-changing actions are confirmed before execution.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The first-time setup instructions include direct execution of remote installer scripts without verification.\n\nMitigation: Review setup before installation, prefer an official package manager or pinned installer, and verify checksums or signatures when available.\n\nRisk: The skill can create, update, delete, or remove Asana resources.\n\nMitigation: Confirm the exact target, payload, and expected effect before any write or destructive action is executed.\n\n## Reference(s):\n\n- [Asana homepage](https://asana.com)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [OOMOL CLI install guide](https://cli.oomol.com/install-guide.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON-oriented action payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Responses may include Asana action results returned through the oo CLI and guidance for confirming write or destructive operations.]\n\n## Skill Version(s):\n\n1.0.4 (source: frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.2: 3 files, 4956 bytes\n\nFiles: skill-card.md (2150b), SKILL.md (11341b), _meta.json (127b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.2\"\n  services: [\"asana\"]\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_project_custom_field` — Add a custom field setting to an Asana project. [write]\n- `add_project_followers` — Add users as followers of an Asana project. [write]\n- `add_project_members` — Add users as members of an Asana project. [write]\n- `add_section_task` — Move a task into a section, optionally at a specific position. [write]\n- `add_task_dependencies` — Add dependencies to an Asana task. [write]\n- `add_task_dependents` — Add dependent tasks to an Asana task. [write]\n- `add_task_followers` — Add followers to an Asana task. [write]\n- `add_task_project` — Add an Asana task to a project with optional section placement. [write]\n- `add_task_tag` — Add a tag to an Asana task. [write]\n- `add_team_user` — Add an existing organization user to an Asana team. [write]\n- `add_workspace_user` — Add or invite a user to an Asana workspace or organization. [write]\n- `create_attachment` — Attach a downloaded public file or external resource URL to an Asana object. [write]\n- `create_custom_field` — Create an Asana custom field in a workspace. [write]\n- `create_custom_field_enum_option` — Create an option for an Asana enum or multi-enum custom field. [write]\n- `create_project` — Create a project at exactly one workspace or team location. [write]\n- `create_project_section` — Create a section in an Asana project, optionally at a specific position. [write]\n- `create_subtask` — Create a direct subtask under an Asana task. [write]\n- `create_tag` — Create a tag in an Asana workspace through the generic tag endpoint. [write]\n- `create_task` — Create an Asana task in a project, workspace, or parent task. [write]\n- `create_task_story` — Create a comment story on an Asana task. [write]\n- `create_team` — Create an Asana team within an organization. [write]\n- `create_team_project` — Create a project in an Asana team. [write]\n- `create_workspace_project` — Create a project in an Asana workspace or organization. [write]\n- `create_workspace_tag` — Create a tag in an Asana workspace or organization. [write]\n- `delete_attachment` — Delete an Asana attachment. [destructive]\n- `delete_custom_field` — Delete an Asana custom field. [destructive]\n- `delete_project` — Delete an Asana project. [destructive]\n- `delete_section` — Delete an empty Asana project section. [destructive]\n- `delete_story` — Delete an Asana story or task comment created by the authenticated user. [destructive]\n- `delete_tag` — Delete an Asana tag. [destructive]\n- `delete_task` — Delete an Asana task. [destructive]\n- `duplicate_project` — Start an asynchronous job to duplicate an Asana project. [write]\n- `duplicate_task` — Duplicate an Asana task and selected associations. [write]\n- `get_attachment` — Get an Asana attachment by gid.\n- `get_custom_field` — Get an Asana custom field by gid.\n- `get_project` — Get an Asana project by gid.\n- `get_project_task_counts` — Get all documented task and milestone counts for an Asana project.\n- `get_section` — Get an Asana project section by gid.\n- `get_story` — Get an Asana story, including a task comment story, by gid.\n- `get_tag` — Get an Asana tag by gid.\n- `get_task` — Get a single Asana task by gid.\n- `get_task_by_custom_id` — Get an Asana task by workspace and custom ID.\n- `get_team` — Get an Asana team by gid.\n- `get_user` — Get an Asana user by gid, email, or the special identifier \"me\".\n- `get_workspace` — Get an Asana workspace or organization by gid.\n- `get_workspace_events` — Read the Enterprise workspace event stream from an optional sync token and return Asana's next sync state.\n- `get_workspace_user` — Get a user record in the context of an Asana workspace or organization.\n- `insert_custom_field_enum_option` — Reorder an option in an Asana enum or multi-enum custom field. [write]\n- `insert_project_section` — Move a section before or after another section in the same project. [write]\n- `list_attachments` — List attachments on an Asana task, project, or project brief.\n- `list_project_custom_field_settings` — List the custom field settings on an Asana project.\n- `list_project_sections` — List sections in an Asana project.\n- `list_project_tasks` — List tasks within an Asana project.\n- `list_projects` — List projects filtered by exactly one workspace or team.\n- `list_section_tasks` — List tasks in an Asana section.\n- `list_subtasks` — List direct subtasks of an Asana task.\n- `list_tag_tasks` — List tasks carrying an Asana tag.\n- `list_tags` — List tags in an Asana workspace through the generic tag endpoint.\n- `list_task_dependencies` — List tasks that an Asana task depends on.\n- `list_task_dependents` — List tasks that depend on an Asana task.\n- `list_task_projects` — List projects associated with a task.\n- `list_task_stories` — List each story and comment recorded on an Asana task.\n- `list_task_tags` — List the Asana tags attached to a task.\n- `list_tasks` — List tasks matching Asana's general task filters.\n- `list_team_custom_field_settings` — List the custom field settings on an Asana team. Asana returns this collection without pagination.\n- `list_team_projects` — List projects shared with a team.\n- `list_team_users` — List users who belong to an Asana team.\n- `list_user_favorites` — List a user's favorite Asana resources within a workspace.\n- `list_user_task_list_tasks` — List tasks in an Asana user task list.\n- `list_user_teams` — List the teams to which an Asana user belongs in an organization.\n- `list_users` — List users visible to the connected account, optionally filtered by workspace or team.\n- `list_workspace_custom_fields` — List the custom fields in an Asana workspace.\n- `list_workspace_projects` — List projects in an Asana workspace or organization.\n- `list_workspace_tags` — List tags in an Asana workspace or organization.\n- `list_workspace_teams` — List teams in an Asana organization workspace.\n- `list_workspace_users` — List users in an Asana workspace or organization.\n- `list_workspaces` — List the Asana workspaces and organizations visible to the connected account.\n- `remove_project_custom_field` — Remove a custom field setting from an Asana project. [destructive]\n- `remove_project_followers` — Remove users from an Asana project's followers. [destructive]\n- `remove_project_members` — Remove users from an Asana project. [destructive]\n- `remove_task_dependencies` — Remove dependencies from an Asana task. [destructive]\n- `remove_task_dependents` — Remove dependent tasks from an Asana task. [destructive]\n- `remove_task_followers` — Remove followers from an Asana task. [destructive]\n- `remove_task_project` — Remove an Asana task from a project. [destructive]\n- `remove_task_tag` — Remove a tag from an Asana task. [destructive]\n- `remove_team_user` — Remove a user from an Asana team. [destructive]\n- `remove_workspace_user` — Remove a user from an Asana workspace or organization. [destructive]\n- `search_workspace_projects` — Search projects in a workspace using Asana's documented project filters. Asana does not paginate search results; use limit to cap the page size.\n- `search_workspace_tasks` — Search tasks in an Asana workspace using advanced filters.\n- `set_task_parent` — Set, change, or remove an Asana task's parent. [write]\n- `update_custom_field` — Update an Asana custom field. [write]\n- `update_custom_field_enum_option` — Update an Asana enum option. [write]\n- `update_project` — Update one or more writable fields on an Asana project. [write]\n- `update_section` — Rename an Asana project section. [write]\n- `update_story` — Update the text, HTML, or pinned state of an Asana comment story. [write]\n- `update_tag` — Update one or more mutable fields on an Asana tag. [write]\n- `update_task` — Update an existing Asana task. [write]\n- `update_team` — Update an existing Asana team. [write]\n- `update_user` — Update an Asana user's display name or custom field values. [write]\n- `update_workspace` — Rename an existing Asana workspace or organization. [write]\n- `update_workspace_user` — Update an Asana user in the context of a workspace or organization. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Asana state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Asana is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=asana\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Asana homepage: https://asana.com\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1785341984295\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nAsana connector for reading, creating, updating, and deleting Asana workspace data through an OOMOL-connected account. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and workspace operators use this skill to let an agent retrieve and manage Asana workspaces, projects, tasks, users, teams, tags, stories, attachments, and custom fields. It supports read workflows as well as confirmed write and destructive changes to Asana objects. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can change or delete Asana data, including tasks, projects, tags, comments, attachments, membership, dependencies, and workspace or project settings. <br>\nMitigation: Review the exact payload, target object, and expected effect before approving write or destructive actions. <br>\nRisk: Use depends on the oo CLI and OOMOL connection model for access to the user's Asana workspace. <br>\nMitigation: Install only when the publisher and connection model are trusted for the workspace being accessed. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Asana Skill](https://clawhub.ai/oomol/skills/oo-asana) <br>\n- [Asana Homepage](https://asana.com) <br>\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON payload examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May return Asana connector JSON responses that include data and execution metadata.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 3 files, 3401 bytes\n\nFiles: skill-card.md (2315b), SKILL.md (4000b), _meta.json (127b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, and updating data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.1\"\n  services: [\"asana\"]\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_project` — Create an Asana project in a workspace with optional notes, owner, dates, and display settings. [write]\n- `create_task` — Create a new Asana task in a project with optional assignee, notes, dates, and custom fields. [write]\n- `get_project` — Get a single Asana project by gid.\n- `get_task` — Get a single Asana task by gid.\n- `get_workspace` — Get a single Asana workspace by gid.\n- `list_project_tasks` — List tasks within an Asana project, ordered by project priority, with pagination support.\n- `list_projects` — List Asana projects for a workspace, with optional archived filtering and pagination.\n- `list_workspaces` — List the Asana workspaces visible to the connected personal access token.\n- `update_project` — Update an existing Asana project by gid. [write]\n- `update_task` — Update an existing Asana task by gid. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Asana state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Asana is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=asana\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Asana homepage: https://asana.com\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1780999708250\n}\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nEnables an agent to read, create, and update Asana workspaces, projects, and tasks through the OOMOL Asana connector. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nEmployees, external users, developers, and agents use this skill to operate Asana through an OOMOL-connected account, including workspace and project discovery, task reads, and controlled project or task creation and updates. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can access Asana account data through OOMOL-managed credentials. <br>\nMitigation: Install only when OOMOL-connected tooling should access the user's Asana account, and review the Asana scopes before use. <br>\nRisk: Write actions can create or update Asana projects and tasks. <br>\nMitigation: Confirm the exact target, payload, and intended effect with the user before running create or update actions. <br>\nRisk: The artifact includes a remote CLI install snippet. <br>\nMitigation: Prefer installing the oo CLI from verified official instructions or a signed package instead of blindly piping a remote script into a shell. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/oomol/oo-asana) <br>\n- [OOMOL publisher profile](https://clawhub.ai/user/oomol) <br>\n- [oo CLI](https://github.com/oomol-lab/oo-cli) <br>\n- [oo CLI install guide](https://cli.oomol.com/install-guide.md) <br>\n- [Asana homepage](https://asana.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands and JSON payloads] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Connector actions return JSON responses with data and execution metadata.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: frontmatter and release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.0: 13 files, 8758 bytes\n\nFiles: actions/create_project.md (818b), actions/create_task.md (798b), actions/get_project.md (618b), actions/get_task.md (597b), actions/get_workspace.md (632b), actions/list_project_tasks.md (705b), actions/list_projects.md (679b), actions/list_workspaces.md (679b), actions/update_project.md (763b), actions/update_task.md (742b), skill-card.md (2082b), SKILL.md (4270b), _meta.json (127b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, and updating data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.0\"\n  service: \"asana\"\n  categories: \"Productivity\"\n  homepage: \"https://asana.com\"\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\nCategory: Productivity. Exposes 10 action(s).\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action below links to a reference file with its purpose and exact commands. Read the linked file, then fetch the live schema with `oo connector schema` before constructing `--data`.\n\n## Available actions\n\n- [`create_project`](actions/create_project.md) — Create an Asana project in a workspace with optional notes, owner, dates, and display settings.\n- [`create_task`](actions/create_task.md) — Create a new Asana task in a project with optional assignee, notes, dates, and custom fields.\n- [`get_project`](actions/get_project.md) — Get a single Asana project by gid.\n- [`get_task`](actions/get_task.md) — Get a single Asana task by gid.\n- [`get_workspace`](actions/get_workspace.md) — Get a single Asana workspace by gid.\n- [`list_project_tasks`](actions/list_project_tasks.md) — List tasks within an Asana project, ordered by project priority, with pagination support.\n- [`list_projects`](actions/list_projects.md) — List Asana projects for a workspace, with optional archived filtering and pagination.\n- [`list_workspaces`](actions/list_workspaces.md) — List the Asana workspaces visible to the connected personal access token.\n- [`update_project`](actions/update_project.md) — Update an existing Asana project by gid.\n- [`update_task`](actions/update_task.md) — Update an existing Asana task by gid.\n\n## Safety\n\n- Read actions (get / list / search) are safe to run directly.\n- **Create, update, send, or post actions change Asana state — confirm the exact payload and effect with the user before running.**\n- **Delete or remove actions are destructive — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Asana is not connected, or the connection expired or lacks a scope. Connect once (auth type: API key) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=asana\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Asana homepage: https://asana.com\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1780502405434\n}\n\nFile v1.0.0:actions/create_project.md\n\n# Asana · `create_project`\n\nCreate an Asana project in a workspace with optional notes, owner, dates, and display settings.\n\n- **Service**: `asana`\n- **Action**: `create_project`\n- **Action id**: `asana.create_project`\n- **Required scopes**: projects:write\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"create_project\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"create_project\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Asana state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:actions/create_task.md\n\n# Asana · `create_task`\n\nCreate a new Asana task in a project with optional assignee, notes, dates, and custom fields.\n\n- **Service**: `asana`\n- **Action**: `create_task`\n- **Action id**: `asana.create_task`\n- **Required scopes**: tasks:write\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"create_task\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"create_task\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Asana state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:actions/get_project.md\n\n# Asana · `get_project`\n\nGet a single Asana project by gid.\n\n- **Service**: `asana`\n- **Action**: `get_project`\n- **Action id**: `asana.get_project`\n- **Required scopes**: projects:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"get_project\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"get_project\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/get_task.md\n\n# Asana · `get_task`\n\nGet a single Asana task by gid.\n\n- **Service**: `asana`\n- **Action**: `get_task`\n- **Action id**: `asana.get_task`\n- **Required scopes**: tasks:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"get_task\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"get_task\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/get_workspace.md\n\n# Asana · `get_workspace`\n\nGet a single Asana workspace by gid.\n\n- **Service**: `asana`\n- **Action**: `get_workspace`\n- **Action id**: `asana.get_workspace`\n- **Required scopes**: workspaces:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"get_workspace\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"get_workspace\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/list_project_tasks.md\n\n# Asana · `list_project_tasks`\n\nList tasks within an Asana project, ordered by project priority, with pagination support.\n\n- **Service**: `asana`\n- **Action**: `list_project_tasks`\n- **Action id**: `asana.list_project_tasks`\n- **Required scopes**: tasks:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"list_project_tasks\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"list_project_tasks\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/list_projects.md\n\n# Asana · `list_projects`\n\nList Asana projects for a workspace, with optional archived filtering and pagination.\n\n- **Service**: `asana`\n- **Action**: `list_projects`\n- **Action id**: `asana.list_projects`\n- **Required scopes**: projects:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"list_projects\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"list_projects\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/list_workspaces.md\n\n# Asana · `list_workspaces`\n\nList the Asana workspaces visible to the connected personal access token.\n\n- **Service**: `asana`\n- **Action**: `list_workspaces`\n- **Action id**: `asana.list_workspaces`\n- **Required scopes**: workspaces:read\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"list_workspaces\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"list_workspaces\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/update_project.md\n\n# Asana · `update_project`\n\nUpdate an existing Asana project by gid.\n\n- **Service**: `asana`\n- **Action**: `update_project`\n- **Action id**: `asana.update_project`\n- **Required scopes**: projects:write\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"update_project\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"update_project\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Asana state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:actions/update_task.md\n\n# Asana · `update_task`\n\nUpdate an existing Asana task by gid.\n\n- **Service**: `asana`\n- **Action**: `update_task`\n- **Action id**: `asana.update_task`\n- **Required scopes**: tasks:write\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"asana\" --action \"update_task\"\n```\n\n## Run\n\n```bash\noo connector run \"asana\" --action \"update_task\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Asana state. Confirm the exact payload and intended effect with the user before running.","readmeExcerpt":"Skill: Asana Owner: oomol Summary: Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly. Tags: latest:1.0.5 Version history: v1.0.5 | 2026-09-20T03:15:07.950Z | user - Operate Asana through an OOMOL-connected account using the oo CLI, without handling raw Asana tokens. - Inspect live","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"oo connector schema \"asana\" --action \"<action_name>\""},{"language":"bash","snippet":"oo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json"},{"language":"bash","snippet":"curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux"},{"language":"bash","snippet":"curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux"},{"language":"powershell","snippet":"irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell"},{"language":"bash","snippet":"oo auth login"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: oo-asana\ndescription: \"Asana (asana.com). Use this skill for ANY Asana request — reading, creating, updating, and deleting data. Whenever a task involves Asana, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Asana\"\n  author: \"OOMOL\"\n  version: \"1.0.5\"\n  services: [\"asana\"]\n  icon: \"https://static.oomol.com/logo/third-party/Asana.svg\"\n---\n\n# Asana\n\nOperate **Asana** through your OOMOL-connected account. This skill calls the `asana` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Asana. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"asana\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"asana\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_project_custom_field` — Add a custom field setting to an Asana project. [write]\n- `add_project_followers` — Add users as followers of an Asana project. [write]\n- `add_project_members` — Add users as members of an Asana project. [write]\n- `add_section_task` — Move a task into a section, optionally at a specific position. [write]\n- `add_task_dependencies` — Add dependencies to an Asana task. [write]\n- `add_task_dependents` — Add dependent tasks to an Asana task. [write]\n- `add_task_followers` — Add followers to an Asana task. [write]\n- `add_task_project` — Add an Asana task to a project with optional section placement. [write]\n- `add_task_tag` — Add a tag to an Asana task. [write]\n- `add_team_user` — Add an existing organization user to an Asana team. [write]\n- `add_workspace_user` — Add or invite a user to an Asana workspace or organization. [write]\n- `create_attachment` — Attach a downloaded public file or external resource URL to an Asana object. [write]\n- `create_custom_field` — Create an Asana custom field in a workspace. [write]\n- `create_custom_field_enum_option` — Create an option for an Asana enum or multi-enum custom field. [write]\n- `create_project` — Create a project at exactly one workspace or team l"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77q3r4f5nb0e1z27t9w0r85587zaa6\",\n  \"slug\": \"oo-asana\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1789874107950\n}"},{"path":"skill-card.md","content":"## Description:\n\nOperate Asana through an OOMOL-connected account to read, create, update, and delete Asana data using the oo CLI.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees, external users, and developers use this skill to operate Asana workspaces, projects, tasks, teams, users, tags, stories, attachments, and custom fields through an OOMOL-connected Asana account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can read, create, update, and delete Asana resources, including destructive actions.\n\nMitigation: Require user confirmation for actions tagged [write] or [destructive], and verify the target and payload before execution.\n\nRisk: The skill documentation includes remote installer commands for the oo CLI.\n\nMitigation: Do not run installer commands automatically; install the CLI only from a trusted source after verifying the installer or using safer platform package steps.\n\n## Reference(s):\n\n- [Asana homepage](https://asana.com)\n- [oo CLI](https://github.com/oomol-lab/oo-cli)\n\n## Skill Output:\n\n**Output Type(s):** [shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline bash commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Connector runs return JSON responses with data and meta.executionId.]\n\n## Skill Version(s):\n\n1.0.5 (source: server evidence release.version and skill metadata.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1463,"uniquenessScore":39,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T12:58:41.115Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:02:01.483Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}