Trellis Session Insight
mindfold-ai/Trellis
Reach into past AI conversation history through the trellis mem CLI.
Learns the words a user habitually writes to their coding agent that make its answers worse ("be 100% sure", "don't assume", "full review", "are you sure?", "all fine, right?"), from what they…
$ npx skills add joetawil7/first-pass --skill habit-words -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install joetawil7/first-pass habit-words --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/joetawil7/first-pass.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/habit-words .claude/skills/habit-words && 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 "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .claude/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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/joetawil7/first-pass/tree/main/skills/habit-wordsType 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 joetawil7/first-pass --skill habit-words -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install joetawil7/first-pass habit-words --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joetawil7/first-pass.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/habit-words .agents/skills/habit-words && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .agents/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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 joetawil7/first-pass --skill habit-words -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install joetawil7/first-pass habit-words --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joetawil7/first-pass.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/habit-words .cursor/skills/habit-words && 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 "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .cursor/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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/joetawil7/first-pass.git --path skills/habit-words--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 joetawil7/first-pass --skill habit-words -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install joetawil7/first-pass habit-words --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joetawil7/first-pass.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/habit-words .gemini/skills/habit-words && 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 "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .gemini/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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 joetawil7/first-pass habit-wordsInstalls 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 joetawil7/first-pass --skill habit-words -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/joetawil7/first-pass.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/habit-words .github/skills/habit-words && 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 "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .github/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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 joetawil7/first-pass --skill habit-words -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install joetawil7/first-pass habit-words --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/joetawil7/first-pass.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/habit-words .opencode/skills/habit-words && 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 "habit-words" agent skill from https://github.com/joetawil7/first-pass/tree/main/skills/habit-words into .opencode/skills/habit-words/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "habit-words", 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.
habit-wordsLearns the words a user habitually writes to their coding agent that make its answers worse ("be 100% sure", "don't assume", "full review", "are you sure?", "all fine, right?"), from what they…
Habit Words is an agent skill from joetawil7/first-pass. Learns the words a user habitually writes to their coding agent that make its answers worse ("be 100% sure", "don't assume", "full review", "are you sure?", "all fine, right?"), from what they actually typed in their recent Claude Code sessions. Shows what each one does, what went wrong after it, and what to say instead, then writes the habit words block that maps each word to the checks it should trigger, so the checks run without the words. Use when asked to learn, read, refresh or review the user's habit words…
Its SKILL.md is about 1.7k 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 Development. The repository describes itself as: Rules and checks that make Claude Code look around a change, not just at the lines it writes: ten questions before code, a reviewer that didn't write it, proof before done, bugs… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ded5cdf. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeclaudeFrom 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.
Habit Words loads about 1.7k tokens when it runs. Until then it costs about 170 tokens; SKILL.md has 917 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 joetawil7/first-pass at commit ded5cdf, republished under its MIT licence (© joetawil7). 917 words, ~1,668 tokens.
.claude/skills/habit-words/SKILL.md (or your agent's skills folder)."Be 100% sure" or "make it bug free" names no place to look, so it changes how sure the answer sounds, not what gets checked. This skill finds the words this user writes, from their own prompts, and maps each to the checks it should mean. The user never has to write them again, and when they do, the words trigger the checks instead of a more certain tone.
The block this skill writes follows ${CLAUDE_SKILL_DIR}/../setup-first-pass/assets/words-block.md:
read it first, and keep its markers and shape.
Plugin: node "${CLAUDE_SKILL_DIR}/../../scripts/cli.mjs" words reads the user's last 20
Claude Code sessions that hold a prompt they typed (--sessions <n> for another number), from
~/.claude/projects (or $CLAUDE_CONFIG_DIR/projects). It writes only what they typed to a
temp file and prints the file's path, what it left out, the newest prompt's time, and how many
prompts hit each phrase family. Left out: tool output, pasted text, notifications, messages
from other sessions, skill and system text, commands, compaction summaries and turns a script
started (claude -p). Prompts queued while the agent was busy are kept: they are often the
corrections. The one thing kept that the user did not type is the end of the agent's reply
before each prompt tagged "possible pushback". Anything that looks like a key, token,
password, email or phone number is replaced: best effort, so never quote a line that still
looks like one. Each run writes one new file; note every path.
Without the plugin (another tool), ask the user to paste 30 to 50 recent prompts, and work from those.
Say the coverage before the findings: sessions, dates, prompts, what was left out. Read the whole file. Past about 800 prompts, read every prompt the families or the pushback marker tag, plus a sample of 150 of the rest, and say so.
node "${CLAUDE_SKILL_DIR}/../../scripts/cli.mjs" words --count "<regex>"
(repeat --count for several; one read), with the same --sessions as step 1, so the
counts cover the prompts you read. Every number shown comes from a count, never from
reading. Prompts where the user talks about the words (like a request to run this
skill) are counted too: say how many.For each word keep:
Also list the prompts that worked (they named the check, the source or the scope), so the user keeps them.
A table: You wrote · How often · What it does · What happened · Say instead, the prompts that worked, then the block you will write. Ask before writing it.
With a yes, write the block between its markers: the heading, one line saying the words mean
the checks and never a more certain tone, and one bullet per word:
"<the user's words>" (<n> prompts): <the check it triggers>. The start marker is
<!-- first-pass:words:start v<plugin version> through <newest prompt's time from step 1> from <n> sessions (written by the habit-words skill from the user's own prompts; re-run it to refresh) -->The start-of-session check reads through to say when the words are due again: once 20
sessions the user typed in have changed since. If the user says "not now" to a refresh, set
through in the existing marker to the current time and change nothing else.
Where: never in a file teammates share, because these are one person's words. So:
AGENTS.md;~/.claude/CLAUDE.md instead;~/.claude/CLAUDE.md, and the report says so.Never edit outside the markers.
Delete every file step 1 wrote (each words run writes one): they hold the user's prompts.
node "${CLAUDE_SKILL_DIR}/../../scripts/cli.mjs" words --delete "<file>" for each; it
fails if the name matches no file, so a mistyped name never reads as deleted. A file an
unfinished run left is removed by the next run once it is 6 hours old. The report ends
with:
Read: <n> prompts from <n> sessions, <first date> to <last date>; left out <what>
Words: <n> mapped (<n> new instructions), block <written to file | not written, because>
Temp files: <n> written, <n> deleted© joetawil7, 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/habit-words of joetawil7/first-pass.
Open the folder on GitHubat commit ded5cdf
Habit Words 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 |
|---|---|---|---|---|---|---|
| Habit Words this skilljoetawil7/first-pass | 98 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Trellis Session Insightmindfold-ai/Trellis | 15k | 4 repos | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| Warp Factory Fileswarpdotdev/warp | 65k | 1 repos | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Analyze Logsactivepieces/activepieces | 25k | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| GitHub Review Iterationprisma/orm | 48k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 |
mindfold-ai/Trellis
Reach into past AI conversation history through the trellis mem CLI.
warpdotdev/warp
Authors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
activepieces/activepieces
Analyze application logs from the .evlog/logs/ directory. An agent skill from activepieces/activepieces.
prisma/orm
Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.
PrefectHQ/fastmcp
Cut a FastMCP release end to end. An agent skill from PrefectHQ/fastmcp.
joetawil7/first-pass
Bug-fix routine that fixes the whole class of bug, not just the reported instance.
joetawil7/first-pass
Sets up, checks or changes the optional Jev judge, the TypeSafe decision model that ship-check asks about review findings (is this real harm, is a small one worth fixing now, what proof does a small…
joetawil7/first-pass
Run before writing or changing code for any feature, bug fix or refactor that touches data, jobs, money, outside services or user-facing behaviour.
joetawil7/first-pass
Rewrites the prompt typed after the command before any work starts, then works from the rewrite.
joetawil7/first-pass
Reviews a change before it is merged, from little or no input.
joetawil7/first-pass
The definition of done. An agent skill from joetawil7/first-pass.
Categories
Learns the words a user habitually writes to their coding agent that make its answers worse ("be 100% sure", "don't assume", "full review", "are you sure?", "all fine, right?"), from what they…. Habit Words is an agent skill from joetawil7/first-pass."), from what they actually typed in their recent Claude Code sessions.
Habit Words fits situations like: review the users habit words; which of my words make you worse; from setup-first-passs profile step; the start-of-session check says the habit words are due.
Run `npx skills add joetawil7/first-pass --skill habit-words -a claude-code`. Or copy the skill folder (skills/habit-words in joetawil7/first-pass) into .claude/skills/habit-words in your project. Claude Code loads it when a task matches its description.
Run `npx skills add joetawil7/first-pass --skill habit-words -a codex`. Or copy the skill folder (skills/habit-words in joetawil7/first-pass) into .agents/skills/habit-words 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 joetawil7/first-pass --skill habit-words -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/habit-words, .gemini/skills/habit-words, .github/skills/habit-words and .opencode/skills/habit-words in your project.
Going by SKILL.md and its folder, Habit Words needs the command-line tools its instructions call (node and claude). Its frontmatter pre-approves these tools: Read, Glob, Grep.
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.
Habit Words 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.7k tokens (SKILL.md is roughly 6.7k 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 Habit Words: Trellis Session Insight (mindfold-ai/Trellis, 15k stars), Warp Factory Files (warpdotdev/warp, 65k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Analyze Logs (activepieces/activepieces, 25k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
joetawil7 (a GitHub user) maintains it in joetawil7/first-pass, which has 98 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: joetawil7/first-pass on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.