[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ERT69YWFZN0HQWNMKF6V4Q":3,"skill-same:01M6ERT69YWFZN0HQWNMKF6V4Q":52},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6ERT69YWFZN0HQWNMKF6V4Q","using beans",null,"Check if there is a .beans folder. Load this skill if there is, or if you're instructed to set beans up. ALWAYS check for a .beans folder at the start of every session.","nocksock\u002Fsuperpowers","nocksock","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22164?v=4","01M6ERQWRTZARGFM7AX8HB89GZ","Nils Riedemann","01M6ERQWXFH5876Z6HEDH9TWYS",1,"MIT","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fusing-beans\u002FSKILL.md",[],[5,19,20,21,22,23],"start","SET","check","session","up","2026-11-10 10:12:30",false,"---\nname: using beans\ndescription: Check if there is a .beans folder. Load this skill if there is, or if you're instructed to set beans up. ALWAYS check for a .beans folder at the start of every session.\n---\n\n# EXTREMELY IMPORTANT: Beans Usage Guide for Agents\n\nThis project uses **beans**, an agentic-first issue tracker. Issues are called \"beans\", and you can\nuse the \"beans\" CLI to manage them.\n\n**Whenever you're tempted to use the TodoWrite or similar tool to organize work, consider using beans instead.**\n\nAll commands support --json for machine-readable output. Use this flag to parse responses easily.\n\n## CRITICAL: Track All Work With Beans\n\n**BEFORE starting any task the user asks you to do:**\n\n1. FIRST: Create a bean with `beans create \"Title\" -t \u003Ctype> -d \"Description...\" -s in-progress`\n2. THEN: Do the work\n3. FINALLY: Mark completed with `beans update \u003Cbean-id> --status completed`\n4. IF and WHEN you COMMIT: Include both your code changes AND the bean file(s) in the commit!\n\nIf you identify something that should be changed or fixed after completing the user's request, create a new bean for that work instead of doing it immediately.\n\n## Core Rules\n\n- **Use `beans query` for flexible data access** - Supports both queries and mutations via GraphQL\n- **CLI commands are simpler for common operations** - `beans create` and `beans update` are easier for single mutations\n- After compaction or clear, run `beans prime` to re-sync\n- Lean towards using sub-agents for interacting with beans\n\n## Finding work\n\nUse GraphQL to query for actionable beans (not completed, not draft, not blocked):\n\n```bash\nbeans query '{ beans(filter: { excludeStatus: [\"completed\", \"scrapped\", \"draft\"], isBlocked: false }) { id title status type priority } }'\n```\n\nOther useful queries:\n\n```bash\n# All beans with basic info\nbeans query '{ beans { id title status type priority } }'\n\n# Find high-priority bugs\nbeans query '{ beans(filter: { type: [\"bug\"], priority: [\"critical\", \"high\"] }) { id title status body } }'\n\n# Search by text (uses Bleve query syntax)\nbeans query '{ beans(filter: { search: \"authentication\" }) { id title } }'\n```\n\n## Working on a bean\n\n1. **Read the bean** using GraphQL to get full details:\n   ```bash\n   beans query '{ bean(id: \"\u003Cid>\") { title status type body parent { title } children { title status } } }'\n   ```\n2. **Mark as in-progress**: `beans update \u003Cbean-id> --status in-progress`\n3. Adhere to the instructions in the bean's body when working on it\n\n**If the bean has a checklist:**\n\n1. Work through items in order (unless dependencies require otherwise)\n2. **After completing each checklist item**, immediately update the bean file to mark it done:\n   - Change `- [ ]` to `- [x]` for the completed item\n3. When committing code changes, include the updated bean file with checked-off items\n4. Re-read the bean periodically to stay aware of remaining work\n\n## Relationships\n\nBeans can have relationships to other beans. Use these to express dependencies and hierarchy.\n\n**Parent (single value):**\n- `parent` - assigns a bean to a parent bean (type-restricted hierarchy: milestone → epic → feature → task\u002Fbug)\n\n**Blocking (multiple values):**\n- `blocking` - this bean is blocking another bean (prevents work on the blocked bean until this one is done)\n\n**Managing relationships (CLI):**\n\n- `beans update \u003Cbean-id> --parent \u003Cother-id>` - Set the parent\n- `beans update \u003Cbean-id> --remove-parent` - Remove the parent\n- `beans update \u003Cbean-id> --blocking \u003Cother-id>` - Add a blocking relationship\n- `beans update \u003Cbean-id> --remove-blocking \u003Cother-id>` - Remove a blocking relationship\n\n**Querying relationships (GraphQL):**\n\n```bash\n# Get a bean with its relationships\nbeans query '{ bean(id: \"abc\") { title parent { id title } children { id title status } blockedBy { title } blocking { title } } }'\n\n# Filter children by status (e.g., only incomplete children of a milestone)\nbeans query '{ bean(id: \"abc\") { title children(filter: { excludeStatus: [\"completed\", \"scrapped\"] }) { id title status } } }'\n\n# Find active blockers (exclude completed ones)\nbeans query '{ bean(id: \"abc\") { blockedBy(filter: { excludeStatus: [\"completed\"] }) { id title } } }'\n\n# Find beans blocked by something\nbeans query '{ beans(filter: { isBlocked: true }) { id title blockedBy { title } } }'\n\n# Find top-level beans (no parent)\nbeans query '{ beans(filter: { noParent: true }) { id title type } }'\n```\n\n## Creating new beans\n\n- `beans create --help`\n- Example: `beans create \"Fix login bug\" -t bug -d \"Users cannot log in when...\" -s todo`\n- **Always specify a type with `-t`**. See the \"Issue Types\" section below for available types and their descriptions.\n- When creating a new bean, first see if a similar bean already exists.\n- When creating new beans, include a useful description. If you're not sure what to write, ask the user.\n- Make the description as detailed as possible, similar to a plan that you would create for yourself.\n- If possible, split the work into a checklist of GitHub-Formatted-Markdown tasks. Use a `## Checklist` header to precede it.\n\n## Cleaning up beans\n\n- `beans archive` will archive (delete) beans marked as completed or scrapped. ONLY run this when I explicitly tell you to.\n\n## GraphQL Reference\n\nThe `beans query` command executes GraphQL queries. This is the preferred way to read bean data.\n\n**Command flags:**\n\n- `--json`: Output raw JSON (no formatting)\n- `--schema`: Print the GraphQL schema\n- `-v, --variables`: Query variables as JSON string\n- `-o, --operation`: Operation name for multi-operation documents\n\n**Tips:**\n\n```bash\n# Read query from stdin (useful for complex queries or shell escaping)\nbeans query \u003C\u003C'EOF'\n{ beans(filter: { type: [\"bug\"], excludeStatus: [\"completed\"] }) { id title priority } }\nEOF\n\n# Create a new bean\nbeans query 'mutation { createBean(input: { title: \"Fix bug\", type: \"bug\", status: \"todo\" }) { id title } }'\n\n# Update a bean's status\nbeans query 'mutation { updateBean(id: \"beans-abc\", input: { status: \"completed\" }) { id status } }'\n\n# Set a bean's parent\nbeans query 'mutation { setParent(id: \"beans-abc\", parentId: \"beans-xyz\") { id parent { title } } }'\n\n# Print the full schema for reference\nbeans query --schema\n```\n\n**GraphQL Schema:**\n\n```graphql\n\"\"\"\nA bean represents an issue\u002Ftask in the beans tracker\n\"\"\"\ntype Bean {\n  \"\"\"\n  Unique identifier (NanoID)\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Human-readable slug from filename\n  \"\"\"\n  slug: String\n  \"\"\"\n  Relative path from .beans\u002F directory\n  \"\"\"\n  path: String!\n  \"\"\"\n  Bean title\n  \"\"\"\n  title: String!\n  \"\"\"\n  Current status (draft, todo, in-progress, completed, scrapped)\n  \"\"\"\n  status: String!\n  \"\"\"\n  Bean type (milestone, epic, bug, feature, task)\n  \"\"\"\n  type: String!\n  \"\"\"\n  Priority level (critical, high, normal, low, deferred)\n  \"\"\"\n  priority: String!\n  \"\"\"\n  Tags for categorization\n  \"\"\"\n  tags: [String!]!\n  \"\"\"\n  Creation timestamp\n  \"\"\"\n  createdAt: Time!\n  \"\"\"\n  Last update timestamp\n  \"\"\"\n  updatedAt: Time!\n  \"\"\"\n  Markdown body content\n  \"\"\"\n  body: String!\n  \"\"\"\n  Parent bean ID (optional, type-restricted)\n  \"\"\"\n  parentId: String\n  \"\"\"\n  IDs of beans this bean is blocking\n  \"\"\"\n  blockingIds: [String!]!\n  \"\"\"\n  Beans that block this one (incoming blocking links)\n  \"\"\"\n  blockedBy(filter: BeanFilter): [Bean!]!\n  \"\"\"\n  Beans this one is blocking (resolved from blockingIds)\n  \"\"\"\n  blocking(filter: BeanFilter): [Bean!]!\n  \"\"\"\n  Parent bean (resolved from parentId)\n  \"\"\"\n  parent: Bean\n  \"\"\"\n  Child beans (beans with this as parent)\n  \"\"\"\n  children(filter: BeanFilter): [Bean!]!\n}\n\"\"\"\nFilter options for querying beans\n\"\"\"\ninput BeanFilter {\n  \"\"\"\n  Full-text search across slug, title, and body using Bleve query syntax.\n  \n  Examples:\n  - \"login\" - exact term match\n  - \"login~\" - fuzzy match (1 edit distance)\n  - \"login~2\" - fuzzy match (2 edit distance)\n  - \"log*\" - wildcard prefix\n  - \"\\\"user login\\\"\" - exact phrase\n  - \"user AND login\" - both terms required\n  - \"user OR login\" - either term\n  - \"slug:auth\" - search only slug field\n  - \"title:login\" - search only title field\n  - \"body:auth\" - search only body field\n  \"\"\"\n  search: String\n  \"\"\"\n  Include only beans with these statuses (OR logic)\n  \"\"\"\n  status: [String!]\n  \"\"\"\n  Exclude beans with these statuses\n  \"\"\"\n  excludeStatus: [String!]\n  \"\"\"\n  Include only beans with these types (OR logic)\n  \"\"\"\n  type: [String!]\n  \"\"\"\n  Exclude beans with these types\n  \"\"\"\n  excludeType: [String!]\n  \"\"\"\n  Include only beans with these priorities (OR logic)\n  \"\"\"\n  priority: [String!]\n  \"\"\"\n  Exclude beans with these priorities\n  \"\"\"\n  excludePriority: [String!]\n  \"\"\"\n  Include only beans with any of these tags (OR logic)\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  Exclude beans with any of these tags\n  \"\"\"\n  excludeTags: [String!]\n  \"\"\"\n  Include only beans with a parent\n  \"\"\"\n  hasParent: Boolean\n  \"\"\"\n  Include only beans with this specific parent ID\n  \"\"\"\n  parentId: String\n  \"\"\"\n  Include only beans that are blocking other beans\n  \"\"\"\n  hasBlocking: Boolean\n  \"\"\"\n  Include only beans that are blocking this specific bean ID\n  \"\"\"\n  blockingId: String\n  \"\"\"\n  Include only beans that are blocked by others\n  \"\"\"\n  isBlocked: Boolean\n  \"\"\"\n  Exclude beans that have a parent\n  \"\"\"\n  noParent: Boolean\n  \"\"\"\n  Exclude beans that are blocking other beans\n  \"\"\"\n  noBlocking: Boolean\n}\n\"\"\"\nInput for creating a new bean\n\"\"\"\ninput CreateBeanInput {\n  \"\"\"\n  Bean title (required)\n  \"\"\"\n  title: String!\n  \"\"\"\n  Bean type (defaults to 'task')\n  \"\"\"\n  type: String\n  \"\"\"\n  Status (defaults to 'todo')\n  \"\"\"\n  status: String\n  \"\"\"\n  Priority level (defaults to 'normal')\n  \"\"\"\n  priority: String\n  \"\"\"\n  Tags for categorization\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  Markdown body content\n  \"\"\"\n  body: String\n  \"\"\"\n  Parent bean ID (validated against type hierarchy)\n  \"\"\"\n  parent: String\n  \"\"\"\n  Bean IDs this bean is blocking\n  \"\"\"\n  blocking: [String!]\n}\ntype Mutation {\n  \"\"\"\n  Create a new bean\n  \"\"\"\n  createBean(input: CreateBeanInput!): Bean!\n  \"\"\"\n  Update an existing bean\n  \"\"\"\n  updateBean(id: ID!, input: UpdateBeanInput!): Bean!\n  \"\"\"\n  Delete a bean by ID (automatically removes incoming links)\n  \"\"\"\n  deleteBean(id: ID!): Boolean!\n  \"\"\"\n  Set or clear the parent of a bean (validates type hierarchy)\n  \"\"\"\n  setParent(id: ID!, parentId: String): Bean!\n  \"\"\"\n  Add a bean to the blocking list\n  \"\"\"\n  addBlocking(id: ID!, targetId: ID!): Bean!\n  \"\"\"\n  Remove a bean from the blocking list\n  \"\"\"\n  removeBlocking(id: ID!, targetId: ID!): Bean!\n}\ntype Query {\n  \"\"\"\n  Get a single bean by ID (supports prefix matching)\n  \"\"\"\n  bean(id: ID!): Bean\n  \"\"\"\n  List beans with optional filtering\n  \"\"\"\n  beans(filter: BeanFilter): [Bean!]!\n}\nscalar Time\n\"\"\"\nInput for updating an existing bean\n\"\"\"\ninput UpdateBeanInput {\n  \"\"\"\n  New title\n  \"\"\"\n  title: String\n  \"\"\"\n  New status\n  \"\"\"\n  status: String\n  \"\"\"\n  New type\n  \"\"\"\n  type: String\n  \"\"\"\n  New priority\n  \"\"\"\n  priority: String\n  \"\"\"\n  Replace all tags (nil preserves existing)\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  New body content\n  \"\"\"\n  body: String\n}\n```\n\n## Issue Types\n\nThis project has the following issue types configured. Always specify a type with `-t` when creating beans:\n\n- **milestone**: A target release or checkpoint; group work that should ship together\n- **epic**: A thematic container for related work; should have child beans, not be worked on directly\n- **bug**: Something that is broken and needs fixing\n- **feature**: A user-facing capability or enhancement\n- **task**: A concrete piece of work to complete (eg. a chore, or a sub-task for a feature)\n\n## Statuses\n\nThis project has the following statuses configured:\n\n- **in-progress**: Currently being worked on\n- **todo**: Ready to be worked on\n- **draft**: Needs refinement before it can be worked on\n- **completed**: Finished successfully\n- **scrapped**: Will not be done\n\n## Priorities\n\nBeans can have an optional priority. Use `-p` when creating or `--priority` when updating:\n\n- **critical**: Urgent, blocking work. When possible, address immediately\n- **high**: Important, should be done before normal work\n- **normal**: Standard priority\n- **low**: Less important, can be delayed\n- **deferred**: Explicitly pushed back, avoid doing unless necessary\n\nBeans without a priority are treated as `normal` priority for sorting purposes.\n","# EXTREMELY IMPORTANT: Beans Usage Guide for Agents\n\nThis project uses **beans**, an agentic-first issue tracker. Issues are called \"beans\", and you can\nuse the \"beans\" CLI to manage them.\n\n**Whenever you're tempted to use the TodoWrite or similar tool to organize work, consider using beans instead.**\n\nAll commands support --json for machine-readable output. Use this flag to parse responses easily.\n\n## CRITICAL: Track All Work With Beans\n\n**BEFORE starting any task the user asks you to do:**\n\n1. FIRST: Create a bean with `beans create \"Title\" -t \u003Ctype> -d \"Description...\" -s in-progress`\n2. THEN: Do the work\n3. FINALLY: Mark completed with `beans update \u003Cbean-id> --status completed`\n4. IF and WHEN you COMMIT: Include both your code changes AND the bean file(s) in the commit!\n\nIf you identify something that should be changed or fixed after completing the user's request, create a new bean for that work instead of doing it immediately.\n\n## Core Rules\n\n- **Use `beans query` for flexible data access** - Supports both queries and mutations via GraphQL\n- **CLI commands are simpler for common operations** - `beans create` and `beans update` are easier for single mutations\n- After compaction or clear, run `beans prime` to re-sync\n- Lean towards using sub-agents for interacting with beans\n\n## Finding work\n\nUse GraphQL to query for actionable beans (not completed, not draft, not blocked):\n\n```bash\nbeans query '{ beans(filter: { excludeStatus: [\"completed\", \"scrapped\", \"draft\"], isBlocked: false }) { id title status type priority } }'\n```\n\nOther useful queries:\n\n```bash\n# All beans with basic info\nbeans query '{ beans { id title status type priority } }'\n\n# Find high-priority bugs\nbeans query '{ beans(filter: { type: [\"bug\"], priority: [\"critical\", \"high\"] }) { id title status body } }'\n\n# Search by text (uses Bleve query syntax)\nbeans query '{ beans(filter: { search: \"authentication\" }) { id title } }'\n```\n\n## Working on a bean\n\n1. **Read the bean** using GraphQL to get full details:\n   ```bash\n   beans query '{ bean(id: \"\u003Cid>\") { title status type body parent { title } children { title status } } }'\n   ```\n2. **Mark as in-progress**: `beans update \u003Cbean-id> --status in-progress`\n3. Adhere to the instructions in the bean's body when working on it\n\n**If the bean has a checklist:**\n\n1. Work through items in order (unless dependencies require otherwise)\n2. **After completing each checklist item**, immediately update the bean file to mark it done:\n   - Change `- [ ]` to `- [x]` for the completed item\n3. When committing code changes, include the updated bean file with checked-off items\n4. Re-read the bean periodically to stay aware of remaining work\n\n## Relationships\n\nBeans can have relationships to other beans. Use these to express dependencies and hierarchy.\n\n**Parent (single value):**\n- `parent` - assigns a bean to a parent bean (type-restricted hierarchy: milestone → epic → feature → task\u002Fbug)\n\n**Blocking (multiple values):**\n- `blocking` - this bean is blocking another bean (prevents work on the blocked bean until this one is done)\n\n**Managing relationships (CLI):**\n\n- `beans update \u003Cbean-id> --parent \u003Cother-id>` - Set the parent\n- `beans update \u003Cbean-id> --remove-parent` - Remove the parent\n- `beans update \u003Cbean-id> --blocking \u003Cother-id>` - Add a blocking relationship\n- `beans update \u003Cbean-id> --remove-blocking \u003Cother-id>` - Remove a blocking relationship\n\n**Querying relationships (GraphQL):**\n\n```bash\n# Get a bean with its relationships\nbeans query '{ bean(id: \"abc\") { title parent { id title } children { id title status } blockedBy { title } blocking { title } } }'\n\n# Filter children by status (e.g., only incomplete children of a milestone)\nbeans query '{ bean(id: \"abc\") { title children(filter: { excludeStatus: [\"completed\", \"scrapped\"] }) { id title status } } }'\n\n# Find active blockers (exclude completed ones)\nbeans query '{ bean(id: \"abc\") { blockedBy(filter: { excludeStatus: [\"completed\"] }) { id title } } }'\n\n# Find beans blocked by something\nbeans query '{ beans(filter: { isBlocked: true }) { id title blockedBy { title } } }'\n\n# Find top-level beans (no parent)\nbeans query '{ beans(filter: { noParent: true }) { id title type } }'\n```\n\n## Creating new beans\n\n- `beans create --help`\n- Example: `beans create \"Fix login bug\" -t bug -d \"Users cannot log in when...\" -s todo`\n- **Always specify a type with `-t`**. See the \"Issue Types\" section below for available types and their descriptions.\n- When creating a new bean, first see if a similar bean already exists.\n- When creating new beans, include a useful description. If you're not sure what to write, ask the user.\n- Make the description as detailed as possible, similar to a plan that you would create for yourself.\n- If possible, split the work into a checklist of GitHub-Formatted-Markdown tasks. Use a `## Checklist` header to precede it.\n\n## Cleaning up beans\n\n- `beans archive` will archive (delete) beans marked as completed or scrapped. ONLY run this when I explicitly tell you to.\n\n## GraphQL Reference\n\nThe `beans query` command executes GraphQL queries. This is the preferred way to read bean data.\n\n**Command flags:**\n\n- `--json`: Output raw JSON (no formatting)\n- `--schema`: Print the GraphQL schema\n- `-v, --variables`: Query variables as JSON string\n- `-o, --operation`: Operation name for multi-operation documents\n\n**Tips:**\n\n```bash\n# Read query from stdin (useful for complex queries or shell escaping)\nbeans query \u003C\u003C'EOF'\n{ beans(filter: { type: [\"bug\"], excludeStatus: [\"completed\"] }) { id title priority } }\nEOF\n\n# Create a new bean\nbeans query 'mutation { createBean(input: { title: \"Fix bug\", type: \"bug\", status: \"todo\" }) { id title } }'\n\n# Update a bean's status\nbeans query 'mutation { updateBean(id: \"beans-abc\", input: { status: \"completed\" }) { id status } }'\n\n# Set a bean's parent\nbeans query 'mutation { setParent(id: \"beans-abc\", parentId: \"beans-xyz\") { id parent { title } } }'\n\n# Print the full schema for reference\nbeans query --schema\n```\n\n**GraphQL Schema:**\n\n```graphql\n\"\"\"\nA bean represents an issue\u002Ftask in the beans tracker\n\"\"\"\ntype Bean {\n  \"\"\"\n  Unique identifier (NanoID)\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Human-readable slug from filename\n  \"\"\"\n  slug: String\n  \"\"\"\n  Relative path from .beans\u002F directory\n  \"\"\"\n  path: String!\n  \"\"\"\n  Bean title\n  \"\"\"\n  title: String!\n  \"\"\"\n  Current status (draft, todo, in-progress, completed, scrapped)\n  \"\"\"\n  status: String!\n  \"\"\"\n  Bean type (milestone, epic, bug, feature, task)\n  \"\"\"\n  type: String!\n  \"\"\"\n  Priority level (critical, high, normal, low, deferred)\n  \"\"\"\n  priority: String!\n  \"\"\"\n  Tags for categorization\n  \"\"\"\n  tags: [String!]!\n  \"\"\"\n  Creation timestamp\n  \"\"\"\n  createdAt: Time!\n  \"\"\"\n  Last update timestamp\n  \"\"\"\n  updatedAt: Time!\n  \"\"\"\n  Markdown body content\n  \"\"\"\n  body: String!\n  \"\"\"\n  Parent bean ID (optional, type-restricted)\n  \"\"\"\n  parentId: String\n  \"\"\"\n  IDs of beans this bean is blocking\n  \"\"\"\n  blockingIds: [String!]!\n  \"\"\"\n  Beans that block this one (incoming blocking links)\n  \"\"\"\n  blockedBy(filter: BeanFilter): [Bean!]!\n  \"\"\"\n  Beans this one is blocking (resolved from blockingIds)\n  \"\"\"\n  blocking(filter: BeanFilter): [Bean!]!\n  \"\"\"\n  Parent bean (resolved from parentId)\n  \"\"\"\n  parent: Bean\n  \"\"\"\n  Child beans (beans with this as parent)\n  \"\"\"\n  children(filter: BeanFilter): [Bean!]!\n}\n\"\"\"\nFilter options for querying beans\n\"\"\"\ninput BeanFilter {\n  \"\"\"\n  Full-text search across slug, title, and body using Bleve query syntax.\n  \n  Examples:\n  - \"login\" - exact term match\n  - \"login~\" - fuzzy match (1 edit distance)\n  - \"login~2\" - fuzzy match (2 edit distance)\n  - \"log*\" - wildcard prefix\n  - \"\\\"user login\\\"\" - exact phrase\n  - \"user AND login\" - both terms required\n  - \"user OR login\" - either term\n  - \"slug:auth\" - search only slug field\n  - \"title:login\" - search only title field\n  - \"body:auth\" - search only body field\n  \"\"\"\n  search: String\n  \"\"\"\n  Include only beans with these statuses (OR logic)\n  \"\"\"\n  status: [String!]\n  \"\"\"\n  Exclude beans with these statuses\n  \"\"\"\n  excludeStatus: [String!]\n  \"\"\"\n  Include only beans with these types (OR logic)\n  \"\"\"\n  type: [String!]\n  \"\"\"\n  Exclude beans with these types\n  \"\"\"\n  excludeType: [String!]\n  \"\"\"\n  Include only beans with these priorities (OR logic)\n  \"\"\"\n  priority: [String!]\n  \"\"\"\n  Exclude beans with these priorities\n  \"\"\"\n  excludePriority: [String!]\n  \"\"\"\n  Include only beans with any of these tags (OR logic)\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  Exclude beans with any of these tags\n  \"\"\"\n  excludeTags: [String!]\n  \"\"\"\n  Include only beans with a parent\n  \"\"\"\n  hasParent: Boolean\n  \"\"\"\n  Include only beans with this specific parent ID\n  \"\"\"\n  parentId: String\n  \"\"\"\n  Include only beans that are blocking other beans\n  \"\"\"\n  hasBlocking: Boolean\n  \"\"\"\n  Include only beans that are blocking this specific bean ID\n  \"\"\"\n  blockingId: String\n  \"\"\"\n  Include only beans that are blocked by others\n  \"\"\"\n  isBlocked: Boolean\n  \"\"\"\n  Exclude beans that have a parent\n  \"\"\"\n  noParent: Boolean\n  \"\"\"\n  Exclude beans that are blocking other beans\n  \"\"\"\n  noBlocking: Boolean\n}\n\"\"\"\nInput for creating a new bean\n\"\"\"\ninput CreateBeanInput {\n  \"\"\"\n  Bean title (required)\n  \"\"\"\n  title: String!\n  \"\"\"\n  Bean type (defaults to 'task')\n  \"\"\"\n  type: String\n  \"\"\"\n  Status (defaults to 'todo')\n  \"\"\"\n  status: String\n  \"\"\"\n  Priority level (defaults to 'normal')\n  \"\"\"\n  priority: String\n  \"\"\"\n  Tags for categorization\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  Markdown body content\n  \"\"\"\n  body: String\n  \"\"\"\n  Parent bean ID (validated against type hierarchy)\n  \"\"\"\n  parent: String\n  \"\"\"\n  Bean IDs this bean is blocking\n  \"\"\"\n  blocking: [String!]\n}\ntype Mutation {\n  \"\"\"\n  Create a new bean\n  \"\"\"\n  createBean(input: CreateBeanInput!): Bean!\n  \"\"\"\n  Update an existing bean\n  \"\"\"\n  updateBean(id: ID!, input: UpdateBeanInput!): Bean!\n  \"\"\"\n  Delete a bean by ID (automatically removes incoming links)\n  \"\"\"\n  deleteBean(id: ID!): Boolean!\n  \"\"\"\n  Set or clear the parent of a bean (validates type hierarchy)\n  \"\"\"\n  setParent(id: ID!, parentId: String): Bean!\n  \"\"\"\n  Add a bean to the blocking list\n  \"\"\"\n  addBlocking(id: ID!, targetId: ID!): Bean!\n  \"\"\"\n  Remove a bean from the blocking list\n  \"\"\"\n  removeBlocking(id: ID!, targetId: ID!): Bean!\n}\ntype Query {\n  \"\"\"\n  Get a single bean by ID (supports prefix matching)\n  \"\"\"\n  bean(id: ID!): Bean\n  \"\"\"\n  List beans with optional filtering\n  \"\"\"\n  beans(filter: BeanFilter): [Bean!]!\n}\nscalar Time\n\"\"\"\nInput for updating an existing bean\n\"\"\"\ninput UpdateBeanInput {\n  \"\"\"\n  New title\n  \"\"\"\n  title: String\n  \"\"\"\n  New status\n  \"\"\"\n  status: String\n  \"\"\"\n  New type\n  \"\"\"\n  type: String\n  \"\"\"\n  New priority\n  \"\"\"\n  priority: String\n  \"\"\"\n  Replace all tags (nil preserves existing)\n  \"\"\"\n  tags: [String!]\n  \"\"\"\n  New body content\n  \"\"\"\n  body: String\n}\n```\n\n## Issue Types\n\nThis project has the following issue types configured. Always specify a type with `-t` when creating beans:\n\n- **milestone**: A target release or checkpoint; group work that should ship together\n- **epic**: A thematic container for related work; should have child beans, not be worked on directly\n- **bug**: Something that is broken and needs fixing\n- **feature**: A user-facing capability or enhancement\n- **task**: A concrete piece of work to complete (eg. a chore, or a sub-task for a feature)\n\n## Statuses\n\nThis project has the following statuses configured:\n\n- **in-progress**: Currently being worked on\n- **todo**: Ready to be worked on\n- **draft**: Needs refinement before it can be worked on\n- **completed**: Finished successfully\n- **scrapped**: Will not be done\n\n## Priorities\n\nBeans can have an optional priority. Use `-p` when creating or `--priority` when updating:\n\n- **critical**: Urgent, blocking work. When possible, address immediately\n- **high**: Important, should be done before normal work\n- **normal**: Standard priority\n- **low**: Less important, can be delayed\n- **deferred**: Explicitly pushed back, avoid doing unless necessary\n\nBeans without a priority are treated as `normal` priority for sorting purposes.\n",{"name":5,"description":7},"main","52d2d5a29297631b5e3ff61fbc8ca3c6505a26e2","skills\u002Fusing-beans",0,"https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers","https:\u002F\u002Fgithub.com\u002Fnocksock","http:\u002F\u002Fbleepbloop.studio\u002F","Hi, I'm Nils. I build interfaces for the web.","2026-03-19 04:55:50",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add nocksock\u002Fsuperpowers --skill \"using beans\"",{"tool":44,"command":45},"bunx","bunx skills add nocksock\u002Fsuperpowers --skill \"using beans\"",{"tool":47,"command":48},"pnpm","pnpm dlx skills add nocksock\u002Fsuperpowers --skill \"using beans\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fusing-beans\u002FSKILL.md",true,[],[53,79,95,112,125,136],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":72,"publishedAt":24},"01M6ERV5R58PKM81EH15XEYPMF","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-skills\u002FSKILL.md",[59,64,67],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":65,"categoryName":66,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[73,74,75,76,77,78],"writing skills","writing","use","deployment","work","editing",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":87,"publishedAt":24},"01M6ERV2JX5DJV2EHSC6FXHEHN","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[85,86],{"categoryNo":65,"categoryName":66,"taxonomyType":62,"taxonomyTypeDesc":63},{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},[88,89,74,90,91,75,92,93,94],"plans","writing plans","spec","code","task","requirements","multi",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":24},"01M6ERTZS70NCVS375DTD8HGKE","writing good code","use this skill whenever you write code. it provides a process for creating good, composable apis.","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-good-code\u002FSKILL.md",[101,102,105],{"categoryNo":65,"categoryName":66,"taxonomyType":62,"taxonomyTypeDesc":63},{"categoryNo":103,"categoryName":104,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000030","开发工程师",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},[97,107,91,74,108,75,109,110,111],"good","it","process","write","composable",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":24},"01M6ERTVVRPKZVWK6M8EXPB5QE","write-review-elixir","Review Elixir code. ALWAYS use this skill before or after you added code written in elixir to ensure high code quality. Also use use this when asked to review existing elixir code.","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-or-review-elixir\u002FSKILL.md",[],[119,110,120,121,122,75,123,91,124],"write review elixir","elixir","review","elixir code","quality","code quality",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":24},"01M6ERTRAM8PSJ9JTAW5J4ABFD","whats-next","Answers what to do next, what to work on next, where we're at","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fwhats-next\u002FSKILL.md",[],[132,133,134,77,135],"next","whats next","work on","do",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":24},"01M6ERTNG9NT8SQH5FHN91JRTS","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fnocksock\u002Fsuperpowers\u002Fblob\u002Fmain\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[143,144,145,146,147,75,77,148,149,150],"verification before completion","verification","commands","claim","evidence","complete","output","about"]