skein_list
Paginated list of issues. BY DEFAULT a page is 25 rows (ceiling 100), and each row is the named lean set — id, title, status, type, priority, assignee, labels, isBlocked, parentIdCurrent, version, updatedAt, childrenCount, unclosedChildrenCount — NOT the issue card: no description, design, acceptance or notes. projectId joins that set in cross-project mode only. Named means named: keys outside the set are ABSENT, componentIds, createdBy, createdAt, acceptedAt, pinned and epicProgress among them — ask for those explicitly with fields (an unknown name is REFUSED and the error names it, so a typo cannot silently widen or empty the row); read one issue whole with skein_show.
Two modes:
Project-scoped (default): pass
project— paginated list of issues in that one project, with status / priority / assignee / labels / parent / source / text / pinned filters.Cross-project: pass
crossProject: true(omitproject) — paginated list of every issue visible to the caller across every project they can see. Supports an FTSqover title + description + acceptance + design + notes (with optional semantic rerank when the embedder is available), plus the status / type / origin / assignee / createdBy / acceptedAt filters from the project-scoped path. Returnstotal(exact count) on every page so the caller knows the visible horizon. Thecursorfield from the response is opaque; echo it back unchanged on the next call.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "skein_list"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Full-text search query (cross-project mode only). Matches against title + description + acceptance_criteria + design + notes via tsvector (ru + en). Exact issue id matches (e.g. "demo-2.5") are boosted to the top. | |
| text | No | Title ILIKE filter (substring match). For semantic / FTS search use skein_search. | |
| type | No | Single type filter (cross-project mode only). One of bug | feature | task | epic | chore | decision | idea | note. | |
| limit | No | Page size, 1..100. Default: 25. | |
| space | No | Space short id (cross-project mode only): only issues of that space's projects (the space of the issue's project, not of its id prefix). An unknown or unseen space yields nothing. The row's space is the selectable field `spaceId`. | |
| cursor | No | Opaque cursor returned by a previous call's `nextCursor` field. | |
| fields | No | Explicit row field selection for narrow queries. Omit it to get the default named set (identifier, title, status, type, priority, assignee, labels, blocked flag, parent id, version, updated stamp, child counters — plus the project id in cross-project mode). Naming fields returns ONLY those plus the identifier, which always comes back; an empty array therefore yields the identifier alone. An unknown name is rejected and named — it is not ignored, because a silently missing field is indistinguishable from an empty one. | |
| labels | No | Filter by labels (any-of semantics — issues with at least one of these labels). | |
| origin | No | Origin group filter (broader than `source`). "human-driven" matches source IN (human, agent_directed); "agent-autonomous" matches source = agent_autonomous; "all" or omitted = no filter. Use this to hide the agent firehose in default board mode. | |
| pinned | No | Filter on the pinned flag. | |
| sortBy | No | Sort axis: "updated" (default) or "created". | |
| source | No | Filter by origin: human|agent_directed|agent_autonomous. "agent_directed" = agent created on user instruction; "agent_autonomous" = agent self-spawned mid-task. | |
| project | No | Project handle: alias, name, or UUID. Required unless `crossProject` is true. | |
| assignee | No | Assignee filter. Use the literal "me" to match issues assigned to the calling user (resolved via users.id, case-insensitive username join — same path as the Inbox view). Any other string is treated as a free-form username equality match. Whitespace is trimmed. Omitted, null or blank means no filter; non-string values return validation_error with code assignee_not_string. | |
| parentId | No | Exact parent id (full hierarchical form, e.g. "demo-42"). | |
| priority | No | Exact priority match (0..4). | |
| statuses | No | Filter by status; any of open|in_progress|deferred|closed|standing. `standing` selects perpetual obligations (excluded from the default active-work counts/lenses). `blocked` is no longer a writable status — use the `isBlocked` filter to narrow to issues derived as blocked from the dep graph. Project-scoped mode accepts multiple values (OR). Cross-project mode accepts at most one entry — e.g. statuses:["open"] only; pass a single status or omit for all. | |
| createdBy | No | Created-by filter. "me" selects issues the caller created (Outbox / "tasks I created" view). "not-me" selects issues the caller did NOT create — pairs with assignee=me to surface tasks delegated TO the caller by someone else (the "On me" lens). | |
| isBlocked | No | Filter by derived blocked-ness. "true" = only issues with at least one open outgoing blocks/waits-for edge; "false" = only issues with no open blockers. Omit for no filter. | |
| acceptedAt | No | Acceptance filter. "null" restricts to issues whose assignee has not yet acknowledged the task (Inbox prefix). "not-null" restricts to issues that have been accepted (the "On me" / accepted-and-working prefix). | |
| crossProject | No | When true, list issues across every project the caller can see (visibility-filtered to their project_members horizon; admins see all but other users' personal spaces). `project` MUST be omitted in this mode. Powers the "All projects" view in the web UI. |