{"id":80837,"date":"2026-08-10T18:29:20","date_gmt":"2026-08-10T12:59:20","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=80837"},"modified":"2026-09-01T15:52:53","modified_gmt":"2026-09-01T10:22:53","slug":"prompt-engineering-explained-why-your-ai-needs-a-good-brief-not-just-a-good-question","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/prompt-engineering-explained-why-your-ai-needs-a-good-brief-not-just-a-good-question\/","title":{"rendered":"The Token Diet: Cutting Waste in Cursor and ChatGPT"},"content":{"rendered":"<p><!-- Suggested Title: Working Smarter With AI Tools: Optimization Tips for Cursor and ChatGPT Suggested Tags: Cursor, ChatGPT, AI Skills, Developer Productivity, GenAI Adoption, RTK, Graphify, Plugins, Connectors --><\/p>\n<h2>Introduction<\/h2>\n<p>Every AI tool we use daily, Cursor for coding, ChatGPT for everything else, runs on the same underlying economy: tokens. Every word it sends back costs tokens, and every word already in the conversation gets re-read, and re-billed, on every reply after that. Most sessions burn through far more of that budget than they need to, without anyone noticing, until a long session suddenly feels like the agent has forgotten what you were doing five minutes ago.<\/p>\n<p>This post rounds up the practical side of both: a handful of free habits, two tools worth fifteen minutes of setup, one built-in command most people miss, and a starter map for what ChatGPT can do once you look past the chat window.<\/p>\n<h2>Body<\/h2>\n<h3>Skip the Fluff with Caveman<\/h3>\n<p>Most of what an AI agent sends back is padding, not the answer itself. <b>Caveman<\/b> is a free plugin that strips that padding out. Install it for Cursor with:<\/p>\n<p><code>npx skills add JuliusBrussee\/caveman -a cursor<\/code><\/p>\n<div id=\"attachment_81911\" style=\"width: 282px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-81911\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-81911\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2026\/09\/install-prompt-272x300.png\" alt=\"Install Prompt\" width=\"272\" height=\"300\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/09\/install-prompt-272x300.png 272w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/install-prompt-624x688.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/install-prompt.png 643w\" sizes=\"(max-width: 272px) 100vw, 272px\" \/><p id=\"caption-attachment-81911\" class=\"wp-caption-text\">Install Prompt<\/p><\/div>\n<p><i>Confirming the install prompt in PowerShell.<\/i><\/p>\n<p>Next, you&#8217;ll be asked which skill variants to install:<\/p>\n<div id=\"attachment_81914\" style=\"width: 187px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-81914\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-81914\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2026\/09\/skill-picker.png-177x300.png\" alt=\"Skill Picker\" width=\"177\" height=\"300\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/09\/skill-picker.png-177x300.png 177w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/skill-picker.png.png 571w\" sizes=\"(max-width: 177px) 100vw, 177px\" \/><p id=\"caption-attachment-81914\" class=\"wp-caption-text\">Skill Picker<\/p><\/div>\n<p><i>Choosing which Caveman skill variants to install.<\/i><\/p>\n<p>Then type <code>\/caveman<\/code> at the start of a chat to turn it on. Four intensity levels: <b>lite<\/b> (drops filler only), <b>full<\/b> (default, terse fragments), <b>ultra<\/b> (bare minimum words), and <b>wenyan<\/b> (classical Chinese style, shorter still). Start with <code>full<\/code>; drop back to <code>lite<\/code> if it feels too clipped.<\/p>\n<h3>Four More Habits That Cost Nothing<\/h3>\n<ul>\n<li><b>Describe, don&#8217;t paste.<\/b> Copying a full error log in gets re-billed on every later reply; a 40K paste across 16 turns is 640K tokens, not 40K. Say what&#8217;s happening in a sentence or two instead, and start a fresh chat per problem.<\/li>\n<li><b>Auto mode by default.<\/b> It covers roughly 90% of day-to-day coding. Save the heavier reasoning model for genuine architecture or system-design problems, not habit or vibe-coding.<\/li>\n<li><b>One chat, one workstream.<\/b> One bug, one feature, one discussion per chat. Mixing topics adds noise that costs both tokens and answer quality.<\/li>\n<li><b>Summarize before it gets long.<\/b> Past roughly ten messages, ask for a summary (or run <code>\/summarize<\/code>) and continue in a fresh chat. These habits together can cut token spend by 60-70% on their own.<\/li>\n<\/ul>\n<h3>RTK: Compress the Noise Before It Hits Context<\/h3>\n<p>Every time Cursor runs <code>git status<\/code>, <code>ls<\/code>, <code>grep<\/code>, or a test suite, the raw output floods straight into the context window. <b>RTK (Rust Token Killer)<\/b> auto-rewrites those commands and returns a compact summary instead, same signal, roughly 80% fewer tokens.<\/p>\n<div id=\"attachment_81915\" style=\"width: 224px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-81915\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-81915\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-214x300.png\" alt=\"RTK\" width=\"214\" height=\"300\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-214x300.png 214w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-731x1024.png 731w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-768x1075.png 768w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-1097x1536.png 1097w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share-624x874.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-group-share.png 1200w\" sizes=\"(max-width: 214px) 100vw, 214px\" \/><p id=\"caption-attachment-81915\" class=\"wp-caption-text\">RTK<\/p><\/div>\n<p><i>RTK at a glance: what it does and what it saves.<\/i><\/p>\n<p>Install (Windows + Cursor): download the release from <code>github.com\/rtk-ai\/rtk\/releases<\/code>, put <code>rtk.exe<\/code> on your PATH, then run:<\/p>\n<p><code>rtk init -g --agent cursor<\/code><\/p>\n<div id=\"attachment_81912\" style=\"width: 310px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-81912\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-81912\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-init-300x163.jpg\" alt=\"RTK Init\" width=\"300\" height=\"163\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-init-300x163.jpg 300w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-init-768x417.jpg 768w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-init-624x339.jpg 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-init.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-81912\" class=\"wp-caption-text\">RTK Init<\/p><\/div>\n<p><i>Output after running rtk init -g &#8211;agent cursor.<\/i><\/p>\n<p>Restart Cursor fully, then verify with <code>rtk init --show<\/code>:<\/p>\n<div id=\"attachment_81913\" style=\"width: 310px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-81913\" decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-81913\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-verify-300x152.png\" alt=\"RTK-Verify\" width=\"300\" height=\"152\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-verify-300x152.png 300w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-verify-768x388.png 768w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-verify-624x316.png 624w, \/blog\/wp-ttn-blog\/uploads\/2026\/09\/rtk-verify.png 783w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-81913\" class=\"wp-caption-text\">RTK-Verify<\/p><\/div>\n<p><i>Verifying the setup with rtk init &#8211;show.<\/i><\/p>\n<p>Typical savings: directory listings and git status both drop about 80%, test runners about 90%, roughly three times longer sessions before hitting a context limit. Check your own numbers any time with <code>rtk gain<\/code>.<\/p>\n<h3>Graphify: Give the Agent a Map, Not Just Files<\/h3>\n<p>Cursor reads files but doesn&#8217;t naturally see how they relate. <b>Graphify<\/b> parses your repo into a queryable knowledge graph, functions, callers, imports, tables, so the agent queries the graph instead of hunting file by file. On relationship questions like &#8220;what breaks if I change this schema?&#8221;, that&#8217;s roughly a 70x drop in tokens spent searching. Install with <code>uv tool install graphifyy<\/code> (double &#8220;y&#8221;), then <code>graphify install<\/code>, then <code>\/graphify .<\/code> inside Cursor. It earns its keep most on unfamiliar repos and impact analysis before a risky change.<\/p>\n<h3>Handing Off Mid-Session: \/handoff<\/h3>\n<p>When a session runs long, or someone else needs to pick up where you left off, type <code>\/handoff<\/code>. Already live enterprise-wide, no setup needed. It writes a structured document covering what&#8217;s done, what&#8217;s open, key file paths, and known risks, saved outside the project so it never ends up in git. Redact secrets first, and point to file paths or PRs rather than pasting whole diffs.<\/p>\n<h3>A Few More Cursor Habits<\/h3>\n<ul>\n<li><b>Use a .cursorignore file<\/b> to keep node_modules and build output out of the index entirely.<\/li>\n<li><b>Scope context with @-mentions<\/b> instead of letting the agent search the whole repo.<\/li>\n<li><b>Review changes in small batches<\/b> rather than letting one huge diff pile up.<\/li>\n<\/ul>\n<h3>Same Discipline, Different Tool: ChatGPT Extends Three Ways<\/h3>\n<ul>\n<li><b>Skills<\/b> &#8211; reusable workflows, installed from the desktop sidebar, via Codex CLI, or <code>npx skills add -a codex<\/code>.<\/li>\n<li><b>Plugins<\/b> &#8211; curated bundles of skills and connectors, browsed at chatgpt.com\/plugins.<\/li>\n<li><b>Apps \/ Connectors<\/b> &#8211; live integrations like SharePoint or GitHub, connected and authorized from the plugin directory.<\/li>\n<\/ul>\n<p>For our setup: admins must enable plugins in Workspace settings before anyone can use them, RBAC decides who can use what, and Business\/Enterprise data isn&#8217;t used for model training by default.<\/p>\n<h3>Skills Worth Installing Today<\/h3>\n<ul>\n<li><b>PDF<\/b> (official) &#8211; extract, merge, split, fill PDF forms. <code>npx skills add openai\/skills@pdf -a codex<\/code> or <code>@skill-installer pdf<\/code> in ChatGPT. Over 11,000 installs.<\/li>\n<li><b>OCR Document Processor<\/b> &#8211; scanned PDFs and images into structured text. <code>npx skills add dkyazzentwatwa\/chatgpt-skills@ocr-document-processor<\/code><\/li>\n<li><b>Document Converter Suite<\/b> &#8211; converts between document formats, same repo.<\/li>\n<li><b>Data Storyteller<\/b> &#8211; turns raw data into narrative summaries; good for analysts and PMs.<\/li>\n<li><b>Caveman<\/b> &#8211; the same shorter-replies skill from above also works here: <code>npx skills add JuliusBrussee\/caveman -a codex<\/code> (runs in Codex, not regular web chat).<\/li>\n<\/ul>\n<h3>Connectors and Built-Ins<\/h3>\n<p>Admin-gated connectors best suited to a Microsoft-heavy stack: <b>Microsoft 365<\/b> (SharePoint, OneDrive, Outlook, Teams), <b>GitHub<\/b>, <b>Slack<\/b>, <b>Notion<\/b>, and <b>Zapier<\/b> for cross-app automation. As of this year, Microsoft and Google connectors on Business\/Enterprise plans also support write actions, drafting an email or creating a calendar event, not just reading.<\/p>\n<p>Needing zero install or admin approval: <b>Advanced Data Analysis<\/b> (CSV\/XLSX in, Python-backed charts out), <b>ChatGPT Tasks<\/b> (scheduled prompts), <b>Search<\/b> (live web with citations), and <b>ChatGPT Agent<\/b> (multi-step browse-and-assemble work).<\/p>\n<h3>Where to Start, and What to Skip<\/h3>\n<p>Four sensible starting points: the PDF skill for document-heavy work, OCR for scanned forms, the Microsoft 365 connector to stop re-uploading the same file into every chat, and Advanced Data Analysis as the zero-install quick win. Not worth chasing for a bank setting: niche tools like crypto technical-analysis skills, creative tools like Canva or Runway-style MCPs, and third-party MCP connectors generally, which are usually blocked unless IT has explicitly whitelisted them.<\/p>\n<h3>Quick Reference<\/h3>\n<ul>\n<li><b>Cursor:<\/b> Caveman for shorter replies \u00b7 describe don&#8217;t paste \u00b7 Auto mode by default \u00b7 one chat per workstream \u00b7 summarize before long \u00b7 RTK to compress shell noise \u00b7 Graphify for repo structure \u00b7 \/handoff to hand off cleanly<\/li>\n<li><b>ChatGPT:<\/b> PDF, OCR, and Data Storyteller skills to install now \u00b7 Microsoft 365 and GitHub connectors once admin-enabled \u00b7 Advanced Data Analysis and Search need nothing at all<\/li>\n<\/ul>\n<p>Same underlying advice either way: start with whatever&#8217;s free and solves something you&#8217;re doing manually this week, then layer in the tools that need setup once you&#8217;ve felt the difference.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Every AI tool we use daily, Cursor for coding, ChatGPT for everything else, runs on the same underlying economy: tokens. Every word it sends back costs tokens, and every word already in the conversation gets re-read, and re-billed, on every reply after that. Most sessions burn through far more of that budget than they [&hellip;]<\/p>\n","protected":false},"author":2282,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0},"categories":[5867],"tags":[4782,8753,6025,8754,5075,7433,8756,5918,6925,4935,693,6841,8758,8757,8755],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/80837"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/2282"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=80837"}],"version-history":[{"count":6,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/80837\/revisions"}],"predecessor-version":[{"id":81918,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/80837\/revisions\/81918"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=80837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=80837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=80837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}