[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C422J09TF81GCN6TH26GHJ":3,"skill-same:01M6C422J09TF81GCN6TH26GHJ":105},{"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":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6C422J09TF81GCN6TH26GHJ","to-questionnaire",null,"Turn a decision you can't fully answer into a questionnaire for someone else to fill in.","fderuiter\u002FQRCraftly-web","fderuiter","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F127706008?v=4","01M6C40AWP9EPQBS3EG0RF5DRD","Frederick de Ruiter","01M6C40B116HSW5KCWXDPRX69M",5,"MIT","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-questionnaire\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27],"to questionnaire","questionnaire","matt pocock","decision","you","answer","can","for","fill","2026-11-10 10:12:30",false,"---\nname: to-questionnaire\ndescription: \"Turn a decision you can't fully answer into a questionnaire for someone else to fill in.\"\nlicense: MIT\nmetadata:\n  author: Matt Pocock\n  version: \"1.0\"\n---\n\nTurn something the user can't answer alone into a **questionnaire**: a Markdown document they hand to one person to fill in async, or fill out together over a meeting. The recipient holds knowledge the user lacks; the questionnaire pulls it out of them.\n\n**Grill the send, not the subject.** Interview the user only about the _send_, which they can always answer: who it goes to, and what they need back. The questions in the document then target the **gap** between what the recipient knows and what the user needs.\n\n\n1. **Who is it going to?** Ask, in one exchange, the recipient's role, expertise, and relationship to the user. This fixes the questionnaire's tone and how much context it must carry. Done when you know who the recipient is and what they know that the user doesn't.\n\n2. **What do you need back?** Ask, in one exchange, the specific decisions or facts the user can't resolve alone and needs from this person. Done when you have a concrete list of what the user must walk away able to do or decide.\n\n3. **Write the questionnaire.** Draft questions aimed at the gap from steps 1–2, following the Document structure below. Write it to `to-questionnaire-\u003Cslug>.md` in the current directory (slug from the topic) and report the path. Done when the file exists and every item the user named in step 2 is covered by a question.\n\n## Document structure\n\nFrame the document as a **discovery questionnaire**: the user lacks context, the recipient holds it. Order questions most-important-first, since async means you may only get one pass, and group them under `##` headings by theme once there are more than a handful. Write it using the template below.\n\n\u003Cquestionnaire-template>\n\n# \u003CQuestionnaire title>\n\n**Purpose:** why this questionnaire exists and the decision riding on it.\n\n**From:** \u003Cthe user>, **To:** \u003Cthe recipient>, **How your answers will be used:** \u003Cwhere they go>\n\n## Context\n\nOne paragraph orienting a recipient who wasn't in the user's head. Enough to answer well, not a page.\n\n## How to answer\n\nDeadline and rough effort. Partial answers and \"I don't know\" are useful: flag anything you're unsure of rather than skipping it.\n\n## \u003CTheme heading>\n\nOne `##` section per theme. Under each, its questions, most-important-first. Every question is one idea, never compound, with an answer stub directly beneath, and a one-line _why this matters_ only where the question could be misread or invite a throwaway answer.\n\n\u003Cquestion-example>\n### What load is the system expected to handle at launch?\n\n_Why this matters: it decides whether we provision for burst traffic now or defer it._\n\n>\n\u003C\u002Fquestion-example>\n\n## Anything else?\n\nA closing catch-all: anything we didn't ask that we should know?\n\n\u003C\u002Fquestionnaire-template>\n","Turn something the user can't answer alone into a **questionnaire**: a Markdown document they hand to one person to fill in async, or fill out together over a meeting. The recipient holds knowledge the user lacks; the questionnaire pulls it out of them.\n\n**Grill the send, not the subject.** Interview the user only about the _send_, which they can always answer: who it goes to, and what they need back. The questions in the document then target the **gap** between what the recipient knows and what the user needs.\n\n\n1. **Who is it going to?** Ask, in one exchange, the recipient's role, expertise, and relationship to the user. This fixes the questionnaire's tone and how much context it must carry. Done when you know who the recipient is and what they know that the user doesn't.\n\n2. **What do you need back?** Ask, in one exchange, the specific decisions or facts the user can't resolve alone and needs from this person. Done when you have a concrete list of what the user must walk away able to do or decide.\n\n3. **Write the questionnaire.** Draft questions aimed at the gap from steps 1–2, following the Document structure below. Write it to `to-questionnaire-\u003Cslug>.md` in the current directory (slug from the topic) and report the path. Done when the file exists and every item the user named in step 2 is covered by a question.\n\n## Document structure\n\nFrame the document as a **discovery questionnaire**: the user lacks context, the recipient holds it. Order questions most-important-first, since async means you may only get one pass, and group them under `##` headings by theme once there are more than a handful. Write it using the template below.\n\n\u003Cquestionnaire-template>\n\n# \u003CQuestionnaire title>\n\n**Purpose:** why this questionnaire exists and the decision riding on it.\n\n**From:** \u003Cthe user>, **To:** \u003Cthe recipient>, **How your answers will be used:** \u003Cwhere they go>\n\n## Context\n\nOne paragraph orienting a recipient who wasn't in the user's head. Enough to answer well, not a page.\n\n## How to answer\n\nDeadline and rough effort. Partial answers and \"I don't know\" are useful: flag anything you're unsure of rather than skipping it.\n\n## \u003CTheme heading>\n\nOne `##` section per theme. Under each, its questions, most-important-first. Every question is one idea, never compound, with an answer stub directly beneath, and a one-line _why this matters_ only where the question could be misread or invite a throwaway answer.\n\n\u003Cquestion-example>\n### What load is the system expected to handle at launch?\n\n_Why this matters: it decides whether we provision for burst traffic now or defer it._\n\n>\n\u003C\u002Fquestion-example>\n\n## Anything else?\n\nA closing catch-all: anything we didn't ask that we should know?\n\n\u003C\u002Fquestionnaire-template>\n",{"name":5,"license":15,"metadata":33,"description":7},{"author":34,"version":35},"Matt Pocock","1.0","main","5e9ab49e1cb8cac3dbf2019f3f975572fc7282f7",".agents\u002Fskills\u002Fto-questionnaire",0,"https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web","https:\u002F\u002Fqrcraftly.com","https:\u002F\u002Fgithub.com\u002Ffderuiter","Clinical Data Specialist at @Bright-Research \r\n\r\nInterests in Photogrammetry, Data Analytics + Pipelines, Mathematics, and AI\u002FML.\r\n\r\nPython, Rust, TS.","2026-11-11 07:27:14",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add fderuiter\u002FQRCraftly-web --skill to-questionnaire",{"tool":51,"command":52},"bunx","bunx skills add fderuiter\u002FQRCraftly-web --skill to-questionnaire",{"tool":54,"command":55},"pnpm","pnpm dlx skills add fderuiter\u002FQRCraftly-web --skill to-questionnaire","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-questionnaire\u002FSKILL.md",true,[59,65,71,75,79,83,87,91,97,101],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"agents\u002Fopenai.yaml","REFERENCE","参考文档",166,"https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-questionnaire\u002Fagents\u002Fopenai.yaml",{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002Fdatabase_schema_definition.json","ASSET","资产文件",4088,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fassets\u002Fdatabase_schema_definition.json",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"assets\u002Fdocker-compose.yml",2587,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fassets\u002Fdocker-compose.yml",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002Fexample_migration_script.sql",1734,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fassets\u002Fexample_migration_script.sql",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002FREADME.md",385,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fassets\u002FREADME.md",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002Ftest_data_schema_template.json",3532,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fassets\u002Ftest_data_schema_template.json",{"path":88,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002FREADME.md",687,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Freferences\u002FREADME.md",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Fgenerate_test_data.py","SCRIPT","脚本",3685,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fscripts\u002Fgenerate_test_data.py",{"path":98,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":99,"sourceHtmlUrl":100},"scripts\u002FREADME.md",501,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fscripts\u002FREADME.md",{"path":102,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":103,"sourceHtmlUrl":104},"scripts\u002Fwrap_in_transaction.py",2935,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Ftesting\u002Fdatabase-test-manager\u002Fskills\u002Fmanaging-database-tests\u002Fscripts\u002Fwrap_in_transaction.py",[106,121,145,188,209,222],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":28},"01M6C40FJCT5X27N59TX7RQZRY","claude-handoff","Hand the current conversation off to a fresh background agent that picks up the work immediately.","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fclaude-handoff\u002FSKILL.md",[],[113,114,115,116,117,118,119,120,21],"claude handoff","handoff","background","hand","fresh","conversation","up","work",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":125,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":28},"01M6C42TV73ZZ5TY86HHA682KG","steward","How to drive a QRCraftly pull request to merged. Use when opening a PR, handling CI or review events on it, updating its branch, or deciding whether to merge.","AGPL-3.0","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsteward\u002FSKILL.md",[],[123,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144],"when","review","merge","pr","pull request","pull","ci","how","branch","use","opening a pr","drive","how to","events","it","request",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":125,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":159,"publishedAt":28},"01M6C42QWPRJ0G7BXDXE3DK50N","run-qrcraftly","Build, run, and drive the QRCraftly web app (Vike + React on Vite). Use when asked to start the dev server or production preview, take a screenshot of a page, click through the generator or QR code checker, download a generated code, confirm a UI change works in the real app, call a src\u002Fpackages function directly, or run unit and Playwright e2e tests in this container.","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Frun-qrcraftly\u002FSKILL.md",[151,156],{"categoryNo":152,"categoryName":153,"taxonomyType":154,"taxonomyTypeDesc":155},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":157,"categoryName":158,"taxonomyType":154,"taxonomyTypeDesc":155},"01JBSEEDCAT000000000000009","前端开发",[160,161,162,163,164,165,166,167,168,169,138,170,171,172,173,174,129,175,176,177,178,179,180,181,182,183,184,185,186,187],"run","run qrcraftly","app","qr code","take a screenshot","checker","generator","unit","click","generated","tests","vite","preview","container","call","page","playwright","web","react","change","e2e tests","packages","code","dev","server","start","e2e","src",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":202,"publishedAt":28},"01M6C42NHXSZNS2E96WP7VQR4K","writing-shape","Writing, exploit: shape raw material into an article, paragraph by paragraph.","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwriting-shape\u002FSKILL.md",[194,197],{"categoryNo":195,"categoryName":196,"taxonomyType":154,"taxonomyTypeDesc":155},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":198,"categoryName":199,"taxonomyType":200,"taxonomyTypeDesc":201},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[203,204,205,21,206,207,208],"shape","writing shape","writing","exploit","article","material",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":217,"publishedAt":28},"01M6C42M1W5P95XKMR7B1HD7F3","writing-fragments","Writing, explore: mine raw fragments, no structure yet.","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwriting-fragments\u002FSKILL.md",[215,216],{"categoryNo":195,"categoryName":196,"taxonomyType":154,"taxonomyTypeDesc":155},{"categoryNo":198,"categoryName":199,"taxonomyType":200,"taxonomyTypeDesc":201},[218,205,219,220,21,221],"writing fragments","mine","structure","explore",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":230,"publishedAt":28},"01M6C42J3DYGGDFFKNV8QFFSS9","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Ffderuiter\u002FQRCraftly-web\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[228,229],{"categoryNo":195,"categoryName":196,"taxonomyType":154,"taxonomyTypeDesc":155},{"categoryNo":198,"categoryName":199,"taxonomyType":200,"taxonomyTypeDesc":201},[26,231,205,232,129,138,233,21],"writing for agents","documents","editing"]