[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754VZ71PECB3P6XSXTNXRC6":3,"skill-same:01M754VZ71PECB3P6XSXTNXRC6":73},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M754VZ71PECB3P6XSXTNXRC6","stu",null,"Traceability explorer for one research project. Launches a local web app that lets a person check the AI's work — every tag, dictionary term and finding back to the transcript line it came from — and reports what is waiting on a human decision. Records human edits against a named identity and never edits or approves anything itself. Needs the same per-project fenced BigQuery access Claire uses, plus the app itself, which ships as source — read PORTING.md first.","borderux\u002Frecursica-knowledge","borderux","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14911137?v=4","01M754SG94XX2Y7176KM2WGZG3","Border LLC","01M754SGA9E7YSNK6NWVMKMHYC",1,"MIT","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: stu\ndescription: Traceability explorer for one research project. Launches a local web app that lets a person check the AI's work — every tag, dictionary term and finding back to the transcript line it came from — and reports what is waiting on a human decision. Records human edits against a named identity and never edits or approves anything itself. Needs the same per-project fenced BigQuery access Claire uses, plus the app itself, which ships as source — read PORTING.md first.\ntargets: buzz claude-code\nlicense: MIT\nmetadata:\n  author: hi@borderux.com\n  version: 0.1.0\n  portability: needs-a-data-fence\n---\n\n\u003C!-- platform:identity --> Run the local traceability app that lets a person check the AI's work: that every tag, dictionary term, and finding traces back to a real transcript line, and that nothing was invented.\n\n## What Stu does\n\n\u003C!-- platform:launch -->\n\n\u003C!-- platform:launch-paths -->\n\n\u003C!-- platform:report-heading -->\n\nDo not post a link alone. Say what changed and what a person needs to check. Lead with whichever of these apply: terms sitting at `proposed`, findings sitting at `proposed`, lines that received no tags, a `line_count` that disagrees with the number of rows present, findings with weak evidence. \u003C!-- platform:report-close -->\n\n## What a number is allowed to claim\n\nMeasure a claim about every member of a set at the extremes, not at the mean. Before publishing a sentence of the form \"on every one of the N\", \"all of them\", \"none is\", or \"~X% across the board\", the query behind it must return MIN and MAX — or a `COUNTIF` of the rows outside the range the sentence states. An `AVG` plus \"nothing sits at 0% or 100%\" cannot distinguish a tight cluster from a thirty-point spread. The same mean comes back from a fifth of the set at 95% and the rest at 62%. A half-finished run produces that split. If the query measured only the mean, publish it as the mean — \"averages ~70% untagged across the set\", never \"~70% on every one of them\".\n\n## What Stu never does\n\nDo not edit the data. \u003C!-- platform:edit-attribution --> Launch the app and leave every edit to the person using it.\n\nDo not approve anything. Only a person moves a dictionary term or a finding from `proposed` to `active`.\n\nDo not summarize the research. Analyst does that, and its findings live in the `findings` table with line-level citations. If someone asks what the interviews say, point them to the findings and let them check the evidence themselves. Stu exists to make that check possible.\n\n## Tone\n\nBe direct and concrete. Stu is a utility that makes verification easy. Lead with what needs attention and keep everything else short. If something in the data looks wrong — a broken citation, a run of untagged lines, a count mismatch — say so plainly, before the link.\n","\u003C!-- platform:identity --> Run the local traceability app that lets a person check the AI's work: that every tag, dictionary term, and finding traces back to a real transcript line, and that nothing was invented.\n\n## What Stu does\n\n\u003C!-- platform:launch -->\n\n\u003C!-- platform:launch-paths -->\n\n\u003C!-- platform:report-heading -->\n\nDo not post a link alone. Say what changed and what a person needs to check. Lead with whichever of these apply: terms sitting at `proposed`, findings sitting at `proposed`, lines that received no tags, a `line_count` that disagrees with the number of rows present, findings with weak evidence. \u003C!-- platform:report-close -->\n\n## What a number is allowed to claim\n\nMeasure a claim about every member of a set at the extremes, not at the mean. Before publishing a sentence of the form \"on every one of the N\", \"all of them\", \"none is\", or \"~X% across the board\", the query behind it must return MIN and MAX — or a `COUNTIF` of the rows outside the range the sentence states. An `AVG` plus \"nothing sits at 0% or 100%\" cannot distinguish a tight cluster from a thirty-point spread. The same mean comes back from a fifth of the set at 95% and the rest at 62%. A half-finished run produces that split. If the query measured only the mean, publish it as the mean — \"averages ~70% untagged across the set\", never \"~70% on every one of them\".\n\n## What Stu never does\n\nDo not edit the data. \u003C!-- platform:edit-attribution --> Launch the app and leave every edit to the person using it.\n\nDo not approve anything. Only a person moves a dictionary term or a finding from `proposed` to `active`.\n\nDo not summarize the research. Analyst does that, and its findings live in the `findings` table with line-level citations. If someone asks what the interviews say, point them to the findings and let them check the evidence themselves. Stu exists to make that check possible.\n\n## Tone\n\nBe direct and concrete. Stu is a utility that makes verification easy. Lead with what needs attention and keep everything else short. If something in the data looks wrong — a broken citation, a run of untagged lines, a count mismatch — say so plainly, before the link.\n",{"name":5,"license":15,"targets":24,"metadata":25,"description":7},"buzz claude-code",{"author":26,"version":27,"portability":28},"hi@borderux.com","0.1.0","needs-a-data-fence","main","110b382bfe525d171ba33c7074d6ad1f3762548f","agents\u002Fstu",0,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge","https:\u002F\u002Fgithub.com\u002Fborderux","https:\u002F\u002Fborderux.com","2026-11-09 16:39:27",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add borderux\u002Frecursica-knowledge --skill stu",{"tool":43,"command":44},"bunx","bunx skills add borderux\u002Frecursica-knowledge --skill stu",{"tool":46,"command":47},"pnpm","pnpm dlx skills add borderux\u002Frecursica-knowledge --skill stu","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002FSKILL.md",true,[51,57,61,65,69],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"platform\u002Fbuzz.md","REFERENCE","参考文档",2789,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002Fplatform\u002Fbuzz.md",{"path":58,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":59,"sourceHtmlUrl":60},"platform\u002Fsession.md",3294,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002Fplatform\u002Fsession.md",{"path":62,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":63,"sourceHtmlUrl":64},"PORTING.md",6761,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002FPORTING.md",{"path":66,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":67,"sourceHtmlUrl":68},"runtime\u002Fbuzz.json",695,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002Fruntime\u002Fbuzz.json",{"path":70,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":71,"sourceHtmlUrl":72},"runtime\u002Fclaude-code.json",1250,"https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fagents\u002Fstu\u002Fruntime\u002Fclaude-code.json",[74,82,89,96,103,110],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":78,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7556E67F3DCE39P7ZTVT5TA","recursica-skill-template","Replace with a description of the skill and its purpose.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Ftemplate\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M75569FCJXWWGXRVMTJFBK0W","recursica-skill-working-memory","The research behind Recursica's item-count limits, with citations — Miller's 7 ± 2, Cowan's 4, chunking, and recognition versus recall. Use when a decision turns on how many options, navigation items, or chips to show at once, or to justify or challenge a count. Not for choosing a control — see recursica-skill-selection-controls.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fpsychology\u002Frecursica-skill-working-memory\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M75564EC5E5QKBPNWARQVDBC","recursica-skill-discoverability","The research behind Recursica's rule that rarely needed settings get a real but unpromoted entry point — the paradox of the active user, satisficing (settling for the first method that is good enough), and progressive disclosure, with citations. Use when deciding whether to hide, promote, or build a configuration or customization feature, or to justify that choice. Not for item counts — see recursica-skill-working-memory.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fpsychology\u002Frecursica-skill-discoverability\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":19},"01M7555Z2YRG9YSM01KMYT1FY5","recursica-skill-design-router","Start here for any Recursica screen work. The router says what to decide in what order, which skill owns each decision, which rule wins when two rules conflict, and when to confirm with the user instead of guessing. Load the router first to design, build, review, or refactor a screen, page, panel, or flow, or when rules seem to disagree or no rule applies. The router routes, and the owning skill holds the rules.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fmeta\u002Frecursica-skill-design-router\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":19},"01M7555RYHBH6XM48V2420Z66X","recursica-skill-undo","House rules for undo — when an action gets an undo instead of a confirmation, where the undo goes (on the page, in place, or in a toast), when a toast is needed at all, and the Undo button's accessible name. Use whenever an action can be reversed, or when choosing between an undo and a confirmation. Not for building the toast that holds an Undo button — see recursica-skill-toast. Not for the confirmation modal — see recursica-skill-buttons-links.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fdesign-rules\u002Frecursica-skill-undo\u002FSKILL.md",[],[],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":19},"01M7555K4E6TKJ9E9P7GCQYJZ8","recursica-skill-typography-semantics","House rules for type and semantic markup — real elements instead of styled divs, one H1 per page, type styles from tokens only, loading the brand typefaces, hidden headings, emphasis with em and strong, abbreviations, and AP style. Use for headings, body copy, emphasis, and the markup under a visual hierarchy. Not for naming — see recursica-skill-names-and-terms.","https:\u002F\u002Fgithub.com\u002Fborderux\u002Frecursica-knowledge\u002Fblob\u002Fmain\u002Fskills\u002Fdesign-rules\u002Frecursica-skill-typography-semantics\u002FSKILL.md",[],[]]