[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754FE35C6FCPBBGS63JYZ8P":3,"skill-same:01M754FE35C6FCPBBGS63JYZ8P":48},{"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":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M754FE35C6FCPBBGS63JYZ8P","mecak8s-kind-manual-verify",null,"Refresh the mecak8s image in the local mecatl-dev Kind cluster and build mecatui locally, so the user can manually verify in-flight mecatl changes against a real k8s deployment.","stacklok\u002Fmecatl","stacklok","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F110237746?v=4","01M754F1F8WJJZYJ0WZ73C7PBS","Stacklok","01M754F1GGDR6FG8K1RZ8SR2NA",309,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmecak8s-kind-manual-verify\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: mecak8s-kind-manual-verify\ndescription: Refresh the mecak8s image in the local mecatl-dev Kind cluster and build mecatui locally, so the user can manually verify in-flight mecatl changes against a real k8s deployment.\n---\n\n# mecak8s Kind manual verification loop\n\nUse this when the user wants to manually exercise in-progress mecatl changes\n(e.g. an open PR branch) against a real `mecak8s` deployment, rather than only\nrelying on offline tests. This is the \"deploy to kind and build mecatui so I\ncan click around\" loop — fast iteration, not a fresh cluster bring-up.\n\nThis assumes a Kind cluster named `mecatl-dev` already exists (see\n`deploy\u002Fmecak8s-kind\u002FREADME.md` for first-time setup via\n`task mecak8s:kind-setup`). This skill is for the **iterate** step, not initial\nprovisioning.\n\n## Prerequisites\n\n- Working directory is the mecatl repo (or a worktree of it).\n- `ko`, `kubectl`, `kind`, and either `docker` or `podman` installed.\n- The `mecatl-dev` Kind cluster already exists (`kind get clusters` shows it).\n  If it doesn't, run `task mecak8s:kind-setup` first — that's provisioning,\n  not this skill's job.\n\n## Step 1 — Refresh the mecak8s image with current source\n\nFrom the repo root:\n\n```sh\ntask mecak8s:image-refresh\n```\n\nThis rebuilds `ko.local\u002Fmecak8s:dev` from the **current source tree** via\n`ko build --local --bare --tags=dev .\u002Fcmd\u002Fmecak8s`, loads it straight into the\nrunning `mecatl-dev` Kind node (no cluster teardown), and does a rolling\nrestart of `deployment\u002Fmecak8s-mecak8s` in the `mecatl` namespace, waiting up\nto 240s for the rollout to complete.\n\nUse `KIND_EXPERIMENTAL_PROVIDER=podman task mecak8s:image-refresh` on a Podman\nhost (must match whatever `kind-setup` was run with).\n\nThis is safe to re-run after every code change you want to test — it does\nnot reset cluster\u002FRedis state.\n\n## Step 2 — Build mecatui locally\n\n```sh\ntask build\n```\n\nProduces `bin\u002Fmecatui` (along with `bin\u002Fmecated`, `bin\u002Fmecademo`) via the\nTaskfile — never a bare `go build` at the repo root, which drops stray\nbinaries.\n\n## Step 3 — Connect and drive it manually\n\nBase fixture (no Keycloak) exposes gRPC at `127.0.0.1:18080` and HTTP at\n`127.0.0.1:18081` via static Kind NodePort mappings — check with:\n\n```sh\ntask mecak8s:kind-status\n```\n\nIf the fixture was set up with the optional Keycloak\u002FOIDC identity layer\n(`task mecak8s:kind-keycloak-setup`), log in and connect with the prebuilt\nshorthand tasks:\n\n```sh\ntask mecak8s:kind-login     # adds \u002Fetc\u002Fhosts aliases (sudo, once), refreshes fixture CA, runs `mecatui login`\ntask mecak8s:kind-connect   # adds \u002Fetc\u002Fhosts aliases, refreshes fixture CA, runs `mecatui connect`\n```\n\nBoth require `.\u002Fbin\u002Fmecatui` to already exist (Step 2) and\n`task mecak8s:kind-keycloak-setup` to have been run at least once. See the\n`keycloak-kind-setup` skill if the Keycloak layer itself needs\n(re-)provisioning or debugging.\n\nWithout the Keycloak layer, connect directly:\n\n```sh\n.\u002Fbin\u002Fmecatui connect 127.0.0.1:18080\n```\n\nFor identity broker or hosted AS-1 work, use the separate `mecatl-idbroker`\nprofile instead (Dex upstream, `mecatui login` through AS-1; runs alongside\n`mecatl-dev`): `task mecak8s-idbroker:kind-setup`, then\n`task mecak8s-idbroker:image-refresh` to iterate. See\n`deploy\u002Fmecak8s-idbroker\u002FREADME.md`.\n\n## Iterating\n\nRepeat Step 1 (`task mecak8s:image-refresh`) after each code change, then\nreconnect with `mecatui` (Step 3) — no need to rebuild mecatui itself unless\nthe TUI\u002Fclient code changed.\n\n## Cleanup\n\nThis skill never tears the cluster down. To destroy the whole fixture:\n\n```sh\ntask mecak8s:kind-destroy\n```\n\n## Reference\n\n- `deploy\u002Fmecak8s-kind\u002FTaskfile.yml` — `image-refresh`, `kind-status`,\n  `kind-login`, `kind-connect`, `kind-destroy` task definitions.\n- `deploy\u002Fmecak8s-kind\u002FREADME.md` — full fixture lifecycle, provider modes\n  (mock vs. real via `OPENROUTER_API_KEY`), and the optional Keycloak layer.\n- `keycloak-kind-setup` skill — for provisioning\u002Frecovering the Keycloak layer\n  itself, if this fixture uses it.\n","# mecak8s Kind manual verification loop\n\nUse this when the user wants to manually exercise in-progress mecatl changes\n(e.g. an open PR branch) against a real `mecak8s` deployment, rather than only\nrelying on offline tests. This is the \"deploy to kind and build mecatui so I\ncan click around\" loop — fast iteration, not a fresh cluster bring-up.\n\nThis assumes a Kind cluster named `mecatl-dev` already exists (see\n`deploy\u002Fmecak8s-kind\u002FREADME.md` for first-time setup via\n`task mecak8s:kind-setup`). This skill is for the **iterate** step, not initial\nprovisioning.\n\n## Prerequisites\n\n- Working directory is the mecatl repo (or a worktree of it).\n- `ko`, `kubectl`, `kind`, and either `docker` or `podman` installed.\n- The `mecatl-dev` Kind cluster already exists (`kind get clusters` shows it).\n  If it doesn't, run `task mecak8s:kind-setup` first — that's provisioning,\n  not this skill's job.\n\n## Step 1 — Refresh the mecak8s image with current source\n\nFrom the repo root:\n\n```sh\ntask mecak8s:image-refresh\n```\n\nThis rebuilds `ko.local\u002Fmecak8s:dev` from the **current source tree** via\n`ko build --local --bare --tags=dev .\u002Fcmd\u002Fmecak8s`, loads it straight into the\nrunning `mecatl-dev` Kind node (no cluster teardown), and does a rolling\nrestart of `deployment\u002Fmecak8s-mecak8s` in the `mecatl` namespace, waiting up\nto 240s for the rollout to complete.\n\nUse `KIND_EXPERIMENTAL_PROVIDER=podman task mecak8s:image-refresh` on a Podman\nhost (must match whatever `kind-setup` was run with).\n\nThis is safe to re-run after every code change you want to test — it does\nnot reset cluster\u002FRedis state.\n\n## Step 2 — Build mecatui locally\n\n```sh\ntask build\n```\n\nProduces `bin\u002Fmecatui` (along with `bin\u002Fmecated`, `bin\u002Fmecademo`) via the\nTaskfile — never a bare `go build` at the repo root, which drops stray\nbinaries.\n\n## Step 3 — Connect and drive it manually\n\nBase fixture (no Keycloak) exposes gRPC at `127.0.0.1:18080` and HTTP at\n`127.0.0.1:18081` via static Kind NodePort mappings — check with:\n\n```sh\ntask mecak8s:kind-status\n```\n\nIf the fixture was set up with the optional Keycloak\u002FOIDC identity layer\n(`task mecak8s:kind-keycloak-setup`), log in and connect with the prebuilt\nshorthand tasks:\n\n```sh\ntask mecak8s:kind-login     # adds \u002Fetc\u002Fhosts aliases (sudo, once), refreshes fixture CA, runs `mecatui login`\ntask mecak8s:kind-connect   # adds \u002Fetc\u002Fhosts aliases, refreshes fixture CA, runs `mecatui connect`\n```\n\nBoth require `.\u002Fbin\u002Fmecatui` to already exist (Step 2) and\n`task mecak8s:kind-keycloak-setup` to have been run at least once. See the\n`keycloak-kind-setup` skill if the Keycloak layer itself needs\n(re-)provisioning or debugging.\n\nWithout the Keycloak layer, connect directly:\n\n```sh\n.\u002Fbin\u002Fmecatui connect 127.0.0.1:18080\n```\n\nFor identity broker or hosted AS-1 work, use the separate `mecatl-idbroker`\nprofile instead (Dex upstream, `mecatui login` through AS-1; runs alongside\n`mecatl-dev`): `task mecak8s-idbroker:kind-setup`, then\n`task mecak8s-idbroker:image-refresh` to iterate. See\n`deploy\u002Fmecak8s-idbroker\u002FREADME.md`.\n\n## Iterating\n\nRepeat Step 1 (`task mecak8s:image-refresh`) after each code change, then\nreconnect with `mecatui` (Step 3) — no need to rebuild mecatui itself unless\nthe TUI\u002Fclient code changed.\n\n## Cleanup\n\nThis skill never tears the cluster down. To destroy the whole fixture:\n\n```sh\ntask mecak8s:kind-destroy\n```\n\n## Reference\n\n- `deploy\u002Fmecak8s-kind\u002FTaskfile.yml` — `image-refresh`, `kind-status`,\n  `kind-login`, `kind-connect`, `kind-destroy` task definitions.\n- `deploy\u002Fmecak8s-kind\u002FREADME.md` — full fixture lifecycle, provider modes\n  (mock vs. real via `OPENROUTER_API_KEY`), and the optional Keycloak layer.\n- `keycloak-kind-setup` skill — for provisioning\u002Frecovering the Keycloak layer\n  itself, if this fixture uses it.\n",{"name":5,"description":7},"main","c4ff786a7467eb2315de679ae78711d118775383",".claude\u002Fskills\u002Fmecak8s-kind-manual-verify",29,"https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl","https:\u002F\u002Fmecatl.dev","https:\u002F\u002Fgithub.com\u002Fstacklok","https:\u002F\u002Fstacklok.com","Open Source AI Innovation, Grounded in Trust.","2026-11-15 04:19:54",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add stacklok\u002Fmecatl --skill mecak8s-kind-manual-verify",{"tool":40,"command":41},"bunx","bunx skills add stacklok\u002Fmecatl --skill mecak8s-kind-manual-verify",{"tool":43,"command":44},"pnpm","pnpm dlx skills add stacklok\u002Fmecatl --skill mecak8s-kind-manual-verify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmecak8s-kind-manual-verify\u002FSKILL.md",true,[],[49,56,63,70,77,84],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":19},"01M754GX1DCZR950M0SJFD048A","repo-fact","Use when asked for this repository's registered fact or codeword. Loads the canonical answer format.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002Fe2e\u002Ffixtures\u002Fskills\u002Frepo-fact\u002FSKILL.md",[],[],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":19},"01M754GSSV3ACG56M3XWT5F2PD","greet","Use when asked to greet someone with the ceremonial mecatl greeting. Loads the exact greeting format.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002Fe2e\u002Ffixtures\u002Fskills\u002Fgreet\u002FSKILL.md",[],[],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":19},"01M754GPQN80V07DGCPCB7P2XX","go-table-tests","Write idiomatic table-driven Go tests that stay offline and follow this repo's conventions.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002Fdocs\u002Fexamples\u002Fskills\u002Fgo-table-tests\u002FSKILL.md",[],[],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":19},"01M754GMQM60ARRZ0251WD6JN8","commit-style","Write Conventional-Commits messages for this repo, with the required Co-Authored-By trailer.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002Fdocs\u002Fexamples\u002Fskills\u002Fcommit-style\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M754GGFCQ3AWR3HHHSN3C91C","tech-writer","Use when writing or substantively editing user-facing documentation: drafting a new page, rewriting or restructuring an existing one, adding a major section, or turning engineering material (PR descriptions, specs, release notes, rough notes) into docs. Writes clear, focused technical documentation following the Diataxis framework and Mecatl's canonical style guide. Use it even when the request doesn't mention writing quality; it governs how documentation gets written. Not for editorial review of finished work.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftech-writer\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M754G7VD9JBS4NVFNGREHP64","perf-optimization","Profile-driven performance optimization of mecatl using the offline benchmark + scenario harness. Use when optimizing allocations or latency, reducing allocs\u002Fop or memory, profiling a Go benchmark, pinpointing a hotspot with pprof, proving a win with benchstat, adding a regression benchmark, wiring profile-guided optimization (PGO), or investigating \"why is this slow \u002F allocating\" or a suspected perf regression. Covers task bench, task perf:scenarios, memprofile -> pprof, benchstat A\u002FB, allocs-first gating, PGO setup, and the discipline (follow the profile not the hypothesis; keep pure-perf changes byte-identical; mutation-test cache guards; skip the wrong abstraction). NOT for the live perf MCP server (use perf-mcp-interpretation) or non-mecatl Go profiling.","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fmecatl\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fperf-optimization\u002FSKILL.md",[],[]]