From 1533e231b9be4ec7cad51869ca988cb33749cad6 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Sat, 11 Apr 2026 18:45:32 +0200 Subject: [PATCH] Resolve npm scope-not-found publish failures by using the authenticated user scope Publishing failed with E404 because @recodeecom does not exist in npm for this account context. This change aligns package identity and install docs with the verified npm login scope (imdeadpool) while keeping CLI commands unchanged (gx/guardex).\n\nIt also updates prompt output and tests so publish/update workflows reference the same scoped package and avoid contradictory guidance. Constraint: Preserve gx/guardex command surface and existing legacy binary aliases\nRejected: Keep @recodeecom scope and require creating org first | blocks immediate publish and adds external setup dependency\nConfidence: high\nScope-risk: narrow\nReversibility: clean\nDirective: If npm account/scope changes again, update package name and all publish/install strings together in one patch\nTested: npm test\nTested: node --check bin/multiagent-safety.js\nTested: npm publish --dry-run --access public\nNot-tested: live npm publish of 5.0.0 --- README.md | 10 +++++----- bin/multiagent-safety.js | 4 ++-- docs/redditpost.md | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- test/install.test.js | 8 ++++---- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 61bbafa..fbaa333 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # GuardeX — Guardian T-Rex for your repo -[![npm version](https://img.shields.io/npm/v/%40recodeecom%2Fguardex?color=cb3837&logo=npm)](https://www.npmjs.com/package/@recodeecom/guardex) +[![npm version](https://img.shields.io/npm/v/%40imdeadpool%2Fguardex?color=cb3837&logo=npm)](https://www.npmjs.com/package/@imdeadpool/guardex) [![CI](https://github.com/recodeecom/multiagent-safety/actions/workflows/ci.yml/badge.svg)](https://github.com/recodeecom/multiagent-safety/actions/workflows/ci.yml) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/recodeecom/multiagent-safety/badge)](https://securityscorecards.dev/viewer/?uri=github.com/recodeecom/multiagent-safety) @@ -27,10 +27,10 @@ can be bootstrapped consistently across repos. ## Install ```sh -npm i -g @recodeecom/guardex +npm i -g @imdeadpool/guardex ``` -Package page: https://www.npmjs.com/package/@recodeecom/guardex +Package page: https://www.npmjs.com/package/@imdeadpool/guardex ## Command aliases @@ -194,7 +194,7 @@ gx copy-commands Example output: ```sh -npm i -g @recodeecom/guardex +npm i -g @imdeadpool/guardex gx setup gx doctor bash scripts/codex-agent.sh "task" "agent-name" @@ -213,7 +213,7 @@ Full checklist output: Use this exact checklist to setup multi-agent safety in this repository for Codex or Claude. 1) Install (if missing): - npm i -g @recodeecom/guardex + npm i -g @imdeadpool/guardex 2) Bootstrap safety in this repo: gx setup diff --git a/bin/multiagent-safety.js b/bin/multiagent-safety.js index 66ac2ee..d10c63b 100755 --- a/bin/multiagent-safety.js +++ b/bin/multiagent-safety.js @@ -123,7 +123,7 @@ const CLI_COMMAND_DESCRIPTIONS = [ const AI_SETUP_PROMPT = `Use this exact checklist to setup GuardeX (Guardian T-Rex for your repo) in this repository for Codex or Claude. 1) Install (if missing): - npm i -g @recodeecom/guardex + npm i -g @imdeadpool/guardex 2) Bootstrap safety in this repo: gx setup @@ -153,7 +153,7 @@ const AI_SETUP_PROMPT = `Use this exact checklist to setup GuardeX (Guardian T-R gx sync `; -const AI_SETUP_COMMANDS = `npm i -g @recodeecom/guardex +const AI_SETUP_COMMANDS = `npm i -g @imdeadpool/guardex gx setup gx doctor bash scripts/codex-agent.sh "task" "agent-name" diff --git a/docs/redditpost.md b/docs/redditpost.md index bda7439..e7cdeb2 100644 --- a/docs/redditpost.md +++ b/docs/redditpost.md @@ -36,7 +36,7 @@ gx protect add release staging Links: - GitHub: https://github.com/recodeecom/multiagent-safety -- npm: https://www.npmjs.com/package/@recodeecom/guardex +- npm: https://www.npmjs.com/package/@imdeadpool/guardex If you try it, I’d love feedback on team workflows and edge cases. @@ -58,4 +58,4 @@ gx setup ``` GitHub: https://github.com/recodeecom/multiagent-safety -npm: https://www.npmjs.com/package/@recodeecom/guardex +npm: https://www.npmjs.com/package/@imdeadpool/guardex diff --git a/package-lock.json b/package-lock.json index d15c8d6..a4579b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@recodeecom/guardex", + "name": "@imdeadpool/guardex", "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@recodeecom/guardex", + "name": "@imdeadpool/guardex", "version": "5.0.0", "license": "MIT", "bin": { diff --git a/package.json b/package.json index c21b875..f1079ce 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@recodeecom/guardex", + "name": "@imdeadpool/guardex", "version": "5.0.0", "description": "GuardeX: the Guardian T-Rex for your repo, with hardened multi-agent git guardrails.", "license": "MIT", diff --git a/test/install.test.js b/test/install.test.js index dd094f5..52da8f8 100644 --- a/test/install.test.js +++ b/test/install.test.js @@ -492,7 +492,7 @@ if [[ "$1" == "list" ]]; then echo '{"dependencies":{"oh-my-codex":{},"@fission-ai/openspec":{}}}' exit 0 fi -if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@recodeecom/guardex@latest" ]]; then +if [[ "$1" == "i" && "$2" == "-g" && "$3" == "@imdeadpool/guardex@latest" ]]; then echo "updated" > "${markerPath}" exit 0 fi @@ -529,7 +529,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, '@recodeecom/guardex'); + assert.equal(parsed.cli.name, '@imdeadpool/guardex'); assert.equal(typeof parsed.cli.version, 'string'); assert.equal(Array.isArray(parsed.services), true); assert.equal(parsed.repo.inGitRepo, true); @@ -1184,7 +1184,7 @@ test('copy-prompt outputs AI setup instructions', () => { const repoDir = initRepo(); const result = runNode(['copy-prompt'], repoDir); assert.equal(result.status, 0, result.stderr || result.stdout); - assert.match(result.stdout, /npm i -g @recodeecom\/guardex/); + assert.match(result.stdout, /npm i -g @imdeadpool\/guardex/); assert.match(result.stdout, /npm i -g oh-my-codex @fission-ai\/openspec/); assert.match(result.stdout, /gx setup/); assert.match(result.stdout, /Codex or Claude/); @@ -1195,7 +1195,7 @@ test('copy-commands outputs command-only checklist', () => { 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 @recodeecom\/guardex/m); + assert.match(result.stdout, /^npm i -g @imdeadpool\/guardex/m); assert.match(result.stdout, /gx setup/); assert.match(result.stdout, /gx doctor/); assert.match(result.stdout, /scripts\/agent-file-locks.py claim/);