Events
coreyhaines31/marketingskills
When the user wants to plan, run, sponsor, speak at, or get pipeline from events — webinars, conferences, trade shows, meetups, dinners, workshops, virtual summits, or user conferences.
Recap visible session events and guide the captain through visibly unanswered decisions when the captain explicitly invokes /ahoy, with a Bearings fallback when /ahoy is the session's first real…
$ npx skills add kunchenguid/firstmate --skill ahoy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kunchenguid/firstmate ahoy --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/ahoy .claude/skills/ahoy && 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 "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .claude/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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/ahoyType 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 ahoy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kunchenguid/firstmate ahoy --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/ahoy .agents/skills/ahoy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .agents/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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 ahoy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kunchenguid/firstmate ahoy --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/ahoy .cursor/skills/ahoy && 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 "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .cursor/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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/ahoy--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 ahoy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kunchenguid/firstmate ahoy --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/ahoy .gemini/skills/ahoy && 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 "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .gemini/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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 ahoyInstalls 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 ahoy -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/ahoy .github/skills/ahoy && 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 "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .github/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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 ahoy -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 ahoy --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/ahoy .opencode/skills/ahoy && 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 "ahoy" agent skill from https://github.com/kunchenguid/firstmate/tree/main/.agents/skills/ahoy into .opencode/skills/ahoy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ahoy", 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.
ahoyRecap visible session events and guide the captain through visibly unanswered decisions when the captain explicitly invokes /ahoy, with a Bearings fallback when /ahoy is the session's first real…
Ahoy is an agent skill from kunchenguid/firstmate. Recap visible session events and guide the captain through visibly unanswered decisions when the captain explicitly invokes /ahoy, with a Bearings fallback when /ahoy is the session's first real captain message.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Talk to one agent. Ship with a crew. The licence is MIT.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 19fcbbd. 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.
Ahoy loads about 1.6k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 865 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 19fcbbd, republished under its MIT licence (© kunchenguid). 865 words, ~1,567 tokens.
.claude/skills/ahoy/SKILL.md (or your agent's skills folder).Give the captain a concise session-only recap without gathering fresh state.
Before anything else, check whether this session has already taken the helm: a SESSION START digest for this home must be visible in the session history.
If it is not, run bin/fm-session-start.sh once and read its digest before producing any recap.
Run-tier harness surfaces run it automatically at session open, so this step is normally already satisfied and costs one glance; it is the safety net for surfaces that cannot run it on a hook, and for any path where a skill would otherwise act first.
Taking the helm always precedes this skill's own logic, and the digest it produces is operational input, never a captain message or a recap event.
Inspect only conversation or session history already visible to the current first mate.
Find the most recent real captain-authored message before the current /ahoy invocation.
A captain boundary is an ordinary user-role message unless it matches one of the narrow operational exclusions below.
Exclude messages that begin with the current U+2063 FIRSTMATE_OP: injection prefix.
Exclude legacy bare-marker away-mode injections only when U+2063 is immediately followed by Supervisor escalate (.
Exclude a message that is exactly a record-backed operational doorbell that bin/fm-operational-input.sh doorbell-kind recognizes from its stdin; Claude Code, which strips U+2063, receives away-mode escalations this way.
Exclude the exact legacy unmarked session-start payload Run `bin/fm-session-start.sh` now, exactly once, before executing any other instructions.
Custom-role messages such as Pi's firstmate-sessionstart-nudge are not captain messages.
System, developer, tool, watcher, guard, away-mode, and other injected operational messages are not captain messages.
Never infer captain authorship merely because a synthetic message appears in the user-role transcript.
Do not exclude an ordinary captain message merely because it begins with U+2063 followed by other text, contains ASCII FIRSTMATE_OP: without a leading U+2063, quotes or embeds a current operational message after ordinary captain text, quotes or mentions the legacy session-start payload, or adds any text to that payload.
Apply the current exclusion only when U+2063 FIRSTMATE_OP: begins at the first character of the whole message: Captain quote: followed by that current prefix is a captain boundary.
Apply the legacy startup exclusion as a literal whole-message match: Captain quote: Run `bin/fm-session-start.sh` now, exactly once, before executing any other instructions. is a captain boundary.
If no prior real captain message exists, load ../bearings/SKILL.md and follow it exactly.
Bearings alone owns its gathering, artifact, and response contract.
Do not restate that contract or combine a session recap with Bearings output.
If a prior real captain message exists, preserve the ordinary recap interval: recap what happened after that message and before the current invocation. Include concrete outcomes, landed work, failures, decisions made, new decisions needed, and work still running only when those events appear in that visible interval. Use captain-facing outcome language and preserve every full PR URL present in that interval.
Additionally inspect the entire session history visible to the current first mate before the current invocation for every explicit captain decision that remains unanswered, including decisions raised before the ordinary recap boundary. A later unrelated captain message establishes a recap boundary but does not close an earlier decision. Treat a decision as closed only when a later visible response substantively resolves it, chooses an option, declines it, grants or denies the requested approval, or otherwise directly addresses that decision. Include every visibly supported open decision once, and deduplicate by the decision's substance when the ordinary interval recap already represents it or its wording differs.
The normal recap branch is session-history-only, apart from the step 0 helm check. Do not call Bearings, shell commands, fleet snapshots, status readers, GitHub or browser APIs, tools, or file reads or writes. Create no report, persist nothing, and do not guess current live state beyond the last visible event.
If no ordinary events occurred after the previous captain message but an older visibly open decision exists, report that decision instead of claiming nothing happened. If neither ordinary events nor visibly open decisions exist, say directly in one sentence that nothing happened after the previous captain message.
After the normal recap, when the existing visibly open decision inventory contains decisions, begin a guided decision-clearing flow by presenting only the single open decision judged most impactful by the first mate. Say the ordering is the first mate's pick. Give enough escalation-quality context to decide easily: the decision, why it matters, the options, and a recommendation.
When the captain answers the presented decision, present the next highest-impact decision from that existing inventory in the same form. Continue one decision at a time until none remain, without starting this flow when the inventory is empty.
The current /ahoy message is outside the recap interval.
A previous /ahoy is a real captain message and may be the next interval boundary.
If context compaction makes the prior boundary unavailable, state that the exact session boundary is unavailable and summarize only visibly supported events.
Compacted history supports an open decision only when both its request and its still-unanswered status are visible; report uncertainty instead of reconstructing hidden requests or answers.
Do not silently invoke Bearings unless this is genuinely the first real captain message.
© 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/ahoy of kunchenguid/firstmate.
Open the folder on GitHubat commit 19fcbbd
Ahoy 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 |
|---|---|---|---|---|---|---|
| Ahoy this skillkunchenguid/firstmate | 7.7k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Eventscoreyhaines31/marketingskills | 54k | — | ~3k | Automated safety check: Pass | MIT | |
| Event Sourcing Architectdavila7/claude-code-templates | 32k | 4 repos | ~659 | Automated safety check: Pass | MIT | |
| Event Store Designwshobson/agents | 40k | 9 repos | ~828 | Automated safety check: Pass | MIT | |
| Recapdavepoon/buildwithclaude | 3.6k | — | ~550 | Automated safety check: Pass | MIT | |
| Event Delegationthedaviddias/Front-End-Checklist | 74k | — | ~500 | Automated safety check: Pass | MIT |
coreyhaines31/marketingskills
When the user wants to plan, run, sponsor, speak at, or get pipeline from events — webinars, conferences, trade shows, meetups, dinners, workshops, virtual summits, or user conferences.
davila7/claude-code-templates
Expert in event sourcing, CQRS, and event-driven architecture patterns.
wshobson/agents
Designs event stores for event-sourced systems: requirements, a comparison of EventStoreDB, PostgreSQL, Kafka, DynamoDB and Marten, and stream and versioning practices.
davepoon/buildwithclaude
Triggered by "monthly recap", "how did I do this month", "spending summary", "financial review", "weekly recap", "quarterly review", "year in review"
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Use event delegation for dynamic content.
HKUDS/Vibe-Trading
Scores news, announcements and macro events with the LLM, stores them in an event CSV and blends the decaying event signal with technical signals in signal_engine.py.
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…
Recap visible session events and guide the captain through visibly unanswered decisions when the captain explicitly invokes /ahoy, with a Bearings fallback when /ahoy is the session's first real…. Ahoy is an agent skill from kunchenguid/firstmate. Recap visible session events and guide the captain through visibly unanswered decisions when the captain explicitly invokes /ahoy, with a Bearings fallback when /ahoy is the session's first real captain message.
Run `npx skills add kunchenguid/firstmate --skill ahoy -a claude-code`. Or copy the skill folder (.agents/skills/ahoy in kunchenguid/firstmate) into .claude/skills/ahoy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kunchenguid/firstmate --skill ahoy -a codex`. Or copy the skill folder (.agents/skills/ahoy in kunchenguid/firstmate) into .agents/skills/ahoy 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 ahoy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ahoy, .gemini/skills/ahoy, .github/skills/ahoy and .opencode/skills/ahoy in your project.
SKILL.md names no scripts, command-line tools or credentials: Ahoy 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.
Ahoy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.3k 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 Ahoy: Events (coreyhaines31/marketingskills, 54k stars), Event Sourcing Architect (davila7/claude-code-templates, 32k stars), Event Store Design (wshobson/agents, 40k stars) and Recap (davepoon/buildwithclaude, 3.6k 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,707 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 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.