[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H5YDZX36EXVMRQGP07TNSN":3,"skill-same:01M6H5YDZX36EXVMRQGP07TNSN":75},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6H5YDZX36EXVMRQGP07TNSN","cite-research",null,"Use whenever you design or build something people will use — forms, screens, game mechanics, animations, loading states, pacing — so the decision carries its research (\"as per research:\u003Cid>, ... because ...\"), and whenever a user has adjusted one feature several times in a session, to offer a search for research from reputable authorities instead of more guessing. Also the grammar for @research in code, prose and commit trailers. Works for any project in a Tillandsias forge.","8007342\u002Ftillandsias","8007342","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F162944123?v=4","01M6H5SFAKAV1RH8MY0C9X2SZZ","Tlatoāni","01M6H5SFF2BBW9HGM3DXAZ84TG",6,"MIT","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fcite-research\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"research","cite research","for","design","more","you","loading","states","people","records","as","feature","mechanics","project","use","session","decision","forge","search","code","2026-11-10 10:12:30",false,"---\nname: cite-research\ndescription: Use whenever you design or build something people will use — forms, screens, game mechanics, animations, loading states, pacing — so the decision carries its research (\"as per research:\u003Cid>, ... because ...\"), and whenever a user has adjusted one feature several times in a session, to offer a search for research from reputable authorities instead of more guessing. Also the grammar for @research in code, prose and commit trailers. Works for any project in a Tillandsias forge.\nlicense: MIT\nmetadata:\n  author: tillandsias\n  trace: spec:research-records\n---\n\n# Cite research\n\nA design decision without its reason is a preference. With a research record\nbehind it, it is a requirement the next session can check.\n\n## The grammar\n\nCite the **record**, never the paper; the record carries the provenance.\nThe id is the record's path without `.md`, and it resolves in two places:\nthe project's `research\u002F` and the shared library at\n`$TILLANDSIAS_RESEARCH` (`\u002Fopt\u002Fresearch`; `research\u002F` in a Tillandsias\ncheckout).\n\n| Where | Form |\n| --- | --- |\n| specs, design notes, plans | `as per research:interaction\u002Ffitts-law-1954, the primary action is the largest target and sits where the pointer already is, because movement time grows with distance over width.` |\n| code comment | `\u002F\u002F @research interaction\u002Fresponse-time-limits-nielsen-1993` (beside `@cheatsheet` lines) |\n| commit message trailer | `Research: interaction\u002Fresponse-time-limits-nielsen-1993` |\n| replying to the user | \"The research on this (Nielsen's response-time limits) says ... so I ...\" — plain words, the id in brackets once. |\n\nThe sentence that cites must say **the decision**, **the relationship** and\n**why the claim supports it**. \"Two forms and some buttons\" becomes \"as per\nresearch:psychology\u002Fflow-nakamura-csikszentmihalyi-2014, these two forms are\none task split into two steps with the next goal visible on each, because\nflow needs a clear goal and immediate feedback at every step.\"\n\nOnly cite a record whose `claim:` actually supports the decision. If the\ndecision goes beyond the research (an exact duration, a colour), say \"design\nchoice\" next to it. Never cite from memory: if there is no record, find one\n(`\u002Ffind-research`) or write the decision as a choice.\n\n## When to cite\n\n- Every time a spec or design describes how parts relate, how fast\n  something responds, how a user is guided, what they will notice.\n- Every commit that changes such behaviour carries the trailer.\n- Every time you reject a user's suggestion on behaviour grounds: show the\n  record, then let them decide.\n\n## The fine-tuning trigger\n\nKeep a rough count, per feature, of how many times the user has asked you\nto adjust the same thing in this session (a timing, a layout, a difficulty\ncurve, a wording). When it reaches about three without converging, offer\nonce, in these words or close to them:\n\n> That's a lot of fine-tuning for this feature. Shall we search online for\n> research from reputable authorities on it, so we tune against what is\n> known rather than guess?\n\n- On yes: run `\u002Ffind-research` with the feature as the question, then come\n  back with what the research says and a proposed setting that cites it.\n- On no: carry on, and do not offer again for that feature this session.\n- Do not offer on the first or second adjustment, and not for features\n  where no research could apply (a brand colour, a name).\n\n## Checking a citation\n\nA `research:\u003Cid>` must resolve to a file:\n\n```bash\nid=\"interaction\u002Ffitts-law-1954\"\ntest -f \"research\u002F$id.md\" || test -f \"${TILLANDSIAS_RESEARCH:-\u002Fopt\u002Fresearch}\u002F$id.md\" || echo \"dangling: research:$id\"\n```\n\nA dangling citation is a defect: either pull the record in or remove the\nclaim.\n","# Cite research\n\nA design decision without its reason is a preference. With a research record\nbehind it, it is a requirement the next session can check.\n\n## The grammar\n\nCite the **record**, never the paper; the record carries the provenance.\nThe id is the record's path without `.md`, and it resolves in two places:\nthe project's `research\u002F` and the shared library at\n`$TILLANDSIAS_RESEARCH` (`\u002Fopt\u002Fresearch`; `research\u002F` in a Tillandsias\ncheckout).\n\n| Where | Form |\n| --- | --- |\n| specs, design notes, plans | `as per research:interaction\u002Ffitts-law-1954, the primary action is the largest target and sits where the pointer already is, because movement time grows with distance over width.` |\n| code comment | `\u002F\u002F @research interaction\u002Fresponse-time-limits-nielsen-1993` (beside `@cheatsheet` lines) |\n| commit message trailer | `Research: interaction\u002Fresponse-time-limits-nielsen-1993` |\n| replying to the user | \"The research on this (Nielsen's response-time limits) says ... so I ...\" — plain words, the id in brackets once. |\n\nThe sentence that cites must say **the decision**, **the relationship** and\n**why the claim supports it**. \"Two forms and some buttons\" becomes \"as per\nresearch:psychology\u002Fflow-nakamura-csikszentmihalyi-2014, these two forms are\none task split into two steps with the next goal visible on each, because\nflow needs a clear goal and immediate feedback at every step.\"\n\nOnly cite a record whose `claim:` actually supports the decision. If the\ndecision goes beyond the research (an exact duration, a colour), say \"design\nchoice\" next to it. Never cite from memory: if there is no record, find one\n(`\u002Ffind-research`) or write the decision as a choice.\n\n## When to cite\n\n- Every time a spec or design describes how parts relate, how fast\n  something responds, how a user is guided, what they will notice.\n- Every commit that changes such behaviour carries the trailer.\n- Every time you reject a user's suggestion on behaviour grounds: show the\n  record, then let them decide.\n\n## The fine-tuning trigger\n\nKeep a rough count, per feature, of how many times the user has asked you\nto adjust the same thing in this session (a timing, a layout, a difficulty\ncurve, a wording). When it reaches about three without converging, offer\nonce, in these words or close to them:\n\n> That's a lot of fine-tuning for this feature. Shall we search online for\n> research from reputable authorities on it, so we tune against what is\n> known rather than guess?\n\n- On yes: run `\u002Ffind-research` with the feature as the question, then come\n  back with what the research says and a proposed setting that cites it.\n- On no: carry on, and do not offer again for that feature this session.\n- Do not offer on the first or second adjustment, and not for features\n  where no research could apply (a brand colour, a name).\n\n## Checking a citation\n\nA `research:\u003Cid>` must resolve to a file:\n\n```bash\nid=\"interaction\u002Ffitts-law-1954\"\ntest -f \"research\u002F$id.md\" || test -f \"${TILLANDSIAS_RESEARCH:-\u002Fopt\u002Fresearch}\u002F$id.md\" || echo \"dangling: research:$id\"\n```\n\nA dangling citation is a defect: either pull the record in or remove the\nclaim.\n",{"name":5,"license":15,"metadata":49,"description":7},{"trace":50,"author":51},"spec:research-records","tillandsias","main","bf1668fd1df1b3363b826d083f060234cd2e1d0c","skills\u002Fcite-research",0,"https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias","https:\u002F\u002Fgithub.com\u002F8007342","https:\u002F\u002Ftlatoani.net","I used to be a software engineer.","2026-11-15 01:25:25",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add 8007342\u002Ftillandsias --skill cite-research",{"tool":67,"command":68},"bunx","bunx skills add 8007342\u002Ftillandsias --skill cite-research",{"tool":70,"command":71},"pnpm","pnpm dlx skills add 8007342\u002Ftillandsias --skill cite-research","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fcite-research\u002FSKILL.md",true,[],[76,99,132,151,174,186],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":44},"01M6H60M8Y949GNECQVKAYFNH3","start-a-new-project","Use when the user wants to start a new project, asks how to begin, or is in an empty or nearly empty repository (\"how do I start?\", \"I want to build an app\", \"help me set up a new project\"). Guides them, in plain language, to describe the app as specs first (spec-driven development with OpenSpec), recommends Flutter (and the Flame engine for games and graphics), and sets up specs, a plan folder for longer work, and a README. Works for any project, not only Tillandsias.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fstart-a-new-project\u002FSKILL.md",[],[83,84,37,85,86,87,88,89,38,90,91,92,93,34,94,95,96,97,98,26],"start","new project","start a new project","development","SET","flutter","README","only","up","openspec","do","app","how to","flame","games","spec-driven",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":103,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":112,"publishedAt":44},"01M6H60EXYDCPSD1QGC89HM0ZC","smoke-curl-install-and-test-e2e","Clean-room end-to-end smoke test of a PUBLISHED release. Curl-installs the latest release binary from GitHub, does a full `podman system reset --force`, runs `tillandsias --debug --init` from a pristine state, and (if init is clean) launches `tillandsias --cloud 8007342\u002Ftillandsias --opencode` with ONE short fixed smoke prompt (run the credential guard, reply with a fixed token; never the \u002Fmeta-orchestration loop, 1941-smkp). Every issue observed — by this skill's agent during install\u002Freset\u002Finit, or by the agent's one turn inside the forge — is filed as a plan\u002Fissues work packet for later pickup by \u002Fadvance-work-from-plan.","GPL-3.0","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fsmoke-curl-install-and-test-e2e\u002FSKILL.md",[106,109],{"categoryNo":107,"categoryName":108,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[113,114,115,116,117,118,119,120,121,122,41,123,124,125,126,127,128,129,130,131],"test","e2e","curl","install","smoke","smoke curl install and test e2e","orchestration","init","podman","issues","Meta","loop","plan","work","short","never","clean","end","reset",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":44},"01M6H609K8BAW74S59C68QRKC3","project-discipline","How THIS project wants its branches and pushes shaped — read its branch-discipline level (0 push to main freely; 1 integration branch + pull requests; 2 work refs into the integration branch), the drift between what it declares and what its history shows, which hooks it has installed, how to raise it, and the work format each hook refusal asks for. Every refusal that says \"use \u002Fproject-discipline for instructions\" resolves here. Works for any project in a Tillandsias forge, not only Tillandsias.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fproject-discipline\u002FSKILL.md",[],[139,37,140,141,142,143,41,144,126,145,38,90,146,52,147,148,95,149,150,26],"discipline","project discipline","pull requests","pull","push","history","branch","hooks","branches","drift","requests","which",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":103,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":44},"01M6H605G5NAKPP1RE10T3716W","probe-macos-tray-on-windows","Daily cross-platform health probe — compiles the macos-tray crate from the local Windows host. Expected to succeed as a stub (the crate is fully cfg-gated for non-macOS); a build failure here means a shared module or crate broke for everyone. Files structured findings to plan\u002Fissues\u002Fprobe-macos-tray-on-windows-findings-\u003CDATE>.md.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fprobe-macos-tray-on-windows\u002FSKILL.md",[],[158,159,160,161,122,162,163,125,164,165,166,167,168,169,170,171,34,172,26,173],"macos","windows","probe","probe macos tray on windows","CFG","health","daily","files","build","gated","local","shared","platform","module","host","expected",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":103,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":44},"01M6H603KPFQJNC7WWD6X5Q4AA","multihost-orchestration","Compatibility alias for the canonical coordinate-multihost-work skill.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fmultihost-orchestration\u002FSKILL.md",[],[119,181,126,182,183,184,185,26],"multihost orchestration","compatibility","coordinate","alias","canonical",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":103,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":194,"publishedAt":44},"01M6H5ZXRBC66CSA5N28HP2BY7","meta-orchestration","Host-aware Tillandsias recurring runtime loop: sync remote state, drain claimable plan work, run eligible e2e smoke gates, coordinate integrations on mutable Linux, release when warranted, update plan, commit, and push before exit.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fmeta-orchestration\u002FSKILL.md",[192,193],{"categoryNo":107,"categoryName":108,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},[119,123,195,196,197,198,199,200,201,143,124,125,202,126,203,117,204,183,172,205],"meta orchestration","commit","sync","run","update","release","state","integrations","recurring","exit","remote"]