@jeremylongshore/procore-observability
B"Procore observability \u2014 construction management platform integration.\n\
Install
agr install @jeremylongshore/procore-observability --target claudeWrites 1 file into .claude/skills/, pinned to git-25a8fb7a.
- .claude/skills/procore-observability/SKILL.md
Document
name: procore-observability
description: "Procore observability \u2014 construction management platform integration.\n
Use when working with Procore API for project management, RFIs, or submittals.\n
Trigger with phrases like "procore observability", "procore-observability".\n"
allowed-tools: Read, Write, Edit, Bash(npm:), Bash(pip:), Bash(curl:*), Grep
version: 1.5.0
license: MIT
author: Jeremy Longshore jeremy@intentsolutions.io
tags:
- saas
- procore
- construction
- project-management compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
Procore Observability
Overview
Implementation patterns for Procore observability using the REST API with OAuth2 authentication.
Prerequisites
- Completed
procore-install-authsetup
Instructions
Step 1: API Call Pattern
import os, requests
token_resp = requests.post("https://login.procore.com/oauth/token", data={
"grant_type": "client_credentials",
"client_id": os.environ["PROCORE_CLIENT_ID"],
"client_secret": os.environ["PROCORE_CLIENT_SECRET"],
})
access_token = token_resp.json()["access_token"]
headers = {"Authorization": f"Bearer {access_token}"}
companies = requests.get("https://api.procore.com/rest/v1.0/companies", headers=headers)
print(f"Companies: {len(companies.json())}")
Output
- Procore API integration for observability
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Expired token | Re-authenticate |
| 429 Rate Limited | Too many requests | Implement backoff |
| 403 Forbidden | Insufficient permissions | Check project role |
Resources
Next Steps
See related Procore skills for more workflows.
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- warnPrompt injection2 hit(s): credential_access
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- line 36 — References credentials, tokens, or key material
- line 37 — References credentials, tokens, or key material
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-25a8fb7a6bbd2026-07-31