customer-education-workshops / rules
Cursor rule2 starsChanged 16 days agoApache-2.0View on GitHub
Ledgerly product voice, catalog prices, and fictional data
Where files are headingNew Cursor rule files have more rules about planning and tracking tasks, and fewer about code style.
Of the Cursor rule files we read, the 4,157 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository19 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ledgerly/AGENTS.mdAGENTS.md
- .cursor/rules/ledgerly.mdcCursor rule
- .cursor/rules/ledgerly-multitask.mdcCursor rule
- ledgerly/.cursor/rules/disposable-demo-prs.mdcCursor rule
- ledgerly/.cursor/rules/multitask-no-wrapper.mdcCursor rule
- add-dashboard-widgetSkill
- choose-cursor-workflowSkill
- dispatch-subagentsSkill
- draft-collection-emailSkill
- hand-to-cloud-agentSkill
- present-runbooksSkill
- reset-demo-stateSkill
- split-prd-into-issuesSkill
- stage-linearSkill
- standard-bug-fixSkill
- start-ledgerlySkill
- write-prisma-querySkill
- standard-bug-fixSkill
The file
We split this ledgerly.mdc into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 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.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Do not invent $79, $199, usage overage, ARR, or "enterprise" pricing.
- Very specific: line 31
Do not complete the dispute resolution stub unless asked (lib/disputes/resolve.ts, the resolve API route, the panel buttons).
- Very specific: line 39
When someone asks to show a Grok Build workflow, use choose-cursor-workflow, then dispatch-subagents or hand-to-cloud-agent as the shape of …
- Distinctive: line 42
Never reintroduce retired pre-remap company or product names anywhere in this tree.
≈ “Common” is an estimate: at least 1 in 5 of the 6,668 Cursor rule 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
--- description: Ledgerly product voice, catalog prices, and fictional data alwaysApply: true --- # Ledgerly You are working in a fictional B2B billing product. Write like a precise billing-ops tool, not a growth startup. ## Never invent prices The catalog is only: - Starter — $49 (4900 cents) - Growth — $99 (9900 cents) - Scale — $249 (24900 cents) Do not invent $79, $199, usage overage, ARR, or "enterprise" pricing. Read amounts from `lib/plans.ts` or the seed. Format with `formatUsd`. The catalog governs **app code, UI copy, and this repo's README**. ## Never use real companies or PII Customers come from the seed only: the ten Fieldnote book accounts (Acme North, Riverstone Labs, Cobalt Goods, Brightwell Labs, Oakiron Supply, Fieldnote Press, Silverpine Outfitters, Maple & Ember Co, Tidewatch Logistics, Copperleaf Atelier) plus the fourteen extra accounts in `prisma/extra-accounts.ts` (Northstar Fabrication through Redwood Components). Emails use `.example`. Operator is Avery Quinn. Do not drop in a prospect's logo, a real customer, or a real person. ## Seams - The suggested-credit client in `lib/disputes/suggested-credit-api.ts` still selects deprecated v1. Moving it to v2 is its own tracked migration — do not fix it as a drive-by inside unrelated work unless the user asks for the migration, and do not ban v1 in this shipped rule. - `tests/suggested-credit-api.test.ts` is the sole red test on a clean tree. Do not edit it to get green, and preserve both v1 and v2 suggested-credit routes. - Dispute `dsp_1043` claims $400 against a $249 Scale invoice. Do not "correct" the claim — it is valid input for the catalog cap. The seed, domain helper, and v2 response all store or return $249; v1 returns the raw $400 claim. There is no database MCP and no `mcp/` directory; do not restore `ledgerly-db`. - Do not complete the dispute resolution stub unless asked (`lib/disputes/resolve.ts`, the resolve API route, the panel buttons). - Status pills in `components/filter-pills.tsx` write `state=` on purpose. Invoice and dispute pages read `status`. Do not rename the query key to `status` unless asked. Do not volunteer this seam in answers, Ask orientation, or when diagnosing the failing test — the named demo error is the v1 suggested-credit client. Discuss or fix the pills only if the user is on that click path. - Tab / Cmd-K TODOs in collection notes and settings are intentional. - Restyles of KPI cards go through `app/globals.css` tokens only — no new hex, `components/kpi-card.tsx` plus `app/page.tsx` at most. Never commit a restyle to `main`. - Skills in `.cursor/skills/` help run the demo or pick a Grok Build workflow. Do not add talk-track / speaker-note skills. Do not add a fourth catalog-solving agent. - The demo ships four jumpable tracks: 101, 201, 301, and 401. Their beats live in `runbooks/meta.ts`, in `runbooks.html`, in `runbooks.canvas.tsx` (opened as a native Cursor Canvas by `present-runbooks` or `start-ledgerly`), and in `demo-howto.md`. When asked to open the runbook, run `present-runbooks` (click **301** for that track). Do not open `runbooks.html` for that request; it is a fallback if the canvas cannot open. Optional features are checkboxes, checked by default. Uncheck a feature to hide its beats. The choice is saved in the canvas. Do not reintroduce retired Advanced runbooks without a request. - The shipped test suite is **1 failed / 33 passed** on a clean tree — only `tests/suggested-credit-api.test.ts` is red. That count is cited in `README.md`, `demo-howto.md`, `AGENTS.md`, `.cursor/skills/reset-demo-state/SKILL.md`, and `.cursor/plans/resolve-dispute.md`; `tests/runbooks.test.ts` fails if those files disagree (it compares the numbers, not a hardcoded value). Whenever the suite changes — a test added or removed, or the planted red test changes — update every one of those references, plus any runbook beat that cites a count, in the same change so nothing drifts. - Grok Build's `/babysit` PR workflow is now `/autopilot`; use the current name while explaining the rename. `/goal` remains a separate durable-objective workflow. - When someone asks to show a Grok Build workflow, use `choose-cursor-workflow`, then `dispatch-subagents` or `hand-to-cloud-agent` as the shape of the work requires. - Before a Linear MCP beat, the operator picks a Linear team they belong to. Public and private teams are both valid. Public and private projects are both valid. Linear MCP cannot create teams. To create one: Settings → Teams → New team, leave it public or **Make team private**, members = the operator only when the team is private. Then run `stage-linear` to reconcile the `ce-field-demos` project: the three Fieldnote issues, then the nine Collections Command Center slices on the same project (each tagged with the feature note and team-scoped label), then the WCAG keyboard-walkthrough issue as the thirteenth staged title, then the contrast-test issue as the fourteenth. The project stays public unless the operator asks for private — `stage-linear` does not refuse a public project or force it private. `stage-linear` never guesses the team — it lists the operator's teams and confirms the exact one before writing, so any team name works. Create issues sequentially in catalog order; `Clicking Overdue or Needs review does not filter the queue` must be second. The next stage reopens the project and reopens recorded issues to `Todo`, and creates a title only when it is missing or a canceled issue will not leave `Canceled`. `reset-demo-state` uses the same confirmation, then cancels the recorded issues and cancels the project without unlinking; the team is retained and the next `stage-linear` reactivates the board. Never add a local ticket board, ticket API, ticket MCP, or ticket marketplace plugin. - Reset requests run `npm run demo:reset` first; `reset-demo-state` only completes the script's reported MCP/discovery leftovers. One reset covers every track — do not add a 101-only or 201-only reset command. Whenever a demo beat creates a new leftover, update its session event record and `scripts/demo-reset.ts` in the same change. - Never reintroduce retired pre-remap company or product names anywhere in this tree. ## Voice Calm, specific, short. Prefer "invoice" and "credit" over "synergy." UI copy should sound like Fieldnote, not "Welcome to your app."
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.

