Modeling Conversion Metrics
PostHog/posthog
Build reusable conversion models — funnel/step conversion rates, drop-off, and time-to-convert — on either PostHog data-warehouse views (HogQL) or an external dbt project.
Sweep the current conversation for durable knowledge - user preferences, project facts, operational gotchas, standing decisions, and unfinished next steps - and file each through explicit…
$ npx skills add kunchenguid/firstmate --skill stow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kunchenguid/firstmate stow --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/skills/stow .claude/skills/stow && 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 "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .claude/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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/skills/stowType 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 stow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kunchenguid/firstmate stow --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/skills/stow .agents/skills/stow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .agents/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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 stow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kunchenguid/firstmate stow --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/skills/stow .cursor/skills/stow && 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 "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .cursor/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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 skills/stow--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 stow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kunchenguid/firstmate stow --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/skills/stow .gemini/skills/stow && 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 "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .gemini/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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 stowInstalls 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 stow -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/skills/stow .github/skills/stow && 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 "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .github/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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 stow -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 stow --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/skills/stow .opencode/skills/stow && 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 "stow" agent skill from https://github.com/kunchenguid/firstmate/tree/main/skills/stow into .opencode/skills/stow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stow", 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.
stowSweep the current conversation for durable knowledge - user preferences, project facts, operational gotchas, standing decisions, and unfinished next steps - and file each through explicit…
Stow is an agent skill from 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 instructions, existing local conventions, or the private .stow-notes.md fallback, curating tiered, decaying destination files as it writes. Use when the user invokes /stow, asks to save or write down what was learned this session, or before a context reset or long break.
Its SKILL.md is about 5.1k 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.
8 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 (its code samples are markdown).
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.
Stow loads about 5.1k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 3,027 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). 3,027 words, ~5,088 tokens.
.claude/skills/stow/SKILL.md (or your agent's skills folder).<!-- maintainers: this is the public, installer-facing skill. Keep it standalone, with no private project paths, tool assumptions, or environment branching. The firstmate-internal counterpart lives at .agents/skills/stow/SKILL.md - deliberately a separate file with no shared code. Keep them independent. -->
Sweep this conversation for durable knowledge that only exists in chat right now, and file it through the user's explicit instructions, the project's existing local conventions, or the private .stow-notes.md fallback in the current directory.
The goal is to leave the next session a compact, current operating map, not an accumulating journal: every durable finding lands on disk, and every file this skill touches comes out more accurate, not merely longer.
Entries are tiered and decay between passes, and stale material retires to a local archive instead of being deleted.
Everything files to a local destination by default; an external system such as an issue tracker is reached only through the explicit-instruction rule in step 3.
Sweep the conversation for uncaptured durable knowledge. Read back over the session and look for:
Discover the host's existing conventions before deciding where anything goes. Don't assume a destination - look for what's actually there, roughly in this order:
CLAUDE.md, AGENTS.md, or an equivalent at the repo root or nearby.TODO, BACKLOG, NOTES, or similarly named plain file already tracked in the project.
This step is about local files only; do not scan for or infer an issue tracker here - step 3 owns external routing.Route each finding using this fixed priority order, local-first.
.github/.gitlab folder, or any other signal that a tracker probably exists is never by itself grounds to file anything there - never route externally on inference.TODO/BACKLOG/NOTES file for undone next steps; a discovered user-level memory file for user preferences when one happens to be accessible - a bonus if reachable, never an assumption or a requirement.
This is the only tier that writes findings into a tracked, shared file or outside the current directory, and only because the user already established that destination..stow-notes.md in the current directory, for every finding-kind. When no existing convention fits, don't improvise a location or invent an ad hoc filename.
In a git worktree, first verify .stow-notes.md is not already tracked in the index; if it is tracked, do not write private findings there - report that the fallback is blocked until the user chooses a safe destination.
Otherwise create or update .stow-notes.md in the current working directory - never a user-level or home-directory path, so the fallback works even for agents sandboxed to the current directory.
Then keep it out of git: add a .stow-notes.md line to a .gitignore file in the current directory - an ordinary file at that path, not git's internal exclude mechanism, which can resolve outside the working directory in a linked worktree.
Leave staging or committing that .gitignore line to the user, same as everything else this skill writes.
If even the .gitignore write fails, don't block or error - still write .stow-notes.md and tell the user to ignore it manually.When it's genuinely ambiguous between two existing conventions, ask once - then remember the answer. If more than one discovered local convention plausibly fits a finding, ask the user once, plainly, which one they want that kind of note to live in going forward. The same applies when the user gives an explicit instruction to use a tracker or other non-local system going forward rather than just for one item. Once they answer, offer to remember it: with their explicit permission, record a short standing note of that choice in the discovered (or newly agreed) user-level memory file, so the same question doesn't need repeating in this project. Always ask before adding that note - never establish a convention silently. When nothing existing fits at all (not merely ambiguous), that's the step-3 fallback, not a question.
Write only into locations that already exist as a real convention, the step-3 fallback (plus its .gitignore line), or a destination the user just approved in step 4.
Do not invent new shared files, new folders, or new tracker categories the project doesn't already have.
Never store, create, or edit a skill as a destination for a finding: there is no "graduate this to a skill" move, even in a repo whose existing .claude/skills/ or skills/ directory makes one look like a convention.
The offload exit in step 7 does not weaken this: this skill only ever proposes such a move, and the on-demand home is created through the user's own change process, never by this skill's writes.
If the fallback is unwritable and the user doesn't want a new convention, say so plainly and leave that finding unfiled rather than fabricate a destination.
Read the destination before writing: inspect-then-update, never blind-append.
Before writing any finding, read the destination file's current contents in full - and for a TODO/BACKLOG/NOTES entry, the full existing item, not just its title.
Then classify the finding against what is already there: new, duplicate, superseding an existing entry, or evidence that an existing entry is now obsolete.
Write the considered replacement that classification implies - a duplicate folds into the entry that already carries it, a superseding finding rewrites the entry it supersedes, and an obsolete entry is refreshed, archived, or replaced in a way that preserves its fact in the same pass - rather than blindly appending a new entry or overwriting the file wholesale.
Prefer a one-sentence rewrite of an existing entry over a second entry saying nearly the same thing.
A superseded body worth keeping leaves through one of step 7's exits, so it stays recoverable instead of being lost silently in the rewrite.
Mark each entry written into a memory file or .stow-notes.md per the tier contract below, but never add tier markers to an existing TODO/BACKLOG/NOTES file.
File each undone next step with what it is waiting on, when it is genuinely blocked on something.
Curate every memory file this pass has open, not only the one a finding routes to.
Evaluate each dated entry against its tier clock per the tier contract below, refreshing what current evidence re-validates and archiving what stays stale.
Archive what is no longer current, including completed chronology, stale versions and paths, transient task state, resolved alternatives, old metrics, and report-sized procedures; merge or remove only superseded claims and duplicates whose facts are preserved elsewhere.
Prefer one concise current rule, or a pointer to the authoritative source, over duplicate prose.
Never plainly remove a unique current fact: every such exit must archive it with provenance in the recoverable cold tier or relocate it to a live on-demand owner or a consolidation merge that preserves the fact.
This is an accuracy discipline, not a length target - a stale entry misleads the next session; a current one earns its place.
A .stow-notes.md note has exactly five exits: promotion into a shared, tracked file the user approves; folding into a discovered user-level memory file; archiving to the local, never-loaded archive file; a user-approved move into an on-demand-loaded home (a skill or scoped instruction file), executed through the user's own change process rather than by this skill; or deletion of a duplicate already preserved by a stronger owner - do not invent another.
Finish with an honest safe-to-end verdict and a resume pointer for the next session.
Report one action per file this sweep touched or considered: unchanged, added, rewritten, pruned, archived (an entry moved to the local archive), or routed (the finding went to a different owner).
Name any proposed moves into an on-demand home still awaiting the user's approval, so they are not mistaken for finished work.
Then tell the user, in plain language, what was captured and where, what could not be captured (and why), and whether the conversation is now safe to end or reset - that is, whether every durable finding from this sweep now lives on disk or in an explicitly requested tracker rather than only in this chat.
If something could not be captured yet, say so explicitly instead of reporting the session fully safe.
If anything landed in .stow-notes.md, say so - note that it is private and confined to this project, and name its promotion exit from step 7 if the user wants it more widely visible.
In a git repo, report the ignore protection as it actually happened: either the .gitignore line was added and awaits the user's own commit, or the write failed and the user must ignore .stow-notes.md manually before relying on git to hide it.
If the fallback was blocked because .stow-notes.md was already tracked, say that no private fallback was written and the session is not fully safe to reset until the user chooses another destination or accepts that tracked file.
If a user preference landed in .stow-notes.md because no user-level memory file was discovered, add one caveat: it now applies to this project only, and the user must copy it into their own global memory file themselves if they want it to follow them across projects.
The real payoff of stowing is not this session but the next one: close with a short, copy-pasteable RESUME POINTER naming exactly which files a fresh session should load to pick this back up cold, e.g. To pick this back up in a new session, load: CLAUDE.md (project conventions), .stow-notes.md (private notes, not shared).
List only the files this sweep actually wrote or updated; skip the pointer if nothing was written.
Markers are compact trailing HTML comments, deliberately cheap because marker bytes are part of every file this skill keeps lean:
<!--a:YYYY-MM-DD--> - an aging entry; the embedded date is its last-reinforced date.<!--p:YYYY-MM-DD--> - a perishable entry; the embedded date is its last-reinforced date.<!--a:YYYY-MM-DD/N--> - only in a file whose header pointer opts in to the pass horizon below: either dated marker may carry /N, the number of passes that evaluated the entry without reinforcing it.
An absent /N means zero, so an entry you keep exercising costs no counter bytes at all, and a file that has not opted in never writes one.<!--P--> - an explicitly pinned entry in a file whose default tier is not pinned.<!--g--> - migration-only: an unconfirmed legacy entry that has consumed its one grace cycle, carrying no date because grace is not reinforcement.- The staging deploy needs the VPN profile active or the smoke test hangs. <!--a:2026-08-03-->
- CI is red on the flaky auth test until the pinned runner image updates (tracked in TODO). <!--p:2026-07-20-->
- Always run the schema linter before touching migrations. <!--P-->
- The staging seed script must run before the fixture import. <!--a:2026-07-28/6-->The tier names say what this skill does with an entry:
pinned - never decays and is never dropped to shorten a file; it changes only when the user or reality changes it.aging - must re-prove itself: an entry whose age is greater than or equal to 30 days since its last-reinforced date is stale, and a stale entry is re-validated (date refreshed) or archived, never kept by inertia alone.perishable - written to be thrown out: an entry whose age is greater than or equal to 7 days since its last-reinforced date is stale, and its text must name a checkable expiry condition, such as a ticket, a version, or a dated expectation.
An entry that cannot name a checkable condition is aging, not perishable.Rules:
pinned, while a project memory file and .stow-notes.md default to aging.pinned default carries no marker at all; every aging and perishable entry always carries its dated marker, whose letter names the tier, so a clock-carrying entry is never ambiguous with unmarked legacy material.<!-- memory tiers: see the stow skill -->, optionally naming that file's default tier when it deviates and the pass horizon when that file opts in, as in <!-- memory tiers: see the stow skill; pass horizon -->.
The tier semantics, marker spellings, and clocks live only in this skill and are never restated in a file header, which names an option but never its numbers.
During one-time migration, add the pointer even to a default-pinned file that contains only unmarked entries, so every governed file names its scheme owner.aging entry there is stale at whichever comes first - 10 passes that evaluated it without reinforcing it, or 30 days - and a perishable entry at whichever comes first - 3 unreinforced passes, or 7 days.
Increment the counter of every dated entry that pass did not reinforce before judging staleness, read a dated marker with no /N as counter zero so nothing needs migrating, and clear the counter only by refreshing the date on real evidence.
In a file that is not opted in, never write a counter and never read one that is already there; preserve any existing /N byte-for-byte instead of normalizing or removing it.perishable entry against its named condition: still open means refresh the date, while resolved, expired, or no longer checkable means archive it now..stow-archive.md in the source file's own directory, never loaded by any session, and its archive record includes the source filename, tier, reinforcement date when present, and a one-line reason.
Include the unreinforced-pass counter only when the pass horizon itself made the entry stale, using the exact reason unreinforced <N>p; omit the counter when the wall-clock horizon or any other reason caused archival, even if the active marker carried one.
In a git worktree, verify that this archive path is not already tracked in the index before writing any archived fact there.
If it is tracked, do not write to it and report that archival is blocked until the user chooses a safe destination.
Otherwise add a .stow-archive.md line to a .gitignore file in the archive's directory, and never write archived facts into a git-tracked file.
Recovery is search plus copy back.<!--g-->, which carries no date, to persist one grace cycle without treating presence as reinforcement.
On the next pass, current evidence replaces that marker with the normal dated tier marker; without such evidence, archive the entry with a legacy-unvalidated note.
The same persisted transition applies to an entry a hand edit later leaves unmarked in a file whose default tier carries a clock.It does not invent a new note-taking system, initialize version control, or stage, commit, or push anything on the user's behalf - every write, including the .gitignore line, lands in the working tree for the user to review and commit like any other change.
It never files credentials, secrets, or other sensitive material - only knowledge that's safe to keep in plain text wherever it lands.
It never files anything to an issue tracker, hosted board, or other external or public system on its own inference - that only ever happens on the user's explicit say-so, per the hard rule in step 3.
© 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 skills/stow of kunchenguid/firstmate.
Open the folder on GitHubat commit 19fcbbd
Stow 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 |
|---|---|---|---|---|---|---|
| Stow this skillkunchenguid/firstmate | 7.7k | — | ~5.1k | Automated safety check: Pass | MIT | |
| Modeling Conversion MetricsPostHog/posthog | 40k | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| Cost Conversationruvnet/ruflo | 74k | — | ~407 | Automated safety check: Notes | MIT | |
| Conversation Memorydavila7/claude-code-templates | 32k | 4 repos | ~440 | Automated safety check: Pass | MIT | |
| Conversation Archivegarrytan/gbrain | 31k | — | ~5.6k | Automated safety check: Pass | MIT | |
| Landing Page Conversion Auditgithub/awesome-copilot | 40k | 1 repos | ~1.8k | Automated safety check: Pass | MIT |
PostHog/posthog
Build reusable conversion models — funnel/step conversion rates, drop-off, and time-to-convert — on either PostHog data-warehouse views (HogQL) or an external dbt project.
ruvnet/ruflo
Per-conversation cost view — list every session in cost-tracking with started-at, message count, top model, and total cost
davila7/claude-code-templates
Persistent memory systems for LLM conversations including short-term, long-term, and entity-based memory Use when: conversation memory, remember, memory persistence, long-term memory, chat history.
garrytan/gbrain
Import AI-assistant chat exports (ChatGPT, Claude, Perplexity) and agent session transcripts into the brain as one dated page per conversation under conversations/, validate each page against the…
github/awesome-copilot
Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact.
sickn33/agentic-awesome-skills
Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase.
kunchenguid/firstmate
Agent-only procedure for Firstmate project management. An agent skill from kunchenguid/firstmate.
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…
kunchenguid/firstmate
Agent-only decision procedure for ask-user findings. An agent skill from 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…. Stow is an agent skill from kunchenguid/firstmate.md fallback, curating tiered, decaying destination files as it writes.
Stow fits situations like: the user invokes /stow; write down what was learned this session; before a context reset.
Run `npx skills add kunchenguid/firstmate --skill stow -a claude-code`. Or copy the skill folder (skills/stow in kunchenguid/firstmate) into .claude/skills/stow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kunchenguid/firstmate --skill stow -a codex`. Or copy the skill folder (skills/stow in kunchenguid/firstmate) into .agents/skills/stow 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 stow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stow, .gemini/skills/stow, .github/skills/stow and .opencode/skills/stow in your project.
SKILL.md names no scripts, command-line tools or credentials: Stow 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.
Stow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k 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 Stow: Modeling Conversion Metrics (PostHog/posthog, 40k stars), Cost Conversation (ruvnet/ruflo, 74k stars), Conversation Memory (davila7/claude-code-templates, 32k stars) and Conversation Archive (garrytan/gbrain, 31k 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.