diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index c1ac48aa..7c1d7e30 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -1,7 +1,7 @@ { "name": "ecc", "interface": { - "displayName": "Everything Claude Code" + "displayName": "ECC" }, "plugins": [ { diff --git a/.codex-plugin/README.md b/.codex-plugin/README.md index 14f1687d..ef850ca3 100644 --- a/.codex-plugin/README.md +++ b/.codex-plugin/README.md @@ -1,6 +1,6 @@ # .codex-plugin — Codex Native Plugin for ECC -This directory contains the **Codex plugin manifest** for Everything Claude Code. +This directory contains the **Codex plugin manifest** for ECC. ## Structure @@ -24,10 +24,10 @@ track that marketplace source from the CLI: ```bash # Add the public repo marketplace -codex plugin marketplace add affaan-m/everything-claude-code +codex plugin marketplace add affaan-m/ECC # Or add a local checkout while developing -codex plugin marketplace add /absolute/path/to/everything-claude-code +codex plugin marketplace add /absolute/path/to/ECC ``` The marketplace entry points at the repository root so `.codex-plugin/plugin.json`, diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 63616987..e512e8b0 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,22 +1,22 @@ { "name": "ecc", "version": "2.0.0-rc.1", - "description": "Battle-tested Codex workflows — 207 shared ECC skills, production-ready MCP configs, and selective-install-aligned conventions for TDD, security scanning, code review, and autonomous development.", + "description": "Harness-native ECC workflows for Codex: shared skills, production-ready MCP configs, and selective-install-aligned conventions for TDD, security scanning, code review, and autonomous development.", "author": { "name": "Affaan Mustafa", "email": "me@affaanmustafa.com", "url": "https://x.com/affaanmustafa" }, "homepage": "https://ecc.tools", - "repository": "https://github.com/affaan-m/everything-claude-code", + "repository": "https://github.com/affaan-m/ECC", "license": "MIT", "keywords": ["codex", "agents", "skills", "tdd", "code-review", "security", "workflow", "automation"], "skills": "./skills/", "mcpServers": "./.mcp.json", "interface": { - "displayName": "Everything Claude Code", + "displayName": "ECC", "shortDescription": "207 battle-tested ECC skills plus MCP configs for TDD, security, code review, and autonomous development.", - "longDescription": "Everything Claude Code (ECC) is a community-maintained collection of Codex-ready skills and MCP configs evolved over 10+ months of intensive daily use. It covers TDD workflows, security scanning, code review, architecture decisions, operator workflows, and more — all in one installable plugin.", + "longDescription": "ECC is a harness-native operator system for Codex and adjacent agent harnesses. It packages reusable skills, MCP configs, TDD workflows, security scanning, code review, architecture decisions, operator workflows, and release gates in one installable plugin.", "developerName": "Affaan Mustafa", "category": "Productivity", "capabilities": ["Read", "Write"], diff --git a/.opencode/MIGRATION.md b/.opencode/MIGRATION.md index f967ec1d..c727e4df 100644 --- a/.opencode/MIGRATION.md +++ b/.opencode/MIGRATION.md @@ -1,6 +1,6 @@ # Migration Guide: Claude Code to OpenCode -This guide helps you migrate from Claude Code to OpenCode while using the Everything Claude Code (ECC) configuration. +This guide helps you migrate from Claude Code to OpenCode while using the ECC configuration. ## Overview @@ -365,4 +365,4 @@ If you need to switch back: For issues specific to: - **OpenCode CLI**: Report to OpenCode's issue tracker -- **ECC Configuration**: Report to [github.com/affaan-m/everything-claude-code](https://github.com/affaan-m/everything-claude-code) +- **ECC Configuration**: Report to [github.com/affaan-m/ECC](https://github.com/affaan-m/ECC) diff --git a/.opencode/README.md b/.opencode/README.md index 170a8459..6fe4657f 100644 --- a/.opencode/README.md +++ b/.opencode/README.md @@ -3,13 +3,13 @@ > WARNING: This README is specific to OpenCode usage. > If you installed ECC via npm (e.g. `npm install opencode-ecc`), refer to the root README instead. -Everything Claude Code (ECC) plugin for OpenCode - agents, commands, hooks, and skills. +ECC plugin for OpenCode - agents, commands, hooks, and skills. ## Installation ## Installation Overview -There are two ways to use Everything Claude Code (ECC): +There are two ways to use ECC: 1. **npm package (recommended for most users)** Install via npm/bun/yarn and use the `ecc-install` CLI to set up rules and agents. @@ -52,8 +52,8 @@ npx ecc-install typescript Clone and run OpenCode in the repository: ```bash -git clone https://github.com/affaan-m/everything-claude-code -cd everything-claude-code +git clone https://github.com/affaan-m/ECC +cd ECC opencode ``` diff --git a/.opencode/index.ts b/.opencode/index.ts index 8ff13a0a..9bb5bf0c 100644 --- a/.opencode/index.ts +++ b/.opencode/index.ts @@ -1,5 +1,5 @@ /** - * Everything Claude Code (ECC) Plugin for OpenCode + * ECC Plugin for OpenCode * * This package provides the published ECC OpenCode plugin module: * - Plugin hooks (auto-format, TypeScript check, console.log warning, env injection, etc.) @@ -26,8 +26,8 @@ * * Option 2: Clone and use directly * ```bash - * git clone https://github.com/affaan-m/everything-claude-code - * cd everything-claude-code + * git clone https://github.com/affaan-m/ECC + * cd ECC * opencode * ``` * @@ -47,7 +47,7 @@ export const VERSION = "1.6.0" export const metadata = { name: "ecc-universal", version: VERSION, - description: "Everything Claude Code plugin for OpenCode", + description: "ECC plugin for OpenCode", author: "affaan-m", features: { agents: 13, diff --git a/.opencode/instructions/INSTRUCTIONS.md b/.opencode/instructions/INSTRUCTIONS.md index 488b2a66..64d9d1d8 100644 --- a/.opencode/instructions/INSTRUCTIONS.md +++ b/.opencode/instructions/INSTRUCTIONS.md @@ -1,4 +1,4 @@ -# Everything Claude Code - OpenCode Instructions +# ECC - OpenCode Instructions This document consolidates the core rules and guidelines from the Claude Code configuration for use with OpenCode. diff --git a/.opencode/package.json b/.opencode/package.json index ee99154b..f343e56d 100644 --- a/.opencode/package.json +++ b/.opencode/package.json @@ -1,7 +1,7 @@ { "name": "ecc-universal", "version": "2.0.0-rc.1", - "description": "Everything Claude Code (ECC) plugin for OpenCode - agents, commands, hooks, and skills", + "description": "ECC plugin for OpenCode - agents, commands, hooks, and skills", "main": "dist/index.js", "types": "dist/index.d.ts", "type": "module", @@ -47,12 +47,12 @@ "license": "MIT", "repository": { "type": "git", - "url": "git+https://github.com/affaan-m/everything-claude-code.git" + "url": "git+https://github.com/affaan-m/ECC.git" }, "bugs": { - "url": "https://github.com/affaan-m/everything-claude-code/issues" + "url": "https://github.com/affaan-m/ECC/issues" }, - "homepage": "https://github.com/affaan-m/everything-claude-code#readme", + "homepage": "https://github.com/affaan-m/ECC#readme", "publishConfig": { "access": "public" }, diff --git a/.opencode/plugins/ecc-hooks.ts b/.opencode/plugins/ecc-hooks.ts index 31cfa8ac..606bcb7c 100644 --- a/.opencode/plugins/ecc-hooks.ts +++ b/.opencode/plugins/ecc-hooks.ts @@ -1,5 +1,5 @@ /** - * Everything Claude Code (ECC) Plugin Hooks for OpenCode + * ECC Plugin Hooks for OpenCode * * This plugin translates Claude Code hooks to OpenCode's plugin system. * OpenCode's plugin system is MORE sophisticated than Claude Code with 20+ events @@ -453,7 +453,7 @@ export const ECCHooksPlugin: ECCHooksPluginFn = async ({ const contextBlock = [ "# ECC Context (preserve across compaction)", "", - "## Active Plugin: Everything Claude Code v2.0.0-rc.1", + "## Active Plugin: ECC v2.0.0-rc.1", "- Hooks: file.edited, tool.execute.before/after, session.created/idle/deleted, shell.env, compacting, permission.ask", "- Tools: run-tests, check-coverage, security-audit, format-code, lint-check, git-summary, changed-files", "- Agents: 13 specialized (planner, architect, tdd-guide, code-reviewer, security-reviewer, build-error-resolver, e2e-runner, refactor-cleaner, doc-updater, go-reviewer, go-build-resolver, database-reviewer, python-reviewer)", diff --git a/.opencode/plugins/index.ts b/.opencode/plugins/index.ts index ca585969..c1e17a15 100644 --- a/.opencode/plugins/index.ts +++ b/.opencode/plugins/index.ts @@ -1,5 +1,5 @@ /** - * Everything Claude Code (ECC) Plugins for OpenCode + * ECC Plugins for OpenCode * * This module exports all ECC plugins for OpenCode integration. * Plugins provide hook-based automation that mirrors Claude Code's hook system diff --git a/README.md b/README.md index c46dc47e..a7a4bb5d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ **Language:** English | [Português (Brasil)](docs/pt-BR/README.md) | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.md) | [한국어](docs/ko-KR/README.md) | [Türkçe](docs/tr/README.md) | [Русский](docs/ru/README.md) | [Tiếng Việt](docs/vi-VN/README.md) | [ไทย](docs/th/README.md) -# Everything Claude Code +# ECC -![Everything Claude Code — the performance system for AI agent harnesses](assets/hero.png) +![ECC - the harness-native operator system for agentic work](assets/hero.png) [![Stars](https://img.shields.io/github/stars/affaan-m/ECC?style=flat)](https://github.com/affaan-m/ECC/stargazers) [![Forks](https://img.shields.io/github/forks/affaan-m/ECC?style=flat)](https://github.com/affaan-m/ECC/network/members) @@ -34,7 +34,7 @@ --- -**The performance optimization system for AI agent harnesses. From an Anthropic hackathon winner.** +**The harness-native operator system for agentic work. From an Anthropic hackathon winner.** Not just configs. A complete system: skills, instincts, memory optimization, continuous learning, security scanning, and research-first development. Production-ready agents, skills, hooks, rules, MCP configurations, and legacy command shims evolved over 10+ months of intensive daily use building real products. @@ -1719,7 +1719,7 @@ These configs work for my workflow. You should: ## Community Projects -Projects built on or inspired by Everything Claude Code: +Projects built on or inspired by ECC: | Project | Description | |---------|-------------| diff --git a/agent.yaml b/agent.yaml index 658ad362..9a06743d 100644 --- a/agent.yaml +++ b/agent.yaml @@ -1,5 +1,5 @@ spec_version: "0.1.0" -name: everything-claude-code +name: ecc version: 2.0.0-rc.1 description: "Initial gitagent export surface for ECC's shared skill catalog, governance, and identity. Native agents, commands, and hooks remain authoritative in the repository while manifest coverage expands." author: affaan-m diff --git a/docs/business/metrics-and-sponsorship.md b/docs/business/metrics-and-sponsorship.md index 133e254c..9c1e318a 100644 --- a/docs/business/metrics-and-sponsorship.md +++ b/docs/business/metrics-and-sponsorship.md @@ -28,15 +28,15 @@ curl -s https://api.npmjs.org/downloads/point/last-month/ecc-agentshield ### GitHub repository adoption ```bash -gh api repos/affaan-m/everything-claude-code \ +gh api repos/affaan-m/ECC \ --jq '{stars:.stargazers_count,forks:.forks_count,contributors_url:.contributors_url,open_issues:.open_issues_count}' ``` ### GitHub traffic (maintainer access required) ```bash -gh api repos/affaan-m/everything-claude-code/traffic/views -gh api repos/affaan-m/everything-claude-code/traffic/clones +gh api repos/affaan-m/ECC/traffic/views +gh api repos/affaan-m/ECC/traffic/clones ``` ### GitHub App installs diff --git a/docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md b/docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md index 350b32ff..f04e8c5d 100644 --- a/docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md +++ b/docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md @@ -1,17 +1,18 @@ # ECC v2.0.0-rc.1 Naming And Publication Matrix -Snapshot date: 2026-05-18. +Snapshot date: 2026-05-19. -This matrix answers the release question "ship as Everything Claude Code, ECC, -or a renamed surface?" for the rc.1 lane. It is evidence for planning, not a -publication action. +This matrix records the rc.1 identity after the public repository rename to +`affaan-m/ECC`. It is evidence for planning, not a publication action. ## Decision -For `v2.0.0-rc.1`, keep the public identity as **Everything Claude Code (ECC)**. -Use **ECC** as the short product name in copy, plugin slugs, status surfaces, -and diagrams, but do not rename the GitHub repo, npm package, or package entry -points before the rc.1 release. +For `v2.0.0-rc.1`, ship the public identity as **ECC**. + +Use `affaan-m/ECC` as the canonical GitHub repo and `ECC` as the product name +in copy, plugin slugs, status surfaces, diagrams, and release collateral. Keep +the npm package and package entry points as `ecc-universal` until a separate +post-rc migration plan exists. Reason: @@ -19,21 +20,17 @@ Reason: plugin slug; - the exact npm package name `ecc` is already occupied by an unrelated elliptic curve cryptography package; -- the repo name `affaan-m/ecc` is not present, but renaming - `affaan-m/everything-claude-code` before rc.1 would create avoidable URL, - package, docs, and marketplace churn; +- `affaan-m/ECC` is the live public GitHub repo; - Claude and Codex plugin surfaces are already short enough as `ecc`; - rc.1 should prove the release, plugin, and publication pipeline before any - broader brand migration. + npm/package rename. ## Current Values | Surface | Current value | Evidence command | 2026-05-18 result | Release decision | | --- | --- | --- | --- | --- | -| Product display name | `Everything Claude Code` | `rg -n "Everything Claude Code" README.md CHANGELOG.md docs/releases/2.0.0-rc.1` | Present across README, release notes, launch copy, and plugin manifests | Keep for rc.1 | -| Short name | `ECC` | README/release docs | Used as the short cross-harness brand | Keep and prefer in tight copy | -| GitHub repo | `affaan-m/everything-claude-code` | `git remote get-url origin` | `https://github.com/affaan-m/everything-claude-code.git` | Keep for rc.1 | -| Possible short repo | `affaan-m/ecc` | `gh repo view affaan-m/ecc` | Not found with current auth | Candidate after rc.1 only | +| Product display name | `ECC` | `rg -n "^# ECC\|displayName.*ECC\|affaan-m/ECC" README.md .codex-plugin/plugin.json docs/releases/2.0.0-rc.1` | Present across README, plugin manifests, release copy, and URL ledger | Keep for rc.1 and GA | +| GitHub repo | `affaan-m/ECC` | `git remote get-url origin` | `https://github.com/affaan-m/ECC.git` | Keep for rc.1 and GA | | npm package | `ecc-universal` | `node -p "require('./package.json').name"` | `ecc-universal` | Keep for rc.1 | | npm package version | `2.0.0-rc.1` local, `1.10.0` registry latest | `node -p "require('./package.json').version"` and `npm view ecc-universal name version dist-tags --json` | Local rc.1 is ready; registry latest remains `1.10.0` and no `next` dist-tag exists yet | Publish rc as `next`, not `latest` | | Exact npm short name | `ecc` | `npm view ecc name version description repository.url --json` | Occupied by `ecc@0.0.2`, "Elliptic curve cryptography functions." | Do not use | @@ -77,21 +74,18 @@ Reason: | Billing/native payments | Announcement remains blocked by ITO-61 | Marketplace Pro target readback, webhook provenance, `INTERNAL_API_SECRET`, announcement gate | ECC Tools owner | Do not include native-payments claim in rc.1 announcement | | Social/longform copy | Drafts exist | Final live GitHub, npm, Claude, Codex, billing URLs | Release owner | Publish only after release/package/plugin URLs exist | -## Rename After rc.1 +## Package Rename After rc.1 -If the project moves from "Everything Claude Code" toward "ECC" after rc.1, -do it as a staged migration: +If the package layer moves from `ecc-universal` toward a shorter npm surface +after rc.1, do it as a staged migration: 1. Keep `ecc-universal` as the npm package until a replacement package has a verified owner, deprecation plan, and install migration. -2. Keep `affaan-m/everything-claude-code` as the canonical repo until release - notes, docs, plugin marketplace entries, npm metadata, and external links - are prepared for redirects. -3. Use `ECC` as the product name in new diagrams, status payloads, and - cross-harness docs immediately. -4. Reserve or create any new GitHub/npm/package surfaces before announcing the - rename. -5. Ship a compatibility guide that maps old commands, package names, plugin +2. Keep `affaan-m/ECC` as the canonical repo for public docs, release notes, + plugin marketplace entries, npm metadata, and external links. +3. Reserve or create any new npm/package surfaces before announcing the + package rename. +4. Ship a compatibility guide that maps old commands, package names, plugin slugs, and docs URLs to the new names. ## Evidence Captured In This Pass @@ -152,7 +146,7 @@ HOME="$(mktemp -d)" codex plugin marketplace add Added marketplace ecc and recorded the installed marketplace root as without touching the real Codex config. -HOME="$(mktemp -d)" codex plugin marketplace add affaan-m/everything-claude-code --ref "$(git rev-parse HEAD)" +HOME="$(mktemp -d)" codex plugin marketplace add affaan-m/ECC --ref "$(git rev-parse HEAD)" Added marketplace ecc from the GitHub repo pinned to 67e63e63f9bfd074bd6a21bf6bac71f3dfefa58b without touching the real Codex config. diff --git a/docs/releases/2.0.0-rc.1/preview-pack-manifest.md b/docs/releases/2.0.0-rc.1/preview-pack-manifest.md index c0fab23f..003dbcf7 100644 --- a/docs/releases/2.0.0-rc.1/preview-pack-manifest.md +++ b/docs/releases/2.0.0-rc.1/preview-pack-manifest.md @@ -27,8 +27,8 @@ surfaces, or posting announcements. | `docs/releases/2.0.0-rc.1/publication-evidence-2026-05-18.md` | Current May 18 queue-zero state, #1970/#1971/#1972 merge batch, #1978 review/closure, current-head Mini Shai-Hulud/TanStack protection recheck, no-lifecycle install, npm audit/signature checks, AgentShield `840952a` enterprise/IOC evidence mirror, work-items sync, Linear sync, operator dashboard refresh, latest current-head CI/security scan success for `4470e2e6`, and ITO-46 naming/plugin publication closure | Current strongest readiness snapshot; must still be repeated from a strict clean checkout before real publication | | `docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-17.md` | Previous prompt-to-artifact operator dashboard | Superseded by the May 18 generated dashboard | | `docs/releases/2.0.0-rc.1/operator-readiness-dashboard-2026-05-18.md` | Current prompt-to-artifact operator dashboard | Shows PR/issue/discussion/platform/supply-chain gates current and publication, plugin, billing, AgentShield, ECC Tools, legacy, and Linear productization gaps still open | -| `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md` | Live URL and approval-gated URL ledger for release copy | Must be regenerated from the final release commit before public announcements | -| `docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md` | Naming, slug, and publication-path decision record | Keeps `Everything Claude Code / ECC`, npm `ecc-universal`, and plugin slug `ecc` for rc.1 | +| `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md` | Live URL and approval-gated URL ledger for release copy | Must be regenerated from the final release commit before public announcements | +| `docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md` | Naming, slug, and publication-path decision record | Keeps `ECC`, npm `ecc-universal`, and plugin slug `ecc` for rc.1 | | `docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md` | Release name, package, Claude plugin, Codex plugin, and publication-order checklist | Freezes rc.1 identity and requires final commit evidence before release, npm, plugin, billing, or announcement actions | | `docs/releases/2.0.0-rc.1/x-thread.md` | X launch draft | Must replace placeholders with live URLs after release/package/plugin publication | | `docs/releases/2.0.0-rc.1/linkedin-post.md` | LinkedIn launch draft | Must replace placeholders with live URLs after release/package/plugin publication | diff --git a/docs/releases/2.0.0-rc.1/publication-readiness.md b/docs/releases/2.0.0-rc.1/publication-readiness.md index 1624505d..87b3c4c8 100644 --- a/docs/releases/2.0.0-rc.1/publication-readiness.md +++ b/docs/releases/2.0.0-rc.1/publication-readiness.md @@ -54,16 +54,16 @@ For the May 17 operator dashboard refresh, see [`operator-readiness-dashboard-2026-05-17.md`](operator-readiness-dashboard-2026-05-17.md). For the May 18 operator dashboard refresh, see [`operator-readiness-dashboard-2026-05-18.md`](operator-readiness-dashboard-2026-05-18.md). -For the May 18 live/pending release URL ledger, see -[`release-url-ledger-2026-05-18.md`](release-url-ledger-2026-05-18.md). +For the May 19 live/pending release URL ledger after the public repo rename, see +[`release-url-ledger-2026-05-19.md`](release-url-ledger-2026-05-19.md). ## Release Identity Matrix | Surface | Expected value | Source of truth | Fresh check | Evidence artifact | Owner | Status | | --- | --- | --- | --- | --- | --- | --- | -| Product name | Everything Claude Code / ECC | `README.md`, `CHANGELOG.md`, release notes | `rg -n "Everything Claude Code" README.md CHANGELOG.md docs/releases/2.0.0-rc.1` | `publication-evidence-2026-05-12.md` | Release owner | Evidence recorded | -| GitHub repo | `affaan-m/everything-claude-code` | Git remote and release URLs | `git remote get-url origin` | `publication-evidence-2026-05-12.md` | Release owner | Evidence recorded | -| Git tag | `v2.0.0-rc.1` | GitHub releases | `gh release view v2.0.0-rc.1 --repo affaan-m/everything-claude-code` | `release not found` | Release owner | Blocked until release approval | +| Product name | ECC | `README.md`, plugin manifests, release notes | `rg -n "^# ECC\|displayName.*ECC\|affaan-m/ECC" README.md .codex-plugin/plugin.json docs/releases/2.0.0-rc.1` | `release-name-plugin-publication-checklist-2026-05-18.md` plus `release-url-ledger-2026-05-19.md` | Release owner | Evidence recorded | +| GitHub repo | `affaan-m/ECC` | Git remote and release URLs | `git remote get-url origin` | `release-url-ledger-2026-05-19.md` | Release owner | Evidence recorded | +| Git tag | `v2.0.0-rc.1` | GitHub releases | `gh release view v2.0.0-rc.1 --repo affaan-m/ECC` | `release not found` | Release owner | Blocked until release approval | | npm package | `ecc-universal` | `package.json` | `node -p "require('./package.json').name"` | `publication-evidence-2026-05-12.md` | Package owner | Evidence recorded | | npm version | `2.0.0-rc.1` | `VERSION`, `package.json`, lockfiles | `node -p "require('./package.json').version"` | `publication-evidence-2026-05-12.md` | Package owner | Evidence recorded | | npm dist-tag | `next` for rc, `latest` only for GA | npm registry | `npm view ecc-universal dist-tags --json` | Current registry only has `latest: 1.10.0`; `next` is pending publish | Package owner | Blocked until publish approval | @@ -85,7 +85,7 @@ For the May 18 live/pending release URL ledger, see | Codex plugin | Manifest version matches package and docs, repo marketplace points at the plugin root, and OpenAI's current official Plugin Directory status is recorded | `node tests/docs/ecc2-release-surface.test.js`; `node tests/plugin-manifest.test.js`; `codex plugin marketplace add --help`; temp-home `codex plugin marketplace add ` | `Blocker: official Plugin Directory listing requires OpenAI submission/listing evidence` | Plugin owner | Repo-marketplace distribution verified; official directory pending | | OpenCode package | Build output is regenerated from source and package metadata is current | `npm run build:opencode` | `Blocker: none for local build; public distribution still follows npm/plugin release` | Package owner | Evidence recorded | | ECC Tools billing reference | Any billing claim links to verified Marketplace/App state | `env -u GITHUB_TOKEN gh repo view ECC-Tools/ECC-Tools --json nameWithOwner,isPrivate,viewerPermission` plus internal `/api/billing/readiness?accountLogin=` readback | `Blocker: ECC-Tools #73 added announcementGate; live Marketplace test-account readback must return announcementGate.ready === true before payment announcement` | ECC Tools owner | Code gate recorded; live billing readback pending | -| Announcement copy | X, LinkedIn, GitHub release, and longform copy point to live URLs | placeholder-marker scan and `release-url-ledger-2026-05-18.md` | `Blocker: final live release/npm/plugin/billing URLs do not exist yet; live and pending URLs are separated in the May 18 ledger` | Release owner | URL ledger recorded; final URLs pending | +| Announcement copy | X, LinkedIn, GitHub release, and longform copy point to live URLs | placeholder-marker scan and `release-url-ledger-2026-05-19.md` | `Blocker: final live release/npm/plugin/billing URLs do not exist yet; live and pending URLs are separated in the May 19 ledger` | Release owner | URL ledger recorded; final URLs pending | | Privileged workflow hardening | Release and maintenance workflows avoid persisted checkout tokens | `node scripts/ci/validate-workflow-security.js` | `Blocker:` | Release owner | Evidence recorded in post-hardening refresh | ## Required Command Evidence @@ -110,8 +110,8 @@ Record the exact commit SHA and command output before any publication action: | Discussion baseline | `node scripts/platform-audit.js --json` and `node scripts/discussion-audit.js --json` | No unmanaged active discussion queue and no answerable Q&A missing an accepted answer | `4470e2e6`: platform audit sampled 58 trunk discussions, 0 needing maintainer touch, 0 answerable discussions missing accepted answer; `docs/architecture/discussion-response-playbook.md` records response templates and security escalation rules | | Linear roadmap | Linear project and issue readback | Detailed roadmap exists with release, security, AgentShield, ECC Tools, legacy, and observability lanes | May 18 Linear comments include ITO-57 `3fe5b2b7-c4fe-401c-a317-b40d72119cb3` and ITO-44 `fb4a4f33-6c2d-421a-bbdb-63cfad3e3ee4`; earlier evidence records the project and 16 issue lanes | | Operator readiness dashboard | `npm run operator:dashboard -- --json` | Current queue state mapped to macro-goal deliverables and incomplete gaps | `4470e2e6`: regenerated May 18 dashboard from current main; platform audit ready true, 0 open PRs, 0 open issues, 0 discussion gaps, 0 dirty files, and publication gates still approval-gated | -| Release URL ledger | `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md` plus placeholder-marker scan | Live links and approval-gated links are separated before announcement copy is posted | Ledger records public repo/docs/CI/supply-chain/npm/OpenAI Codex documentation URLs and blocks GitHub release/npm/plugin/billing/social URLs until approval-gated checks pass | -| Release name and plugin publication checklist | `docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md` | Name/package/plugin values are frozen, final-release commands are listed, and Claude/Codex publication paths cite current official docs | Checklist keeps `Everything Claude Code / ECC`, `ecc-universal`, and plugin slug `ecc` for rc.1; no rename, npm publish, plugin tag, official listing, billing claim, or announcement before final evidence | +| Release URL ledger | `docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md` plus placeholder-marker scan | Live links and approval-gated links are separated before announcement copy is posted | Ledger records public repo/docs/npm/OpenAI Codex documentation URLs and blocks GitHub release/npm/plugin/billing/social URLs until approval-gated checks pass | +| Release name and plugin publication checklist | `docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md` | Name/package/plugin values are frozen, final-release commands are listed, and Claude/Codex publication paths cite current official docs | Checklist keeps `ECC`, `ecc-universal`, and plugin slug `ecc` for rc.1; no npm rename, npm publish, plugin tag, official listing, billing claim, or announcement before final evidence | ## Do Not Publish If diff --git a/docs/releases/2.0.0-rc.1/quickstart.md b/docs/releases/2.0.0-rc.1/quickstart.md index 85dd7630..ab8aaf12 100644 --- a/docs/releases/2.0.0-rc.1/quickstart.md +++ b/docs/releases/2.0.0-rc.1/quickstart.md @@ -5,8 +5,8 @@ This path is for a new contributor who wants to verify the release surface befor ## Clone ```bash -git clone https://github.com/affaan-m/everything-claude-code.git -cd everything-claude-code +git clone https://github.com/affaan-m/ECC.git +cd ECC ``` Start from a clean checkout. Do not copy private operator state, raw workspace exports, tokens, or local Hermes files into the repo. diff --git a/docs/releases/2.0.0-rc.1/release-notes.md b/docs/releases/2.0.0-rc.1/release-notes.md index 27700241..d832c9ac 100644 --- a/docs/releases/2.0.0-rc.1/release-notes.md +++ b/docs/releases/2.0.0-rc.1/release-notes.md @@ -91,7 +91,7 @@ What stays local: 2. Read the [Hermes setup guide](../../HERMES-SETUP.md). 3. Review the [cross-harness architecture](../../architecture/cross-harness.md). 4. Run the [observability readiness gate](../../architecture/observability-readiness.md). -5. Check the [release URL ledger](release-url-ledger-2026-05-18.md) before +5. Check the [release URL ledger](release-url-ledger-2026-05-19.md) before using any announcement links. 6. Start with one workflow lane: engineering, research, content, or outreach. 7. Import only sanitized operator patterns into ECC skills. diff --git a/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md b/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md new file mode 100644 index 00000000..149bf516 --- /dev/null +++ b/docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md @@ -0,0 +1,51 @@ +# ECC v2.0.0-rc.1 Release URL Ledger + +This ledger separates links that are already public from links that only become +valid after the approval-gated release, package, plugin, and announcement +steps. Regenerate it from the final release commit before posting any public +announcement. + +Refreshed on 2026-05-19 after the public repository rename to +`affaan-m/ECC`. The final release pass must replace commit-specific evidence +with output from the exact release commit. + +## Live Now + +| Surface | URL | Verification | +| --- | --- | --- | +| Repository | | `git remote get-url origin` returns `https://github.com/affaan-m/ECC.git` | +| Release pack folder | | In-tree release pack | +| Release notes draft | | In-tree release copy | +| Hermes setup guide | | In-tree sanitized Hermes guide | +| May 18 evidence snapshot | | Current strongest pre-rename readiness evidence | +| May 18 operator dashboard | | Prompt-to-artifact dashboard | +| npm package page | | `npm view ecc-universal name version dist-tags --json` returned `latest: 1.10.0`; rc.1 is not published yet | +| Codex marketplace CLI docs | | Official docs list `codex plugin marketplace add` for GitHub shorthand, Git URLs, SSH URLs, and local marketplace roots | +| Codex official Plugin Directory status | | Official docs say public Plugin Directory publishing and self-serve management are coming soon | + +## Approval-Gated URLs + +| Surface | Intended URL or command | Gate before use | +| --- | --- | --- | +| GitHub prerelease | | `gh release view v2.0.0-rc.1 --repo affaan-m/ECC --json tagName,url,isPrerelease` must return the prerelease | +| npm rc package | | `npm publish --tag next` approval and post-publish `npm view ecc-universal dist-tags --json` | +| Claude plugin tag | `claude plugin tag .claude-plugin --dry-run`, then real tag only after approval | Clean release commit and plugin tag/push approval | +| Codex repo marketplace install | `codex plugin marketplace add affaan-m/ECC --ref v2.0.0-rc.1` | GitHub tag must exist; official Plugin Directory submission remains separate | +| ECC Tools native-payments announcement | ECC Tools Marketplace/App URL plus billing readiness readback | Marketplace-managed test account must return `announcementGate.ready === true` | +| Public announcements | X, LinkedIn, GitHub release, and longform URLs | GitHub release, npm, plugin, and billing URLs must resolve first | + +## Pre-Post Check + +Run these immediately before publication: + +```bash +git status --short --branch +gh release view v2.0.0-rc.1 --repo affaan-m/ECC --json tagName,url,isPrerelease +npm view ecc-universal name version dist-tags --json +codex plugin marketplace add --help +rg -n "TODO|TBD|PLACEHOLDER" docs/releases/2.0.0-rc.1 +npm run preview-pack:smoke +``` + +Do not post the social or notification copy until the approval-gated URLs above +resolve from a clean release commit. diff --git a/docs/releases/2.0.0-rc.1/x-thread.md b/docs/releases/2.0.0-rc.1/x-thread.md index ec9b1312..fa2b1fd1 100644 --- a/docs/releases/2.0.0-rc.1/x-thread.md +++ b/docs/releases/2.0.0-rc.1/x-thread.md @@ -71,13 +71,13 @@ The deeper local integrations stay local until they are sanitized, and publicati 11/ Start here: Repo: - + Hermes x ECC setup: - + 12/ Release notes: - + URL ledger: - + diff --git a/ecc2/Cargo.toml b/ecc2/Cargo.toml index 5ba65e66..6fa0de61 100644 --- a/ecc2/Cargo.toml +++ b/ecc2/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" description = "ECC 2.0 — Agentic IDE control plane with TUI dashboard" license = "MIT" authors = ["Affaan Mustafa "] -repository = "https://github.com/affaan-m/everything-claude-code" +repository = "https://github.com/affaan-m/ECC" [features] default = ["vendored-openssl"] diff --git a/scripts/discussion-audit.js b/scripts/discussion-audit.js index b8b89e2b..e985b1a6 100644 --- a/scripts/discussion-audit.js +++ b/scripts/discussion-audit.js @@ -11,7 +11,7 @@ const { const SCHEMA_VERSION = 'ecc.discussion-audit.v1'; const DEFAULT_REPOS = Object.freeze([ - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', 'affaan-m/agentshield', 'affaan-m/JARVIS', 'ECC-Tools/ECC-Tools', diff --git a/scripts/ecc.js b/scripts/ecc.js index 7f5c41d0..c637ef27 100755 --- a/scripts/ecc.js +++ b/scripts/ecc.js @@ -130,7 +130,7 @@ Examples: ecc sessions ecc sessions session-active --json ecc work-items upsert linear-ecc-20 --source linear --source-id ECC-20 --title "Review control-plane contract" --status blocked - ecc work-items sync-github --repo affaan-m/everything-claude-code + ecc work-items sync-github --repo affaan-m/ECC ecc session-inspect claude:latest ecc loop-status --json ecc uninstall --target antigravity --dry-run diff --git a/scripts/operator-readiness-dashboard.js b/scripts/operator-readiness-dashboard.js index 7e05936c..7301a10a 100644 --- a/scripts/operator-readiness-dashboard.js +++ b/scripts/operator-readiness-dashboard.js @@ -548,7 +548,7 @@ function buildRequirements(rootDir, platformReport) { const publicationReadiness = readText(rootDir, 'docs/releases/2.0.0-rc.1/publication-readiness.md'); const namingMatrix = readText(rootDir, 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md'); const releasePublicationChecklist = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md'); - const releaseUrlLedger = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md'); + const releaseUrlLedger = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md'); const ownerQueueCleanup = readText(rootDir, 'docs/releases/2.0.0-rc.1/owner-queue-cleanup-2026-05-18.md'); const previewManifest = readText(rootDir, 'docs/releases/2.0.0-rc.1/preview-pack-manifest.md'); const previewPackSmoke = readText(rootDir, 'scripts/preview-pack-smoke.js'); @@ -685,11 +685,12 @@ function buildRequirements(rootDir, platformReport) { 'naming-and-publication-matrix plus release-name-plugin-publication checklist plus publication-readiness', includesAll(namingMatrix, ['Claude plugin', 'Codex plugin', 'npm package', 'Publication Paths']) && includesAll(releasePublicationChecklist, [ - 'Everything Claude Code (ECC)', + 'Ship `v2.0.0-rc.1` as **ECC**', + 'affaan-m/ECC', 'ecc-universal', 'claude plugin tag .claude-plugin --dry-run', 'codex plugin marketplace add', - 'Do not rename the repo or package until rc.1 is published' + 'Do not rename the npm package until rc.1 is published' ]) && includesAll(publicationReadiness, ['Claude plugin', 'Codex plugin']) ? 'in_progress' diff --git a/scripts/platform-audit.js b/scripts/platform-audit.js index 1f0b6dc1..fbb2d059 100644 --- a/scripts/platform-audit.js +++ b/scripts/platform-audit.js @@ -11,7 +11,7 @@ const { const SCHEMA_VERSION = 'ecc.platform-audit.v1'; const DEFAULT_REPOS = Object.freeze([ - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', 'affaan-m/agentshield', 'affaan-m/JARVIS', 'ECC-Tools/ECC-Tools', diff --git a/scripts/preview-pack-smoke.js b/scripts/preview-pack-smoke.js index f36c8f0e..946d35f9 100644 --- a/scripts/preview-pack-smoke.js +++ b/scripts/preview-pack-smoke.js @@ -28,7 +28,7 @@ const REQUIRED_ARTIFACTS = [ `${RELEASE_DIR}/publication-evidence-2026-05-18.md`, `${RELEASE_DIR}/operator-readiness-dashboard-2026-05-17.md`, `${RELEASE_DIR}/operator-readiness-dashboard-2026-05-18.md`, - `${RELEASE_DIR}/release-url-ledger-2026-05-18.md`, + `${RELEASE_DIR}/release-url-ledger-2026-05-19.md`, `${RELEASE_DIR}/naming-and-publication-matrix.md`, `${RELEASE_DIR}/release-name-plugin-publication-checklist-2026-05-18.md`, `${RELEASE_DIR}/x-thread.md`, diff --git a/tests/docs/ecc2-release-surface.test.js b/tests/docs/ecc2-release-surface.test.js index 438ccf53..dc3f4222 100644 --- a/tests/docs/ecc2-release-surface.test.js +++ b/tests/docs/ecc2-release-surface.test.js @@ -175,6 +175,7 @@ test('preview pack manifest assembles release, Hermes, and publication gates', ( 'scripts/preview-pack-smoke.js', 'docs/releases/2.0.0-rc.1/publication-readiness.md', 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md', + 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md', 'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md', ]) { assert.ok(manifest.includes(artifact), `preview pack manifest missing ${artifact}`); @@ -201,6 +202,8 @@ test('rc.1 quickstart gives a clone-to-cross-harness path', () => { for (const heading of ['Clone', 'Install', 'Verify', 'First Skill', 'Switch Harness']) { assert.ok(quickstart.includes(`## ${heading}`), `Missing ${heading} section`); } + assert.ok(quickstart.includes('git clone https://github.com/affaan-m/ECC.git')); + assert.ok(quickstart.includes('cd ECC')); assert.ok(quickstart.includes('node tests/run-all.js')); assert.ok(quickstart.includes('skills/hermes-imports/SKILL.md')); }); @@ -348,6 +351,35 @@ test('release name and plugin publication checklist freezes rc.1 surfaces', () = assert.ok(referenceArchitecture.includes('Keep the release/name/plugin publication checklist current')); }); +test('active release identity surfaces use canonical ECC repo URLs', () => { + const activeFiles = [ + 'README.md', + '.codex-plugin/README.md', + '.codex-plugin/plugin.json', + '.opencode/README.md', + '.opencode/package.json', + 'docs/business/metrics-and-sponsorship.md', + 'docs/releases/2.0.0-rc.1/quickstart.md', + 'docs/releases/2.0.0-rc.1/x-thread.md', + 'docs/releases/2.0.0-rc.1/publication-readiness.md', + 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md', + 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-19.md', + 'ecc2/Cargo.toml', + 'scripts/platform-audit.js', + 'scripts/discussion-audit.js', + ]; + + const offenders = []; + for (const relativePath of activeFiles) { + const source = read(relativePath); + if (source.includes('affaan-m/everything-claude-code')) { + offenders.push(relativePath); + } + } + + assert.deepStrictEqual(offenders, []); +}); + test('release checklist and roadmap link to publication readiness evidence gate', () => { const launchChecklist = read('docs/releases/2.0.0-rc.1/launch-checklist.md'); const roadmap = read('docs/ECC-2.0-GA-ROADMAP.md'); diff --git a/tests/plugin-manifest.test.js b/tests/plugin-manifest.test.js index 9e7b363e..e84bf307 100644 --- a/tests/plugin-manifest.test.js +++ b/tests/plugin-manifest.test.js @@ -134,6 +134,11 @@ test('agent.yaml version matches package.json', () => { assert.strictEqual(match[1], expectedVersion); }); +test('agent.yaml uses canonical ECC identity', () => { + const agentYamlSource = fs.readFileSync(agentYamlPath, 'utf8'); + assert.ok(/^name:\s*ecc$/m.test(agentYamlSource), 'Expected agent.yaml to use the ecc name'); +}); + test('VERSION file matches package.json', () => { const versionFile = fs.readFileSync(versionFilePath, 'utf8').trim(); assert.ok(versionFile, 'Expected VERSION file to be non-empty'); @@ -149,7 +154,7 @@ test('docs/SELECTIVE-INSTALL-ARCHITECTURE.md repoVersion example matches package test('.opencode/plugins/ecc-hooks.ts active plugin banner matches package.json', () => { const source = fs.readFileSync(opencodeHooksPluginPath, 'utf8'); - const match = source.match(new RegExp(`## Active Plugin: Everything Claude Code v(${semverPattern})`)); + const match = source.match(new RegExp(`## Active Plugin: ECC v(${semverPattern})`)); assert.ok(match, 'Expected .opencode/plugins/ecc-hooks.ts to declare an active plugin banner'); assert.strictEqual(match[1], expectedVersion); }); @@ -346,6 +351,11 @@ test('codex plugin.json has interface.displayName', () => { ); }); +test('codex plugin.json uses canonical ECC repo and display name', () => { + assert.strictEqual(codexPlugin.repository, 'https://github.com/affaan-m/ECC'); + assert.strictEqual(codexPlugin.interface.displayName, 'ECC'); +}); + // ── .mcp.json at plugin root ────────────────────────────────────────────────── // Per official docs: keep .mcp.json at plugin root, NOT inside .codex-plugin/ console.log('\n=== .mcp.json (plugin root) ===\n'); @@ -522,6 +532,10 @@ test('.codex-plugin README uses current marketplace add flow', () => { readme.includes('codex plugin marketplace add'), 'Expected .codex-plugin README to document codex plugin marketplace add', ); + assert.ok( + readme.includes('codex plugin marketplace add affaan-m/ECC'), + 'Expected .codex-plugin README to document the canonical ECC repo marketplace source', + ); assert.ok( readme.includes('Official Plugin Directory publishing is coming soon'), 'Expected .codex-plugin README to document current official directory status', diff --git a/tests/scripts/discussion-audit.test.js b/tests/scripts/discussion-audit.test.js index 1a6ff218..d52b5ff9 100644 --- a/tests/scripts/discussion-audit.test.js +++ b/tests/scripts/discussion-audit.test.js @@ -102,10 +102,10 @@ function runTests() { try { const shimPath = writeGhShim(rootDir, { - [discussionEnabledGhKey('affaan-m', 'everything-claude-code')]: { + [discussionEnabledGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true } } }, - [discussionGhKey('affaan-m', 'everything-claude-code')]: { + [discussionGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true, @@ -142,7 +142,7 @@ function runTests() { const parsed = JSON.parse(run([ '--json', '--repo', - 'affaan-m/everything-claude-code' + 'affaan-m/ECC' ], { cwd: rootDir, env: { @@ -165,10 +165,10 @@ function runTests() { try { const shimPath = writeGhShim(rootDir, { - [discussionEnabledGhKey('affaan-m', 'everything-claude-code')]: { + [discussionEnabledGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true } } }, - [discussionGhKey('affaan-m', 'everything-claude-code')]: { + [discussionGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true, @@ -195,7 +195,7 @@ function runTests() { const result = runProcess([ '--json', '--repo', - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', '--exit-code' ], { cwd: rootDir, @@ -220,10 +220,10 @@ function runTests() { try { const shimPath = writeGhShim(rootDir, { - [discussionEnabledGhKey('affaan-m', 'everything-claude-code')]: { + [discussionEnabledGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true } } }, - [discussionGhKey('affaan-m', 'everything-claude-code')]: { + [discussionGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true, @@ -237,7 +237,7 @@ function runTests() { '--write', outputPath, '--repo', - 'affaan-m/everything-claude-code' + 'affaan-m/ECC' ], { cwd: rootDir, env: { ECC_GH_SHIM: shimPath } diff --git a/tests/scripts/operator-readiness-dashboard.test.js b/tests/scripts/operator-readiness-dashboard.test.js index cda66efa..3c390760 100644 --- a/tests/scripts/operator-readiness-dashboard.test.js +++ b/tests/scripts/operator-readiness-dashboard.test.js @@ -83,11 +83,12 @@ function seedRepo(rootDir, overrides = {}) { 'docs/releases/2.0.0-rc.1/publication-readiness.md': 'Claude plugin Codex plugin release-name-plugin-publication-checklist-2026-05-18.md', 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md': 'Claude plugin Codex plugin npm package Publication Paths', 'docs/releases/2.0.0-rc.1/release-name-plugin-publication-checklist-2026-05-18.md': [ - 'Everything Claude Code (ECC)', + 'Ship `v2.0.0-rc.1` as **ECC**', + 'affaan-m/ECC', 'ecc-universal', 'claude plugin tag .claude-plugin --dry-run', 'codex plugin marketplace add', - 'Do not rename the repo or package until rc.1 is published' + 'Do not rename the npm package until rc.1 is published' ].join('\n'), 'docs/releases/2.0.0-rc.1/preview-pack-manifest.md': [ 'publication-readiness.md release-notes.md quickstart.md', @@ -228,7 +229,7 @@ function runTests() { '--allow-untracked', 'docs/drafts/', '--repo', - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', '--generated-at', '2026-05-15T00:00:00.000Z' ]); @@ -237,7 +238,7 @@ function runTests() { assert.strictEqual(parsed.root, path.resolve(rootDir)); assert.strictEqual(parsed.skipGithub, true); assert.deepStrictEqual(parsed.allowUntracked, ['docs/drafts/']); - assert.deepStrictEqual(parsed.repos, ['affaan-m/everything-claude-code']); + assert.deepStrictEqual(parsed.repos, ['affaan-m/ECC']); assert.strictEqual(parsed.generatedAt, '2026-05-15T00:00:00.000Z'); assert.throws(() => parseArgs(['node', 'script', '--format', 'xml']), /Invalid format/); diff --git a/tests/scripts/platform-audit.test.js b/tests/scripts/platform-audit.test.js index 521115b4..dde31584 100644 --- a/tests/scripts/platform-audit.test.js +++ b/tests/scripts/platform-audit.test.js @@ -177,7 +177,7 @@ function runTests() { `--root=${rootDir}`, '--json', '--repo', - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', '--max-open-prs', '5', '--max-open-issues', @@ -188,7 +188,7 @@ function runTests() { assert.strictEqual(parsed.format, 'json'); assert.strictEqual(parsed.root, path.resolve(rootDir)); - assert.deepStrictEqual(parsed.repos, ['affaan-m/everything-claude-code']); + assert.deepStrictEqual(parsed.repos, ['affaan-m/ECC']); assert.strictEqual(parsed.thresholds.maxOpenPrs, 5); assert.strictEqual(parsed.thresholds.maxOpenIssues, 6); assert.deepStrictEqual(parsed.allowUntracked, ['docs/drafts/']); @@ -256,12 +256,12 @@ function runTests() { try { seedRepo(projectRoot); const shimPath = writeGhShim(projectRoot, { - 'pr list --repo affaan-m/everything-claude-code --state open --json number,title,isDraft,mergeStateStatus,updatedAt,url,author': [], - 'issue list --repo affaan-m/everything-claude-code --state open --json number,title,updatedAt,url,author,labels': [], - [discussionEnabledGhKey('affaan-m', 'everything-claude-code')]: { + 'pr list --repo affaan-m/ECC --state open --json number,title,isDraft,mergeStateStatus,updatedAt,url,author': [], + 'issue list --repo affaan-m/ECC --state open --json number,title,updatedAt,url,author,labels': [], + [discussionEnabledGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true } } }, - [discussionGhKey('affaan-m', 'everything-claude-code')]: { + [discussionGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true, @@ -289,7 +289,7 @@ function runTests() { '--format=json', `--root=${projectRoot}`, '--repo', - 'affaan-m/everything-claude-code' + 'affaan-m/ECC' ], { cwd: projectRoot, env: { @@ -325,12 +325,12 @@ function runTests() { author: { login: 'contributor' } })); const shimPath = writeGhShim(projectRoot, { - 'pr list --repo affaan-m/everything-claude-code --state open --json number,title,isDraft,mergeStateStatus,updatedAt,url,author': prs, - 'issue list --repo affaan-m/everything-claude-code --state open --json number,title,updatedAt,url,author,labels': [], - [discussionEnabledGhKey('affaan-m', 'everything-claude-code')]: { + 'pr list --repo affaan-m/ECC --state open --json number,title,isDraft,mergeStateStatus,updatedAt,url,author': prs, + 'issue list --repo affaan-m/ECC --state open --json number,title,updatedAt,url,author,labels': [], + [discussionEnabledGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true } } }, - [discussionGhKey('affaan-m', 'everything-claude-code')]: { + [discussionGhKey('affaan-m', 'ECC')]: { data: { repository: { hasDiscussionsEnabled: true, @@ -358,7 +358,7 @@ function runTests() { '--format=json', `--root=${projectRoot}`, '--repo', - 'affaan-m/everything-claude-code', + 'affaan-m/ECC', '--max-open-prs', '2' ], {