suggestImprovement
Suggest an improvement
Suggest an improvement to Sasha. Feature ideas are wanted: if a tool would have made your task easier, say so. File one call per distinct issue, at the moment you hit it. Do not batch a session into one report. Do not use this for a knowledge-content problem that a write tool can fix. Before you file severity "blocking", corroborate the mechanism against document bytes or tool results, not memory. A failed filing never blocks your main task; try once more near the end if it still matters. Returns an id. Call checkSuggestion with that id in a later session to see what happened.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
kind | enum (feature, bug, friction, docs) | required | feature | bug | friction | docs |
summary | string | required | One line, 10 to 300 characters |
detail | string | optional | What you tried, what happened, what you expected. At most 2 KiB. |
toolName | string | optional | The tool this is about, if any, named exactly as this server publishes it (for example app__time_sheet_entry__entries__create). Your client's own prefix is accepted. |
project | string | optional | The project this is about, if any |
severity | enum (blocking, major, minor) | optional | blocking | major | minor |
Scopes
None. Any authenticated connection can call it.
Annotations
- Read only: no
- Destructive: no
When to use
Call suggestImprovement at the moment a tool, a limit or a document layout gets in your way. Feature ideas are wanted: if a tool would have made your task easier, say so.
It needs no scope. Any authenticated connection can call it, including a member's.
- File one call for each distinct issue. Do not put a whole session into one report.
kindisfeature,bug,frictionordocs.summaryis one line of 10 to 300 characters.detailis optional, at most 2 KiB: what you tried, what happened, what you expected.toolNameis optional. Name the tool as this server publishes it, for examplereadDoc. A name with your client's own prefix is also accepted. It must start with a letter, hold only letters, digits,_and-, and have at most 128 characters.projectis optional, at most 200 characters. It is kept only when this person can see that project. If not, the suggestion is still recorded, without the project.severityis optional:blocking,majororminor. Before you fileblocking, check the cause against document text or tool results, not memory.- Do not use this tool for a problem in the knowledge content that a write tool can fix.
- A failed filing never blocks your main task. If it still matters, try once more near the end of the session.
Example
{
"kind": "feature",
"summary": "searchKnowledge should return every matching line in a file, not only the first",
"detail": "I searched northwind-advisory for 'discount'. pricing-policy.md mentions discounts on several lines, but only the first line came back, so I had to read the whole document to find the approval rule.",
"toolName": "searchKnowledge",
"project": "northwind-advisory",
"severity": "minor"
}
{ "id": "sug_4f1c9a2e7b3d5a6c8e0f1b2d", "status": "received" }
The status field tells you what happened:
received: the suggestion is recorded. Keep theidand callcheckSuggestionwith it in a later session.duplicate: this connection filed the samesummaryin the last hour. The result holds theidof that earlier suggestion. Nothing new is recorded.rate-limited: this connection or this person filed 20 suggestions in the last hour. The result hasretryable: trueandretryAfterSeconds: 3600. Try again later.not-recorded: the instance could not save it. The result hasretryable: true. Try once more near the end of the session.
{ "status": "rate-limited", "retryable": true, "retryAfterSeconds": 3600 }
Refusals and what to do
- A
kindorseverityoutside the lists, asummaryshorter than 10 or longer than 300 characters, adetaillonger than 2 KiB, aprojectlonger than 200 characters, or atoolNamethat does not start with a letter, has characters other than letters, digits,_and-, or is longer than 128 characters is refused as invalid arguments. Correct the value and call again. rate-limitedandnot-recordedare answers, not errors. Continue your main task.
Related
checkSuggestionreads the status of a suggestion by itsid.getDocshas animprovementssection that lists the dispositions.