Atlas / Skills / seanogdev / dotfiles

dotfilesCAUTION

skills/seanogdev/dotfiles

My personal dotfiles. Using fish on macOS

Verdict
CAUTION
Grade
B
Trust score
89 /100
Version
—
Hosts
1 documented
License
MIT
Stars
2
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

This is my personal dotfiles repository. It contains my configuration files for various programs and tools. I use this repository to keep my dotfiles in sync across multiple machines.

Main tools used:

  • Brew
  • Git
  • Fish / Fisher
  • Starship

Setting up a new machine

The repo has to live at ~/projects/personal/dotfiles. Both setup.sh and .config/fish/conf.d/stow.fish hardcode that path.

Install Homebrew first:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Clone over HTTPS, not SSH. The insteadOf rule in .config/git/config rewrites HTTPS to SSH, but that config is not linked into $HOME until stow has run:

mkdir -p ~/projects/personal
git clone https://github.com/seanogdev/dotfiles.git ~/projects/personal/dotfiles
cd ~/projects/personal/dotfiles
./setup.sh

setup.sh installs stow, symlinks the repo into $HOME, installs the .Brewfile packages, copies the iCloud fonts, and sets fish as the default shell.

Two things are not in the repo and need doing by hand afterwards:

  • The private files and skills live in the iCloud Store at

~/Library/Mobile Documents/com~apple~CloudDocs/Code/dotfiles/. Run stow-icloud.

  • The managed skills from .Skillfile. Run skills-restore.

Skills

Two personal skills live at .agents/skills//SKILL.md in this repo: manage-skills and manage-stow. Both are dotfiles-specific tooling — they reference this repo's own fish functions and layout — so they stay here rather than in a general-purpose skills repo. .claude/skills/ is a symlink to ../../.agents/skills/, stowed into $HOME.

The rest of the personal skills (address-review, prune-merged-branches, quote-clip) live in seanogdev/skills. On this machine they're tracked in .Skillfile and installed via gh skill, the same as any other third-party skill — see the manage-skills skill.

Pulling changes o

Read from source at commit f3f95b303cacOBSERVED · 2026-10-10
02

Install

Commands as the repository documents them. They are shown, not run.

git clone https://github.com/seanogdev/dotfiles.git ~/projects/personal/dotfiles
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: manage-skills
description: Install, update, back up, and restore GitHub-hosted Claude Code skills for this dotfiles setup. Use when the user wants to add a skill from a GitHub repo, keep installed skills current, back up or restore the skill inventory across machines, or asks about `gh skill`, `.Skillfile`, or the skills-install/backup/restore/update fish functions — even when they don't say "skill," e.g. "set this laptop up with my usual skills" or "is there an update for that thing I installed." Does not cover editing the two dotfiles-specific skills under `.agents/skills/<name>` in this repo (`manage-skills`, `manage-stow`).
license: MIT
---

Manage GitHub-hosted skills with `gh skill` (GitHub CLI, preview) via `skills-install`, `skills-backup`, `skills-restore`, and `skills-update`. Each takes `--help`. Install each one to the canonical location `~/.agents/skills/`, the agentskills.io convention. Claude Code reads from `~/.claude/skills/`. Each managed skill there is a symlink into `~/.agents/skills/<name>`.

Two skills are different: `manage-skills` and `manage-stow` are dotfiles-specific, so they live in this repo as real files at `.agents/skills/<name>/SKILL.md` instead of being installed by `gh skill`. `.claude/skills/<name>` is a symlink to `../../.agents/skills/<name>`. Stow projects both into `$HOME`.

## Gotchas

- `gh skill` keeps no lock file. It reads no manifest. It writes source-tracking metadata into the frontmatter of each `SKILL.md`. `gh skill update` needs that metadata to detect a change.
- Scope `gh skill update` with `--dir`. Unscoped, it scans every agent host on the machine. These hosts include `~/.config/goose/skills/` and `~/.config/opencode/skills/`. The scan buries the real output in warnings.
- `gh skill` does not follow a symlinked skill directory. `manage-skills` and `manage-stow` are each a symlink in `~/.agents/skills/`. Every scan skips them. The scan gives no warning. This is correct here. Neither has `github-repo` frontmatter, so `gh skill` has nothing to update.
- Each `.Skillfile` line is `<owner/repo> <skill-path> [pin]`. The pin is the `github-pinned` frontmatter value, a tag or commit SHA. It is there only for a skill installed with `--pin`. `gh skill update` skips a pinned skill. To move a pin, reinstall with `skills-install <owner/repo> <skill-path> <new-pin>`, then run `skills-backup`. The path is the exact repo path from the `github-path` frontmatter. Do not substitute the namespaced name that `gh skill list` reports. The path `accessibility-compliance/wcag-audit-patterns` fails to install. The path `plugins/accessibility-compliance/skills/wcag-audit-patterns` works. `gh skill list --json` has no field for the exact path. Therefore `skills-backup` reads the frontmatter to get it.
- `skills-restore` makes `~/.agents/skills/` agree with `.Skillfile`. It removes each skill that has `github-repo` frontmatter but no `.Skillfile` line, and it removes the `~/.claude/skills/` symlink of that skill. To remove a skill, delete its `.Skillfile` line, then run `skills-restore`. After `skills-install`, run `skills-backup`. If you do not, the next `skills-restore` removes the new skill.
- `.Skillfile` excludes every skill without `github-repo` frontmatter. Private skills have none, so they never appear in `.Skillfile`. They live in the iCloud Store, and `stow-icloud` puts them in `~/.agents/skills/`.
- The dotfiles repo is the exception to keeping project-scope and user-scope skills apart: its `.claude/skills/` holds the symlinks that stow projects into `$HOME`.
- `seanogdev/skills`, not this repo, is the Claude Code plugin root for the general-purpose skills. Its `.claude-plugin/plugin.json` declares the plugin `seanog-skills`. To add a skill to that plugin, add it under `skills/` there. There is no list to update.
05

Trust audit

CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
declared (1 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (8)

MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/manage-skills
.claude/skills/manage-skills
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/manage-stow
.claude/skills/manage-stow
Why it matters. link not followed
LOWInventory / provenance · inv.hidden_file · CWE-1104
.Brewfile
.Brewfile
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.Skillfile
.Skillfile
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitignore_global
.gitignore_global
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.stow-local-ignore
.stow-local-ignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.symlink · CWE-1104
.claude/AGENTS.md
.claude/AGENTS.md
Why it matters. link not followed
LOWInventory / provenance · inv.symlink · CWE-1104
.config/ghostty/CLAUDE.md
.config/ghostty/CLAUDE.md
Why it matters. link not followed

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha f3f95b303cacfull audit observations/trust-audit/skill/seanogdev__dotfiles.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-10f3f95b303cacCAUTIONB89first audit
07

Questions

What does the dotfiles skill do?

My personal dotfiles. Using fish on macOS

Is dotfiles safe to install?

With care. The audit graded it B (89/100) and found 8 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can dotfiles access on my machine?

The audit observed that it runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.

What do I need installed to use dotfiles?

Its own instructions reference skills-backup, skills-restore and skills-update. Dependencies are pinned to exact versions.

Which assistants does dotfiles work with?

Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (f3f95b303cac), read on 2026-10-10. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement