[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H609K8BAW74S59C68QRKC3":3,"skill-same:01M6H609K8BAW74S59C68QRKC3":68},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":29,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6H609K8BAW74S59C68QRKC3","project-discipline",null,"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.","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\u002Fproject-discipline\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"project discipline","project","discipline","hooks","for","which","requests","how to","drift","branches","main","pull requests","only","use","branch","work","history","forge","push","pull","2026-11-10 10:12:30",false,"---\nname: project-discipline\ndescription: 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.\nlicense: MIT\nmetadata:\n  author: tillandsias\n---\n\n# Project Discipline\n\nA hook, the git mirror or the land tool refused your push, commit or branch\nand said **\"use \u002Fproject-discipline for instructions\"**. This skill tells you\nwhat the project expects, why, and how to do the work in that shape.\n\nIt is generic: it reads THIS project's own seed and history. It assumes no\nplan ledger, no gate and no landing queue — those belong to Tillandsias's own\nskills (`join-the-fleet`, `advance-work-from-plan`), which a project at level 1\nor 2 does not need.\n\n## 1 — Ask the project first\n\nRun these before anything else, from the project's checkout:\n\n```bash\ngit fetch origin                               # the answers read refs AS OF THE LAST FETCH\ntillandsias-plan discipline show               # the seed: level, per-rule enforcement, branches\ntillandsias-plan discipline derive             # what the history shows, beside the seed\n```\n\nRead three lines out of it:\n\n- `discipline: source=\u003Cseed|default> level=\u003Cn> …` — `source=default level=0`\n  means the project has **no seed**: nothing refuses anything.\n- `derived=\u003Cn> seed=\u003Cn|none> effective=\u003Cn>` — `effective` is what is\n  actually enforced: the lower of the two.\n- the `drift:` line (below), and any `note:` — `note: no refs\u002Fremotes\u002Forigin\u002F*`\n  means you have not fetched; fetch and ask again before believing a level 0.\n\nFor one ref: `tillandsias-plan discipline check-ref refs\u002Fheads\u002F\u003Cbranch>`.\n\n## 2 — The ladder\n\nThe operator's rungs (ruling 2026-09-22, 1363-xp2v). A project climbs; it\nnever climbs down (levels are forward-only).\n\n| Level | What it means | What you do |\n|---|---|---|\n| **0** | A fresh project. **Push to main freely.** | Commit and push to the default branch. Hooks at this level only ever *advise*. |\n| **1** | An integration branch and pull requests. The default branch is protected. | Work on the integration branch for your platform (`discipline target --platform \u003Cp>`); the default branch advances only through a pull request. |\n| **2** | Work refs into the integration branch. | Do each unit of work on `work\u002F\u003Cid>` (the seed's `work_ref` grammar), push that ref, and let it land on the integration branch. |\n\nEach rule also has an **enforcement**, independent of the level:\n`advised` (silent), `warn` (prints, accepts), `enforced` (refuses).\n\n## 3 — Drift: when the seed and the history disagree\n\n`derive` observes the project (origin's HEAD, integration branches on origin,\nwork refs on origin, distinct committer hosts in the last 50 commits,\npull-request merges, installed hooks) and prints one of:\n\n- `ok:discipline-derive:seed-matches-reality` — nothing to do.\n- `drift:seed-ahead-of-reality` — the seed declares more than the history\n  shows. Allowed (the project is opting in early), but its **enforced rules\n  only warn** until the missing qualifier appears. The warning names the\n  qualifier: e.g. `warn:discipline:default-branch-protected:seed-ahead-of-reality`\n  means no integration branch or pull-request merge was observed yet.\n- `drift:seed-behind-reality: discipline raise --to \u003Cn>` — the project has\n  outgrown its declaration. Nothing is refused on the seed's behalf. Raise it\n  (§4) so the hooks match how the project already works.\n\nA qualifier you have not fetched is not observed. Fetch first.\n\n## 4 — Raising the level\n\n```bash\ntillandsias-plan capabilities | grep -x discipline    # the verb exists\ntillandsias-plan discipline raise --to \u003Cn>            # bumps the seed, installs that level's hooks\ntillandsias-plan discipline install-hooks             # (re)install the hooks the seed's level needs\n```\n\n`raise` and `install-hooks` ship with the hook templates (order 1446-xqi6).\nIf your plan binary does not list them yet, edit\n`.tillandsias\u002Fbranch-discipline.yaml` by hand (`level:` and `enforcement:`),\ncommit it, and ask again with `discipline show`. Never lower `level:` — a seed\nbelow a published level is refused at load (`refused:discipline-seed:level-regressed`).\n\nHooks install into a **repo-local** `core.hooksPath`, never a global one.\n\n## 5 — What each hook refusal asks for\n\nEvery refusal carries a verdict, a `why:` line and a `remedy:` line:\n\n```\nrefused:hook:\u003Cevent>:\u003Crule>:\u003Cenforcement>\nwhy: …\nremedy: this project at level \u003Cn> (\u003Crule> \u003Cenforcement>) needs \u003Crequirement>; use \u002Fproject-discipline for instructions\n```\n\nThe verdict word is `refused` (enforced), `warn` or `advised`. A stub that\ncannot run the plan binary answers `blocked:hook:\u003Cevent>:no-plan-binary` and\nrefuses — rebuild or reinstall the plan binary; it never falls back to a\nguess. Find your event below.\n\n### `hook:pre-commit`\n\nRuns before a commit is recorded. At level 2 it asks that code commits happen\non a `work\u002F\u003Cid>` ref, not directly on the integration or default branch.\n**Format:** `git switch -c work\u002F\u003Cid> origin\u002F\u003Cintegration>` and commit there.\n\n### `hook:post-commit`\n\nAdvisory at every level: it never refuses. At level 0 it notices when a\nqualifier appears — e.g. `advised:hook:post-commit:multiple-committers` once\ntwo committer identities are seen — and suggests raising (§4).\n**Format:** nothing to change; read the advice and decide whether to raise.\n\n### `hook:pre-push`\n\nThe early copy of the mirror's pre-receive, so a refusal costs seconds, not a\nround trip. Level 1: a push to the default branch is refused\n(`default-branch-protected`); push to your integration branch instead\n(`discipline target --platform \u003Cp>` names it). Level 2 adds the ref grammar\n(`ref-outside-grammar`): name branches `work\u002F\u003Cid>`, an integration branch, or\na `salvage\u002F\u003Chost>\u002F\u003Cyyyymmdd>-\u003Cslug>` ref.\n**Format:** `git push origin HEAD:refs\u002Fheads\u002F\u003Cintegration>` or\n`git push origin HEAD:refs\u002Fheads\u002Fwork\u002F\u003Cid>`.\n\n### `hook:post-merge`\n\nAdvisory: after a pull or merge it reports drift that the merge introduced\n(new integration branches, new committer hosts) and whether the seed should\nrise. It never refuses. **Format:** run `discipline derive` and act on its\n`drift:` line.\n\n### `hook:post-checkout`\n\nAdvisory: on switching branches it says which kind of ref you are on\n(`integration`, `work-ref`, `default-branch`) and, at level 2, that work\nbelongs on a work ref. **Format:** create a work ref before committing.\n\n### `hook:pre-receive`\n\nRuns in the git **mirror** when your push arrives, and relays its refusal to\nyour push output. Same rules as `hook:pre-push`, applied authoritatively; the\nmirror reads the seed from the integration branch's tree. If your local\npre-push passed but pre-receive refused, your checkout's seed differs from\nthe mirror's (`seed-drift`): fetch, merge the integration branch, retry.\n**Format:** as `hook:pre-push`.\n\n### `hook:post-receive`\n\nRuns in the mirror after a push was accepted. It only logs or publishes\n(e.g. the enforced level under `refs\u002Ftillandsias\u002Fdiscipline\u002F*`); it cannot\nrefuse. **Format:** nothing to change.\n\n## 6 — The work format, per level\n\n- **Level 0.** Commit on the default branch and push it. Nothing else is asked.\n- **Level 1.** `git switch \u003Cintegration>`; commit; push the integration\n  branch; open a pull request into the default branch when the work should\n  ship. Never push the default branch.\n- **Level 2.** `git switch -c work\u002F\u003Cid> origin\u002F\u003Cintegration>`; commit; push\n  `work\u002F\u003Cid>`; it lands on the integration branch (by pull request, or by the\n  project's landing tool); the default branch advances only by pull request\n  from the integration branch.\n\n## 7 — When the answer looks wrong\n\n- `derived=0` on a project you know is busy → you have not fetched, or the\n  checkout is shallow. `git fetch origin` (and `git fetch --unshallow` if\n  needed), then derive again.\n- A refusal you believe is mistaken → run `discipline check-ref` on the ref\n  and `discipline derive --json`: every observation carries the exact git\n  command that made it, so you can re-run it and see what the tool saw.\n- `refused:discipline-seed:\u003Creason>` on stderr → the seed file is malformed;\n  the answers fall back to level 0 until it is fixed. The reason names the\n  problem (`integration-equals-default`, `work-ref-regex`, `level-regressed`,\n  `enforcement-vocabulary`).\n","# Project Discipline\n\nA hook, the git mirror or the land tool refused your push, commit or branch\nand said **\"use \u002Fproject-discipline for instructions\"**. This skill tells you\nwhat the project expects, why, and how to do the work in that shape.\n\nIt is generic: it reads THIS project's own seed and history. It assumes no\nplan ledger, no gate and no landing queue — those belong to Tillandsias's own\nskills (`join-the-fleet`, `advance-work-from-plan`), which a project at level 1\nor 2 does not need.\n\n## 1 — Ask the project first\n\nRun these before anything else, from the project's checkout:\n\n```bash\ngit fetch origin                               # the answers read refs AS OF THE LAST FETCH\ntillandsias-plan discipline show               # the seed: level, per-rule enforcement, branches\ntillandsias-plan discipline derive             # what the history shows, beside the seed\n```\n\nRead three lines out of it:\n\n- `discipline: source=\u003Cseed|default> level=\u003Cn> …` — `source=default level=0`\n  means the project has **no seed**: nothing refuses anything.\n- `derived=\u003Cn> seed=\u003Cn|none> effective=\u003Cn>` — `effective` is what is\n  actually enforced: the lower of the two.\n- the `drift:` line (below), and any `note:` — `note: no refs\u002Fremotes\u002Forigin\u002F*`\n  means you have not fetched; fetch and ask again before believing a level 0.\n\nFor one ref: `tillandsias-plan discipline check-ref refs\u002Fheads\u002F\u003Cbranch>`.\n\n## 2 — The ladder\n\nThe operator's rungs (ruling 2026-09-22, 1363-xp2v). A project climbs; it\nnever climbs down (levels are forward-only).\n\n| Level | What it means | What you do |\n|---|---|---|\n| **0** | A fresh project. **Push to main freely.** | Commit and push to the default branch. Hooks at this level only ever *advise*. |\n| **1** | An integration branch and pull requests. The default branch is protected. | Work on the integration branch for your platform (`discipline target --platform \u003Cp>`); the default branch advances only through a pull request. |\n| **2** | Work refs into the integration branch. | Do each unit of work on `work\u002F\u003Cid>` (the seed's `work_ref` grammar), push that ref, and let it land on the integration branch. |\n\nEach rule also has an **enforcement**, independent of the level:\n`advised` (silent), `warn` (prints, accepts), `enforced` (refuses).\n\n## 3 — Drift: when the seed and the history disagree\n\n`derive` observes the project (origin's HEAD, integration branches on origin,\nwork refs on origin, distinct committer hosts in the last 50 commits,\npull-request merges, installed hooks) and prints one of:\n\n- `ok:discipline-derive:seed-matches-reality` — nothing to do.\n- `drift:seed-ahead-of-reality` — the seed declares more than the history\n  shows. Allowed (the project is opting in early), but its **enforced rules\n  only warn** until the missing qualifier appears. The warning names the\n  qualifier: e.g. `warn:discipline:default-branch-protected:seed-ahead-of-reality`\n  means no integration branch or pull-request merge was observed yet.\n- `drift:seed-behind-reality: discipline raise --to \u003Cn>` — the project has\n  outgrown its declaration. Nothing is refused on the seed's behalf. Raise it\n  (§4) so the hooks match how the project already works.\n\nA qualifier you have not fetched is not observed. Fetch first.\n\n## 4 — Raising the level\n\n```bash\ntillandsias-plan capabilities | grep -x discipline    # the verb exists\ntillandsias-plan discipline raise --to \u003Cn>            # bumps the seed, installs that level's hooks\ntillandsias-plan discipline install-hooks             # (re)install the hooks the seed's level needs\n```\n\n`raise` and `install-hooks` ship with the hook templates (order 1446-xqi6).\nIf your plan binary does not list them yet, edit\n`.tillandsias\u002Fbranch-discipline.yaml` by hand (`level:` and `enforcement:`),\ncommit it, and ask again with `discipline show`. Never lower `level:` — a seed\nbelow a published level is refused at load (`refused:discipline-seed:level-regressed`).\n\nHooks install into a **repo-local** `core.hooksPath`, never a global one.\n\n## 5 — What each hook refusal asks for\n\nEvery refusal carries a verdict, a `why:` line and a `remedy:` line:\n\n```\nrefused:hook:\u003Cevent>:\u003Crule>:\u003Cenforcement>\nwhy: …\nremedy: this project at level \u003Cn> (\u003Crule> \u003Cenforcement>) needs \u003Crequirement>; use \u002Fproject-discipline for instructions\n```\n\nThe verdict word is `refused` (enforced), `warn` or `advised`. A stub that\ncannot run the plan binary answers `blocked:hook:\u003Cevent>:no-plan-binary` and\nrefuses — rebuild or reinstall the plan binary; it never falls back to a\nguess. Find your event below.\n\n### `hook:pre-commit`\n\nRuns before a commit is recorded. At level 2 it asks that code commits happen\non a `work\u002F\u003Cid>` ref, not directly on the integration or default branch.\n**Format:** `git switch -c work\u002F\u003Cid> origin\u002F\u003Cintegration>` and commit there.\n\n### `hook:post-commit`\n\nAdvisory at every level: it never refuses. At level 0 it notices when a\nqualifier appears — e.g. `advised:hook:post-commit:multiple-committers` once\ntwo committer identities are seen — and suggests raising (§4).\n**Format:** nothing to change; read the advice and decide whether to raise.\n\n### `hook:pre-push`\n\nThe early copy of the mirror's pre-receive, so a refusal costs seconds, not a\nround trip. Level 1: a push to the default branch is refused\n(`default-branch-protected`); push to your integration branch instead\n(`discipline target --platform \u003Cp>` names it). Level 2 adds the ref grammar\n(`ref-outside-grammar`): name branches `work\u002F\u003Cid>`, an integration branch, or\na `salvage\u002F\u003Chost>\u002F\u003Cyyyymmdd>-\u003Cslug>` ref.\n**Format:** `git push origin HEAD:refs\u002Fheads\u002F\u003Cintegration>` or\n`git push origin HEAD:refs\u002Fheads\u002Fwork\u002F\u003Cid>`.\n\n### `hook:post-merge`\n\nAdvisory: after a pull or merge it reports drift that the merge introduced\n(new integration branches, new committer hosts) and whether the seed should\nrise. It never refuses. **Format:** run `discipline derive` and act on its\n`drift:` line.\n\n### `hook:post-checkout`\n\nAdvisory: on switching branches it says which kind of ref you are on\n(`integration`, `work-ref`, `default-branch`) and, at level 2, that work\nbelongs on a work ref. **Format:** create a work ref before committing.\n\n### `hook:pre-receive`\n\nRuns in the git **mirror** when your push arrives, and relays its refusal to\nyour push output. Same rules as `hook:pre-push`, applied authoritatively; the\nmirror reads the seed from the integration branch's tree. If your local\npre-push passed but pre-receive refused, your checkout's seed differs from\nthe mirror's (`seed-drift`): fetch, merge the integration branch, retry.\n**Format:** as `hook:pre-push`.\n\n### `hook:post-receive`\n\nRuns in the mirror after a push was accepted. It only logs or publishes\n(e.g. the enforced level under `refs\u002Ftillandsias\u002Fdiscipline\u002F*`); it cannot\nrefuse. **Format:** nothing to change.\n\n## 6 — The work format, per level\n\n- **Level 0.** Commit on the default branch and push it. Nothing else is asked.\n- **Level 1.** `git switch \u003Cintegration>`; commit; push the integration\n  branch; open a pull request into the default branch when the work should\n  ship. Never push the default branch.\n- **Level 2.** `git switch -c work\u002F\u003Cid> origin\u002F\u003Cintegration>`; commit; push\n  `work\u002F\u003Cid>`; it lands on the integration branch (by pull request, or by the\n  project's landing tool); the default branch advances only by pull request\n  from the integration branch.\n\n## 7 — When the answer looks wrong\n\n- `derived=0` on a project you know is busy → you have not fetched, or the\n  checkout is shallow. `git fetch origin` (and `git fetch --unshallow` if\n  needed), then derive again.\n- A refusal you believe is mistaken → run `discipline check-ref` on the ref\n  and `discipline derive --json`: every observation carries the exact git\n  command that made it, so you can re-run it and see what the tool saw.\n- `refused:discipline-seed:\u003Creason>` on stderr → the seed file is malformed;\n  the answers fall back to level 0 until it is fixed. The reason names the\n  problem (`integration-equals-default`, `work-ref-regex`, `level-regressed`,\n  `enforcement-vocabulary`).\n",{"name":5,"license":15,"metadata":44,"description":7},{"author":45},"tillandsias","bf1668fd1df1b3363b826d083f060234cd2e1d0c","skills\u002Fproject-discipline",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":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add 8007342\u002Ftillandsias --skill project-discipline",{"tool":60,"command":61},"bunx","bunx skills add 8007342\u002Ftillandsias --skill project-discipline",{"tool":63,"command":64},"pnpm","pnpm dlx skills add 8007342\u002Ftillandsias --skill project-discipline","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fproject-discipline\u002FSKILL.md",true,[],[69,91,125,148,160,180],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":39},"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",[],[76,77,20,78,79,80,81,82,32,31,83,84,85,86,87,26,88,89,90,23],"start","new project","start a new project","development","SET","flutter","README","up","openspec","do","as","app","flame","games","spec-driven",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":106,"publishedAt":39},"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",[98,103],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":104,"categoryName":105,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000023","Skill与智能体开发",[107,108,109,110,111,112,113,114,115,116,36,117,118,119,34,120,121,122,123,124],"test","e2e","curl","install","smoke","smoke curl install and test e2e","orchestration","init","podman","issues","Meta","loop","plan","short","never","clean","end","reset",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":39},"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",[],[132,133,134,135,116,136,137,119,138,139,140,141,142,143,144,145,86,146,23,147],"macos","windows","probe","probe macos tray on windows","CFG","health","daily","files","build","gated","local","shared","platform","module","host","expected",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":39},"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",[],[113,155,34,156,157,158,159,23],"multihost orchestration","compatibility","coordinate","alias","canonical",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":168,"publishedAt":39},"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",[166,167],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},{"categoryNo":104,"categoryName":105,"taxonomyType":101,"taxonomyTypeDesc":102},[113,117,169,170,171,172,173,174,175,37,118,119,176,34,177,111,178,157,146,179],"meta orchestration","commit","sync","run","update","release","state","integrations","recurring","exit","remote",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":39},"01M6H5ZRW9CY3F0B95F3AD4A78","merge-to-main-and-release","Refresh linux-next, open\u002Fupdate the PR to main, merge once green, bump VERSION, tag, and trigger the workflow_dispatch release. Runs on a daily cadence so the latest linux-next work reaches a downloadable Linux release operators can smoke-test on a Fedora Silverblue host.","https:\u002F\u002Fgithub.com\u002F8007342\u002Ftillandsias\u002Fblob\u002Fmain\u002Fskills\u002Fmerge-to-main-and-release\u002FSKILL.md",[],[187,174,29,188,189,190,191,192,173,193,34,111,194,195,196,197,146,198,199,200],"merge","merge to main","merge to main and release","workflow","bump version","pr","open","bump","next","green","operators","trigger","cadence","fedora"]