[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71SVYQKXT743HHHWGHT3G13":3,"skill-same:01M71SVYQKXT743HHHWGHT3G13":82},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M71SVYQKXT743HHHWGHT3G13","workspace-mode",null,"Use when cwd is a parent dir holding multiple sibling git repos — defines repo auto-detection, --repos\u002F--repo\u002F--all-repos\u002F--this-repo precedence, per-repo dispatch, and linked-PR mechanics.","HigorAlves\u002Forc","HigorAlves","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11262976?v=4","01M71S79EZEMHZ8PQSV0XQJHYY","Higor Alves","01M71S79FKKTCHCN1EDR8DSTWQ",7,"MIT","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"workspace mode","mode","workspace","mechanics","auto","when","repos","git","pr","repo","use","dispatch","auto-detection","detection","parent","2026-11-10 13:02:02",false,"---\nname: workspace-mode\ndescription: Use when cwd is a parent dir holding multiple sibling git repos — defines repo auto-detection, --repos\u002F--repo\u002F--all-repos\u002F--this-repo precedence, per-repo dispatch, and linked-PR mechanics.\n---\n\n# Workspace mode\n\n## Overview\n\norc auto-detects two contexts at session start:\n\n- **repo** — cwd is inside a git repo. Single-repo mode (the original orc behavior).\n- **workspace** — cwd is *not* inside a git repo, but ≥2 immediate child directories *are* git repos.\n\nIn workspace mode, one orc flow can span multiple repos: a single shared plan, the same branch name created in each targeted repo, per-repo implementers running in parallel, and N linked PRs at ship time.\n\n**Announce at start:** \"I'm using the workspace-mode skill because the SessionStart banner showed `orc context: workspace[…]`.\"\n\n## Detection\n\nThe session-start hook (`hooks\u002Fscripts\u002Fsession-start-using-orc.sh`) sources `lib\u002Fworkspace-detect.sh` and emits a banner. Commands that need the same context source the helper themselves:\n\n```bash\n. \"${CLAUDE_PLUGIN_ROOT}\u002Flib\u002Fworkspace-detect.sh\"\neval \"$(orc_detect_context)\"\n# now: $ORC_CONTEXT, $ORC_WORKSPACE_ROOT, $ORC_WORKSPACE_NAME,\n#      $ORC_WORKSPACE_REPOS (comma-sep), $ORC_REPO_ROOT, $ORC_STATE_DIR\n```\n\nDetection precedence:\n1. `git rev-parse --show-toplevel` succeeds → `repo`.\n2. ≥2 immediate child dirs of cwd are git repos → `workspace`.\n3. Otherwise → `loose` (commands refuse with a hint to `cd`).\n\nThe helper is the single source of truth — never reimplement detection inline.\n\n## Flag precedence (repo-touching commands)\n\nWhen the context is `workspace`, every repo-touching command (`\u002Forc:flow`, `\u002Forc:plan`, `\u002Forc:start`, `\u002Forc:ship`, `\u002Forc:address`, `\u002Forc:qa`, `\u002Forc:debug`, `\u002Forc:cleanup`, `\u002Forc:resume`, `\u002Forc:code-review`, `\u002Forc:fan-out`) honors:\n\n| Flag | Meaning |\n|------|---------|\n| `--repos a,b,c` | Broadcast to the listed repos. |\n| `--repo a` | Narrow to one. Mutually exclusive with `--repos`. |\n| `--all-repos` | Broadcast to every detected repo. Skips the prompt. |\n| `--this-repo` | Pin to cwd's repo (escape hatch from workspace prompts). |\n| *(no flag)* | **Prompt** via `AskUserQuestion`. Options: \"all N detected repos \u002F pick a subset \u002F just this repo \u002F cancel\". |\n\n**Iron rule (from `using-orc`): no silent broadcast.** A command in workspace mode MUST NOT touch more than the cwd's repo without one of the flags above or a confirming prompt.\n\n## State layout and registry schema\n\nWorkspace-level `.orc\u002F` holds the shared plan, checkpoint, env state and cross-repo QA; each repo keeps a `workspace-link.json` back-pointer. Read [STATE.md](references\u002FSTATE.md) when writing or reading workspace state: the directory layout, the `schemaVersion: 2` registry with `perRepoState`, and the six workspace ↔ single-repo compatibility defenses.\n\n## Per-repo agent dispatch\n\nOne implementer per repo, in parallel; agents take `repo`, `repoPath`, `siblingRepos`, `crossRepoContract`. Read [DISPATCH.md](references\u002FDISPATCH.md) when dispatching code-touching agents (`\u002Forc:flow` Phase 5).\n\n## Linked PRs\n\n`\u002Forc:ship` creates one PR per repo, then edits each to cross-link the others with the merge order. Read [LINKED-PRS.md](references\u002FLINKED-PRS.md) at ship time, or when iterating `linkedPRs[]` (`\u002Forc:cleanup`, `\u002Forc:address`): the entry schema, the stack fields, backward compatibility, and the verbose\u002Fcaveman body templates.\n\n## Branch-name collision handling\n\n`\u002Forc:start` and `\u002Forc:flow` Phase 4 check the branch against every target repo; a divergent branch escalates via `AskUserQuestion`. Read [DISPATCH.md](references\u002FDISPATCH.md) for the state table, the Gate headline, and the five recovery options.\n\n**Iron rule: workspace mode never silently picks.**\n\n## Backward compatibility (workspace ↔ single-repo)\n\nCovered in [STATE.md](references\u002FSTATE.md): the `workspace-link.json` stub, disjoint artifact sets, detection precedence, the `scope` discriminator, refuse-and-prompt on collision, and the schema bump.\n\n## Resume + cleanup semantics\n\n- `\u002Forc:resume` (workspace mode, no flag) resumes every repo of the workspace session at the same phase. `--repo a` narrows to one.\n- `\u002Forc:resume` from inside a workspace-member repo follows the `workspace-link.json` back-pointer up to the workspace registry and resumes from there.\n- `\u002Forc:cleanup` (workspace mode) waits until **all** linked PRs are merged before cleaning per-repo worktrees + state. `--per-repo` overrides to clean each as it merges (rare; use only when you intend to abandon the others).\n\n## When NOT to use workspace mode\n\n- **Single-repo work** — even when cwd happens to be a workspace, if the change touches one repo, run from inside that repo or pass `--this-repo`.\n- **Cross-workspace flows** — work that spans repos in different parent dirs is two separate flows. Don't try to staple them together.\n- **Sequencing-blocked work** — if repo B can't start until repo A's PR merges, run them as sequential single-repo flows. A coordinated flow is for changes that ship as one logical unit.\n","# Workspace mode\n\n## Overview\n\norc auto-detects two contexts at session start:\n\n- **repo** — cwd is inside a git repo. Single-repo mode (the original orc behavior).\n- **workspace** — cwd is *not* inside a git repo, but ≥2 immediate child directories *are* git repos.\n\nIn workspace mode, one orc flow can span multiple repos: a single shared plan, the same branch name created in each targeted repo, per-repo implementers running in parallel, and N linked PRs at ship time.\n\n**Announce at start:** \"I'm using the workspace-mode skill because the SessionStart banner showed `orc context: workspace[…]`.\"\n\n## Detection\n\nThe session-start hook (`hooks\u002Fscripts\u002Fsession-start-using-orc.sh`) sources `lib\u002Fworkspace-detect.sh` and emits a banner. Commands that need the same context source the helper themselves:\n\n```bash\n. \"${CLAUDE_PLUGIN_ROOT}\u002Flib\u002Fworkspace-detect.sh\"\neval \"$(orc_detect_context)\"\n# now: $ORC_CONTEXT, $ORC_WORKSPACE_ROOT, $ORC_WORKSPACE_NAME,\n#      $ORC_WORKSPACE_REPOS (comma-sep), $ORC_REPO_ROOT, $ORC_STATE_DIR\n```\n\nDetection precedence:\n1. `git rev-parse --show-toplevel` succeeds → `repo`.\n2. ≥2 immediate child dirs of cwd are git repos → `workspace`.\n3. Otherwise → `loose` (commands refuse with a hint to `cd`).\n\nThe helper is the single source of truth — never reimplement detection inline.\n\n## Flag precedence (repo-touching commands)\n\nWhen the context is `workspace`, every repo-touching command (`\u002Forc:flow`, `\u002Forc:plan`, `\u002Forc:start`, `\u002Forc:ship`, `\u002Forc:address`, `\u002Forc:qa`, `\u002Forc:debug`, `\u002Forc:cleanup`, `\u002Forc:resume`, `\u002Forc:code-review`, `\u002Forc:fan-out`) honors:\n\n| Flag | Meaning |\n|------|---------|\n| `--repos a,b,c` | Broadcast to the listed repos. |\n| `--repo a` | Narrow to one. Mutually exclusive with `--repos`. |\n| `--all-repos` | Broadcast to every detected repo. Skips the prompt. |\n| `--this-repo` | Pin to cwd's repo (escape hatch from workspace prompts). |\n| *(no flag)* | **Prompt** via `AskUserQuestion`. Options: \"all N detected repos \u002F pick a subset \u002F just this repo \u002F cancel\". |\n\n**Iron rule (from `using-orc`): no silent broadcast.** A command in workspace mode MUST NOT touch more than the cwd's repo without one of the flags above or a confirming prompt.\n\n## State layout and registry schema\n\nWorkspace-level `.orc\u002F` holds the shared plan, checkpoint, env state and cross-repo QA; each repo keeps a `workspace-link.json` back-pointer. Read [STATE.md](references\u002FSTATE.md) when writing or reading workspace state: the directory layout, the `schemaVersion: 2` registry with `perRepoState`, and the six workspace ↔ single-repo compatibility defenses.\n\n## Per-repo agent dispatch\n\nOne implementer per repo, in parallel; agents take `repo`, `repoPath`, `siblingRepos`, `crossRepoContract`. Read [DISPATCH.md](references\u002FDISPATCH.md) when dispatching code-touching agents (`\u002Forc:flow` Phase 5).\n\n## Linked PRs\n\n`\u002Forc:ship` creates one PR per repo, then edits each to cross-link the others with the merge order. Read [LINKED-PRS.md](references\u002FLINKED-PRS.md) at ship time, or when iterating `linkedPRs[]` (`\u002Forc:cleanup`, `\u002Forc:address`): the entry schema, the stack fields, backward compatibility, and the verbose\u002Fcaveman body templates.\n\n## Branch-name collision handling\n\n`\u002Forc:start` and `\u002Forc:flow` Phase 4 check the branch against every target repo; a divergent branch escalates via `AskUserQuestion`. Read [DISPATCH.md](references\u002FDISPATCH.md) for the state table, the Gate headline, and the five recovery options.\n\n**Iron rule: workspace mode never silently picks.**\n\n## Backward compatibility (workspace ↔ single-repo)\n\nCovered in [STATE.md](references\u002FSTATE.md): the `workspace-link.json` stub, disjoint artifact sets, detection precedence, the `scope` discriminator, refuse-and-prompt on collision, and the schema bump.\n\n## Resume + cleanup semantics\n\n- `\u002Forc:resume` (workspace mode, no flag) resumes every repo of the workspace session at the same phase. `--repo a` narrows to one.\n- `\u002Forc:resume` from inside a workspace-member repo follows the `workspace-link.json` back-pointer up to the workspace registry and resumes from there.\n- `\u002Forc:cleanup` (workspace mode) waits until **all** linked PRs are merged before cleaning per-repo worktrees + state. `--per-repo` overrides to clean each as it merges (rare; use only when you intend to abandon the others).\n\n## When NOT to use workspace mode\n\n- **Single-repo work** — even when cwd happens to be a workspace, if the change touches one repo, run from inside that repo or pass `--this-repo`.\n- **Cross-workspace flows** — work that spans repos in different parent dirs is two separate flows. Don't try to staple them together.\n- **Sequencing-blocked work** — if repo B can't start until repo A's PR merges, run them as sequential single-repo flows. A coordinated flow is for changes that ship as one logical unit.\n",{"name":5,"description":7},"main","7522fd7266944e30052204c2f6df287d8b5516be","orc\u002Fskills\u002Fworkspace-mode",0,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc","https:\u002F\u002Forc.novacstack.com\u002F","https:\u002F\u002Fgithub.com\u002FHigorAlves","higoralves.dev","Software Engineering","2026-11-07 07:26:38",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add HigorAlves\u002Forc --skill workspace-mode",{"tool":60,"command":61},"bunx","bunx skills add HigorAlves\u002Forc --skill workspace-mode",{"tool":63,"command":64},"pnpm","pnpm dlx skills add HigorAlves\u002Forc --skill workspace-mode","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002FSKILL.md",true,[68,74,78],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002FDISPATCH.md","REFERENCE","参考文档",2993,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002Freferences\u002FDISPATCH.md",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002FLINKED-PRS.md",2322,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002Freferences\u002FLINKED-PRS.md",{"path":79,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002FSTATE.md",5075,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002Freferences\u002FSTATE.md",[83,119,143,165,185,212],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":100,"publishedAt":39},"01M71SW40F9TAAEDKBYYBCM814","writing-plans","Write a comprehensive implementation plan of bite-sized TDD tasks that an engineer with zero codebase context could execute — exact files, code, tests, and verification steps","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[89,92,97],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":98,"categoryName":99,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000036","内容创作者",[101,102,103,104,105,106,107,29,108,109,110,111,112,113,114,115,116,117,118,34],"writing","writing plans","plans","engineer","superpowers","implementation plan","files","you","code","tasks","verification","plan","write","steps","context","ZeRO","for","tests",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":128,"publishedAt":39},"01M71SW15KHE4MHJW9NEXV65X2","writing-for-agents","orc's doctrine layer for writing any document an agent consumes — skills, AGENTS.md\u002FCLAUDE.md, reference docs","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[125,126,127],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":98,"categoryName":99,"taxonomyType":95,"taxonomyTypeDesc":96},[129,101,117,130,29,131,132,133,134,135,136,137,34,138,139,140,141,142],"writing for agents","matt pocock","inline","tuning","a skill","layer","doctrine","push","editing","document","github","https","reference","docs",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":150,"publishedAt":39},"01M71SVVP3BXS06G9395P2K0RH","wizard","Generate an interactive bash wizard walking a human through work only they can perform — credentials, secrets, one-off migrations","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwizard\u002FSKILL.md",[149],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[145,151,152,153,154,130,29,155,156,157,158,159,160,114,161,162,117,34,163,164],"condition","never","provisioning infrastructure","only","Bash","work","credentials","generate","human","secrets","infrastructure","do","one","interactive",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":39},"01M71SVT4AR6NKAM5B077E7QSJ","wait-what","Stop and re-pitch — the last message did not land; say it again simply, in the project's own vocabulary.","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[172,173,174,175,176,130,177,178,179,180,139,140,181,182,183,184],"wait what","wait","project","re","true","pitch","last","say","message","land","it","stop","vocabulary",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":195,"publishedAt":39},"01M71SVQVYRA9QBQ6G8MWR8G6F","vitest","Vitest fast unit testing framework powered by Vite with Jest-compatible API","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fvitest\u002FSKILL.md",[191,194],{"categoryNo":192,"categoryName":193,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[187,196,197,198,199,200,101,29,201,202,203,204,205,206,207,208,209,210,118,211],"coverage","unit","testing","testing framework","generated","api","jest","2026","at","scripts","unit testing","antfu","framework","vite","mocking","dev",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":219,"publishedAt":39},"01M71SVN8FYE8WTM976SESKHNS","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or opening PRs — evidence before assertions. Doctrine skill (preloaded into orc-implementer), not a command — the bundled \u002Fverify covers interactive one-off behavioral checks.","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[218],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[111,220,221,222,105,29,156,223,224,135,225,226,227,34,228,229,163,164,139,230],"verification before completion","implementer","claim","command","behavioral","evidence","complete","prs","assertions","committing","verify"]