[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7DGTB06XQSWMZJFMP6ACX56":3,"skill-same:01M7DGTB06XQSWMZJFMP6ACX56":46},{"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":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":29,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M7DGTB06XQSWMZJFMP6ACX56","vloop-operator",null,"The operator's playbook for this repo — \u002Fvloop:operate, plus what this repository adds to it (where its rules live, its checks, the roadmap row at close, the release, the acceptance briefs). Use in an interactive session whenever the operator asks to run, resume, verify, close or merge a brief, cut a release, or what to do about a halt or a finding. Writing briefs is the vloop-architect skill's.","mvelosop\u002Fvloop","mvelosop","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7357806?v=4","01M7DGSNKN1005Z8TRPECM5N0A","Miguel Veloso","01M7DGSNM9RMY7FWSBF539751T",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvloop-operator\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: vloop-operator\ndescription: The operator's playbook for this repo — \u002Fvloop:operate, plus what this repository adds to it (where its rules live, its checks, the roadmap row at close, the release, the acceptance briefs). Use in an interactive session whenever the operator asks to run, resume, verify, close or merge a brief, cut a release, or what to do about a halt or a finding. Writing briefs is the vloop-architect skill's.\n---\n\n# Operating the loop here\n\n**Follow `\u002Fvloop:operate`** — the plugin's playbook — for everything: before the\nrun, halts, verifying, recording, closing and merging. If it is not loaded, read\n`plugin\u002Fskills\u002Foperate\u002FSKILL.md`, which is the same text. This skill only adds\nwhat is particular to this repository; where the two seem to disagree, say so to\nthe operator rather than picking one.\n\n## Where the rules live\n\n`CLAUDE.md` points to them. When a failure needs the rule it breaks, walk the\ndomain (`docs\u002Fdomain\u002FREADME-domain.md` → `domain-model.md` → the context and\nentity page) and **cite the invariant by ID** (`B-4`, `P-4`, `S-2`, `M-5`…) in\nwhat you report and record. If the domain is silent, propose the rule to the\noperator; it may belong in `domain-model.md`.\n\n## Running\n\n- The run id is the brief's file name minus `.loop-brief`; the work branch is\n  named for it.\n- Gates run on macOS's BSD tools: no empty alternatives in `grep -E`, no\n  `sed -i` without a suffix, no `\\+`\u002F`\\|` in basic regexes, no `date -d`. A\n  gate that breaks one of these is a gate defect.\n- VS Code's `branch.*.vscode-merge-base` and its pull-request extension's\n  `branch.*.github-pr-*` keys are ignored by the guard; any other editor key\n  still halts with exit 9.\n\n## Verifying\n\n- The repository's checks are the ones in `CLAUDE.md` → Toolchain, all of them,\n  run by you.\n- Before trying `vloop brief close` or `vloop defect add` for real in a\n  throwaway clone of this repo, run `git remote set-head origin main` in the\n  clone: a local clone takes whatever branch was checked out as its default.\n\n## Closing\n\n- Besides what `vloop brief close` does, mark the brief's row in\n  `docs\u002Fdesign-notes\u002Fvloop-roadmap.md` consumed.\n- After recording interventions, refresh their index:\n  `tools\u002Finterventions-index.sh --write` (`--check` when verifying).\n- The squash-merge body's `Vloop-Brief:` line goes in the same paragraph\n  as any other trailer (`Co-Authored-By:`…), with no blank line between:\n  git reads only the last paragraph as trailers, and `tools\u002Frelease` finds\n  the briefs by that trailer. Check after the merge with\n  `git log -1 --format='%(trailers:key=Vloop-Brief,valueonly)'`.\n\n## Releasing\n\nOnly when the operator asks for one: `go run .\u002Ftools\u002Frelease prepare \u003Cversion>`\nopens the release PR; merge it on the operator's go-ahead; then\n`go run .\u002Ftools\u002Frelease publish \u003Cversion>` tags, releases and proves the public\ninstall. Record a `ceremony` intervention for it. Then install the release and\n`vloop upgrade` in each repository that uses vloop. See `tools\u002Frelease\u002FREADME.md`.\n\n## The acceptance briefs' flaws stay where they are\n\nA brief used for acceptance runs (the URL shortener template's) can hold a flaw\nfound in an earlier run, kept on purpose to see how the loop and the agents\nhandle it. Don't fix it, and don't describe it anywhere a session or a later fix\ncould learn it: issues, skills, evals, anything under `plugin\u002F`. Record what the\nrun showed in the operator notes and the design notes, in words that don't give\nthe flaw away; a fix to vloop uses a synthetic case.\n","# Operating the loop here\n\n**Follow `\u002Fvloop:operate`** — the plugin's playbook — for everything: before the\nrun, halts, verifying, recording, closing and merging. If it is not loaded, read\n`plugin\u002Fskills\u002Foperate\u002FSKILL.md`, which is the same text. This skill only adds\nwhat is particular to this repository; where the two seem to disagree, say so to\nthe operator rather than picking one.\n\n## Where the rules live\n\n`CLAUDE.md` points to them. When a failure needs the rule it breaks, walk the\ndomain (`docs\u002Fdomain\u002FREADME-domain.md` → `domain-model.md` → the context and\nentity page) and **cite the invariant by ID** (`B-4`, `P-4`, `S-2`, `M-5`…) in\nwhat you report and record. If the domain is silent, propose the rule to the\noperator; it may belong in `domain-model.md`.\n\n## Running\n\n- The run id is the brief's file name minus `.loop-brief`; the work branch is\n  named for it.\n- Gates run on macOS's BSD tools: no empty alternatives in `grep -E`, no\n  `sed -i` without a suffix, no `\\+`\u002F`\\|` in basic regexes, no `date -d`. A\n  gate that breaks one of these is a gate defect.\n- VS Code's `branch.*.vscode-merge-base` and its pull-request extension's\n  `branch.*.github-pr-*` keys are ignored by the guard; any other editor key\n  still halts with exit 9.\n\n## Verifying\n\n- The repository's checks are the ones in `CLAUDE.md` → Toolchain, all of them,\n  run by you.\n- Before trying `vloop brief close` or `vloop defect add` for real in a\n  throwaway clone of this repo, run `git remote set-head origin main` in the\n  clone: a local clone takes whatever branch was checked out as its default.\n\n## Closing\n\n- Besides what `vloop brief close` does, mark the brief's row in\n  `docs\u002Fdesign-notes\u002Fvloop-roadmap.md` consumed.\n- After recording interventions, refresh their index:\n  `tools\u002Finterventions-index.sh --write` (`--check` when verifying).\n- The squash-merge body's `Vloop-Brief:` line goes in the same paragraph\n  as any other trailer (`Co-Authored-By:`…), with no blank line between:\n  git reads only the last paragraph as trailers, and `tools\u002Frelease` finds\n  the briefs by that trailer. Check after the merge with\n  `git log -1 --format='%(trailers:key=Vloop-Brief,valueonly)'`.\n\n## Releasing\n\nOnly when the operator asks for one: `go run .\u002Ftools\u002Frelease prepare \u003Cversion>`\nopens the release PR; merge it on the operator's go-ahead; then\n`go run .\u002Ftools\u002Frelease publish \u003Cversion>` tags, releases and proves the public\ninstall. Record a `ceremony` intervention for it. Then install the release and\n`vloop upgrade` in each repository that uses vloop. See `tools\u002Frelease\u002FREADME.md`.\n\n## The acceptance briefs' flaws stay where they are\n\nA brief used for acceptance runs (the URL shortener template's) can hold a flaw\nfound in an earlier run, kept on purpose to see how the loop and the agents\nhandle it. Don't fix it, and don't describe it anywhere a session or a later fix\ncould learn it: issues, skills, evals, anything under `plugin\u002F`. Record what the\nrun showed in the operator notes and the design notes, in words that don't give\nthe flaw away; a fix to vloop uses a synthetic case.\n",{"name":5,"description":7},"main","4df015d5f3688d6e1a1032eae3e9c665c413b7c1",".claude\u002Fskills\u002Fvloop-operator","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop","https:\u002F\u002Fgithub.com\u002Fmvelosop","https:\u002F\u002Fmiguelveloso.dev\u002F","Senior Software Engineer & Architect - I make agentic development work by applying software engineering","2026-11-10 04:02:09",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add mvelosop\u002Fvloop --skill vloop-operator",{"tool":38,"command":39},"bunx","bunx skills add mvelosop\u002Fvloop --skill vloop-operator",{"tool":41,"command":42},"pnpm","pnpm dlx skills add mvelosop\u002Fvloop --skill vloop-operator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvloop-operator\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":19},"01M7DGWAYEKPEMMB04DGDQYG17","work","Do exactly one task of the autonomous loop's plan and report on it. Invoked once per iteration by the driver as \u002Fvloop:work \u003Ctask id>.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fwork\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M7DGW8658YS8PA05A9728T59","verify","Verify the built result of a whole run against its brief, in three passes, and report findings as verify\u002Fv2. Invoked once per complete run by the driver as \u002Fvloop:verify, in a session separate from the work and the reviews.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fverify\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M7DGW5JK1TARP0TDR55012M6","review","Independently verify one completed task of the autonomous loop and return a verdict. Invoked once per iteration by the driver as \u002Fvloop:review \u003Ctask id>, in a session separate from the work.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Freview\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M7DGVS9BZNJ1NY2BVXZYFRNM","review-brief","Independently review a vloop brief before it is marked ready — facts against the code, internal consistency, conflicts with the repository's own rules, decisions the author took that the operator has not approved, and whether the loop can actually run it — and return a verdict with findings. Use in a session separate from the one that wrote the brief, when asked to review a brief, or before running a brief that the same operator session wrote.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Freview-brief\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7DGVP4ZYEG0GXF7GTGYH3WE","plan","Decompose a brief into .vloop\u002Fstate\u002Fstate.json — the task list the autonomous loop executes. Invoked once per run by the driver as \u002Fvloop:plan \u003Cbrief path>.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fplan\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},"01M7DGVJ4TW9SN92WD1HJD3XN9","operate","The operator's playbook — from a ready brief, check the repository, run it with vloop on a work branch, handle halts, verify the result independently, record defects and interventions, close the brief and merge. Use in an interactive session when asked to run, resume, verify, close or merge a brief, or what to do about a halt or a finding. Writing briefs is \u002Fvloop:create-brief's.","https:\u002F\u002Fgithub.com\u002Fmvelosop\u002Fvloop\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Foperate\u002FSKILL.md",[],[]]