Configures Git Workflow for Claude Code or Codex, migrates legacy configurations, and installs project agents.
- GitHub stars
- 30
- Files
- 2
- Last commit
- Nov 3, 2026
- License
- MIT
- Allowed tools
- 9
What does the setup skill do?
setup configures Git Workflow for Claude Code or Codex, migrates legacy configurations, and installs project agents.
Summary generated from the skill's SKILL.md.
About the setup skill
Configuring Git workflows for Claude Code or Codex is what this skill facilitates for developers managing project-specific AI agents and configurations. It automates the transition from legacy settings to a canonical .git-workflow/config.yaml structure and handles the installation of project agents. When an agent loads this skill, it can synchronize plugin assets, migrate old configuration files, and set up optional issue-tracker integrations like Jira, Linear, or GitHub Issues.
Users can control the process using specific flags such as --host to target Claude, Codex, or both, --dry-run to preview changes without writing files, and --force to replace customized files. The skill relies on bash commands for directory creation, file copying, and git operations, alongside a specialized sync-project.mjs script to ensure atomic replacements and consistent ledger behavior. It manages files across .claude and .codex directories while ensuring that sensitive access tokens are never persisted in the configuration files.
What an agent can do with it
- 1Migrate legacy configurationsMove old .claude/config.yaml settings to the new canonical .git-workflow/config.yaml path.
- 2Install Codex project agentsCopy agent TOML files from a plugin into a specific project directory for Codex users.
- 3Preview workflow changesCheck what files will be created or modified during setup without actually making any changes.
- 4Connect issue trackersIntegrate Linear, Jira, or GitHub Issues into the existing developer environment.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the setup skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the setup skill in Plugin
/plugin marketplace add rlajous/claude-code-commands /plugin install git-workflow@git-workflow-marketplace
Install the setup skill in Claude Code
~/.claude/skills/setup/SKILL.md
$ npx degit rlajous/claude-code-commands/skills/setup ~/.claude/skills/setupInstall the setup skill in Claude Code (project)
.claude/skills/setup/SKILL.md
$ npx degit rlajous/claude-code-commands/skills/setup .claude/skills/setupInstall the setup skill in Codex
~/.agents/skills/setup/SKILL.md
$ npx degit rlajous/claude-code-commands/skills/setup ~/.agents/skills/setupInstall the setup skill in Gemini CLI
~/.gemini/skills/setup/SKILL.md
$ npx degit rlajous/claude-code-commands/skills/setup ~/.gemini/skills/setupInstall the setup skill in Claude.ai
npx degit rlajous/claude-code-commands/skills/setup setup && zip -r setup.zip setup # claude.ai → Customize → Skills → + → Create skill → Upload a skill → setup.zip
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachablerlajous/claude-code-commands/skills/setup is public and reachablegithub.com/rlajous/claude-code-commands/tree/HEAD/skills/set ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-03github.com/rlajous/claude-code-commands/commits ↗Pass
- No download-and-run or credential theft in scripts1 script read; no download-and-run, remote eval, base64 execution or credential uploadPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/rlajous/claude-code-commands/blob/HEAD/skills/set ↗Pass
- Pre-approved tools are scopedPre-approved: Read, Write, Bash(mkdir:*), Bash(cp:*), Bash(diff:*), Bash(git, …github.com/rlajous/claude-code-commands/blob/HEAD/skills/set ↗Pass
- SKILL.md follows the Agent Skills formatValid name and description; says when to use it; 103 linesgithub.com/rlajous/claude-code-commands/blob/HEAD/skills/set ↗Pass
SKILL.md
View on GitHubSet up Git Workflow
Follow runtime compatibility. Claude Code users invoke this as /setup; Codex users invoke it as $setup.
1. Resolve roots and runtime
Parse these options before resolving paths:
--host <claude|codex|both>selects exactly which project assets to synchronize. When omitted, detect the active host and ask only if the target remains ambiguous.--dry-runpreviews migration and installation without creating directories, files, or ledgers.--forceis explicit approval to replace customized selected-host files, but differences must still be shown first.- Reject unknown options and missing option values without writing.
Resolve {SKILL_DIR} to the absolute, physical directory containing this loaded SKILL.md.
Codex includes that path in its skill metadata; Claude Code can resolve the loaded skill path too.
Only when the host does not expose the path, use PLUGIN_ROOT, then CLAUDE_PLUGIN_ROOT, to locate
skills/setup/SKILL.md and verify that it exists. Never substitute an empty variable or silently
fall back to /scripts.
Derive {PACKAGE_ROOT} as the physical {SKILL_DIR}/../.. directory and require
{PACKAGE_ROOT}/.codex-plugin/plugin.json. Resolve the project root with
git rev-parse --show-toplevel, falling back to the current directory.
Detect the active host from available environment and configuration. If both Claude and Codex appear active and the requested target is unclear, ask which host or hosts to configure.
Never edit a user-global configuration unless the user explicitly selects global scope.
2. Migrate workflow configuration
Canonical configuration is <project>/.git-workflow/config.yaml.
- If only
.claude/config.yamlexists, explain that it is the legacy location and offer to copy it to the canonical path. - Create
.git-workflow/before copying. - Never delete or modify the legacy file automatically.
- If both files exist, use the canonical file. Show a diff when they differ and do not merge or overwrite without an explicit user decision.
- If neither exists, ask only for values that differ from the documented defaults, then write the canonical file from
templates/config.yaml.template.
Default commit attribution is disabled. Preserve an existing explicit attribution.enabled or attribution.format value during migration.
3. Install Codex project agents
For Codex, copy every source <plugin>/.codex/agents/*.toml to <project>/.codex/agents/.
Use the package synchronizer so classification, atomic replacement, and ledger behavior stay consistent:
node "{SKILL_DIR}/scripts/sync-project.mjs" --source "{PACKAGE_ROOT}" --target <project> --host codex --migrate-config --initialize-config --dry-run
After showing the result and receiving confirmation for customized files, rerun without --dry-run and add --force only for replacements the user approved. When the skill itself was invoked with --dry-run, do not perform the second run.
For each agent:
- Missing target: list it as
+and install it. - Identical target: list it as
=and leave it unchanged. - Different target: list it as
~, show a unified diff, and ask before overwriting.
Create .codex/agents/ when needed. Do not set a model, reasoning effort, concurrency limit, or permission mode; installed agents inherit the parent Codex session. The plugin-bundled Codex hook is discovered separately from hooks/hooks.json and requires the host's normal hook trust review.
Claude Code loads the existing plugin agents directly. For a manual Claude installation, synchronize skills/, agents/*.md, and the shared references/ directory into .claude/skills/, .claude/agents/, and .claude/references/ with the same missing/identical/different rules. Use --host claude (or both) with the synchronizer.
4. Configure issue-tracker MCP (optional)
Ask which integrations are needed: none, Linear, Jira, GitHub Issues, or more than one.
- Codex: update the selected project
.codex/config.tomlor explicit user~/.codex/config.tomlMCP tables without replacing unrelated settings. - Claude Code: update the selected
.claude/settings.jsonor explicit user~/.claude/settings.jsonMCP configuration without replacing unrelated settings. - GitHub Issues can use the authenticated
ghCLI and does not require an MCP server.
Never print or persist access tokens in workflow configuration. If a server needs credentials, reference environment variables and tell the user which variables must be set.
5. Record installation
The synchronizer writes .git-workflow/version.json with:
{
"version": "2.5.2",
"source": "<resolved-plugin-source>",
"installed_at": "<ISO-8601 timestamp>",
"hosts": ["codex"],
"managed_files": [".codex/agents/pr-reviewer.toml"]
}
Report created, migrated, skipped, and user-preserved files separately. End with host-specific invocation examples, including /status for Claude Code and $status for Codex.
Failure handling
- Missing plugin source: stop before writing and report how source resolution failed.
- Invalid existing YAML, JSON, or TOML: report the file and parse error; do not replace it.
- Permission failure: report the exact target and leave existing files unchanged.
- Partial agent installation: report every completed and failed file so
$updateor/updatecan resume safely.
Files in this skill
2setup skill questions
How do I install the setup skill in Claude Code?
Run npx degit rlajous/claude-code-commands/skills/setup ~/.claude/skills/setup. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the setup skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
How do I invoke the setup skill in Claude Code and Codex?
Claude Code users can invoke it using the /setup command, while Codex users use $setup.
What happens to my legacy configuration during migration?
The skill will explain that the legacy location is outdated and offer to copy it to the canonical path without deleting or modifying the original file automatically.
Can I preview the installation without making changes?
Yes, you can use the --dry-run option to preview migration and installation without creating directories, files, or ledgers.