agentleFS
DenchHQDenchHQ/ironclaw/skills/composio-apps/SKILL.md

composio-apps

Skill1.7k starsChanged 7 months agoMITView on GitHub

Connected app tool recipes for Dench Integrations (Gmail, Slack, GitHub, Notion, Google Calendar, Linear, Stripe)

1 other project uses a version of this.

Trending

Quiet since February.thin dataabout the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 1 mentionMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the DenchHQ/ironclaw repository that our weekly crawl found: only 1 in all, so this is a hint, not a trend. There is no adoption data for this file yet.

Most recently taken up by

Who's talking about DenchHQ/ironclaw

The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 1 is distinctive, and 9 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 9

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Do not rely on workspace cache files like composio-tool-index.json, composio-tool-catalog.json, or composio-mcp-status.json as runtime …

    line 20
  2. Very specific:

    Do not invent or alter dispatcher_input.

    line 26
  3. Very specific:

    Read the returned input_schema before filling arguments.

    line 28
  4. Very specific:

    Treat the live schema as authoritative over any recipe table below.

    line 29
  5. Distinctive:

    If a call fails on argument shape, fix the types and retry once before escalating.

    line 30
  6. Very specific:

    If composio_search_tools or composio_resolve_tool says account selection is required, ask the user which connected account to use before …

    line 31
  7. Very specific:

    Do not pass account unless the search flow actually returned or required it for the chosen live result.

    line 32
  8. Very specific:

    If the returned search result includes pagination fields such as starting_after, next_cursor, page, or page_token, keep paginating until …

    line 33
  9. Very specific:

    Never fall back to gog, curl, or raw gateway HTTP for a connected app task unless the user explicitly asks for that non-integration path.

    line 34
  10. Very specific:

    When delegating, include: which app, the exact tool name, and the argument object you intend (copy shapes from the live tool schema, …

    line 107

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Dench Integrations connected apps

Use the Dench Integrations tools only. In DenchClaw, always search first with composio_search_tools, inspect the returned full schemas plus plan/pitfall guidance, then execute the chosen tool via composio_call_tool. composio_resolve_tool still exists as a compatibility wrapper when you want a single best-match result, but ranked search is the default path. Some sessions may still expose direct tool names like GMAIL_FETCH_EMAILS, but do not rely on that as the default path.

Do not use:

  • gog
  • shell CLIs for Gmail / Calendar / Drive / Slack / GitHub / Notion / Linear
  • curl
  • raw gateway HTTP calls
  • direct provider REST calls

If the user mentions Dench Integrations, the connected-app layer, rube, map, MCP, or says an app is already connected, this is the only allowed integration path. If the integration wrapper tools are unavailable in the current session, stop and report repair guidance instead of bypassing them.

Do not rely on workspace cache files like composio-tool-index.json, composio-tool-catalog.json, or composio-mcp-status.json as runtime truth. composio_search_tools is the source of truth because it returns official integration search results, full input_schema, connection/account status, recommended_plan_steps, known_pitfalls, and a reusable search_session_id when available.

General rules

  • Tool names are uppercase with underscores (e.g. GMAIL_FETCH_EMAILS).
  • Execute searched or resolved tools through composio_call_tool with the returned app, tool_name, search_context_token, optional search_session_id, optional selected account, and the final arguments object.
  • Do not invent or alter dispatcher_input; copy it from composio_search_tools or composio_resolve_tool and only add the final arguments.
  • Pass JSON-shaped arguments as the tool schema requires: arrays are arrays, not comma-separated strings.
  • Read the returned input_schema before filling arguments. Use exact field names and types from that schema.
  • Treat the live schema as authoritative over any recipe table below. Pay attention to required, property type, nested objects/arrays, enums, defaults, and pagination fields.
  • If a call fails on argument shape, fix the types and retry once before escalating.
  • If composio_search_tools or composio_resolve_tool says account selection is required, ask the user which connected account to use before calling composio_call_tool.
  • Do not pass account unless the search flow actually returned or required it for the chosen live result.
  • If the returned search result includes pagination fields such as starting_after, next_cursor, page, or page_token, keep paginating until complete when the user asked for the full dataset.
  • Never fall back to gog, curl, or raw gateway HTTP for a connected app task unless the user explicitly asks for that non-integration path.

Gmail

IntentToolDefaults / notes
List / read recent mailGMAIL_FETCH_EMAILSlabel_ids: ["INBOX"], max_results: 10
Read one messageGMAIL_FETCH_MESSAGE_BY_MESSAGE_IDmessage_id from list results
Send mailGMAIL_SEND_EMAILto, subject, body (use schema field names)

Gotcha: label_ids must be an array like ["INBOX"], never a single string.

Slack

IntentToolDefaults / notes
Send a messageSLACK_SEND_MESSAGEchannel, text
List channels / DMsSLACK_LIST_CONVERSATIONSUse schema filters if needed

Gotcha: channel is usually a channel ID (often starts with C), not the display name.

GitHub

IntentToolDefaults / notes
List repos for userGITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USERPagination per schema
Find / search pull requestsGITHUB_FIND_PULL_REQUESTSBest first path for "recent PRs" or broad PR search
List pull requests in a repoGITHUB_LIST_PULL_REQUESTSRequires owner and repo
Get one pull requestGITHUB_GET_A_PULL_REQUESTowner, repo, pull_number
Repo metadataGITHUB_GET_A_REPOSITORYowner, repo
Create issueGITHUB_CREATE_AN_ISSUEowner, repo, title, body

Notion

IntentToolDefaults / notes
SearchNOTION_SEARCHQuery string per schema
Read pageNOTION_GET_PAGEPage ID
Create pageNOTION_CREATE_PAGEParent object per schema

Google Calendar

IntentToolDefaults / notes
List calendarsGOOGLE_CALENDAR_CALENDAR_LISTOptional params per schema
Upcoming eventsGOOGLE_CALENDAR_EVENTS_LISTPrefer a clear time window when possible
List eventsGOOGLE_CALENDAR_EVENTS_LISTcalendar_id, time range (time_min / time_max as RFC3339)
Find eventGOOGLE_CALENDAR_EVENTS_LISTUse search text / date window fields supported by the schema
Create eventGOOGLE_CALENDAR_CREATE_EVENTCalendar id + event payload per schema

Gotcha: Datetimes should be RFC3339 strings.

Linear

IntentToolDefaults / notes
List issuesLINEAR_LIST_ISSUESFilters per schema
Get issueLINEAR_GET_ISSUEIssue id
Create issueLINEAR_CREATE_ISSUETeam id, title, description per schema

Stripe

IntentToolDefaults / notes
List subscriptionsSTRIPE_LIST_SUBSCRIPTIONSUse schema filters when needed; good starting point for ARR / trials / billing analysis
Search subscriptionsSTRIPE_SEARCH_SUBSCRIPTIONSPrefer when the user mentions a customer or subscription-specific filter
List customersSTRIPE_LIST_CUSTOMERSUse for customer lookup and account drill-down
List invoicesSTRIPE_LIST_INVOICESUseful for billing status and revenue workflows
List chargesSTRIPE_LIST_CHARGESGood for payment activity and charge inspection
Retrieve balanceSTRIPE_RETRIEVE_BALANCEGood for current Stripe balance snapshots

Subagent handoff

When delegating, include: which app, the exact tool name, and the argument object you intend (copy shapes from the live tool schema, composio_search_tools, or composio_resolve_tool).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.