[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PGDMA5DMCSQ8VCV129BZWB":3,"skill-same:01M6PGDMA5DMCSQ8VCV129BZWB":43},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":17,"linkOnly":18,"markdownContent":19,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":12,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":27,"updatedAt":28,"install":29,"resources":42},"01M6PGDMA5DMCSQ8VCV129BZWB","intent",null,"meirmsn\u002Fabra-kadabra","meirmsn","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F836135?v=4","01M6PGD3EKPVDVZZP2YKP2NE7A","01M6PGD3JRNS2CCKFV2Q591WCY",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fintent\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"---\nname: intent\ndescription: Start of every request: say its kind; a change gets a spec with AC-\u003Cn> items, an adversarial review and the owner's \"go\" before building; too big: `ak:split`.\n---\n\n# Intent\n\nEvery request starts here (TARGET § L3 Intent). The spec is the record, not the chat.\n\n## 1. Say the kind up front\n\nName it in your first reply, for the owner to correct.\n\n- **No change** (status, analysis, a question): just do it; no spec, no \"go\". \"What's next?\" is\n  the top `Open` entry of `ROADMAP.md`.\n- **Later** (\"put it on the roadmap\"): a `ROADMAP.md` entry quoting the request word for word\n  (`\u002Fopt\u002Fdevshop-current\u002Ftemplates\u002Froadmap.md` has the rules), its own small PR, no spec.\n- **Set-up:** a repo with no `.devshop-version` and no `.github\u002Fworkflows\u002Fci.yml`:\n  `ak:new-project`, no spec; a whole app continues at § 2 once that PR is up.\n- **Bug fix:** restate the problem and the expected behaviour; the failing test is the spec. No\n  \"go\": `build`. A fix with a real choice (behaviour people rely on, several fair fixes) is a change.\n- **Any other change:** the steps below; so is an analysis that ends in \"we should change X\".\n\n## 2. Sharpen it\n\n- Why, who or the problem not settled (a new product, a big or fuzzy feature)? Propose gstack's\n  `\u002Foffice-hours`. A decision that rests on how a tool behaves: an experiment first.\n- **Too big for one change** (a whole app; a feature no one PR could show working):\n  `ak:split` before any spec; it comes back here with the first slice.\n- A feature gets gstack's `\u002Fspec --file-only --no-gate` interview, stopped before it files an\n  issue, then the plan reviews that fit. No interview for a small change (one screen or one rule,\n  no new model), which gets a one-paragraph spec, nor for a slice the plan document details.\n\n## 3. Write the spec\n\n- Fill `\u002Fopt\u002Fdevshop-current\u002Ftemplates\u002Fspec.md` into `specs\u002F\u003Cchange>.md` as its comments say.\n  `specs\u002F` holds spec files only, one per change: the reviewer takes the one `specs\u002F**.md` file a\n  change touches as its spec, and anything else there makes the review could-not-run.\n- Capture decisions when the owner makes them, not turn by turn. An item that can't be tested or\n  done goes back to the owner, never reworded. What only the owner can confirm, or is true only\n  after the merge, goes in Decisions.\n- Run `\u002Fopt\u002Fdevshop-current\u002Fscripts\u002Fspec-check.py specs\u002F\u003Cchange>.md` until it passes. Commit and\n  push the draft as you go; nothing is built before the \"go\".\n\n## 4. Adversarial spec review, before the owner sees it\n\nGive a fresh read-only helper (the `Plan` agent type) only the spec's path and the owner's own\nwords, and have it attack the spec: its match to the intent and the recorded decisions; ambiguity;\nuntestable items; missing edge cases and failure modes; scope added; literal code against the\ncodebase. Its findings are claims to check: fix what you're sure of; the rest go to the owner as\nquestions. (A mitigation until the independent reviewer reviews specs.)\n\n## 5. The \"go\"\n\n- Show the owner one screen: intent, decisions, acceptance items, out of scope, rough size, the\n  open questions from step 4. On \"go\", record it on the spec's `**Go:**` line (their words, the\n  date), run `spec-check.py --go`, commit and push. Then `build`.\n- After the go, a change to a decision or an acceptance item is the owner's: their answer when you\n  raise it, or their PR comment. Record its words and date in the spec as theirs; the final review\n  fails on one that isn't.\n","# Intent\n\nEvery request starts here (TARGET § L3 Intent). The spec is the record, not the chat.\n\n## 1. Say the kind up front\n\nName it in your first reply, for the owner to correct.\n\n- **No change** (status, analysis, a question): just do it; no spec, no \"go\". \"What's next?\" is\n  the top `Open` entry of `ROADMAP.md`.\n- **Later** (\"put it on the roadmap\"): a `ROADMAP.md` entry quoting the request word for word\n  (`\u002Fopt\u002Fdevshop-current\u002Ftemplates\u002Froadmap.md` has the rules), its own small PR, no spec.\n- **Set-up:** a repo with no `.devshop-version` and no `.github\u002Fworkflows\u002Fci.yml`:\n  `ak:new-project`, no spec; a whole app continues at § 2 once that PR is up.\n- **Bug fix:** restate the problem and the expected behaviour; the failing test is the spec. No\n  \"go\": `build`. A fix with a real choice (behaviour people rely on, several fair fixes) is a change.\n- **Any other change:** the steps below; so is an analysis that ends in \"we should change X\".\n\n## 2. Sharpen it\n\n- Why, who or the problem not settled (a new product, a big or fuzzy feature)? Propose gstack's\n  `\u002Foffice-hours`. A decision that rests on how a tool behaves: an experiment first.\n- **Too big for one change** (a whole app; a feature no one PR could show working):\n  `ak:split` before any spec; it comes back here with the first slice.\n- A feature gets gstack's `\u002Fspec --file-only --no-gate` interview, stopped before it files an\n  issue, then the plan reviews that fit. No interview for a small change (one screen or one rule,\n  no new model), which gets a one-paragraph spec, nor for a slice the plan document details.\n\n## 3. Write the spec\n\n- Fill `\u002Fopt\u002Fdevshop-current\u002Ftemplates\u002Fspec.md` into `specs\u002F\u003Cchange>.md` as its comments say.\n  `specs\u002F` holds spec files only, one per change: the reviewer takes the one `specs\u002F**.md` file a\n  change touches as its spec, and anything else there makes the review could-not-run.\n- Capture decisions when the owner makes them, not turn by turn. An item that can't be tested or\n  done goes back to the owner, never reworded. What only the owner can confirm, or is true only\n  after the merge, goes in Decisions.\n- Run `\u002Fopt\u002Fdevshop-current\u002Fscripts\u002Fspec-check.py specs\u002F\u003Cchange>.md` until it passes. Commit and\n  push the draft as you go; nothing is built before the \"go\".\n\n## 4. Adversarial spec review, before the owner sees it\n\nGive a fresh read-only helper (the `Plan` agent type) only the spec's path and the owner's own\nwords, and have it attack the spec: its match to the intent and the recorded decisions; ambiguity;\nuntestable items; missing edge cases and failure modes; scope added; literal code against the\ncodebase. Its findings are claims to check: fix what you're sure of; the rest go to the owner as\nquestions. (A mitigation until the independent reviewer reviews specs.)\n\n## 5. The \"go\"\n\n- Show the owner one screen: intent, decisions, acceptance items, out of scope, rough size, the\n  open questions from step 4. On \"go\", record it on the spec's `**Go:**` line (their words, the\n  date), run `spec-check.py --go`, commit and push. Then `build`.\n- After the go, a change to a decision or an acceptance item is the owner's: their answer when you\n  raise it, or their PR comment. Record its words and date in the spec as theirs; the final review\n  fails on one that isn't.\n",{},"main","00f68ff5b049c77a921a452d635d7d60f38a85d2","runtime\u002Fskills\u002Fintent","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra","https:\u002F\u002Fgithub.com\u002Fmeirmsn","Human in the loop 🔁 @meirmsn-agent","2026-11-11 10:13:10",{"source":7,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add meirmsn\u002Fabra-kadabra --skill intent",{"tool":35,"command":36},"bunx","bunx skills add meirmsn\u002Fabra-kadabra --skill intent",{"tool":38,"command":39},"pnpm","pnpm dlx skills add meirmsn\u002Fabra-kadabra --skill intent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fintent\u002FSKILL.md",true,[],[44,50,56,64,81,91],{"skillNo":45,"name":46,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":47,"categories":48,"keywords":49,"publishedAt":17},"01M6PGDZGQ92ZCEJ80ZHAVFNW1","split","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fsplit\u002FSKILL.md",[],[46],{"skillNo":51,"name":52,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":17},"01M6PGDTD98PK486GN96KY5F88","pr","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fpr\u002FSKILL.md",[],[52],{"skillNo":57,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":17},"01M6PGDQ043TPS9F5G9SWD8ZCC","new-project","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fnew-project\u002FSKILL.md",[],[62,63],"project","new project",{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":17},"01M6PGDF2XJK8KXNZABT3PPPWJ","devshop-version","Which devshop version this session runs and how old its local copy is. Use when asked about the devshop version or the DEVSHOP line.","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fruntime\u002Fskills\u002Fdevshop-version\u002FSKILL.md",[],[71,72,73,74,75,76,77,78,79,80],"devshop version","version","use","which","about","copy","line","local","session","how",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":17},"01M6PGDBR4GRFCQT1SADTNYAQH","devshop-probe2","W10.1.2b probe. Use when asked to \"run the devshop probe2\".","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fkit\u002Fnotes\u002Frevamp\u002Fspikes\u002Fw10-1-2b-thin\u002Fruntime\u002Fskills\u002Fdevshop-probe2\u002FSKILL.md",[],[88,89,73,90],"devshop probe2","probe","run",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":17},"01M6PGD97D9NJNS986ENSCHC5K","devshop-probe","W10.1.2 probe. Use when asked to \"run the devshop probe\" or \"check the devshop install\".","https:\u002F\u002Fgithub.com\u002Fmeirmsn\u002Fabra-kadabra\u002Fblob\u002Fmain\u002Fkit\u002Fnotes\u002Frevamp\u002Fspikes\u002Fw10-1-2-install\u002Fplugin\u002Fskills\u002Fdevshop-probe\u002FSKILL.md",[],[89,98,90,73,99,100],"devshop probe","install","check"]