diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c311fa7..588386c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -Thanks for contributing to `GuardeX`. +Thanks for contributing to `GitGuardex`. ## Development setup diff --git a/README.md b/README.md index a05337b..84bbe51 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # GitGuardex — Guardian T-Rex for your repo -[![npm version](https://img.shields.io/npm/v/%40imdeadpool%2Fguardex?label=npm&color=cb3837&logo=npm)](https://www.npmjs.com/package/@imdeadpool/guardex) -[![npm downloads](https://img.shields.io/npm/dm/%40imdeadpool%2Fguardex?label=downloads&color=0b76c5)](https://www.npmjs.com/package/@imdeadpool/guardex) +[![npm version](https://img.shields.io/npm/v/%40imdeadpool%2Fgitguardex?label=npm&color=cb3837&logo=npm)](https://www.npmjs.com/package/@imdeadpool/gitguardex) +[![npm downloads](https://img.shields.io/npm/dm/%40imdeadpool%2Fgitguardex?label=downloads&color=0b76c5)](https://www.npmjs.com/package/@imdeadpool/gitguardex) [![GitHub stars](https://img.shields.io/github/stars/recodeee/gitguardex?label=stars&color=d4ac0d)](https://github.com/recodeee/gitguardex/stargazers) -[![License](https://img.shields.io/npm/l/%40imdeadpool%2Fguardex?label=License&color=97ca00)](./LICENSE) +[![License](https://img.shields.io/npm/l/%40imdeadpool%2Fgitguardex?label=License&color=97ca00)](./LICENSE) [![CI](https://img.shields.io/github/actions/workflow/status/recodeee/gitguardex/ci.yml?branch=main&label=CI)](https://github.com/recodeee/gitguardex/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/actions/workflow/status/recodeee/gitguardex/release.yml?label=Release)](https://github.com/recodeee/gitguardex/actions/workflows/release.yml) @@ -38,7 +38,7 @@ GitGuardex exists to stop that loop. Every agent gets its own worktree, claims t

Install in one line

```bash -npm i -g @imdeadpool/guardex +npm i -g @imdeadpool/gitguardex ```

@@ -49,8 +49,8 @@ npm i -g @imdeadpool/guardex

- npm - downloads + npm + downloads stars

@@ -70,19 +70,19 @@ Coming soon: [recodee.com](https://recodee.com) — live account health, usage, - **Protected-base safety** — `main`, `dev`, `master` are blocked by default; agents must go through PRs. - **Auto-merges agent configs into every worktree** — `oh-my-codex`, `oh-my-claudecode`, caveman mode, and OpenSpec all get applied automatically so every spawned agent starts tuned, not bare. - **Repair/doctor flow** — when drift happens (and it will), `gx doctor` gets you back to a clean state. -- **Auto-finish** — when Codex exits a session, Guardex commits sandbox changes, syncs against the base, retries once if the base moved, and opens a PR. +- **Auto-finish** — when Codex exits a session, GitGuardex commits sandbox changes, syncs against the base, retries once if the base moved, and opens a PR. --- ## Quick start ```sh -npm i -g @imdeadpool/guardex +npm i -g @imdeadpool/gitguardex cd /path/to/your/repo gx setup ``` -That's it. Setup installs hooks, scripts, templates, and scaffolds OpenSpec/caveman/OMX wiring. Aliases: `gx` (preferred), `gitguardex` (full), `guardex` (legacy). +That's it. New installs should use `@imdeadpool/gitguardex` so the published package matches the GitGuardex name. Setup installs hooks, scripts, templates, and scaffolds OpenSpec/caveman/OMX wiring. Aliases: `gx` (preferred), `gitguardex` (full), `guardex` (legacy compatibility). --- @@ -199,7 +199,7 @@ bash scripts/agent-branch-finish.sh \ If you use `scripts/codex-agent.sh`, the finish flow runs automatically when the Codex session exits — it auto-commits, retries once after syncing if the base moved during the run, then pushes and opens the PR. -Guardex normally prunes merged sandboxes for you as part of the finish flow. If you simply do not want a local sandbox/worktree anymore, remove that worktree directly; delete the branch too only if you are intentionally abandoning that lane: +GitGuardex normally prunes merged sandboxes for you as part of the finish flow. If you simply do not want a local sandbox/worktree anymore, remove that worktree directly; delete the branch too only if you are intentionally abandoning that lane: ```sh git worktree remove .omx/agent-worktrees/ @@ -229,11 +229,11 @@ Codex sessions default to `.omx/agent-worktrees/`. Claude Code sessions default ### How It Works In VS Code -This is the real Source Control shape Guardex is aiming for: isolated agent branches, clear OpenSpec artifacts, and no pile-up on one shared checkout. +This is the real Source Control shape GitGuardex is aiming for: isolated agent branches, clear OpenSpec artifacts, and no pile-up on one shared checkout. ![Guarded VS Code Source Control example](https://raw.githubusercontent.com/recodeee/gitguardex/main/docs/images/workflow-source-control-grouped.png) -To install the real companion into local VS Code from a Guardex-wired repo: +To install the real companion into local VS Code from a GitGuardex-wired repo: ```sh node scripts/install-vscode-active-agents-extension.js @@ -406,7 +406,7 @@ GitGuardex is designed to work alongside these. All optional — but if you're r ### oh-my-codex — Codex config + skills framework -Loads skills, slash commands, and session defaults into Codex. Guardex merges `oh-my-codex` into every agent worktree automatically, so every spawned agent starts with the same tuned config instead of vanilla Codex. +Loads skills, slash commands, and session defaults into Codex. GitGuardex merges `oh-my-codex` into every agent worktree automatically, so every spawned agent starts with the same tuned config instead of vanilla Codex. ```sh npm i -g oh-my-codex @@ -417,7 +417,7 @@ Repo: ### oh-my-claudecode — Claude Code equivalent -Claude-side mirror of oh-my-codex. Same idea: skills, commands, and defaults loaded into every Claude Code session. Guardex merges it into worktrees alongside oh-my-codex so mixed Codex + Claude agent fleets behave consistently. For the npm CLI/runtime path, the published package name is `oh-my-claude-sisyphus`. +Claude-side mirror of oh-my-codex. Same idea: skills, commands, and defaults loaded into every Claude Code session. GitGuardex merges it into worktrees alongside oh-my-codex so mixed Codex + Claude agent fleets behave consistently. For the npm CLI/runtime path, the published package name is `oh-my-claude-sisyphus`. ```sh npm i -g oh-my-claude-sisyphus@latest @@ -636,10 +636,11 @@ npm pack --dry-run v7.x ### v7.0.16 +- GitGuardex now publishes under the matching npm package name `@imdeadpool/gitguardex`, and install/help/docs surfaces point at the renamed package instead of the older `@imdeadpool/guardex` scope. - `gx doctor` now keeps nested repo repair runs visibly progressing, and overlapping integration work stays off the protected base branch instead of trying to merge back on `main`. - Cleanup and finish flows are less brittle: `codex-agent` no longer waits on PRs that can never exist, and prune cleanup now walks both managed worktree roots so stale sandboxes get removed consistently. -- Mirror-sync diagnostics are quieter: when the mirror PAT is unset, Guardex now skips the sync path instead of marking the run red, and shared `ralplan` lanes stay easier to identify during handoff/debugging. -- Bumped `@imdeadpool/guardex` from `7.0.15` → `7.0.16` after npm rejected a republish over the already-published `7.0.15`. +- Mirror-sync diagnostics are quieter: when the mirror PAT is unset, GitGuardex now skips the sync path instead of marking the run red, and shared `ralplan` lanes stay easier to identify during handoff/debugging. +- Bumped the release from `7.0.15` → `7.0.16` after npm rejected a republish of `7.0.15`. ### v7.0.15 - `gx doctor` no longer blocks recursive nested protected-repo repairs on child PR merge waits; nested sandboxes now force `--no-wait-for-merge` so the parent repair loop can continue. @@ -652,7 +653,7 @@ npm pack --dry-run ### v7.0.13 - `gx status` and `gx setup` now present the Claude companion as `oh-my-claudecode` while still installing the published npm package `oh-my-claude-sisyphus`. -- When that dependency is inactive or the user declines the optional install, Guardex now prints the upstream repo URL so the missing dependency is explicit instead of hidden behind the npm package name. +- When that dependency is inactive or the user declines the optional install, GitGuardex now prints the upstream repo URL so the missing dependency is explicit instead of hidden behind the npm package name. - Bumped `@imdeadpool/guardex` from `7.0.12` → `7.0.13` after npm rejected a republish over the already-published `7.0.12`. ### v7.0.12 @@ -710,8 +711,8 @@ npm pack --dry-run - **Breaking (soft).** Consolidated 17 commands into 12 visible commands with flag-based subcommands. Removed names still work but print a deprecation notice; will be removed in v8. - **Token-usage improvements.** Trimmed auto-installed agent templates that live in every consumer repo and get loaded into every session: - `templates/AGENTS.multiagent-safety.md`: 6990 B → 1615 B (−77%) - - `templates/codex/skills/guardex/SKILL.md`: 2732 B → 1086 B (−60%) - - `templates/claude/commands/guardex.md`: 472 B → 357 B (−24%) + - `templates/codex/skills/gitguardex/SKILL.md`: 2732 B → 1086 B (−60%) + - `templates/claude/commands/gitguardex.md`: 472 B → 357 B (−24%) - Total: 10194 B → 3058 B per consumer repo (−70%, ~1.5k fewer tokens per agent session). - New `gx prompt` command replaces three prompt-emitting commands. - New flag surface on `gx setup`: `--install-only`, `--repair`. @@ -752,7 +753,7 @@ Version bumps for npm publish continuity plus incremental fixes: doctor arg-pars - Allows tightly guarded Codex-only commits for `AGENTS.md` / `.gitignore` on protected branches. ### v5.0.0 -- Rebranded CLI to **GuardeX** with `gx`-first command UX. +- Rebranded CLI to **GitGuardex** with `gx`-first command UX. - Published under scoped package name `@imdeadpool/guardex`. - Enforced repeatable per-message agent branch lifecycle in setup/init flows. - Added codex-auth-aware sandbox branch naming support. diff --git a/bin/multiagent-safety.js b/bin/multiagent-safety.js index 7b14a16..8110c39 100755 --- a/bin/multiagent-safety.js +++ b/bin/multiagent-safety.js @@ -11,6 +11,7 @@ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); const TOOL_NAME = 'gitguardex'; const SHORT_TOOL_NAME = 'gx'; const LEGACY_NAMES = ['guardex', 'multiagent-safety']; +const GLOBAL_INSTALL_COMMAND = `npm i -g ${packageJson.name}`; const OPENSPEC_PACKAGE = '@fission-ai/openspec'; const OMC_PACKAGE = 'oh-my-claude-sisyphus'; const OMC_REPO_URL = 'https://github.com/Yeachan-Heo/oh-my-claudecode'; @@ -281,7 +282,7 @@ const CLI_COMMAND_DESCRIPTIONS = [ ['prompt', 'Print AI setup checklist (--exec, --snippet)'], ['report', 'Security/safety reports (e.g. OpenSSF scorecard)'], ['help', 'Show this help output'], - ['version', 'Print GuardeX version'], + ['version', 'Print GitGuardex version'], ]; const DEPRECATED_COMMAND_ALIASES = new Map([ ['init', { target: 'setup', hint: 'gx setup' }], @@ -315,7 +316,7 @@ function defaultAgentWorktreeRelativeDir(env = process.env) { const AI_SETUP_PROMPT = `GitGuardex (gx) setup checklist for Codex/Claude in this repo. -1) Install: npm i -g @imdeadpool/guardex && gh --version +1) Install: ${GLOBAL_INSTALL_COMMAND} && gh --version 2) Bootstrap: gx setup 3) Repair: gx doctor 4) Task loop: bash scripts/codex-agent.sh "" "" @@ -330,7 +331,7 @@ const AI_SETUP_PROMPT = `GitGuardex (gx) setup checklist for Codex/Claude in thi 12) Fork sync: install https://github.com/apps/pull + cp .github/pull.yml.example .github/pull.yml `; -const AI_SETUP_COMMANDS = `npm i -g @imdeadpool/guardex +const AI_SETUP_COMMANDS = `${GLOBAL_INSTALL_COMMAND} gh --version gx setup gx doctor @@ -2517,7 +2518,7 @@ function runDoctorInSandbox(options, blocked) { if (finishResult.stderr) process.stderr.write(finishResult.stderr); } else if (finishResult.status === 'failed') { console.log(`[${TOOL_NAME}] Auto-finish flow failed for sandbox branch '${metadata.branch}'.`); - console.log(`[guardex] Auto-finish flow failed for sandbox branch '${metadata.branch}'.`); + console.log(`[${TOOL_NAME}] Auto-finish flow failed for sandbox branch '${metadata.branch}'.`); if (finishResult.stdout) process.stdout.write(finishResult.stdout); if (finishResult.stderr) process.stderr.write(finishResult.stderr); } else { diff --git a/docs/branch-sync-spec.md b/docs/branch-sync-spec.md index 222cb14..a14b199 100644 --- a/docs/branch-sync-spec.md +++ b/docs/branch-sync-spec.md @@ -1,4 +1,4 @@ -# GuardeX branch sync feature spec (pre-implementation) +# GitGuardex branch sync feature spec (pre-implementation) Status: draft Scope: CLI UX + behavior spec + test matrix for keeping `agent/*` branches synced with `origin/dev` safely. diff --git a/docs/images/guardex-service-status.svg b/docs/images/guardex-service-status.svg index 22609f4..bf1ff1d 100644 --- a/docs/images/guardex-service-status.svg +++ b/docs/images/guardex-service-status.svg @@ -9,13 +9,13 @@ - [guardex] CLI: guardex/0.4.7 linux-x64 node-v22.22.0 - [guardex] Global services: + [gitguardex] CLI: gitguardex/0.4.7 linux-x64 node-v22.22.0 + [gitguardex] Global services: - ● oh-my-codex: active - ● @fission-ai/openspec: active - [guardex] Repo safety service: ● active. - [guardex] Repo: /home/deadpool/YOUREPO - [guardex] Branch: ksskkfb02 + [gitguardex] Repo safety service: ● active. + [gitguardex] Repo: /home/deadpool/YOUREPO + [gitguardex] Branch: ksskkfb02 guardex-tools logs: ├─ USAGE diff --git a/docs/images/install-hero.svg b/docs/images/install-hero.svg index 1739d5f..783bb27 100644 --- a/docs/images/install-hero.svg +++ b/docs/images/install-hero.svg @@ -16,11 +16,11 @@ npm i -g -@imdeadpool/guardex +@imdeadpool/gitguardex added 47 packages in 3.2s -+ @imdeadpool/guardex@ ++ @imdeadpool/gitguardex@ 7.0.16 diff --git a/docs/images/setup-success.svg b/docs/images/setup-success.svg index a56260a..1dac87a 100644 --- a/docs/images/setup-success.svg +++ b/docs/images/setup-success.svg @@ -1,5 +1,5 @@ - guardex setup behavior outside git repository + gitguardex setup behavior outside git repository Terminal screenshot showing gx status, gx setup failure outside a git repo, and gx init unknown command output. @@ -12,31 +12,31 @@ - guardex status + setup + gitguardex status + setup deadpool@recodee:~/Documents/testguardex$ gx - [guardex] CLI: @imdeadpool/guardex/5.0.0 linux-x64 node-v22.22.0 - [guardex] Global services: + [gitguardex] CLI: @imdeadpool/gitguardex/5.0.0 linux-x64 node-v22.22.0 + [gitguardex] Global services: - ● oh-my-codex: active - ● @fission-ai/openspec: active - [guardex] Repo safety service: ● inactive (no git repository at target). + [gitguardex] Repo safety service: ● inactive (no git repository at target). deadpool@recodee:~/Documents/testguardex$ gx setup - [guardex] Already installed globally: oh-my-codex, @fission-ai/openspec - [guardex] ✅ OMX/OpenSpec global tools already installed. Skipping. - [guardex] Target is not inside a git repository: /home/deadpool/Documents/testguardex + [gitguardex] Already installed globally: oh-my-codex, @fission-ai/openspec + [gitguardex] ✅ OMX/OpenSpec global tools already installed. Skipping. + [gitguardex] Target is not inside a git repository: /home/deadpool/Documents/testguardex fatal: not a git repository (or any of the parent directories): .git deadpool@recodee:~/Documents/testguardex$ gx - [guardex] CLI: @imdeadpool/guardex/5.0.0 linux-x64 node-v22.22.0 - [guardex] Global services: + [gitguardex] CLI: @imdeadpool/gitguardex/5.0.0 linux-x64 node-v22.22.0 + [gitguardex] Global services: - ● oh-my-codex: active - ● @fission-ai/openspec: active - [guardex] Repo safety service: ● inactive (no git repository at target). + [gitguardex] Repo safety service: ● inactive (no git repository at target). deadpool@recodee:~/Documents/testguardex$ gx init - [guardex] Unknown command: init + [gitguardex] Unknown command: init deadpool@recodee:~/Documents/testguardex$ diff --git a/docs/images/status-tools-logs.svg b/docs/images/status-tools-logs.svg index ac0ff80..36b1c34 100644 --- a/docs/images/status-tools-logs.svg +++ b/docs/images/status-tools-logs.svg @@ -15,15 +15,15 @@ gx status - [guardex] CLI: @imdeadpool/guardex/5.0.2 linux-x64 node-v22.22.0 - [guardex] Global services: + [gitguardex] CLI: @imdeadpool/gitguardex/5.0.2 linux-x64 node-v22.22.0 + [gitguardex] Global services: - ● oh-my-codex: active - ● @fission-ai/openspec: active - ● @imdeadpool/codex-account-switcher: active - [guardex] Repo safety service: ● active. - [guardex] Repo: /path/to/your/repo - [guardex] Branch: agent/your-branch - guardex-tools logs: + [gitguardex] Repo safety service: ● active. + [gitguardex] Repo: /path/to/your/repo + [gitguardex] Branch: agent/your-branch + gitguardex-tools logs: ├─ USAGE @@ -31,7 +31,7 @@ ├─ COMMANDS - status Show GuardeX CLI + service health without modifying files + status Show GitGuardex CLI + service health without modifying files setup Install + repair guardrails in a git repo (supports --no-gitignore) diff --git a/docs/images/workflow-gx-terminal-status.svg b/docs/images/workflow-gx-terminal-status.svg index b49eac7..ac68d76 100644 --- a/docs/images/workflow-gx-terminal-status.svg +++ b/docs/images/workflow-gx-terminal-status.svg @@ -16,7 +16,7 @@ - [gitguardex] CLI: @imdeadpool/guardex/7.0.16 linux-x64 node-v22.22.0 + [gitguardex] CLI: @imdeadpool/gitguardex/7.0.16 linux-x64 node-v22.22.0 [gitguardex] Global services: - @@ -68,13 +68,13 @@ prompt Print AI setup checklist (--exec, --snippet) report Security/safety reports (e.g. OpenSSF scorecard) help Show this help output - version Print Guardex version + version Print GitGuardex version └─ AGENT BOT agents Start/stop review + cleanup bots for this repo └─ REPO TOGGLE - Set repo-root .env: GUARDEX_ON=0 disables Guardex, GUARDEX_ON=1 enables it again + Set repo-root .env: GUARDEX_ON=0 disables GitGuardex, GUARDEX_ON=1 enables it again └─ Try 'gitguardex doctor' for one-step repair + verification. diff --git a/docs/redditpost.md b/docs/redditpost.md index 8fc386b..254b5db 100644 --- a/docs/redditpost.md +++ b/docs/redditpost.md @@ -1,20 +1,20 @@ -# Reddit Post Kit for GuardeX +# Reddit Post Kit for GitGuardex Source baseline: [`README.md`](../README.md) Project links: - GitHub: https://github.com/recodeecom/multiagent-safety -- npm: https://www.npmjs.com/package/@imdeadpool/guardex +- npm: https://www.npmjs.com/package/@imdeadpool/gitguardex ## Recommended Title Options -1. `I open-sourced GuardeX: Git guardrails for multi-agent coding workflows` -2. `GuardeX (npm): safer branch + file-ownership workflow for parallel coding agents` -3. `Built an OSS CLI to stop multi-agent Git collisions (GuardeX)` +1. `I open-sourced GitGuardex: Git guardrails for multi-agent coding workflows` +2. `GitGuardex (npm): safer branch + file-ownership workflow for parallel coding agents` +3. `Built an OSS CLI to stop multi-agent Git collisions (GitGuardex)` ## Copy-Ready Reddit Post (long) -I open-sourced **GuardeX**, a CLI that adds guardrails for multi-agent coding in Git repos. +I open-sourced **GitGuardex**, a CLI that adds guardrails for multi-agent coding in Git repos. The goal is simple: if several agents (or teammates) work in parallel, prevent the common failure modes before they land in `main`. @@ -29,7 +29,7 @@ What it does: Quick start: ```bash -npm i -g @imdeadpool/guardex +npm i -g @imdeadpool/gitguardex gx setup ``` @@ -45,21 +45,21 @@ bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD) If you run Codex/Claude-style parallel workflows, I would value feedback on edge cases your team hits in production. GitHub: https://github.com/recodeecom/multiagent-safety -npm: https://www.npmjs.com/package/@imdeadpool/guardex +npm: https://www.npmjs.com/package/@imdeadpool/gitguardex ## Copy-Ready Reddit Post (short) -I open-sourced **GuardeX** for safer multi-agent Git workflows. +I open-sourced **GitGuardex** for safer multi-agent Git workflows. It adds branch/worktree guardrails, protected-branch enforcement, file-lock ownership, and repair scripts (`gx setup` / `gx doctor`) so parallel agent execution is safer by default. ```bash -npm i -g @imdeadpool/guardex +npm i -g @imdeadpool/gitguardex gx setup ``` GitHub: https://github.com/recodeecom/multiagent-safety -npm: https://www.npmjs.com/package/@imdeadpool/guardex +npm: https://www.npmjs.com/package/@imdeadpool/gitguardex ## Images to include in the Reddit post diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 3c7e8e2..c45d4cf 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -2,8 +2,8 @@ import type { Metadata } from 'next' import './globals.css' export const metadata: Metadata = { - title: 'GuardeX | How It Works', - description: 'A workflow-style GuardeX onboarding preview built with Next.js.' + title: 'GitGuardex | How It Works', + description: 'A workflow-style GitGuardex onboarding preview built with Next.js.' } export default function RootLayout({ diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx index cb23fe3..7856df2 100644 --- a/frontend/app/page.tsx +++ b/frontend/app/page.tsx @@ -126,7 +126,7 @@ interface ModeGuide { } const MODE_ORDER: ModeKey[] = ['execute', 'plan', 'merge', 'installation'] -const INSTALL_COMMAND = 'npm i -g @imdeadpool/guardex' +const INSTALL_COMMAND = 'npm i -g @imdeadpool/gitguardex' const PRODUCT_LABEL = 'Recodee' const EDITOR_LABEL = 'recodee — VS Code' @@ -1669,8 +1669,9 @@ const INSTALL_STEPS: TutorialStep[] = [ label: 'Install the CLI globally', description: ( <> - GuardeX ships as a single npm package. Install once and you get the gx,{' '} - guardex, and multiagent-safety binaries on your PATH. + GitGuardex ships as a single npm package. Install once and you get the gx,{' '} + gitguardex, guardex (legacy), and multiagent-safety{' '} + binaries on your PATH. ), messages: [ @@ -1696,7 +1697,7 @@ const INSTALL_STEPS: TutorialStep[] = [ sub: '· global install', elapsed: '3.8s', rows: [ - { kind: 'shell', label: 'bash:', value: 'npm i -g @imdeadpool/guardex' }, + { kind: 'shell', label: 'bash:', value: 'npm i -g @imdeadpool/gitguardex' }, ], }, ], @@ -1711,11 +1712,11 @@ const INSTALL_STEPS: TutorialStep[] = [ ], worktrees: [], codeLines: [ - { parts: [c('$ npm i -g @imdeadpool/guardex', 'c')] }, + { parts: [c('$ npm i -g @imdeadpool/gitguardex', 'c')] }, { parts: [c('added 1 package in 3.8s')] }, { parts: [c('')] }, { parts: [c('$ gx --version')] }, - { parts: [c('guardex 7.0.6', 'f')] }, + { parts: [c('gitguardex 7.0.16', 'f')] }, ], statusBranch: 'dev', }, @@ -1724,7 +1725,7 @@ const INSTALL_STEPS: TutorialStep[] = [ label: 'Audit the repo with gx doctor', description: ( <> - gx doctor scans for the guardrails GuardeX needs: git hooks, file-lock + gx doctor scans for the guardrails GitGuardex needs: git hooks, file-lock scripts, OpenSpec workspace, and ignore patterns. It reports what’s missing and offers to repair. @@ -1759,7 +1760,7 @@ const INSTALL_STEPS: TutorialStep[] = [ worktrees: [], codeLines: [ { parts: [c('$ gx doctor', 'c')] }, - { parts: [c('[guardex] Doctor/fix: ', 'n'), c('/home/you/your-repo', 's')] }, + { parts: [c('[gitguardex] Doctor/fix: ', 'n'), c('/home/you/your-repo', 's')] }, { parts: [c(' - unchanged .omx')] }, { parts: [c(' - unchanged .omx/state')] }, { parts: [c(' - unchanged .omx/logs')] }, @@ -1778,12 +1779,12 @@ const INSTALL_STEPS: TutorialStep[] = [ { parts: [c(' - unchanged .githooks/post-checkout')] }, { parts: [c(' - unchanged .gitignore')] }, { parts: [c(' - hooksPath set core.hooksPath=.githooks')] }, - { parts: [c('[guardex] Scan target: ', 'n'), c('/home/you/your-repo', 's')] }, - { parts: [c('[guardex] Branch: ', 'n'), c('dev', 'f')] }, - { parts: [c('[guardex] '), c('✅ No safety issues detected.', 'f')] }, + { parts: [c('[gitguardex] Scan target: ', 'n'), c('/home/you/your-repo', 's')] }, + { parts: [c('[gitguardex] Branch: ', 'n'), c('dev', 'f')] }, + { parts: [c('[gitguardex] '), c('✅ No safety issues detected.', 'f')] }, { parts: [ - c('[guardex] Auto-finish sweep (base=dev): ', 'n'), + c('[gitguardex] Auto-finish sweep (base=dev): ', 'n'), c('attempted=5', 'f'), c(', completed=0, skipped=15, failed=5'), ], @@ -1791,7 +1792,7 @@ const INSTALL_STEPS: TutorialStep[] = [ { parts: [c(' [skip] agent/claude-16-11/… already merged into dev.', 'c')] }, { parts: [c(' [skip] agent/codex-20-20/… already merged into dev.', 'c')] }, { parts: [c(' [fail] agent/…/rebase-in-progress → resolve conflicts.', 'c')] }, - { parts: [c('[guardex] '), c('✅ Repo is fully safe.', 'f')] }, + { parts: [c('[gitguardex] '), c('✅ Repo is fully safe.', 'f')] }, ], statusBranch: 'dev', }, @@ -1838,7 +1839,7 @@ const INSTALL_STEPS: TutorialStep[] = [ { parts: [c('scaffolding OpenSpec → openspec/'), c(' ✓', 'f')] }, { parts: [c('protecting main, dev branches'), c(' ✓', 'f')] }, { parts: [c('')] }, - { parts: [c('GuardeX ready. Start your first agent with `gx start`.', 'p')] }, + { parts: [c('GitGuardex ready. Start your first agent with `gx start`.', 'p')] }, ], statusBranch: 'dev', }, @@ -1934,7 +1935,7 @@ const INSTALL_STEPS: TutorialStep[] = [ kind: 'assistant', content: ( <> - Work done. Firing the full finish chain — GuardeX will commit, push, PR, wait for merge, + Work done. Firing the full finish chain — GitGuardex will commit, push, PR, wait for merge, and clean the sandbox. ), @@ -2026,7 +2027,7 @@ const MODE_GUIDES: Record = { }, merge: { eyebrow: 'Conflict recovery lane', - title: 'Show how GuardeX merges without trashing either branch', + title: 'Show how GitGuardex merges without trashing either branch', summary: 'Merge mode visualizes the recovery path when two PRs collide. A dedicated merge lane appears, reads both intents, writes a semantic resolution, and proves it with tests.', highlights: [ @@ -2146,7 +2147,7 @@ const getTakeawayCopy = (mode: ModeKey, step: TutorialStep): string => { if (step.worktrees.length === 1) { return 'Once the sandbox exists, every visible file mutation becomes reviewable and reversible.' } - return 'The execute demo starts by proving that GuardeX does not skip straight to writing code.' + return 'The execute demo starts by proving that GitGuardex does not skip straight to writing code.' } if (mode === 'plan') { @@ -2740,7 +2741,7 @@ export default function Home() {
guardian workflow
-
GuardeX
+
GitGuardex
the Guardian T-Rex for your repo ·{' '} &2 <<'MSG' [guardex-preedit-guard] Codex edit/commit detected on a protected branch. -GuardeX requires Codex work to run from an isolated agent/* branch. +GitGuardex requires Codex work to run from an isolated agent/* branch. Start the sub-branch/worktree with: bash scripts/codex-agent.sh "" "" Or manually: diff --git a/templates/scripts/openspec/init-change-workspace.sh b/templates/scripts/openspec/init-change-workspace.sh index 8f878e7..07f26c7 100755 --- a/templates/scripts/openspec/init-change-workspace.sh +++ b/templates/scripts/openspec/init-change-workspace.sh @@ -60,8 +60,8 @@ Describe the change in a sentence or two. Commit message is the spec of record. - [ ] Confirm sandbox worktree is gone (\`git worktree list\`, \`git branch -a\`). NOTESEOF fi - echo "[guardex] OpenSpec change workspace (minimal) ready: ${CHANGE_DIR}" - echo "[guardex] Notes-only scaffold: ${CHANGE_DIR}/notes.md" + echo "[gitguardex] OpenSpec change workspace (minimal) ready: ${CHANGE_DIR}" + echo "[gitguardex] Notes-only scaffold: ${CHANGE_DIR}/notes.md" exit 0 fi @@ -129,5 +129,5 @@ The system SHALL enforce ${CAPABILITY_SLUG} behavior as defined by this change. SPECEOF fi -echo "[guardex] OpenSpec change workspace ready: ${CHANGE_DIR}" -echo "[guardex] OpenSpec change spec scaffold: ${SPEC_DIR}/spec.md" +echo "[gitguardex] OpenSpec change workspace ready: ${CHANGE_DIR}" +echo "[gitguardex] OpenSpec change spec scaffold: ${SPEC_DIR}/spec.md" diff --git a/test/install.test.js b/test/install.test.js index 5d329dc..2b64254 100644 --- a/test/install.test.js +++ b/test/install.test.js @@ -191,7 +191,7 @@ function seedReleasePackageManifest(repoDir, overrides = {}) { const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); const mergedPackageJson = { ...packageJson, - name: packageJson.name || '@imdeadpool/guardex', + name: packageJson.name || '@imdeadpool/gitguardex', version: cliVersion, repository: { type: 'git', @@ -2447,7 +2447,7 @@ if [[ "$1" == "list" ]]; then echo '{"dependencies":{"oh-my-codex":{},"@fission-ai/openspec":{}}}' exit 0 fi -if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/guardex@latest" ]]; then +if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/gitguardex@latest" ]]; then echo "updated" > "${markerPath}" exit 0 fi @@ -2472,11 +2472,11 @@ exit 1 test('self-update verifies on-disk version after @latest install and retries with pinned version when stale', () => { const repoDir = initRepo(); const fakeGlobalRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'guardex-fake-global-root-')); - const installedPkgDir = path.join(fakeGlobalRoot, '@imdeadpool', 'guardex'); + const installedPkgDir = path.join(fakeGlobalRoot, '@imdeadpool', 'gitguardex'); fs.mkdirSync(installedPkgDir, { recursive: true }); fs.writeFileSync( path.join(installedPkgDir, 'package.json'), - JSON.stringify({ name: '@imdeadpool/guardex', version: cliVersion }), + JSON.stringify({ name: '@imdeadpool/gitguardex', version: cliVersion }), 'utf8', ); const markerLatest = path.join(repoDir, '.npm-at-latest-called'); @@ -2494,15 +2494,15 @@ if [[ "$1" == "root" && "$2" == "-g" ]]; then echo "${fakeGlobalRoot}" exit 0 fi -if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/guardex@latest" ]]; then +if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/gitguardex@latest" ]]; then touch "${markerLatest}" # Simulate the npm quirk: report success without rewriting the on-disk package.json. exit 0 fi -if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/guardex@9.9.9" ]]; then +if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/gitguardex@9.9.9" ]]; then touch "${markerPinned}" # Pinned retry actually advances the on-disk version. - printf '%s' '{"name":"@imdeadpool/guardex","version":"9.9.9"}' > "${installedPkgDir}/package.json" + printf '%s' '{"name":"@imdeadpool/gitguardex","version":"9.9.9"}' > "${installedPkgDir}/package.json" exit 0 fi echo "unexpected npm args: $*" >&2 @@ -2527,14 +2527,14 @@ exit 1 test('self-update restarts into the installed CLI after a successful on-disk upgrade', () => { const repoDir = initRepo(); const fakeGlobalRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'guardex-fake-global-root-')); - const installedPkgDir = path.join(fakeGlobalRoot, '@imdeadpool', 'guardex'); + const installedPkgDir = path.join(fakeGlobalRoot, '@imdeadpool', 'gitguardex'); const installedBinDir = path.join(installedPkgDir, 'bin'); const reexecMarker = path.join(repoDir, '.self-update-reexec-called'); fs.mkdirSync(installedBinDir, { recursive: true }); fs.writeFileSync( path.join(installedPkgDir, 'package.json'), JSON.stringify({ - name: '@imdeadpool/guardex', + name: '@imdeadpool/gitguardex', version: '9.9.9', bin: { gx: 'bin/multiagent-safety.js' }, }), @@ -2562,7 +2562,7 @@ if [[ "$1" == "root" && "$2" == "-g" ]]; then echo "${fakeGlobalRoot}" exit 0 fi -if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/guardex@latest" ]]; then +if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/gitguardex@latest" ]]; then exit 0 fi echo "unexpected npm args: $*" >&2 @@ -2651,7 +2651,7 @@ test('status --json returns cli, services, and repo summary', () => { assert.equal(result.status, 0, result.stderr || result.stdout); const parsed = JSON.parse(result.stdout); - assert.equal(parsed.cli.name, '@imdeadpool/guardex'); + assert.equal(parsed.cli.name, '@imdeadpool/gitguardex'); assert.equal(typeof parsed.cli.version, 'string'); assert.equal(Array.isArray(parsed.services), true); const claudeService = parsed.services.find((service) => service.name === 'oh-my-claudecode'); @@ -4535,7 +4535,7 @@ test('prompt outputs AI setup instructions', () => { const repoDir = initRepo(); const result = runNode(['prompt'], repoDir); assert.equal(result.status, 0, result.stderr || result.stdout); - assert.match(result.stdout, /npm i -g @imdeadpool\/guardex/); + assert.match(result.stdout, /npm i -g @imdeadpool\/gitguardex/); assert.match(result.stdout, /GitGuardex \(gx\) setup checklist/); assert.match(result.stdout, /gx setup/); assert.match(result.stdout, /gx doctor/); @@ -4552,7 +4552,7 @@ test('prompt --exec outputs command-only checklist', () => { const repoDir = initRepo(); const result = runNode(['prompt', '--exec'], repoDir); assert.equal(result.status, 0, result.stderr || result.stdout); - assert.match(result.stdout, /^npm i -g @imdeadpool\/guardex/m); + assert.match(result.stdout, /^npm i -g @imdeadpool\/gitguardex/m); assert.match(result.stdout, /^gh --version/m); assert.match(result.stdout, /^gx setup$/m); assert.match(result.stdout, /^gx doctor$/m); @@ -4575,7 +4575,7 @@ test('deprecated copy-commands alias still works and warns', () => { const repoDir = initRepo(); const result = runNode(['copy-commands'], repoDir); assert.equal(result.status, 0, result.stderr || result.stdout); - assert.match(result.stdout, /^npm i -g @imdeadpool\/guardex/m); + assert.match(result.stdout, /^npm i -g @imdeadpool\/gitguardex/m); assert.match(result.stderr, /'copy-commands' is deprecated/); assert.match(result.stderr, /gx prompt --exec/); });