* chore(pstack): bump plugin version to 0.15.0
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): sync playbook count and table to twenty-three
The tree ships 23 playbooks, and the README table omitted opening-a-pr.
Add the row and change the two README counts and the guide's front-door
count from twenty-two to twenty-three.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): fix principle count in guide index and 08 heading
The guide index and the 08 heading still said 21 while the tree and the
08 body list 23 principles.
Co-authored-by: lauren <poteto@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Punctuation and single-word swaps only. No sentence added or deleted, no
restructuring, no new text.
- 65 markdown files under pstack/skills. 220 changed lines, every changed
line pairs with one base line.
- 272 rewrites. 239 semicolons (224 became a period plus a capital, 15 became
a comma). 29 connector colons (28 became a period, 1 became a comma).
1 em dash before a list became a colon. 3 word swaps (`public surface` and
`smaller surface area` to `API`, `echo the scaffolding` to `echo the
structure`).
- Label colons, colons before a list or an example, template strings such as
`file:line`, and the literal `TL;DR` stay.
- Heading, numbered-step, fenced-block, and line counts are unchanged in
every file. No frontmatter, code span, or fenced block changes.
- o200k tokens of the pstack/skills markdown tree 87,747 before, 87,766
after (+19), because a period plus a capital tokenizes one token longer
than a semicolon in a few places.
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* docs(pstack): port the September skill audit cuts from the internal tree
Port of the 2026-09-01 to 2026-09-07 audit program on the internal skill
tree. Deletion-only density cuts and the mannered prose pass applied
wherever the OSS sentence is the same sentence. Two new principle leaves,
Attack the Premise and Test Behavior Not Implementation, with their index
lines. Critique mode removed from how and its callers. PR-body briefing
rules in opening-a-pr and technical-writing. Model pins stay on the
setup-pstack role mechanism. No internal path, slug, or name added.
* docs(pstack): restore the autopilot chooser rule that multi-phase-plan cites
multi-phase-plan step 4 picks between autopilot-full and autopilot-stack
"per the rule at the end of playbooks/autopilot-stack.md". The density
pass removed that paragraph and left the pointer dangling. Restore the
paragraph verbatim. The chooser is a rule, not a restatement, and no
other file states it.
Addresses the Bugbot finding on PR #329.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Plugin hooks do not run from the plugin directory, so ./hooks/... paths
fail with exit 127 from any other cwd. Use bash "${CURSOR_PLUGIN_ROOT}/hooks/..."
like continual-learning, which indexes and runs cleanly. Also scopes the
briefing's transcript_path line to the bound conversation, completing the
one-off-consult fix from #314.
Adds an Advisor plugin: the main model consults a stronger model before
major decisions, when stuck on an error, and before declaring a task done.
The advisor gets a full briefing plus the conversation transcript path,
returns a verdict with guidance, and the main model keeps doing the work.
The default advisor is the latest Grok (Grok 4.6) at its highest reasoning
effort; /advisor <model> accepts any model available to subagents.
- skill `advisor`: /advisor [model|off|status|ask ...|nudge on|off],
checkpoint protocol, briefing template, usable as a Custom Mode
- agent `advisor-subagent`: read-only, pinned to grok-4.6[effort=xhigh]
- hooks: track edits since the last consult, log consults to
.cursor/advisor/log.md, nudge a pre-completion consult once per batch
of edits; state is bound to the conversation that enabled it
- registered in marketplace.json and the root README
* feat(pstack): reference plugin logo and bump to 0.14.7
Add "logo": "assets/logo.png" to the pstack manifest, matching the
relative-path style used by google-calendar and thermos, and bump the
patch version 0.14.6 -> 0.14.7.
The pstack/assets/logo.png file itself is added in a follow-up commit;
the image attachment did not reach the agent VM in this run.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* feat(pstack): add plugin logo.png
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
New plugin, separate from the existing X plugin, pointing at X's hosted
ads MCP server (https://ads-api.x.com/mcp). Auth is per protected
resource: ads-api.x.com advertises its own OAuth metadata and scopes
(ads.read, ads.write), so it cannot share the X plugin's authorization
even though it reuses the same OAuth client ID.
Co-authored-by: Cursor <cursoragent@cursor.com>
Congrats only on just-connected, $0 remaining wins over leftover free_balance, and a missing get_usage_credits tool is an outage not account-not-ready.
Co-authored-by: Cursor <cursoragent@cursor.com>
On connect, fetch credits, congratulate without a gift amount, and always state remaining balance. Treat connected-but-no-tools as account-not-ready, 503s as an X outage, and never sign in via browser or Bearer tokens.
Co-authored-by: Cursor <cursoragent@cursor.com>
Both take a user-supplied server URL rather than a fixed endpoint, since
neither vendor publishes a shared one. Deferring them so the rest of the batch
can land on its own; the research and README copy are easy to restore when we
pick them back up.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Brevo runs a second MCP at developers.brevo.com/_mcp/server for documentation
search, which is easy to mistake for the product server. Craft binds a
connection to a single space, so multi-space users need one entry per space.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Workable's help centre says its MCP OAuth "uses a pre-approved list of redirect
URIs" and that unlisted clients fail with a redirect URI mismatch, naming
ChatGPT Enterprise and LM Studio as examples. Cursor is named as a supported
client in Workable's own prerequisites and is not among the examples that fail,
so this is not a blocker — but Cursor's callbacks are fixed, so list both in the
README to make the support request a single step if a user does hit it.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Coda became Superhuman Docs on 2026-07-08 and the MCP server moved with it.
Superhuman's July changelog is explicit that "the old coda.io/apis/mcp address
keeps working for existing customers for a few more months, but new customers
should use the new one" — and a marketplace listing produces new customers by
definition, so shipping coda.io would hand every installer a URL on a clock.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
The Ahrefs homepage pointed at docs.ahrefs.com/mcp/docs/introduction, a path
I could not confirm resolves — Ahrefs' own archived repo and third-party
indexes cite three different intro URLs. Point at ahrefs.com/mcp and the help
centre article instead, both of which are live, and spell out the MCP-key
header as an alternative to OAuth. Add Similarweb's Cursor integration guide.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Xero publishes no hosted MCP endpoint; its official server is the `@xeroapi/xero-mcp-server` npm package running locally over stdio with Custom Connection credentials, and Xero's FAQ records Cursor as one of the two clients it tested against.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
ActiveCampaign generates a Remote MCP URL per account rather than publishing a shared endpoint, so the plugin takes the URL as a variable the way the Salesforce plugin does.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Zoho MCP has no shared endpoint — each customer builds a server in the Zoho MCP console and gets a region-specific URL with an embedded API key, so the plugin takes the URL as a variable the way the Salesforce plugin does.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Similarweb's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Readwise ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Mem ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Craft ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Fathom ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Otter.ai ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Fireflies ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Guru ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Coda ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Wrike's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Smartsheet's hosted MCP server speaks Streamable HTTP but authenticates with a user-supplied token rather than OAuth, so the plugin declares a variable and forwards it as an HTTP header.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>
Calendly ships an official remote MCP server over Streamable HTTP with per-user OAuth, so the plugin is a URL-only mcp.json with no variables block.
Co-authored-by: Roshan Sadanani <roshansada@users.noreply.github.com>