Agent skill

Project

by HurricaHjz in HurricaHjz/second-yourself

Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status |…

MITAuto-check passedDocuments & Office

Install Project

skills CLI
$ npx skills add HurricaHjz/second-yourself --skill project -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HurricaHjz/second-yourself project --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HurricaHjz/second-yourself.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/project .claude/skills/project && rm -rf skills-src

Use ~/.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/

Facts

Skill name
project
GitHub stars
123
Token cost
~3.1k tokens
SKILL.md length
1,690 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status |…

  • Works in 6 steps: Resolve. Name = --name, else the… → Channel check (URL only). git ls-remote… → Preview and wait. One table: source ·… → …
  • Tasks that involve LaTeX
  • SKILL.md covers Contract, Registry — wiki/tools/Agent…, Verbs and The credential helper, plus 4 more sections
  • Calls git, kind and python3; reaches git.overleaf.com and github.com; needs OVERLEAF_GIT_TOKEN

What it does

Project is an agent skill from HurricaHjz/second-yourself. Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status | unlink, or "open my research outline", "commit and push the outline", "link this Overleaf project", "snapshot the paper into the wiki". The clones live OUTSIDE the vault in the project store (the registry page names its folder) or are registered where they already are; the wiki holds only a registry row (wiki/tools/Agent…

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 Documents & Office, covering LaTeX and LLM wikis. It works with LaTeX and Git. The repository describes itself as: Second yourself. One agent that remembers you, with many hands to act for you: a multi-agent harness (Claude Code, with Codex helpers), a self-maintaining local wiki as its… The licence is MIT.

When your agent uses it

  • Tasks that involve LaTeX
  • Tasks that involve LLM wikis

Example prompts

  • “open my research outline”
  • “commit and push the outline”
  • “link this Overleaf project”
  • “/project”

Requirements

  • Python 3
  • A credential in OVERLEAF_GIT_TOKEN

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Resolve. Name = --name, else the repository's basename (an Overleaf project id alone is not a
  2. Channel check (URL only). git ls-remote with the helper environment; record the
  3. Preview and wait. One table: source · name · destination path (or the registered path) ·
  4. Clone or register. git clone / (full history, the remote's default
  5. Registry row on the tool page (create the page from the sibling's shape on the first link) and
  6. Brief (below), then report: the row, the branch, the sha, the snapshot's source page.

What it can do on your machine

Read from SKILL.md and the folder at commit 17c03f2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • kind
    • python3
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • git.overleaf.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OVERLEAF_GIT_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Project loads about 3.1k tokens when it runs. Until then it costs about 193 tokens; SKILL.md has 1,690 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~193
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from HurricaHjz/second-yourself at commit 17c03f2, republished under its MIT licence (© HurricaHjz). 1,690 words, ~3,099 tokens.

Download SKILL.mdSave it as .claude/skills/project/SKILL.md (or your agent's skills folder).
name
project
description
Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status | unlink, or "open my research outline", "commit and push the outline", "link this Overleaf project", "snapshot the paper into the wiki". The clones live OUTSIDE the vault in the project store (the registry page names its folder) or are registered where they already are; the wiki holds only a registry row (wiki/tools/Agent Project Store.md) and commit-pinned snapshots ingested through raw/. Never runs from passive context, IDEAS.md or another skill; never changes the working directory; commits as the owner on the word commit, pushes on the word push, never force.
user-invocable
true

project — the owner's working repositories beside the vault

Contract

The permissions below govern this procedure; no procedural step may relax them. The load-bearing rules are:

  • Explicit instruction only. A passive mention of a repository (an @-mention, a selection, IDEAS.md) never triggers a verb. Every verb that clones, removes or writes into the wiki shows a preview first and waits for the owner's go.
  • Placement. New clones go to projects/<name>/ under the configured store (LLM_WIKI_STORE, default ~/.llm-wiki/); an existing working copy outside the vault is registered in place (link --path). A path inside the vault is refused. The sibling store ~/.llm-wiki/repos/ (studied third-party repositories, repo_pack.py clone) is never used here.
  • Nothing in a clone is knowledge. The wiki holds the registry row and, per repository, the source page compiled from a snapshot pack in raw/; no page describes a repository from its live tree, no page cites a clone path except the registry.
  • No persistent cd. Use git -C <absolute path> … or an absolute file path so commands cannot inherit the wrong directory.
  • Credentials never in a URL. Each clone carries a git credential helper that reads its token from credentials.env under the configured store (LLM_WIKI_STORE, default ~/.llm-wiki/); the remote URL is clean (https://git.overleaf.com/<id>, https://github.com/<owner>/<repo>).
  • Commits and pushes. Commit on the word commit, or under a standing per-repository policy the owner set on its registry row; the owner is sole author (git config identity, no AI trailer, an imperative one-line message); push on the word push; never a force push, never a rewrite of pushed history, never a branch the instruction did not name. The vault's destructive-git guard (checkout, restore, clean, reset --hard) covers git -C forms too.
  • Lanes. A project path reaches a lane only by an explicit grant; git stays the head's instrument; an armed hands-off head needs a pre-flight grant for any project path.
  • Logging. link and brief are logged by the ingest they run (the entry's Changed line names the registry row and the pointer); open, sync, commits, pushes, status and unlink change no knowledge and log nothing.

Registry — wiki/tools/Agent Project Store.md

type: tool, the sibling of Agent Repo Store. It carries the rule of use (read or written only under this skill on the owner's instruction; never cited; never read into a compile) and one row per repository:

| name | kind | remotes (role: url) | local path | purpose | project page | channel | commit policy | last sync (date · sha12) | state |

  • kind: overleaf (LaTeX on Overleaf) · code · other. channel: overleaf-git (the primary, https://git.overleaf.com/<project-id>) · github-bridge (the fallback, a clone of Overleaf's GitHub mirror; each push then needs the owner's "Pull GitHub changes into Overleaf" click) · github (a plain code repository) · in-place (registered where it is).
  • commit policy: on the word commit (default) or the owner's standing sentence for that row.
  • state: linked · unlinked (the row stays as the recovery record).
  • The row is the single home of the path and the sha; the research-project page in wiki/user/ gets a ## Repository section holding two links only, the registry row and the latest snapshot's source page.

Verbs

  1. Resolve. Name = --name, else the repository's basename (an Overleaf project id alone is not a name: ask). Refuse a name already on the registry; refuse a --path under the vault root; refuse a URL whose user part carries a password (user:secret@host).
  2. Channel check (URL only). git ls-remote <clean url> with the helper environment; record the branch list; take the default branch that ls-remote reports. A failure here is reported, never worked around (a missing Overleaf git integration means the github-bridge channel instead).
  3. Preview and wait. One table: source · name · destination path (or the registered path) · remotes with roles · channel · commit policy · the brief selection (files and bytes) · what the ingest will log. WAIT for the owner's go.
  4. Clone or register. git clone <clean url> <store>/<name> (full history, the remote's default branch); --path: no clone, verify git -C <dir> rev-parse --is-inside-work-tree. Then the credential helper (below) and, for overleaf, a reminder that Overleaf's GitHub-sync feature should be off for that project once direct git is in use.
  5. Registry row on the tool page (create the page from the sibling's shape on the first link) and the ## Repository section on the research-project page.
  6. Brief (below), then report: the row, the branch, the sha, the snapshot's source page.
open <name>
  1. git -C <path> fetch --all --prune.
  2. Report first: branch, ahead/behind per remote, modified, staged and untracked files (names), and the porcelain line count (git -C <path> status --porcelain | wc -l) so a "clean" claim carries its number.
  3. Pull --ff-only when the tree is clean, else wait for the owner's word; a non-fast-forward is reported with both sides and a merge proposed, never forced.
  4. Record the absolute path for the rest of the instruction; every later command names it.
sync <name> [push]

Fetch and pull as in open; report divergence; push only when the instruction says push, then prove it: git -C <path> ls-remote origin <branch> equals git -C <path> rev-parse HEAD. For an overleaf repository, compile first where a TeX engine exists (tectonic <main.tex> in a temporary output directory) and report the result; with no engine, say the build is unchecked.

brief <name>

open (a pull first), then snapshot <name> --brief: the file tree (depth 3), the main document's head (the .tex that holds \documentclass, its first 200 lines), and a README, abstract or outline skeleton where one exists — at most 8 files and 32 KiB (caps set by judgement, unmeasured). A single-file document (one main.tex larger than the per-file cap) has no useful head: its brief is the document itself, packed whole under --allow-large '<why>' with its bibliography, within the 300 KiB safety bound (set by judgement, unmeasured for a new workload).

Show full SKILL.md (723 more words)Show less
snapshot <name> [paths…] [--brief]

The only way repository content reaches the wiki.

  1. The tree must be clean for the selection (repo_pack.py refuses a modified tracked file or a selected untracked one; the owner commits first).
  2. Ledger, then pack, then ingest: python3 .claude/skills/gather/run_ledger.py init --id <project>-<date> --budget 1 python3 .claude/skills/gather/repo_pack.py pack-and-write --repo <absolute path> --paths <p1,p2,…> --slice <sha12> --title "<name> snapshot <date> <sha12>" --rationale "<why these files>" --ledger-id <project>-<date> The pack lands in the raw/ root; /ingest compiles it at standard depth or above. The ingest's de-dup pre-flight matches an existing source page for the same work and updates it as the new version, never a second page; the sort table's authorship rule sends the pack to raw/9-originals/. Confidence high by default (the owner's own work), stamped audited:.
  3. Update the registry row's last-sync sha and the project page's source-page link.
status

One table for every row: branch · ahead/behind per remote · porcelain count · sha on disk vs the row's sha · path present and not a symbolic link. Name every row whose path or sha disagrees with disk; propose the fix, apply on the owner's word.

  1. Preview and wait: every branch with unpushed commits (git -C <path> log --branches --not --remotes --oneline), the stash list, untracked files, ahead/behind per remote.
  2. On the owner's explicit yes the row's state becomes unlinked and nothing is removed; the reply names the folder at the row's recorded path. Deleting a project folder is a separate act, done only on the owner's explicit ask, which the agent may propose: the agent shows again what the folder holds (unpushed commits, the stash list, untracked files, and any other working tree that depends on it, from git worktree list), and on the owner's yes moves the folder to the system trash (the Bin on macOS), never with rm -rf; a path that is missing or is a symbolic link is reported, not acted on.
  3. The project page keeps its links.

The credential helper

Set once per clone, never a token in the URL; the helper reads the key at use time by grep, never by sourcing the file (a cookie value with a ; would execute):

git -C <path> config --local credential.helper ''
git -C <path> config --local --add credential.helper '!f() { echo username=git; echo "password=$(grep "^OVERLEAF_GIT_TOKEN=" "${LLM_WIKI_STORE:-$HOME/.llm-wiki}/credentials.env" | cut -d= -f2-)"; }; f'

The empty first value resets the clone's helper list so a machine-wide helper does not store a second copy. The authorised credential file remains the single home. GitHub remotes use the login gh already holds (gh auth setup-git once per machine if a push prompts). A token that expires or is revoked fails the push with an authentication error: report, stop, no retry loop; the owner renews it in Overleaf's Account Settings and updates the credential file's OVERLEAF_GIT_TOKEN line.

Overleaf specifics

  • Endpoint https://git.overleaf.com/<project-id>; username git; the token as the password.
  • One branch only, no force push, no branch creation: a branch request on an overleaf row is refused with the reason.
  • The GitHub-sync feature and direct git both write the same history; keep one channel per project (the row names it). Under overleaf-git, leaving the sync on is harmless lag until the owner clicks.

Controls (CLAUDE.md §11)

  • A "clean tree" claim prints its porcelain count; a "pushed" claim prints the remote sha beside HEAD.
  • status reads the registry with a parser over the table rows, never a substring count.
  • A refused command (guard, fence, authentication) is reported as the gap it is, never worked around.

Failure handling

FailureHandling
Authentication error on pull or pushreport and stop; the owner renews the token
Non-fast-forward (edits on both sides)report both sides, propose a merge, never force
Uncommitted changes at openreported before any pull; the pull waits for the owner's word
Dirty tree at snapshotrepo_pack.py refuses with the list; commit first
A branch requested on an overleaf rowrefused with the reason
Two rows with one namelink refuses without --name
--path inside the vaultrefused
A clone missing on a fresh machinelink re-creates a store clone from its row; an in-place copy is reported absent
No TeX enginethe compile check is skipped and the reply says the build is unchecked
The registry drifts from diskstatus names the rows; fixes on the owner's word

Report format

Compact: the verb · the repository (name, branch, sha12) · what changed (files, commit, push proof) · what was written into the wiki (row, source page) · every control with its number. UK English.

© HurricaHjz, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/project of HurricaHjz/second-yourself.

Open the folder on GitHubat commit 17c03f2

Compare with similar skills

Project 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.

Project compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Project this skillHurricaHjz/second-yourself123—~3.1kAutomated safety check: PassMIT
Oleafly Response LetterOleafly/Oleafly212—~2.3kAutomated safety check: PassMIT
Write Paperfrenzymath/Danus476—~18kAutomated safety check: PassApache-2.0
Review Overleaffcakyon/claude-codex-settings1.2k—~940Automated safety check: PassApache-2.0
Latex Diffflonat/flonat-research146—~1.9kAutomated safety check: PassMIT
Overleaf CLI Guidewentorai/research-plugins2981 repos~1.9kAutomated safety check: PassMIT

Similar skills

  • Turn reviewer comments and the changes already made into a point-by-point response letter, in LaTeX or Typst and in plain text.

    212 GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Write Paper

    frenzymath/Danus

    Turn a project's verified fact graph into a publishable LaTeX paper in a configurable house style — a standalone amsart .tex with a real bibliography, compiled to PDF.

    476 GitHub stars~18k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Review Overleaf

    fcakyon/claude-codex-settings

    This skill should be used when user asks to "fetch overleaf review comments", "address overleaf reviews", "apply overleaf comments", "review my overleaf paper", "sync overleaf feedback to local"…

    1.2k GitHub stars~940 tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Latex Diff

    flonat/flonat-research

    Compare two LaTeX files, project directories, or Git revisions and produce human-readable plus machine-readable severity-graded semantic changes.

    146 GitHub stars~1.9k tokensUpdated 11 days ago
    Documents & OfficeAuto-check passed
  • Overleaf CLI Guide

    wentorai/research-plugins

    Sync and manage Overleaf LaTeX projects from the command line

    298 GitHub starsUsed in 1 repo~1.9k tokens
    Documents & OfficeAuto-check passed
  • Research Writing

    alfonso0512/research-writing-skill

    科研论文写作助手,提供 30 个 Prompt 模板覆盖论文写作全流程. An agent skill from alfonso0512/research-writing-skill.

    490 GitHub starsUsed in 1 repo~818 tokens
    Documents & OfficeAuto-check passed

More from HurricaHjz/second-yourself

All 12 skills in this repo
  • Qmd Search

    HurricaHjz/second-yourself

    OPTIONAL, DORMANT semantic-search layer over the wiki, powered by qmd (local hybrid BM25 + vector + rerank).

    123 GitHub stars~1.9k tokensUpdated 8 days ago
    Auto-check passed
  • Query

    HurricaHjz/second-yourself

    Answer questions against the local Obsidian wiki — not from model memory.

    123 GitHub stars~2.2k tokensUpdated 8 days ago
    Auto-check passed
  • Export Template

    HurricaHjz/second-yourself

    Sync THIS LLM-Wiki framework with its public GitHub repo, ONE direction per run: --push (vault → repo) publishes your framework; --pull (repo → vault) updates your framework from a newer repo version.

    123 GitHub stars~4.8k tokensUpdated 8 days ago
    Auto-check: warnings
  • Lint

    HurricaHjz/second-yourself

    Health-check the Obsidian wiki — the "static analysis" pass for a knowledge base.

    123 GitHub stars~6.3k tokensUpdated 8 days ago
    Auto-check passed
  • Compile Core

    HurricaHjz/second-yourself

    The compile lane's half of the ingest skill: choose a source's depth after reading it, write the source page from the depth's template, assign confidence, network the knowledge, and propose the…

    123 GitHub stars~4.4k tokensUpdated 8 days ago
    Auto-check passed
  • Lint Slice

    HurricaHjz/second-yourself

    The read-only half of the lint skill for a headless lane: index consistency, link and orphan health, the pending-flag count, the attic, qmd-registry, injection, customisation-pairing and…

    123 GitHub stars~3.5k tokensUpdated 8 days ago
    Auto-check passed

Works with

Questions about Project

What does Project do?

Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status |…. Project is an agent skill from HurricaHjz/second-yourself. Manage the owner's OWN working repositories (Overleaf LaTeX projects, code repositories) from the vault, on an explicit instruction only: /project link | open | sync | brief | snapshot | status | unlink, or "open my research outline", "commit and push the outline", "link this Overleaf project", "snapshot the paper into the wiki".

When should I use Project?

Project fits situations like: tasks that involve LaTeX; tasks that involve LLM wikis.

How do I install Project in Claude Code?

Run `npx skills add HurricaHjz/second-yourself --skill project -a claude-code`. Or copy the skill folder (.claude/skills/project in HurricaHjz/second-yourself) into .claude/skills/project in your project. Claude Code loads it when a task matches its description.

How do I install Project in Codex?

Run `npx skills add HurricaHjz/second-yourself --skill project -a codex`. Or copy the skill folder (.claude/skills/project in HurricaHjz/second-yourself) into .agents/skills/project in your project. Codex loads it when a task matches its description.

Can I use Project in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HurricaHjz/second-yourself --skill project -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project, .gemini/skills/project, .github/skills/project and .opencode/skills/project in your project.

What does Project need to run?

Going by SKILL.md and its folder, Project needs the command-line tools its instructions call (git, kind, python3 and gh) and credentials named OVERLEAF_GIT_TOKEN. Our summary lists: Python 3; A credential in OVERLEAF_GIT_TOKEN.

Does Project access the network?

SKILL.md names 2 domains. In commands or code: git.overleaf.com and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Project safe to install?

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.

What licence does Project use?

Project is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Project use?

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.

What are the alternatives to Project?

Skills that share tags, products or a category with Project: Oleafly Response Letter (Oleafly/Oleafly, 212 stars), Write Paper (frenzymath/Danus, 476 stars), Review Overleaf (fcakyon/claude-codex-settings, 1.2k stars) and Latex Diff (flonat/flonat-research, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Project?

HurricaHjz (a GitHub user) maintains it in HurricaHjz/second-yourself, which has 123 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 1, 2026.

Source: HurricaHjz/second-yourself on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.