agentleFS
getpapigetpapi/papi/skills/papi-integration-recipe/SKILL.md

papi-integration-recipe

Skill11 starsChanged 3 months agoMITView on GitHub

Use when the user wants to feed data from a connected MCP tool (Sentry, Linear, GitHub, Slack, or any other) into PAPI. Demonstrates the "host agent = integration bus" pattern: read from the external tool, map to PAPI shape, write via PAPI tool. PAPI never owns connectors — the user's AI session passes data between services.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    Use actual connected tools and current schemas.

    line 100
  2. Very specific:

    Keep the PAPI binding fixed.

    line 102
  3. Distinctive:

    Read access does not authorize sending messages or changing the source system.

    line 103
  4. Distinctive:

    Run background sync workers

    line 110

≈ “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

Integration Recipe — PAPI as system of record

Your AI session is the integration bus. Any MCP tool you have connected — Sentry, Linear, GitHub, Slack — can push data into PAPI without additional infrastructure.

1. Read from connected tool  →  2. Map to PAPI shape  →  3. Write via PAPI tool

PAPI handles auth for PAPI. The other tool handles its own auth. The agent session passes data between them. No token vaults, no sync workers, no egress.


Recipe: Sentry error → PAPI idea

Trigger: Production error needs a backlog task before context is lost.

# Step 1 — Read from Sentry
mcp__sentry__list_issues(project="your-project", status="unresolved", limit=5)

# Step 2 — Pick an issue, extract: title, fingerprint, URL

# Step 3 — Write to PAPI
mcp__papi__idea(
  text="Fix: <error title>",
  notes="Production error. Fingerprint: <id>.\nReference: <sentry-issue-url>",
  priority="P1 High",
  module="core"
)

Recipe: Linear issue → PAPI board_edit

Trigger: Sync Linear issue state into an existing PAPI task.

# Step 1 — Read from Linear
mcp__linear__get_issue(id="LIN-123")

# Step 2 — Resolve LIN-123 to PAPI task_id (by notes lookup or title match)

# Step 3 — Update PAPI task
mcp__papi__board_edit(
  task_id="task-NNN",
  notes="Linear LIN-123 — <status>. <description>."
)

Recipe: GitHub issue → PAPI idea

Trigger: New bug filed on GitHub → triage into PAPI backlog.

# Step 1 — Read from GitHub
mcp__github__list_issues(repo="org/repo", state="open", labels=["bug"])

# Step 2 — For each issue: extract number, title, URL

# Step 3 — Write to PAPI
mcp__papi__idea(
  text="GH#<number>: <issue title>",
  notes="Filed on GitHub.\nReference: <issue-url>",
  priority="P2 Medium"
)

Pattern template — works for any source

StepWhat to do
Readmcp__<tool>__<read_fn>(params)
MapExtract: title, reference URL, priority from source
Writemcp__papi__idea(text, notes) for new items; mcp__papi__board_edit(task_id, ...) for updates

idea vs board_edit:

  • New data from external source → idea (creates backlog task for triage)
  • Updating an existing PAPI task with external context → board_edit

Always include a Reference: line in notes pointing to the source URL or ID. The planner reads this line and surfaces it in BUILD HANDOFFs.

Use actual connected tools and current schemas; external names above are examples, not a promise they exist. Inspect source references before repeating a write. Keep the PAPI binding fixed; another project requires explicit target authorization. Read access does not authorize sending messages or changing the source system.


What PAPI never does in this pattern

  • Store tokens for third-party services
  • Run background sync workers
  • Own webhook receivers
  • Make outbound calls to external APIs at request time

The agent session is the integration bus by design — keeps PAPI's security surface minimal, egress zero, and the user in control of every write.

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.