[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698ZGTG4X3BETAAK7QSHKB2":3,"skill-same:01M698ZGTG4X3BETAAK7QSHKB2":85},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":35,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M698ZGTG4X3BETAAK7QSHKB2","adk-sample-creator",null,"Author or rework a runnable example under `examples\u002F` in the ADK Go repository — the directory, `main.go`, the README with its Mermaid diagram and real transcript, and the index row. Use when adding a sample for a feature (workflow graph, tool, registry client, model backend, server), when asked to \"add an example\" for something, or when bringing an existing example up to the repo's standard.","google\u002Fadk-go","google","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1342004?v=4","01M698VYEFDM0VJBZDYYJ2T83S","Google","01M698ZCCETBD9GY5YQEQMHRW6",8963,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fadk-sample-creator\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"adk sample creator","adk","creator","sample","server","when","add","feature","main","up","model","repository","directory","graph","registry","transcript","mermaid","diagram","workflow","go","2026-11-10 10:12:30",false,"---\nname: adk-sample-creator\ndescription: Author or rework a runnable example under `examples\u002F` in the ADK Go repository — the directory, `main.go`, the README with its Mermaid diagram and real transcript, and the index row. Use when adding a sample for a feature (workflow graph, tool, registry client, model backend, server), when asked to \"add an example\" for something, or when bringing an existing example up to the repo's standard.\n---\n\n# ADK Go sample creator\n\nAn example earns its place by teaching **one** thing faster than the package\ndocs can. It must run. Two families set the standard, and which one you are\nwriting decides several of the choices below:\n\n- **Engine samples** — `examples\u002Fworkflow\u002F*`. They exercise ADK itself, need\n  nothing beyond the binary and sometimes a model, and their subject is the\n  shape of a graph.\n- **Integration samples** — `examples\u002Fagentregistry\u002F*`. They talk to a live\n  external service, so they carry cloud prerequisites, credentials, failures\n  worth unwrapping, and output that depends on the reader's own project.\n\nCopy the shape of the nearer family rather than inventing one.\n\n`examples\u002FREADME.md` documents an older launcher API (`ParseAndRun`,\n`FormatSyntax`). Follow the templates here, not that file.\n\n## Layout\n\n```\nexamples\u002F\u003Carea>\u002F\u003Cname>\u002F\n├── main.go\n└── README.md\n```\n\n`lower_snake` directory names (`hitl_simple`), nested by theme once a family\ngrows (`routing\u002Fllm`, `dynamic\u002Fhitl`). When the area keeps an index table —\n`examples\u002Fworkflow\u002FREADME.md` and `examples\u002Fagentregistry\u002FREADME.md` do — add a\nrow with the same columns as its neighbours, including `LLM?`. Most areas keep\nnone, and none is needed.\n\n## main.go\n\nCopy [`templates\u002Fmain.go.tmpl`](templates\u002Fmain.go.tmpl): it carries the Apache\n2.0 header the `goheader` linter demands, the package doc line, and the launcher\nwiring. `context.Background()` is correct there — `main` is an entrypoint, and\nit stays banned in library code.\n\n`full.NewLauncher()` serves `console`, which is the default, plus `web` and its\n`api`, `a2a`, `webui`, `pubsub` and `eventarc` sublaunchers. When anything is\ndeferred, move the body into `run(ctx) error` and let `main` do the `log.Fatal`.\n\nEach of these has cost a review round:\n\n- **Pick a versioned model, not a `-latest` alias**, in any sample whose README\n  documents the Vertex AI path: Vertex does not serve the aliases, so the\n  documented instructions would fail at model construction. `gemini-3.5-flash`\n  answers on both backends.\n- **A required variable is read plainly and checked for empty**, failing with a\n  message that names it; `cmp.Or(os.Getenv(\"X\"), \"default\")` is for the optional\n  ones, and hides a missing value if you reach for it first. Watch for a\n  variable a neighbouring library also reads: `GOOGLE_CLOUD_LOCATION` steers\n  genai *and* the Agent Registry client, so a region meant for the model\n  silently moves the catalog lookup.\n- **`log.SetFlags(0)` when the output is a transcript.** Otherwise every line\n  carries a timestamp, and a README that omits it is showing output the code\n  cannot produce.\n- **`log.Fatal` only from `main`.** Inside a body that defers a close, it skips\n  the defer.\n- **Render API failures as something actionable** — unwrap the typed error and\n  keep the part that identifies the fix (see `explain` in the `agentregistry`\n  samples), rather than printing the service's whole JSON envelope.\n- Comments say WHY. Never narrate the next line.\n\n## README\n\nCopy [`templates\u002FREADME.md.tmpl`](templates\u002FREADME.md.tmpl) and fill the\nplaceholders in; it spells out what each section is for. The order is fixed —\ntitle and the `Concept` \u002F `Needs LLM?` block, `Goal`, `Requirements`, `How it\nworks`, `Running the sample`, `Example session`, `What it shows`, `Notes` — but\n`Requirements`, `What it shows` and `Notes` come out when they have nothing to\nsay.\n\nOlder examples call the third section `Authentication` and the fourth\n`Workflow`; leave those alone. Use the template's names for anything new, with\none exception: an engine sample really is built on a workflow graph, so\n`Workflow` stays the truer heading there, over a node-graph diagram rather than\na sequence. An integration sample is the case the template is cut for —\n`Requirements` earns its place because an enabled API and an IAM role are not\ncredentials, and the diagram is a sequence because the interesting part is what\nhappens once, at startup, versus what happens on every turn.\n\n### Mermaid\n\nMermaid is the repo default; no ASCII art. Reach for `sequenceDiagram` first: a\nsample is a sequence of calls, and the ordering is usually the point — a flow\nchart that mixes startup with the first user turn hides that resolution happened\nonce, before the agent existed. Use `graph LR`\u002F`graph TD` when the subject\nreally is a topology, such as an engine sample's node graph.\n\n### The transcript is evidence\n\n- Paste output you actually got. Never invent it, never tidy it up.\n- Say where it came from and which part generalizes: *\"Real output from a\n  project with the Cloud Logging API enabled, abridged in the middle. Your logs\n  will differ.\"*\n- Abridge with `...`, and say that you did.\n- When the sample is deterministic, say so: *\"No model runs here, so the output\n  is exactly this.\"* That is the answer to \"is this reproducible?\" — a question\n  reviewers do ask.\n- Anonymize project IDs to `my-project`; leave generated resource IDs\n  structurally intact.\n\n### Prose\n\nWrite so a reviewer never has to read a sentence twice. Do not build an\nantithesis whose second half points back at a noun two clauses ago — state the\nrule, then the exception, in separate sentences. And state each fact once: the\nsame explanation in a doc comment, the How it works section and the Notes is two\ncopies too many.\n\n## Before you call it done\n\nFrom the repo root, with a workspace (`test -f go.work || go work init && go\nwork use -r .`):\n\n```bash\ngo build -mod=readonly work\ngo vet .\u002Fexamples\u002F...\ngolangci-lint run\ngo mod tidy -diff\n```\n\nThen **run the sample** and paste what it printed into the README. Examples are\npart of the root module, so one that does not compile breaks CI for everyone.\n\nFinal check:\n\n- [ ] row added to the area's index table, if it keeps one\n- [ ] every environment variable the code reads is in the table\n- [ ] the transcript is real output, and says what about it generalizes\n- [ ] license header present, `golangci-lint run` clean\n- [ ] it runs\n","# ADK Go sample creator\n\nAn example earns its place by teaching **one** thing faster than the package\ndocs can. It must run. Two families set the standard, and which one you are\nwriting decides several of the choices below:\n\n- **Engine samples** — `examples\u002Fworkflow\u002F*`. They exercise ADK itself, need\n  nothing beyond the binary and sometimes a model, and their subject is the\n  shape of a graph.\n- **Integration samples** — `examples\u002Fagentregistry\u002F*`. They talk to a live\n  external service, so they carry cloud prerequisites, credentials, failures\n  worth unwrapping, and output that depends on the reader's own project.\n\nCopy the shape of the nearer family rather than inventing one.\n\n`examples\u002FREADME.md` documents an older launcher API (`ParseAndRun`,\n`FormatSyntax`). Follow the templates here, not that file.\n\n## Layout\n\n```\nexamples\u002F\u003Carea>\u002F\u003Cname>\u002F\n├── main.go\n└── README.md\n```\n\n`lower_snake` directory names (`hitl_simple`), nested by theme once a family\ngrows (`routing\u002Fllm`, `dynamic\u002Fhitl`). When the area keeps an index table —\n`examples\u002Fworkflow\u002FREADME.md` and `examples\u002Fagentregistry\u002FREADME.md` do — add a\nrow with the same columns as its neighbours, including `LLM?`. Most areas keep\nnone, and none is needed.\n\n## main.go\n\nCopy [`templates\u002Fmain.go.tmpl`](templates\u002Fmain.go.tmpl): it carries the Apache\n2.0 header the `goheader` linter demands, the package doc line, and the launcher\nwiring. `context.Background()` is correct there — `main` is an entrypoint, and\nit stays banned in library code.\n\n`full.NewLauncher()` serves `console`, which is the default, plus `web` and its\n`api`, `a2a`, `webui`, `pubsub` and `eventarc` sublaunchers. When anything is\ndeferred, move the body into `run(ctx) error` and let `main` do the `log.Fatal`.\n\nEach of these has cost a review round:\n\n- **Pick a versioned model, not a `-latest` alias**, in any sample whose README\n  documents the Vertex AI path: Vertex does not serve the aliases, so the\n  documented instructions would fail at model construction. `gemini-3.5-flash`\n  answers on both backends.\n- **A required variable is read plainly and checked for empty**, failing with a\n  message that names it; `cmp.Or(os.Getenv(\"X\"), \"default\")` is for the optional\n  ones, and hides a missing value if you reach for it first. Watch for a\n  variable a neighbouring library also reads: `GOOGLE_CLOUD_LOCATION` steers\n  genai *and* the Agent Registry client, so a region meant for the model\n  silently moves the catalog lookup.\n- **`log.SetFlags(0)` when the output is a transcript.** Otherwise every line\n  carries a timestamp, and a README that omits it is showing output the code\n  cannot produce.\n- **`log.Fatal` only from `main`.** Inside a body that defers a close, it skips\n  the defer.\n- **Render API failures as something actionable** — unwrap the typed error and\n  keep the part that identifies the fix (see `explain` in the `agentregistry`\n  samples), rather than printing the service's whole JSON envelope.\n- Comments say WHY. Never narrate the next line.\n\n## README\n\nCopy [`templates\u002FREADME.md.tmpl`](templates\u002FREADME.md.tmpl) and fill the\nplaceholders in; it spells out what each section is for. The order is fixed —\ntitle and the `Concept` \u002F `Needs LLM?` block, `Goal`, `Requirements`, `How it\nworks`, `Running the sample`, `Example session`, `What it shows`, `Notes` — but\n`Requirements`, `What it shows` and `Notes` come out when they have nothing to\nsay.\n\nOlder examples call the third section `Authentication` and the fourth\n`Workflow`; leave those alone. Use the template's names for anything new, with\none exception: an engine sample really is built on a workflow graph, so\n`Workflow` stays the truer heading there, over a node-graph diagram rather than\na sequence. An integration sample is the case the template is cut for —\n`Requirements` earns its place because an enabled API and an IAM role are not\ncredentials, and the diagram is a sequence because the interesting part is what\nhappens once, at startup, versus what happens on every turn.\n\n### Mermaid\n\nMermaid is the repo default; no ASCII art. Reach for `sequenceDiagram` first: a\nsample is a sequence of calls, and the ordering is usually the point — a flow\nchart that mixes startup with the first user turn hides that resolution happened\nonce, before the agent existed. Use `graph LR`\u002F`graph TD` when the subject\nreally is a topology, such as an engine sample's node graph.\n\n### The transcript is evidence\n\n- Paste output you actually got. Never invent it, never tidy it up.\n- Say where it came from and which part generalizes: *\"Real output from a\n  project with the Cloud Logging API enabled, abridged in the middle. Your logs\n  will differ.\"*\n- Abridge with `...`, and say that you did.\n- When the sample is deterministic, say so: *\"No model runs here, so the output\n  is exactly this.\"* That is the answer to \"is this reproducible?\" — a question\n  reviewers do ask.\n- Anonymize project IDs to `my-project`; leave generated resource IDs\n  structurally intact.\n\n### Prose\n\nWrite so a reviewer never has to read a sentence twice. Do not build an\nantithesis whose second half points back at a noun two clauses ago — state the\nrule, then the exception, in separate sentences. And state each fact once: the\nsame explanation in a doc comment, the How it works section and the Notes is two\ncopies too many.\n\n## Before you call it done\n\nFrom the repo root, with a workspace (`test -f go.work || go work init && go\nwork use -r .`):\n\n```bash\ngo build -mod=readonly work\ngo vet .\u002Fexamples\u002F...\ngolangci-lint run\ngo mod tidy -diff\n```\n\nThen **run the sample** and paste what it printed into the README. Examples are\npart of the root module, so one that does not compile breaks CI for everyone.\n\nFinal check:\n\n- [ ] row added to the area's index table, if it keeps one\n- [ ] every environment variable the code reads is in the table\n- [ ] the transcript is real output, and says what about it generalizes\n- [ ] license header present, `golangci-lint run` clean\n- [ ] it runs\n",{"name":5,"description":7},"beea418caa2b5cc9417251a37e7ee527ae7f99df",".agents\u002Fskills\u002Fadk-sample-creator",1001,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go","https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle","https:\u002F\u002Fopensource.google\u002F","Google ❤️ Open Source","2026-11-12 23:25:44",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add google\u002Fadk-go --skill adk-sample-creator",{"tool":67,"command":68},"bunx","bunx skills add google\u002Fadk-go --skill adk-sample-creator",{"tool":70,"command":71},"pnpm","pnpm dlx skills add google\u002Fadk-go --skill adk-sample-creator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fadk-sample-creator\u002FSKILL.md",true,[75,81],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"templates\u002Fmain.go.tmpl","OTHER","其他",1407,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fadk-sample-creator\u002Ftemplates\u002Fmain.go.tmpl",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"templates\u002FREADME.md.tmpl",1698,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fadk-sample-creator\u002Ftemplates\u002FREADME.md.tmpl",[86,96,108],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":47},"01M698ZMXR57TYSVC5X6Y8DF4W","weather","A skill to check weather in different countries.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002Fexamples\u002Fskills\u002Fskills\u002Fweather\u002FSKILL.md",[92],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[88,94,95],"countries","check",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":47},"01M698ZK0CWEXF9M9JNAX2W2JN","grocery-prices","A skill to calculate grocery prices with country-specific taxes.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002Fexamples\u002Fskills\u002Fskills\u002Fgrocery-prices\u002FSKILL.md",[102],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[104,105,106,107],"prices","grocery prices","with","calculate",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":47},"01M698ZEE0A72B3AKYM51VY5NT","adk-go-self-review","Review an ADK Go change the way a maintainer will — a fresh-context pass over the whole diff, five lenses (correctness and tests, scope, simplicity, style, adk-python parity), and the mutation check that proves your tests pin the change. Use before opening a PR, before any later push that changes code, and when asked to review someone else's adk-go diff or PR.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fadk-go-self-review\u002FSKILL.md",[],[46,115,116,117,118,28,119,120,32,121,122,123,124,125,126,127,128,129,130,131,132],"self","self review","review","adk go self review","mutation check","python","parity","scope","pr","fresh","mutation","later","diff","simplicity","context","change","push","code"]