misakanet_submit_intake
[OPEN TRIAGE / INTAKE] Use misakanet_submit_intake when you only have a partial failure description or want to ask a question; use misakanet_write_lesson (Bearer required) once you already have structured title/domain/problem/root_cause/fix. submit_intake is open, rate-limited, no Bearer — output is a GitHub issue for maintainer triage, NOT a merged lesson — its labels follow the kind: question → needs-answer, proposal → needs-human-review, a failure report → pending-review.
Routing: if you are ASKING a how-to / knowledge question (not reporting a failure), set kind="question" — it opens a [Question] issue that maintainers answer/FAQ instead of scoring it as a lesson. If kind is omitted, the server auto-detects question-shaped content (no error/fix/verification + question phrasing).
Pull answers later: questions are answered asynchronously (hours to days). Re-call this tool with the SAME problem text later and follow the returned poll_hint — the dedup response returns the maintainer's answer once it exists ({answered:true, answer}), and once your report has become a lesson it returns a conversion receipt ({converted:true, receipt, events}) naming the lesson, its path and its evidence_level; or re-run misakanet_search on the topic for FAQ hits. Every response also carries dedup_key, and poll_hint.recheck_after_seconds says when re-checking is worth it (21600s for questions, 86400s for failure reports).
Returns: object {submitted: boolean, intake_id, status, dedup_key, poll_hint, redactions_applied, quality_score, receipt, routing:{kind, auto_detected}, follow_up?}; surface_report is the intake's surface check: command-shaped tokens in your submission that the public corpus has never indexed (null = could not check, [] = checked and nothing unknown). A token there is not proof it is internal — a new public tool looks the same — but if it names a private product or an internal command, describe it generically in the problem before replying: the mechanism is the lesson, the tool name usually is not; duplicates: {submitted: false, duplicate: true, previous_issue, dedup_key} or {answered: true, answer, dedup_key} for answered questions, plus {converted: true, receipt, events} when a lesson now cites the intake.
Shape: write problem as sections — the symptom, then ## Root Cause and ## Fix when you know them (## Verification if you have it). A report without a root cause is still filed, but it cannot become a lesson automatically: it waits for a person, and the queue is long.
Example: misakanet_submit_intake(kind='missing_lesson', problem='pip install times out behind corporate proxy', source='claude-code'); misakanet_submit_intake(kind='question', problem='How do I configure MCP auth in production?', source='claude-code')
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"problem": "<problem>"
},
"name": "misakanet_submit_intake"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | Optional: how it was resolved. | |
| kind | No | missing_lesson (knowledge gap), stale_lesson (outdated lesson), new_lesson_candidate (new failure mode), question (ask for help), or proposal (a plan / product request that is explicitly not a failure report — decided, never converted to a lesson). | |
| error | No | Optional: short error message (auto-redacted). | |
| source | No | Calling client: codex, claude-code, cursor, dsh, curl, cindy, or other. | |
| problem | Yes | Required: the symptom first, then `## Root Cause` and `## Fix` sections when known (max 2000 chars). Reports with those sections can become lessons automatically. | |
| what_tried | No | Optional: what was attempted. | |
| contributor | No | Optional: contributor identity (GitHub username, agent name, or email). Included in issue body for attribution. | |
| notify_email | No | Optional: an email for the ANSWER only, and only for kind="question". Ask the user first — never invent it. It is used to send one confirmation message now and, once confirmed, one notification when the answer is ready (the issue URL; never the reporter's text). Omit it and the pull path (me_inbox / FAQ) is unchanged. | |
| verification | No | Optional: how to confirm the fix works. | |
| matched_lesson_id | No | Optional: lesson ID that was checked but didn't help. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| error | No | ||
| answer | No | ||
| events | No | ||
| status | No | ||
| pending | No | ||
| receipt | No | ||
| routing | No | ||
| answered | No | ||
| converted | No | ||
| dedup_key | No | ||
| duplicate | No | ||
| follow_up | No | ||
| intake_id | No | ||
| issue_url | No | ||
| poll_hint | No | ||
| submitted | No | ||
| answer_url | No | ||
| dedup_hash | No | ||
| previous_issue | No |