genielabs/homegenie/homegenie-orchestration
Claude Code and agent skill by genielabs/homegenie
- community
Checking that the SKILL.md file is still in the repository.
Create a Director that schedules and runs cooperating automation programs through the unified Genie.
Install
npx vskill@latest install genielabs/homegenie/homegenie-orchestrationSKILL.md
Unattended orchestration
When the user explicitly requests a Director and cooperating agents, deploy the Director as kind=program in this response. One program per response does not require separate interactive user prompts: the Director can generate its helpers through the scheduling API below. Do not replace a requested multi-program design with one combined program or require another confirmation when the request is already clear.
Generated programs use AI.Genies/Gemini endpoints, never the disabled legacy AI.Automan/Gemini provider.
APIs
Api.Call("AI.Genies/Gemini/Request.Execute", new { version = 1, prompt = text })starts an independent action-capable request. It returns requestId and state=queued, or failed/busy with error. The provider's persisted context/capabilities apply; automation must be enabled to create helpers. The commonSystem.Utility/AiGenie/Request.Executeroute also accepts an optional providerId (otherwise the configured default). If submission returns busy without a requestId, nothing started: Pause(2) and retry within the same deadline. Do not resubmit an accepted request or an unknown outcome.Api.Call("AI.Genies/Gemini/Request.Status", new { version = 1, requestId })returns queued/running/cancelling/completed/failed/cancelled/busy/output_limit/context_limit/not_found. Use Pause(2), a deadline and Program.IsRunning checks; cancel on timeout/stop via Request.Cancel with the same version/requestId. Do not automatically repeat an uncertain request. For helper creation, require completed AND a confirmed Program.Deploy receipt in result.actions: endpoint ends in /Program.Deploy, response.Success=true, response.State=completed and response.Response.status=success. Read the helper ID from response.Response.program_id. A completed plain reply without that receipt is not a deployment. Do not assume the former Task.Status programId field exists.Api.Call("System.Utility/AiGenie/Request.Generate", new { version = 1, prompt = text, providerId = "933" })starts text-only generation. Omit providerId to use AI Genie's configured default. It returns version, requestId, providerId and state=queued, or failed/busy with error. PollRequest.Statuson the same service using{ version = 1, requestId }. Wait with Pause(2), a deadline and Program.IsRunning checks. Only state=completed supplies final text. On deadline or program stop, callRequest.Cancelwith the same ID and stop this workflow. Requests use the provider's allowed context, never chat history, and never execute generated commands. Direct provider routes such asAI.Genies/Gemini/Request.Generateaccept the same body without providerId. Do not call the removed Gemini Prompt.Ask endpoint.
Use JObject.FromObject(result) when a backend API returns an object; use JObject.Parse(text) only for a JSON string. Do not assume the frontend data.response wrapper exists in backend calls.
Director and helper lifecycle (required)
The HG scheduler repeatedly evaluates Setup. Program.WithName(name).Run() sets WillRun for that target's Setup; it does NOT explicitly start the helper's Main. Even if a user requests that spelling, implement the intended execution using the actual native API Program.Run(name) (or Program.Run(addressString)). Program.WithName(name) is for existence checks, IsRunning and parameter access.
- Deploy a persistent Director with one-time options inside Program.Setup, an automatic Program.Run() trigger in Setup, and a Main loop using while (Program.IsRunning) and Pause.
- Give helpers unique names, e.g.
"News Scout #" + Program.Module.Address, and reuse existing helpers. If missing, request creation through Request.Execute and wait for Request.Status=completed plus a successful deployment receipt with a bounded timeout. Treat failed, cancelled, busy, output/context limits, not_found or timeout as failure; never infer successful deployment merely from program existence after timeout. - Request explicit-run helpers: their Setup contains only Program.Setup option declarations. It must NOT contain Program.Run(), unconditional automatic triggers or GoBackground. Their Main performs ONE job, emits Running on entry, Completed only on success or Error plus a message on failure, and returns. This prevents repeated automatic executions after the Main exits.
- After confirmed creation, explicitly execute the Scout with
Program.Run(scoutName). PollProgram.WithName(scoutName).IsRunningwith Pause and a deadline, checking the Director's Program.IsRunning. Do not use unbounded Program.WaitFor. Once stopped, require its completion status AND a fresh, nonempty output file before starting the Editor withProgram.Run(editorName)and the same bounded wait/validation. An idle program, a stale Completed status or a leftover file is not proof of this cycle's success: record the output modification time before starting and verify it advances; use a cycle identifier if needed. - On timeout, report the failure and do not start the dependent stage or start another copy of a still-running helper. Do not emit overall success unless both jobs and the new final file have been verified. Completed reports a result; returning from Main ends execution.
- Repeat at the requested interval with interruptible Pause and Program.IsRunning checks. Be explicit whether the interval is measured from cycle start or completion; a fixed cadence should subtract elapsed processing time rather than always sleeping another full 60 minutes.
Do not create a fresh helper on every cycle or silently combine the requested three-program design. Include the above lifecycle requirements in the prompts sent to Request.Execute, not just in the Director's own sources.
Files and text results (required)
Use Path.Combine(Data.GetFolder("SharedAutomanWorkspace"), "raw_news.txt") and the same named folder for the summary; create it if needed. Do not hardcode installation-relative data/programs/... paths in generated source. Use atomic replacement or ensure the producer has finished before reading. Fetch raw RSS/XML with Net.WebService(url).Call(), parse it as XML and extract text, stripping markup from descriptions. Isolate feed failures so working feeds remain usable; zero extracted news is failure, not Completed.
For a file editor option, the third field is its label and the fourth field embeds the file path, exactly:
editor:file:text/markdown is invalid: it omits the file path. Setting the option Value to a path does not fix an invalid FieldType.
Request.Generate starts an asynchronous text request. Validate its requestId before polling Request.Status. Accept ONLY state=completed with a nonempty string in text as the summary. queued/running/cancelling are unfinished; failed/busy/cancelled/output_limit/context_limit/not_found are not summaries. On failure, emit Error using the reported error and return; never save the whole result object, Response, ResponseValue, an exception or partial text as Markdown. Use a bounded wait and cancel on timeout or program stop. Request a clean Markdown list of up to ten actual facts from the supplied news, without inventing extra facts if fewer are available. Verify a fresh nonempty summary before reporting Completed. Expose its file through the correct editor option.
Keep ordinary deployment/compilation/recovery in the host. Calling the documented Request.Execute from a requested Director is the explicit orchestration exception, not permission to invoke raw Programs.Add/Compile APIs.
Background requests accept one active job per provider. Records are bounded and memory-only; restarting AI Genie clears them. No automatic replay. Never blindly repeat after timeout/unknown outcome: inspect receipts and check whether the uniquely named helper already exists. Context/capabilities are checked again before effects; cancellation prevents subsequent steps but does not undo completed actions.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingassets/build/all/data/ai/skills/homegenie-orchestration/SKILL.md
Popularity
- Repository stars
- 459
- Repository forks
- 159
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/genielabs/homegenie/homegenie-orchestration)