Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
Agent-only decision procedure for resolving a matched crew-dispatch profile array from quota-axi's default TOON, ranking by spendPriority after three orthogonal gates.
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kunchenguid/firstmate quota-array-dispatch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .claude/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .claude/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kunchenguid/firstmate quota-array-dispatch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .agents/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .agents/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kunchenguid/firstmate quota-array-dispatch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .cursor/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .cursor/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kunchenguid/firstmate.git --path .agents/skills/quota-array-dispatch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kunchenguid/firstmate quota-array-dispatch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .gemini/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .gemini/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kunchenguid/firstmate quota-array-dispatchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .github/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .github/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kunchenguid/firstmate quota-array-dispatch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kunchenguid/firstmate.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/quota-array-dispatch .opencode/skills/quota-array-dispatch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "quota-array-dispatch" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/quota-array-dispatch into .opencode/skills/quota-array-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "quota-array-dispatch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
quota-array-dispatchAgent-only decision procedure for resolving a matched crew-dispatch profile array from quota-axi's default TOON, ranking by spendPriority after three orthogonal gates.
Quota Array Dispatch is an agent skill from kunchenguid/firstmate. Agent-only decision procedure for resolving a matched crew-dispatch profile array from quota-axi's default TOON, ranking by spendPriority after three orthogonal gates. Load when a dispatch rule or default resolves to more than one profile candidate.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs. The repository describes itself as: Talk to one agent. Ship with a crew. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 53b5bc1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Quota Array Dispatch loads about 3.1k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 1,678 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from kunchenguid/firstmate at commit 53b5bc1, republished under its MIT licence (© kunchenguid). 1,678 words, ~3,101 tokens.
.claude/skills/quota-array-dispatch/SKILL.md (or your agent's skills folder).This skill is the single owner of the completion-aware profile-array selection procedure.
AGENTS.md section 4 owns the always-loaded intake boundary, load trigger, malformed-config refusal, every-candidate accounting, and strongest-reasoning/tie safety rules.
harness-adapters owns harness verification, model/provider discovery, and effort fallback.
quota-axi remains data-only: it publishes spendPriority as a comparable scalar and never recommends, selects, ranks, or infers a route.
Do not add a daemon, opaque composite score, routing wrapper, hard-coded model-specific policy, or producer-side route recommendation.
The worker helper and typed resolver own their deterministic mapping boundaries.
The canonical shell helper for a worker that has already performed its model-selection reasoning and now needs to pick the first viable candidate is bin/fm-quota-choose.sh.
Pass it the intake's already-captured default TOON or permitted JSON fallback through stdin or --snapshot; it never takes another quota snapshot, so it selects from the same quota state as the intake.
Pass each candidate as harness:model, with earlier candidates preferred.
The helper's header owns its provider mapping and quota selection mechanics.
An exhausted_now runway vetoes the candidate.
The helper selects a candidate only when its applicable quota has a known effectivePercentRemaining greater than zero.
This is an optional narrow helper with a known limitation: it maps each harness to one primary provider family only, so a candidate whose established provider differs from that primary family is checked against the wrong quota row.
omp has no primary family, so the helper keys an omp: candidate on its model prefix, mapping only openai-codex/ and claude-bridge/ and refusing every other prefix; the helper's header owns that mapping.
Authoritative multi-provider routing - including provider discovery from the harness catalog and quota matching by that explicit provider - stays owned by this skill's intake procedure above and AGENTS.md section 4, not by the helper.
Use it only when the brief already fixed the candidate order and every candidate's provider is the harness's primary family.
It does not replace the reasoning-class, runway-feasibility, or authentication gates above.
Firstmate can optionally arm bin/fm-procevent-quota.sh for a recurring mid-task check that wakes when the tracked provider drops below its configured threshold or its runway becomes exhausted_now.
The opt-in typed resolver has its own documented gates.
It never removes this skill's authority, and its ambiguous, escalate, and error outcomes return here.
Start each intake by running quota-axi once with no --json, and reuse that TOON for every candidate.
Post-consolidation quota-axi (the floor owned by bin/fm-quota-axi-lib.sh) puts spendPriority in the default quota[] block beside effectivePercentRemaining, runway, confidence, limitedBy, and resetsAt.
Sparse exhaustion[] carries finite-runway seconds only for projected_exhaustion and exhausted_now.
Sparse attention[] names auth, stale, and unmeasurable facts.
spendPriority is THE quota-perspective ranker.
It already computes the economics that older instructions reconstructed by hand from headroom, pace, reserve, and window-id lists; do not recompute those.
Do not read --json on the normal path, and do not reach for --full to rebuild that economics.
After reading the TOON, fall back to one quota-axi --json call only when that TOON is genuinely ambiguous for the decision, or when the installed quota-axi is somehow below the floor so its TOON lacks spendPriority.
Ambiguous means a candidate's spendPriority is the literal unknown or unmeasurable, a real tie still needs extra evidence, or a candidate's eligibility is unclear from quota[] plus attention[].
The fallback therefore has an explicit TOON-then-JSON call sequence; reuse its JSON result and do not take any further quota snapshots.
Below-floor is rare: bootstrap enforces FM_QUOTA_AXI_MIN and normally reports MISSING before dispatch; if an intake somehow reaches an older build whose TOON lacks spendPriority, use the defensive --json fallback rather than treating the missing scalar as healthy.
--json is a defensive belt, not a habit; never reach for it because it feels more complete.
Read quota-axi auth --json only when a candidate's credential surface is in question.
For each candidate, preserve explicit harness, model, and provider; harness-adapters owns identity, and model/provider never infer harness.
Apply the three cheap orthogonal gates first.
spendPriority ranks only among candidates that pass all three.
It cannot override a hard-gate failure, and it is never hidden inside a new composite score.
Outside those documented mappings, deterministic shell must not infer a provider family or credential store from a harness, model, or source name.
You establish the remaining relations yourself, in the open, from the candidate's own authoritative catalog (harness-adapters owns the per-harness discovery surface) plus the one intake snapshot.
Confirm the catalog lists the candidate's model and record the provider family it reports.
A model the catalog does not list is concrete contradictory evidence: block that candidate and quote the catalog result.
Apply quota at the granularity the vendor actually supplies.
A provider-level or all_models/all_products scope bounds every model you established in that family within the candidate's matched account, including one with no window of its own.
A named-model or named-product scope is an additional bound for that model alone.
Match the candidate to its quota[] row by that established provider, its accountKey when the snapshot is schema 6 (a Pi lane's auth provider id such as openai-codex-work, or codex-home for native Codex including Pi's codex-native/ adapter, then the default row, else unmeasured; never a row picked by position, never rows summed across accounts), and scope; a stale, auth-required, or unmeasurable scope is named in attention[] instead of a fabricated number.
A candidate authenticates through its own tuple's surface; another harness's CLI can never gate it, and harness=pi with model=xai/grok-* is Pi using xAI rather than the standalone Grok CLI.
quota-axi auth --json lists each provider's credential sources independently, so read the one source the candidate actually uses rather than collapsing a provider to a single status.
A provider can carry a healthy source beside a missing or expired one; the unused source's state is not the candidate's state.
A Pi-hosted family may authenticate through the vendor's own store with no pi:-prefixed source at all, which is normal and never evidence against the candidate.
Uncertainty and ineligibility are different findings:
unknown scope, or a surface quota-axi does not model at all is disclosed uncertainty.
Keep the candidate eligible, state the unknown, and prefer known viable evidence when otherwise comparable.When a credential's local classification is the only thing standing between a candidate and a block, get ground truth before blocking.
bin/fm-vendor-auth-probe.sh is the only approved vendor-credential probe; its --help owns the registered probes and mechanics.
It takes no harness, model, or provider and returns a fact, not a route: only authenticated and unauthenticated are ground truth, while indeterminate, timeout, and unavailable establish nothing and must never be read as either outcome.
Never launch a vendor CLI yourself, and never probe a credential store the candidate does not use.
Grok prepaid credits are unrelated to paid-window headroom; never read them as exhaustion.
Malformed configuration is an actionable error, not a candidate to rank around.
Keep only candidates that meet the required reasoning class for this task (a simple bug fix versus very-difficult design).
Never use spendPriority or remaining quota to silently replace that class.
When every remaining candidate is tight, dispatch inside the strongest-reasoning class if one of those candidates can proceed, or stop and report that the strongest-class choice cannot proceed rather than downgrading it to spend or conserve quota.
Known runway that will not last until the inspectable likely-completion horizon fails this gate, even when that candidate has the highest spendPriority.
Read runway from the quota[] row: through_reset passes this generic feasibility floor because the window reaches its refill without exhausting; never compare its resetsAt with the completion horizon as though reset were an exhaustion deadline.
exhausted_now is zero, and projected_exhaustion uses the matching exhaustion[] row's usableRunwaySeconds.
A high spendPriority on a nearly empty window that will exhaust soon must not route into a mid-task stall.
Unknown or unmeasurable runway stays eligible with disclosed uncertainty and is never assumed to pass.
Do not invent a generic percentage floor, and honor an explicit captain floor for a candidate when one exists.
Among candidates that pass all three gates, pick the highest known spendPriority.
A higher known scalar is better: positive means paid allowance is on track to reach reset unused, 0 is exact utilization, and negative means overdrawn against the reset clock.
Rank only from comparable known scalars.
Never treat absent, unknown, or unmeasurable spendPriority as zero or as healthy; 0 means exact utilization, a different claim from unknown.
An unknown spendPriority keeps the candidate eligible with disclosed uncertainty.
Prefer known viable evidence when otherwise comparable.
After the permitted TOON-to-JSON fallback, escalate to Firstmate instead of routing if no candidate can be ranked or runway uncertainty prevents proving the feasibility floor for any candidate that could be selected.
Never resolve that terminal uncertainty by treating unknown as healthy or by choosing arbitrarily.
Show the scalar or the literal unknown in the rationale; do not hide it in a score.
Do not compare headroom against runway by hand.
Do not use pace or signed reserve as a later tie-break layer.
Do not read aheadWindowIds, behindWindowIds, onPaceWindowIds, limitingWindowIds, or other window-id lists to reconstruct what spendPriority already computed.
Genuine ties: stop and report every tied candidate for captain choice. Do not select by array order, harness name, or another arbitrary identity ordering. Report duplicate concrete profiles as a configuration error.
Account for every candidate visibly before selecting or escalating, naming its catalog evidence, provider relation, applicable quota and authentication facts, remaining uncertainty, fit and reasoning class, spendPriority, and runway-versus-horizon result.
A blocked credential report must name harness, model, authentication surface, and concrete failure evidence; never emit a bare Grok unauthenticated statement.
Never conclude with an unexplained "best quota" label.
© kunchenguid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/quota-array-dispatch of kunchenguid/firstmate.
Open the folder on GitHubat commit 53b5bc1
Quota Array Dispatch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Quota Array Dispatch this skillkunchenguid/firstmate | 7.6k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Nestjs Best Practicesrolling-scopes/rsschool-app | 10k | 6 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sub2API AdminWei-Shaw/sub2api | 43k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 189k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| Obsidian BasesAtmosphere/atmosphere | 3.8k | 22 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
rolling-scopes/rsschool-app
NestJS best practices and architecture patterns for building production-ready applications.
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
Atmosphere/atmosphere
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
kunchenguid/firstmate
Agent-only procedure for Firstmate project management. An agent skill from kunchenguid/firstmate.
kunchenguid/firstmate
Sweep the current conversation for durable knowledge - user preferences, project facts, operational gotchas, standing decisions, and unfinished next steps - and file each through explicit…
kunchenguid/firstmate
Self-update a running firstmate and its secondmates to the latest from origin.
kunchenguid/firstmate
Agent-only reference for firstmate harness operations. An agent skill from kunchenguid/firstmate.
kunchenguid/firstmate
Agent-only reference for persistent secondmate setup and retirement.
kunchenguid/firstmate
Sweep the current session for uncaptured durable knowledge, file it to disk, persist the open work records this session knows are unfiled or now wrong, and curate the home's tiered, decaying startup…
Categories
Agent-only decision procedure for resolving a matched crew-dispatch profile array from quota-axi's default TOON, ranking by spendPriority after three orthogonal gates. Quota Array Dispatch is an agent skill from kunchenguid/firstmate. Agent-only decision procedure for resolving a matched crew-dispatch profile array from quota-axi's default TOON, ranking by spendPriority after three orthogonal gates.
Quota Array Dispatch fits situations like: backend & APIs work in your project.
Run `npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a claude-code`. Or copy the skill folder (.agents/skills/quota-array-dispatch in kunchenguid/firstmate) into .claude/skills/quota-array-dispatch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a codex`. Or copy the skill folder (.agents/skills/quota-array-dispatch in kunchenguid/firstmate) into .agents/skills/quota-array-dispatch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kunchenguid/firstmate --skill quota-array-dispatch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/quota-array-dispatch, .gemini/skills/quota-array-dispatch, .github/skills/quota-array-dispatch and .opencode/skills/quota-array-dispatch in your project.
SKILL.md names no scripts, command-line tools or credentials: Quota Array Dispatch is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Quota Array Dispatch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Quota Array Dispatch: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 43k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 189k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kunchenguid (a GitHub user) maintains it in kunchenguid/firstmate, which has 7,622 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 7, 2026.
Source: kunchenguid/firstmate on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.