Tomako Full Repository Pull Skill
Trigger words: $pull-all / $pull / $pull code, pulls all or specified repositories.
Workspace Convention (tomako-workspace)
Open Cursor in tomako-workspace root directory, all commands are executed from here (do not cd into tomako-dev-skills and run):
cd /path/to/tomako-workspace
./tomako-dev-skills/scripts/pull-all.sh pull
tomako-workspace/
├── Tomako/
├── Tomako-portal/
├── Skills-OL/
├── tomako-dev-skills/
└── Tomako2/ # Personal repo: use --repo Tomako2 to pull individually
Single Repository Selection
To pull only specific repositories, use --repo (aliases are the same as push-all: frontend, portal, dev-skills, etc.):
./tomako-dev-skills/scripts/pull-all.sh pull --repo Tomako
./tomako-dev-skills/scripts/pull-all.sh pull --repo portal
Override Repositories
Based on the tomako-workspace root directory, the following git repositories are processed by default (skip if not present):
| Directory | Description |
|---|---|
Tomako/ | Frontend |
Tomako-portal/ or cibos-portal/ | Backend (choose one) |
Skills-OL/ | Online Skills |
tomako-dev-skills/ | This skills repository |
Override with LOCAL_FRONTEND_DIR etc. if directory names differ. To include Tomako2, cc-connect, etc. in the default full pull, set EXTRA_GIT_REPOS="Tomako2 cc-connect".
Execution Protocol
- cwd = tomako-workspace root directory
- Default: first run
statusto check each repository's state (optional) - Execute
pullto fetch the latest remote changes; if there are uncommitted changes, automatically stash → pull/rebase → stash pop by default, without skipping the repo - If the processed repos include
tomako-dev-skills/, and that repo is pulled successfully with no conflicts, the script will automatically run./tomako-dev-skills/install.shso that new/updated skills are immediately mounted to the Agent entry point
Common Commands
# View each repository's branch, ahead/behind, uncommitted changes
./tomako-dev-skills/scripts/pull-all.sh status
# Pull all (default rebase; auto-stash if uncommitted changes exist)
./tomako-dev-skills/scripts/pull-all.sh pull
# Disable auto stash: fail and list files if uncommitted changes exist
AUTOSTASH=0 ./tomako-dev-skills/scripts/pull-all.sh pull
# Pull only the skills repository; auto-install after success by default
./tomako-dev-skills/scripts/pull-all.sh pull --repo tomako-dev-skills
# Special case: prevent auto-install after pull
AUTO_INSTALL_DEV_SKILLS=0 ./tomako-dev-skills/scripts/pull-all.sh pull --repo tomako-dev-skills
Agent Execution Template
When the user says $pull-all:
./tomako-dev-skills/scripts/pull-all.sh status
./tomako-dev-skills/scripts/pull-all.sh pull
The default workflow already protects local uncommitted changes and continues pulling; do not skip repos because the workspace is dirty.
When the user says "pull skills" or "pull tomako-dev-skills":
./tomako-dev-skills/scripts/pull-all.sh status --repo tomako-dev-skills
./tomako-dev-skills/scripts/pull-all.sh pull --repo tomako-dev-skills
After the second step succeeds, it will automatically run ./tomako-dev-skills/install.sh; the Agent does not need to run install separately.
Conflicts and Exceptions
- Uncommitted changes: Auto-stash by default, restore after pull; only when explicitly
AUTOSTASH=0will it fail and list the files - Pull/rebase conflicts: The script lists the full paths of conflicting files, does not auto-resolve; inform the user to handle manually and re-run
$pull-allor$push-all - Stash pop conflicts: The script lists the full paths of conflicting files; inform the user to resolve these conflicts manually first, then run
$push-allto commit - tomako-dev-skills install failure: The script marks failure and preserves
install.shoutput; usually means there is a local divergent copy, user needs to migrate or delete and retry - Repository does not exist: Automatically skipped, no error
Pre-Delivery Response Requirements
Summarize the result for each repository: updated / no update needed / auto-installed / failed. If there are conflicts, list the full file paths. Only use "skipped" for non-operational scenarios like a repository not existing or unrecognized branch.
Related
- Pushing changes:
skills/push-all/SKILL.md($push-all/$commit) - Path resolution:
scripts/lib/workspace-paths.sh