skills/workspace-git/SKILL.md
Sets up SSH-based git push for the Pawlia workspace, manages the workspace git remote, and creates automation jobs for regular pushes. Use when the user wants to: sync the workspace to an external git repo, set up git push, configure a git remote for the workspace, fix git push errors (SSH key, host key, authentication), check push status. Triggers on phrases like "workspace git", "git push einrichten", "ssh key für git", "workspace remote", "git sync", "push workspace".
npx skillsauth add cutec-chris/PawLia workspace-gitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Sets up authenticated git push for the Pawlia workspace and registers an automation job that keeps it synced.
The workspace for this session is always:
<session_dir>/<user_id>/workspace
Use this path for all commands below. Never scan other sessions.
Before any read or write operation on the workspace, sync the latest state from the remote. The remote is authoritative — on divergence it always wins:
git -C <session_dir>/<user_id>/workspace add -A
git -C <session_dir>/<user_id>/workspace commit -m "pre-sync" 2>&1 || true
git -C <session_dir>/<user_id>/workspace fetch origin 2>&1
git -C <session_dir>/<user_id>/workspace reset --hard origin/HEAD 2>&1
git pull, git merge, or pull --ff-only. Local divergence
is always resolved with reset --hard origin/HEAD — the remote wins.pre-sync) ensures uncommitted edits are
not silently destroyed by the hard reset; they remain in the reflog.python <scripts_dir>/setup.py list-workspaces
Only used to check whether the current workspace already has a remote and
SSH configured (ssh_configured: true). If yes, skip to Step 4.
python <scripts_dir>/setup.py keygen
Output includes public_key. Show it to the user and ask them to add it
as a deploy key (read+write) to the remote repository. Wait for the user
to confirm before continuing.
Once the user confirms the key is added:
python <scripts_dir>/setup.py configure \
--workspace <session_dir>/<user_id>/workspace \
[--remote-url <git-ssh-url>]
Include --remote-url only if the remote is not yet configured or the
user provided a new URL.
The script sets core.sshCommand in the workspace .git/config so all
subsequent git operations (including the automatic push in workspace_git.py)
use the session-persisted key. It then runs git ls-remote to verify.
If the test fails: check the error. Common causes:
git@host:user/repo.git) → ask for correctionpython <scripts_dir>/setup.py test \
--workspace <session_dir>/<user_id>/workspace
Run a git push --dry-run. Report success or the full error output.
After a successful test, register two jobs in automations/jobs.json.
Cyclic pull (every 30 minutes):
python <scripts_dir>/setup.py create-job \
--workspace <session_dir>/<user_id>/workspace \
--type pull \
--schedule "*/15 * * * *"
Daily push (keeps remote up-to-date as backup):
python <scripts_dir>/setup.py create-job \
--workspace <session_dir>/<user_id>/workspace \
--type push \
--schedule 03:00
If a job of the same type already exists, skip silently.
All script commands output JSON:
{"success": true, ...}
{"success": false, "error": "...", "hint": "..."}
Ich habe deinen SSH-Key generiert:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... pawlia-workspace
Füge diesen Key als Deploy-Key (mit Schreibzugriff) in dein Git-Repo ein, dann sag mir Bescheid und ich richte den Push ein.
(Nach Bestätigung)
Super — Remote konfiguriert und Verbindung erfolgreich getestet. Ich habe außerdem einen täglichen Push-Job um 03:00 Uhr angelegt, damit der Workspace automatisch synchron bleibt.
| Error | Recovery |
|-------|----------|
| Host key verification failed | SSH key not yet in known_hosts — configure uses accept-new, retrying after key add should fix it |
| Permission denied (publickey) | Key not added to remote or wrong key — show key again, ask user to re-check |
| Repository not found | Wrong URL — ask user for correct SSH URL |
| Not a git repo | Workspace not initialized — ensure <session_dir>/<user_id>/workspace exists |
development
Create new PawLia skills from scratch, improve or audit existing ones. Also manages credentials for skills — store, check, list and delete API keys and tokens that other skills need at runtime (skills themselves only see the runtime `CRED_*` env vars, never the store). When a skill has bugs or needs changes, delegate the full task here — describe the problem and let the skill-creator autonomously diagnose and fix it. Do not pre-read the skill files yourself. Use when the user wants to: create a new skill, scaffold a skill directory, manage skill credentials, improve or review an existing skill, validate a SKILL.md against the spec, package a skill for distribution. Triggers on phrases like "create a skill", "new skill", "store api key", "add credentials", "improve this skill", "validate skill", "audit skill", "scaffold a skill".
development
Perform web searches using a SearXNG instance. Use when the user asks for web search results, current information, news, or wants to find online resources.
development
Collect web sources into named research projects and answer questions from them. Scrapes URLs (recursive crawl, PDFs, YouTube transcripts) into a project, then answers questions grounded in the gathered sources via semantic/keyword search. Use for "research X", building a sourced dossier on a topic, or querying previously gathered material — as opposed to a one-shot web search (perplexica/searxng). Commands: create, list, add, query, delete, rename (syntax in the skill instructions).
development
Perform AI-powered web searches using a Perplexica or Vane instance. Returns a synthesized answer with cited sources. Use when the user asks for current information, research topics, news, or complex questions requiring web search with summarization.