Update this FTJA folder to the latest published version (git pull, dependencies, restart the viewer) and tell the user what changed. Invoke when the user says "update FTJA", "get the latest version", or after /ftja-run or the viewer reported that an update is available.
2 stars
0 votes
0 copies
1 view
Added October 14, 2026
ai-agentspythongit
Security analysis
A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Ftja Update?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/taegyujeong-ftja-update)
---
name: ftja-update
description: Update this FTJA folder to the latest published version (git pull, dependencies, restart the viewer) and tell the user what changed. Invoke when the user says "update FTJA", "get the latest version", or after /ftja-run or the viewer reported that an update is available.
---
# FTJA update
FTJA is installed by cloning its repository, so it only changes when the
user pulls. This skill does that pull safely. The user's own files
(`criteria.json`, `rubric.md`, `rubric-criteria.json`, `profile/`,
`seen.db`, digests, `.ftja-run/`) are ignored by git; an update never
touches them.
## 1. Where things stand
```
venv/bin/python -m ftja.version check --force
```
Note the installed version it prints. If it says `up to date`, tell the
user and stop.
Do not update while a run is in progress: `venv/bin/python -m ftja.lock
check .ftja.lock` — if it prints `locked`, tell the user to update after
the run finishes, and stop.
## 2. Make sure the pull can't lose anything
Run `git status --short` and `git branch --show-current`.
- **Tracked files modified** (lines starting with ` M` or `M`): the user,
or an agent on their behalf, changed FTJA's own code or skills. Stop and
show them the list. Offer two ways forward and let them choose: keep the
changes aside and update (`git stash`, pull, then `git stash pop` — and
if that conflicts, show the conflict rather than resolving it by
guessing), or leave everything as it is. Never discard their changes.
- **Not on the default branch**: tell the user which branch they are on and
ask before doing anything.
- Untracked files (`??`) are fine; leave them alone.
## 3. Pull
```
git pull --ff-only
```
`--ff-only` refuses rather than creating a merge when the local history
has diverged. If it refuses, report git's message and stop; do not rebase,
reset or force anything.
## 4. Dependencies and the viewer
```
venv/bin/pip install -q -r requirements.txt
```
The viewer keeps the old code in memory until it restarts. If something is
listening on port 8765 (`lsof -tiTCP:8765 -sTCP:LISTEN`), stop that process
and start it again from this folder (`venv/bin/python -m ftja.server`, in
the background), then check `http://127.0.0.1:8765/` answers.
## 5. Tell the user what changed
```
venv/bin/python -m ftja.version changes --since <the version from step 1>
```
Relay it in the user's language, leading with each version's "What changes
for you after updating" part — those are the things they will notice or
need to do. Finish with the version they are now on.