pd-core
Skill0 starsChanged 29 days agoMITView on GitHub
Shared rules for all pd-* Pipedrive skills (cached account context, cheapest queries, compact output, safe writes, output routing). Load before any other pd-* skill does Pipedrive work.
In this repository19 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- pd-accessSkill
- pd-account-healthSkill
- pd-advisorSkill
- pd-askSkill
- pd-crm-architectSkill
- pd-data-hygieneSkill
- pd-follow-upSkill
- pd-icp-discoverySkill
- pd-industrySkill
- pd-lead-qualifierSkill
- pd-morning-briefSkill
- pd-pipeline-reviewSkill
- pd-playbook-minerSkill
- pd-premortemSkill
- pd-setupSkill
- pd-thread-mapSkill
- pd-win-backSkill
- pd-win-lossSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 7 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Look for .pipedrive/context.json (written by pd-setup).
- Very specific: line 16
If missing, stale, or no filesystem (claude.ai chat): call getAccountContext once per conversation and reuse the result.
- Distinctive: line 18
Never invent numbers, names or results.
- Very specific: line 26
Ask only for needed custom fields (custom_fields, max 15) and include_fields.
- Distinctive: line 34
Never echo raw JSON. Never list more than 20 rows in chat.
- Distinctive: line 41
Search first to avoid duplicates.
- Distinctive: line 43
Wait for an explicit yes. One yes covers the shown batch only.
- Very specific: line 44
Write. Prefix every note with [Claude].
- Distinctive: line 47
No deletes exist in the connector.
- Very specific: line 55
If .pipedrive/config.json has industry, load only pd-industry/references/<industry>.md when the skill needs vocabulary, stages, …
- Distinctive: line 60
Do not copy sensitive personal data (health, government IDs, bank details) into notes, files or messages.
- Distinctive: line 61
Never put CRM data in URLs.
≈ “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.
Files
pd-core
Rules every pd-* skill follows. Short on purpose; details in references/.
1. Context first, once
- Look for
.pipedrive/context.json(written by pd-setup). If present and under 7 days old, use it for pipeline, stage and user IDs. Custom fields and stage order live in.pipedrive/account_context.json; pass that file to scripts that take--context. - If missing, stale, or no filesystem (claude.ai chat): call
getAccountContextonce per conversation and reuse the result. Never call it twice in one conversation. - A "field not found" or unknown stage error means the cache is stale: refresh once, then retry.
- Never invent numbers, names or results. If an answer needs data the CRM does not have, say it is missing.
- Custom fields are hash keys. Map names to keys with
.pipedrive/field-map.jsonor the context. Never guess a key. Option labels come from the account context (optionsper field) and are cached infield-map.json; when showing option values, addinclude_option_labels=truetogetDeals/getPersons. The "Selectable options in fields" export is a fallback merged by pd-setup. Match by API key, never by field name. Skip fields withis_writable=falsewhen writing.
2. Cheapest query wins
Load references/query-playbook.md when planning anything beyond a single lookup. Short version:
- Have an ID? Use
getDeal/getPerson/getOrganization. Search is the most expensive call. - Lists: always filter (
owner_id,pipeline_id,stage_id,status,updated_since) and setlimit. - Ask only for needed custom fields (
custom_fields, max 15) andinclude_fields. - Pull notes only for the few deals that need them, never for a whole pipeline.
- Cap each run at about 15 Pipedrive calls. Need more? Tell the user and narrow the scope (one pipeline, one rep, last 30 days).
- Large dataset (size check shows more than one batch): always run in batches, with a plan, partial results and a stop after each batch. Load
references/batches.md.
3. Compact output
- One line per record:
id | title | stage | value | owner | idle days | flag. - Never echo raw JSON. Never list more than 20 rows in chat; offer a file for the rest.
- Totals, grouping, date math over more than about 20 records: use
scripts/pd_digest.pywhen a shell is available (see header of the script). Otherwise compute carefully and show the method. - Reply in the user's language.
4. Safe writes
Load references/safe-write.md before any add/update call. Short version:
- Search first to avoid duplicates.
- Show the exact change set (record, field, old -> new).
- Wait for an explicit yes. One yes covers the shown batch only.
- Write. Prefix every note with
[Claude]. - Report what was written with record IDs.
No deletes exist in the connector. Never try to work around that.
5. Output routing
Load references/output-routing.md when a skill produces something to keep or share. Read .pipedrive/config.json for user preferences. Optional connector missing: fall back, never fail. Posting to Slack/Teams requires the user to have opted in (config or explicit request). Email drafts are allowed when the skill's route in config includes them (default for pd-follow-up and pd-win-back); drafts are never sent.
6. Industry
If .pipedrive/config.json has industry, load only pd-industry/references/<industry>.md when the skill needs vocabulary, stages, qualification or signals.
7. Privacy
- Pipedrive access equals the user's own permissions plus the connector's granted permissions. Read
.pipedrive/access.jsonif present (written by pd-access). Coveragepartialorown_only: say so in the first line of any team report. Never present partial coverage as team-wide. - Do not copy sensitive personal data (health, government IDs, bank details) into notes, files or messages.
- Never put CRM data in URLs.
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
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.

