Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/perniemann/pncore/agents-mdgit clone --depth 1 https://github.com/perniemann/pnCoreWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/perniemann/pncore/agents-md)<a href="https://agentmods.dev/instructions/perniemann/pncore/agents-md"><img src="https://agentmods.dev/badge/instructions/perniemann/pncore/agents-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01995 | $0.01995 |
| Opus 5 | $0.00997 | $0.00997 |
| Sonnet 5 | $0.00399 | $0.00399 |
| Haiku 4.5 | $0.00199 | $0.00199 |
Grade A, and why
pnCore AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 44 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
Persistent memory for this workspace. Updated from transcript deltas by pn-continual-learning.
Learned User Preferences
- Never add trailer "Co-authored-by: Cursor [email protected]" or any "Made-with: Cursor" (or similar IDE) line to commits
- Contributors: run
git config core.hooksPath .githookssoprepare-commit-msgstrips those lines automatically (seedocs/commits.md); workspace rule.cursor/rules/pn-no-cursor-commit-trailers.mdc(alwaysApply) reduces agent-injected trailers; canonical copy ships as MCP rulepn-no-cursor-commit-trailersfor other projects (pn-setup / pn-new) - Always terminate running servers before starting a new one
- Avoid hedging: "possibly", "should", "could", "might" are not acceptable; use definitive statements
- Prefer plans before implementation; implement plans as specified without editing the plan file
- Commit when work is done; push only when the user explicitly asks
- When user asks for verification, confirm everything works before claiming completion
- On Windows PowerShell: use
;for command chaining (not&&); useGet-ChildItem -Force | Select-Object Mode,Name,Lengthinstead ofls -la; useTest-Path+Get-Item .FullNameto verify paths; useWhere-Objectand-match(case-insensitive by default) for filtering. Do not blindly translate Unix shell snippets — check the cmdlet first - When a
/pn-*command is invoked but the user's actual request does not match that command's contract, state the mismatch in plain prose in the first response ("You invoked/Xbut the ask isY; I'll re-route toZunless you'd rather I runXas written") before re-routing. Silent re-routing is aRULE-MISS:acknowledge-command-mismatchperpn-build-gate§ Command-contract acknowledgement; the[pn-command] ▲start marker still applies during the re-route. Canonical rule:pn-build-gate§ Command-contract acknowledgement
Learned Workspace Facts
- pnCore: plugin and MCP for Cursor IDE (orchestration, skills, agents, commands, rules)
- Canonical content source: packages/pn-core-mcp/content/; run npm run sync:content to update plugin
- Plugin at plugins/pnCore/; MCP server at packages/pn-core-mcp/
- Octocode used as companion MCP for code research (prior-art, tracing, LSP tools)
- Open repo root for plugin + MCP; open plugins/pnCore for plugin-only workspace
- npm run validate runs Prettier format:check first, then all plugin/workflow validators (run
npm run formatto fix TS/scripts style before commit) npm run test:fullmatches CI Sync MCP content (lint,sync:content,build:mcp, test coverage, script tests, and fullvalidate); use it before push when you change the MCP package, root scripts, or content sync- install-to-project.mjs: when run from repo root, writes root manifest pointing at plugins/pnCore
- Context handoff manifest: docs/refs/context-index.json (+ schema, optional
artifactsarray since 1.3.0); npm run check:context-index; npm run check:artifact-status; npm run check:ac-traceability (in validate); see docs/refs/README.md - Cold-session packet: MCP tool
project_context(modes operator|agent) — call at session start perpn-mcp-proactive; do not rely on Cursor sessionStart inject (optional fail-open canary only) - Hard HITL MCP: approval_checkpoint tool + PNCORE_APPROVAL_TOKEN in MCP server env (see packages/pn-core-mcp/README.md)
- Current date for dated output: MCP
healthreturnscalendarDateUtcandtimestampUtc(server clock, UTC). Best-practices reference:pn-core://reference/best-practices.md. Rulepn-current-date(always apply) encodes this for the plugin - House UI context for this repo:
.pncore-design.mdat the workspace root; global aesthetics stance inCLAUDE.md. Aesthetics checklist resource:pn-core://reference/aesthetics-baseline.md. Rulepn-aesthetics-baseline(always apply) ships with the plugin for downstream projects engines.node >= 22(Node 20 EOL April 2026);.nvmrc= 22; CI uses Node 22list_skillswithout filters returns category index (total + counts + top-3 per category), not the full skill list; usecategory,filter, orlimitto drill in;limit=0for full list- Knowledge distribution: see
CONTRIBUTING.mdfor the workspace map; architecture decisions live indocs/adr/NNNN-*.md(Nygard format). Bus-factor mitigation: every non-obvious decision gets an ADR - Skill/rule rot guard: ADR-0002 sets a quarterly audit cadence (Lehman's Laws). Outputs land in
docs/refs/audit-YYYY-Qn.md. Pairs withpn-continual-learning(transcript-side) for full-loop maintenance - Root
.gitignoreentry.pncore/*only ignores the repository root.pncore/tree; if the MCP or tests use CWDpackages/pn-core-mcp/, addpackages/pn-core-mcp/.pncore/(or a broader**/.pncore/*policy) so local logs and test state are not committed by mistake - Validators that scan
packages/pn-core-mcp/src/index.tsfor tool registration must use the real helper name: tools are registered withregTool((notserver.tool(), so scripts such asvalidate-workflow-enums.mjsmust search for the same string or CI can fail with “missing tool block” - MCP tool responses use compact JSON (no pretty-print); Paperclip workflow hint in terminal workflow steps is conditional on
PAPERCLIP_API_URL+PAPERCLIP_API_KEY - Session retros: invoke
/pn-retro(skillpn-session-retroundercontent/skills/learning/) for blameless session retrospectives; reports land underdocs/refs/retros/and feed the quarterly audit per ADR-0002; v1 is manual-only (no stop hook, no auto-diffs), v2 exit criteria documented in the SKILL's## Deferred to v2section - Business-strategy market evidence: when
host_websearch/host_webfetchis the only market-evidence source (no FRED, Alpha Vantage, or Tavily MCP companion bound), spot-check at least 3 random citations before locking the verdict — theauditoption atpn-business-strategy-orchestrationstep 7 exists for exactly this case and is now pre-selected as the default in that configuration; treat it as mandatory, not optional /pn-strategyand anyworkflow_stepcall use camelCase params:workflowTypeandstep(notworkflow_type/workflow_step); the workflow-type enum is defined atpackages/pn-core-mcp/src/index.tsworkflowTypeEnumand includesbusiness_strategy; iflist_workflow_typeson a downstream MCP install does not list it, the install is stale — fall back to the orchestration-skill-only path documented incommands/pn-strategy.md- Consumer-project gating (ADR-0015): MCP gates
workflow_steponly — not git or the Merge button. Portable trailer hooks:pn-core://reference/consumer-gating.md/scripts/install-consumer-gating.mjs - pnCore uses three distinct "tier" concepts — do not conflate them: (1) delivery tier = MVP/Full (see
pn-core://reference/delivery-tier-criteria.md), drives verifier strictness in pn-deliver; (2) context tier = 1–4 reading depth (seepn-context-engineering), drives how much code/docs to load; (3) model tier = fast/standard/premium/premium_thinking/long_horizon (seepackages/pn-core-mcp/src/model-tiers.ts), drives LLM choice per workflow step and loop orchestration (suggest_model_tierroleorchestrator→ long_horizon / Fable 5.1). Loop patterns:pn-core://reference/loop-orchestration-guide.mdandpn-core://reference/loop-catalog/README.md. Thesuggest_model_tierMCP tool andWorkflowStepResult.suggestedModelTierfield surface the model tier; override viaPNCORE_FEATURESkeysmodelTierOverrides(per-step) andtierAliases(global remap, e.g.{"premium_thinking":"premium"}or{"long_horizon":"premium"}when Fable is unavailable)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines · +55 tokens per session 711822c979c0
- 3d ago First seen · 43 lines · 1,940 tokens per session scan A d50175577a64
pnCore AGENTS.md is an instructions file published in the GitHub repository perniemann/pnCore (0 stars, last pushed yesterday), licensed MIT. It adds 1,995 tokens to every session, about $0.0100 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
cli-continues typescript.instructions.md
Instructions for yigitkonur/cli-continues, covering typescript review guidelines, type safety, discriminated unions, async patterns and import rules.
llm-ide-rules react.instructions.md
Instructions for iloveitaly/llm-ide-rules, covering react, mock data, react hook form and styling.
llm-ide-rules typescript.instructions.md
Instructions for iloveitaly/llm-ide-rules, covering typescript and dates & times.
llm-ide-rules python-route-tests.instructions.md
Instructions for iloveitaly/llm-ide-rules, a project described as: Centralized LLM prompt instructions for Copilot and Cursor, including scripts to convert and sync rules for Python, React, Shell, and TypeScript. Designed for rapid reuse and contribution across projects.
no-vibe CLAUDE.md
Instructions for rizukirr/no-vibe, covering claude.md, repo purpose, verification, architecture — parallel surfaces, one behavior and two data layers (easy to confuse).
python-docs-mcp-server CLAUDE.md
Claude Code instructions for ayhammouda/python-docs-mcp-server: Use AGENTS.md as the canonical repository guidance.