chore(release): 2.2.3, ECC-only naming in pi/core and a longer npm publish wait (#3329)

pi/core and the bundled blueprint skill now refer to the project as ECC only;
the generated README no longer expands the name. Profile contents, package
name and paths are unchanged (123 skills, 24 commands).

The release workflows poll npm for up to five minutes after publish before
verifying the artifact. In 2.2.2 the check gave up after about 30 seconds while
npm was still processing, failing the run before latest was promoted and the
GitHub Release was created.

Version metadata synced to 2.2.3 with CHANGELOG, translated release headings
and release notes; skill-triggers registryDigest updated for the blueprint text.
This commit is contained in:
Affaan Mustafa authored and GitHub committed 2026-10-01 17:49:51 -05:00
1 parent c70874fae9
commit 0348d7b6d7
31 files changed
+114 -58

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@
"plugins": [ "plugins": [
{ {
"name": "ecc", "name": "ecc",
"version": "2.2.2", "version": "2.2.3",
"source": { "source": {
"source": "local", "source": "local",
"path": "./" "path": "./"
+1 -1
View File
@@ -12,7 +12,7 @@
"name": "ecc", "name": "ecc",
"source": "./", "source": "./",
"description": "Harness-native ECC operator layer - 68 agents, 293 skills, 94 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses", "description": "Harness-native ECC operator layer - 68 agents, 293 skills, 94 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses",
"version": "2.2.2", "version": "2.2.3",
"author": { "author": {
"name": "Affaan Mustafa", "name": "Affaan Mustafa",
"email": "me@affaanmustafa.com" "email": "me@affaanmustafa.com"
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc", "name": "ecc",
"version": "2.2.2", "version": "2.2.3",
"description": "Harness-native ECC plugin for engineering teams - 68 agents, 293 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses", "description": "Harness-native ECC plugin for engineering teams - 68 agents, 293 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses",
"author": { "author": {
"name": "Affaan Mustafa", "name": "Affaan Mustafa",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc", "name": "ecc",
"version": "2.2.2", "version": "2.2.3",
"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.", "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": { "author": {
"name": "Affaan Mustafa", "name": "Affaan Mustafa",
+4 -4
View File
@@ -261,7 +261,7 @@ jobs:
PACKAGE_VERSION: ${{ needs.verify.outputs.package_version }} PACKAGE_VERSION: ${{ needs.verify.outputs.package_version }}
run: | run: |
REGISTRY_INTEGRITY="" REGISTRY_INTEGRITY=""
for ATTEMPT in 1 2 3 4 5 6; do for ATTEMPT in $(seq 1 30); do
set +e set +e
REGISTRY_INTEGRITY=$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" dist.integrity 2>&1) REGISTRY_INTEGRITY=$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" dist.integrity 2>&1)
NPM_STATUS=$? NPM_STATUS=$?
@@ -269,12 +269,12 @@ jobs:
if [ "$NPM_STATUS" -eq 0 ]; then if [ "$NPM_STATUS" -eq 0 ]; then
break break
fi fi
if [ "$ATTEMPT" -eq 6 ]; then if [ "$ATTEMPT" -eq 30 ]; then
echo "::error::Published npm artifact was not readable after six attempts" echo "::error::Published npm artifact was not readable after five minutes"
printf '%s\n' "$REGISTRY_INTEGRITY" printf '%s\n' "$REGISTRY_INTEGRITY"
exit "$NPM_STATUS" exit "$NPM_STATUS"
fi fi
sleep 5 sleep 10
done done
ECC_REGISTRY_INTEGRITY="$REGISTRY_INTEGRITY" node -e "const crypto = require('crypto'); const fs = require('fs'); const expected = process.env.ECC_REGISTRY_INTEGRITY; if (!/^sha512-[A-Za-z0-9+/]+={0,2}$/.test(expected || '')) throw new Error('Invalid published registry integrity'); const actual = 'sha512-' + crypto.createHash('sha512').update(fs.readFileSync(process.env.ECC_RELEASE_PACKAGE)).digest('base64'); if (actual !== expected) throw new Error('Published npm artifact does not match tested candidate')" ECC_REGISTRY_INTEGRITY="$REGISTRY_INTEGRITY" node -e "const crypto = require('crypto'); const fs = require('fs'); const expected = process.env.ECC_REGISTRY_INTEGRITY; if (!/^sha512-[A-Za-z0-9+/]+={0,2}$/.test(expected || '')) throw new Error('Invalid published registry integrity'); const actual = 'sha512-' + crypto.createHash('sha512').update(fs.readFileSync(process.env.ECC_RELEASE_PACKAGE)).digest('base64'); if (actual !== expected) throw new Error('Published npm artifact does not match tested candidate')"
+4 -4
View File
@@ -253,7 +253,7 @@ jobs:
PACKAGE_VERSION: ${{ needs.verify.outputs.package_version }} PACKAGE_VERSION: ${{ needs.verify.outputs.package_version }}
run: | run: |
REGISTRY_INTEGRITY="" REGISTRY_INTEGRITY=""
for ATTEMPT in 1 2 3 4 5 6; do for ATTEMPT in $(seq 1 30); do
set +e set +e
REGISTRY_INTEGRITY=$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" dist.integrity 2>&1) REGISTRY_INTEGRITY=$(npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" dist.integrity 2>&1)
NPM_STATUS=$? NPM_STATUS=$?
@@ -261,12 +261,12 @@ jobs:
if [ "$NPM_STATUS" -eq 0 ]; then if [ "$NPM_STATUS" -eq 0 ]; then
break break
fi fi
if [ "$ATTEMPT" -eq 6 ]; then if [ "$ATTEMPT" -eq 30 ]; then
echo "::error::Published npm artifact was not readable after six attempts" echo "::error::Published npm artifact was not readable after five minutes"
printf '%s\n' "$REGISTRY_INTEGRITY" printf '%s\n' "$REGISTRY_INTEGRITY"
exit "$NPM_STATUS" exit "$NPM_STATUS"
fi fi
sleep 5 sleep 10
done done
ECC_REGISTRY_INTEGRITY="$REGISTRY_INTEGRITY" node -e "const crypto = require('crypto'); const fs = require('fs'); const expected = process.env.ECC_REGISTRY_INTEGRITY; if (!/^sha512-[A-Za-z0-9+/]+={0,2}$/.test(expected || '')) throw new Error('Invalid published registry integrity'); const actual = 'sha512-' + crypto.createHash('sha512').update(fs.readFileSync(process.env.ECC_RELEASE_PACKAGE)).digest('base64'); if (actual !== expected) throw new Error('Published npm artifact does not match tested candidate')" ECC_REGISTRY_INTEGRITY="$REGISTRY_INTEGRITY" node -e "const crypto = require('crypto'); const fs = require('fs'); const expected = process.env.ECC_REGISTRY_INTEGRITY; if (!/^sha512-[A-Za-z0-9+/]+={0,2}$/.test(expected || '')) throw new Error('Invalid published registry integrity'); const actual = 'sha512-' + crypto.createHash('sha512').update(fs.readFileSync(process.env.ECC_RELEASE_PACKAGE)).digest('base64'); if (actual !== expected) throw new Error('Published npm artifact does not match tested candidate')"
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@opencode-ai/plugin": "^1.4.3", "@opencode-ai/plugin": "^1.4.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"description": "ECC plugin for OpenCode - agents, commands, hooks, and skills", "description": "ECC plugin for OpenCode - agents, commands, hooks, and skills",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
+1 -1
View File
@@ -541,7 +541,7 @@ export const ECCHooksPlugin: ECCHooksPluginFn = async ({
const contextBlock = [ const contextBlock = [
"# ECC Context (preserve across compaction)", "# ECC Context (preserve across compaction)",
"", "",
"## Active Plugin: ECC v2.2.2", "## Active Plugin: ECC v2.2.3",
"- Hooks: file.edited, tool.execute.before/after, session.created/idle/deleted, shell.env, compacting, permission.ask", "- 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", "- 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)", "- 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)",
+1 -1
View File
@@ -2,7 +2,7 @@
This is a **production-ready AI coding plugin** providing 68 specialized agents, 293 skills, 94 commands, and automated hook workflows for software development. This is a **production-ready AI coding plugin** providing 68 specialized agents, 293 skills, 94 commands, and automated hook workflows for software development.
**Version:** 2.2.2 **Version:** 2.2.3
## Core Principles ## Core Principles
+14
View File
@@ -1,5 +1,19 @@
# Changelog # Changelog
## 2.2.3 - 2026-10-01
### Changed
#### Naming
- `pi/core` refers to the project as ECC only. The generated README and the bundled `blueprint` skill no longer expand the name; profile contents, package name (`ecc-pi-core`) and paths are unchanged.
### Fixed
#### Release workflow
- Poll the npm registry for up to five minutes after `npm publish` before verifying the published artifact, so a slow registry no longer fails the run before `latest` is promoted and the GitHub Release is created.
## 2.2.2 - 2026-09-15 ## 2.2.2 - 2026-09-15
### Added ### Added
+23 -23
View File
@@ -171,7 +171,7 @@ Access to 68 agents, 293 skills, and 94 legacy command shims, plus hooks, rules,
For Claude Code plugin setup, updates, scope changes, and hook-profile changes: For Claude Code plugin setup, updates, scope changes, and hook-profile changes:
```bash ```bash
npx ecc-universal@2.2.2 setup npx ecc-universal@2.2.3 setup
``` ```
#### Windows first-time walkthrough #### Windows first-time walkthrough
@@ -191,7 +191,7 @@ If you are new to command-line tools, use this copy-and-paste path:
4. Run the guided installer: 4. Run the guided installer:
```powershell ```powershell
npx ecc-universal@2.2.2 setup npx ecc-universal@2.2.3 setup
``` ```
5. For a typical personal setup, choose **Global user**, choose **Standard** hooks, and confirm. 5. For a typical personal setup, choose **Global user**, choose **Standard** hooks, and confirm.
@@ -209,12 +209,12 @@ ECC 2.2 supports the same guided setup through modern package runners:
| Package runner | Guided setup command | | Package runner | Guided setup command |
|---|---| |---|---|
| npm / npx | `npx ecc-universal@2.2.2 setup` | | npm / npx | `npx ecc-universal@2.2.3 setup` |
| pnpm | `pnpm dlx ecc-universal@2.2.2 setup` | | pnpm | `pnpm dlx ecc-universal@2.2.3 setup` |
| Yarn 2+ | `yarn dlx ecc-universal@2.2.2 setup` | | Yarn 2+ | `yarn dlx ecc-universal@2.2.3 setup` |
| Bun | `bunx ecc-universal@2.2.2 setup` | | Bun | `bunx ecc-universal@2.2.3 setup` |
The examples select [the published ECC 2.2.2 release](https://www.npmjs.com/package/ecc-universal/v/2.2.2), matching this repository's release version. A version pin is not a security audit or an integrity check. Review the release source and registry integrity before running package code; use a reviewed checkout for unreleased changes. The examples select [the published ECC 2.2.3 release](https://www.npmjs.com/package/ecc-universal/v/2.2.3), matching this repository's release version. A version pin is not a security audit or an integrity check. Review the release source and registry integrity before running package code; use a reviewed checkout for unreleased changes.
Yarn Classic 1 does not provide `yarn dlx`; use `npx`, install the package globally, or upgrade Yarn for a temporary one-shot run. Yarn Classic 1 does not provide `yarn dlx`; use `npx`, install the package globally, or upgrade Yarn for a temporary one-shot run.
@@ -223,7 +223,7 @@ The wizard inventories the official marketplace and every native Claude install
To configure more than one coding agent in one reviewed flow, use the multi-harness wizard: To configure more than one coding agent in one reviewed flow, use the multi-harness wizard:
```bash ```bash
npx ecc-universal@2.2.2 install --guided npx ecc-universal@2.2.3 install --guided
``` ```
It lets you select any combination of Claude Code, Codex, and Kimi Code, shows each install channel and destination, preflights every selection before the first write, and asks for one final confirmation. It lets you select any combination of Claude Code, Codex, and Kimi Code, shows each install channel and destination, preflights every selection before the first write, and asks for one final confirmation.
@@ -237,7 +237,7 @@ It lets you select any combination of Claude Code, Codex, and Kimi Code, shows e
For automation, make every provider-specific choice explicit: For automation, make every provider-specific choice explicit:
```bash ```bash
npx ecc-universal@2.2.2 install --guided \ npx ecc-universal@2.2.3 install --guided \
--harness claude --harness codex --harness kimi \ --harness claude --harness codex --harness kimi \
--claude-scope local --claude-hooks standard \ --claude-scope local --claude-hooks standard \
--profile core --yes --profile core --yes
@@ -246,16 +246,16 @@ npx ecc-universal@2.2.2 install --guided \
Verify the native guided Codex path and managed Kimi path without writing first: Verify the native guided Codex path and managed Kimi path without writing first:
```bash ```bash
npx ecc-universal@2.2.2 install --guided --harness codex --dry-run npx ecc-universal@2.2.3 install --guided --harness codex --dry-run
npx ecc-universal@2.2.2 install --profile core --target kimi --dry-run npx ecc-universal@2.2.3 install --profile core --target kimi --dry-run
``` ```
Additional package-name commands are also available through the 2.2 alias: Additional package-name commands are also available through the 2.2 alias:
```bash ```bash
npx ecc-universal@2.2.2 consult "security reviews" --target claude npx ecc-universal@2.2.3 consult "security reviews" --target claude
npx ecc-universal@2.2.2 install --profile minimal --target claude --with capability:machine-learning npx ecc-universal@2.2.3 install --profile minimal --target claude --with capability:machine-learning
npx ecc-universal@2.2.2 doctor --target kimi npx ecc-universal@2.2.3 doctor --target kimi
``` ```
Do not use `npx ecc-install --profile minimal --target claude`: `ecc-install` is a binary name inside `ecc-universal`, not a separately published npm package. Do not use `npx ecc-install --profile minimal --target claude`: `ecc-install` is a binary name inside `ecc-universal`, not a separately published npm package.
@@ -427,7 +427,7 @@ Deep per-harness notes (feature parity, hook adapters, limitations) live in [Pla
Use this when you want ECC's rules, agents, commands, platform config, and core workflows without runtime hooks: Use this when you want ECC's rules, agents, commands, platform config, and core workflows without runtime hooks:
```bash ```bash
npx ecc-universal@2.2.2 install --profile minimal --target claude npx ecc-universal@2.2.3 install --profile minimal --target claude
``` ```
From a source checkout, the equivalent command is: From a source checkout, the equivalent command is:
@@ -615,11 +615,11 @@ If you installed from the universal package, run these commands from the same
project directory used for installation: project directory used for installation:
```bash ```bash
npx ecc-universal@2.2.2 list-installed npx ecc-universal@2.2.3 list-installed
npx ecc-universal@2.2.2 doctor npx ecc-universal@2.2.3 doctor
npx ecc-universal@2.2.2 repair npx ecc-universal@2.2.3 repair
npx ecc-universal@2.2.2 uninstall --dry-run npx ecc-universal@2.2.3 uninstall --dry-run
npx ecc-universal@2.2.2 uninstall npx ecc-universal@2.2.3 uninstall
``` ```
From a source checkout, inspect the managed state before reinstalling: From a source checkout, inspect the managed state before reinstalling:
@@ -808,7 +808,7 @@ The `ito-compute-cli` package is currently unpublished. Build it locally from th
## What's New ## What's New
Current release: **2.2.2** (2026-08-31). Highlights of the 2.2 line: Current release: **2.2.3** (2026-10-01). Highlights of the 2.2 line:
- Guided, manifest-driven setup across Claude Code, Codex, and Kimi Code, with install-state ownership, doctor, repair, and uninstall. - Guided, manifest-driven setup across Claude Code, Codex, and Kimi Code, with install-state ownership, doctor, repair, and uninstall.
- Native Antigravity install, a thin Pi adapter, and the packed-artifact release gate tested on Linux, macOS, and Windows. - Native Antigravity install, a thin Pi adapter, and the packed-artifact release gate tested on Linux, macOS, and Windows.
@@ -1225,7 +1225,7 @@ ECC's Memory Vault gives Claude, Codex, Hermes, OpenClaw, Kimi, and other harnes
Skill-only, minimal, manual, and Claude plugin installs do not put the Memory Vault runtime on `PATH`. Install the npm runtime separately before using the CLI or optional MCP server: Skill-only, minimal, manual, and Claude plugin installs do not put the Memory Vault runtime on `PATH`. Install the npm runtime separately before using the CLI or optional MCP server:
```bash ```bash
npm install -g ecc-universal@2.2.2 npm install -g ecc-universal@2.2.3
ecc memory init --scope project ecc memory init --scope project
ecc memory search "authentication migration" --target-harness codex ecc memory search "authentication migration" --target-harness codex
ecc memory doctor ecc memory doctor
@@ -1625,7 +1625,7 @@ opencode
**Option 2: Install as npm package** **Option 2: Install as npm package**
```bash ```bash
npm install ecc-universal@2.2.2 npm install ecc-universal@2.2.3
``` ```
Then add to your `opencode.json`: Then add to your `opencode.json`:
+4
View File
@@ -80,6 +80,10 @@
## 最新动态 ## 最新动态
### v2.2.3 — pi/core 配置与发布可靠性(2026年10月)
`pi/core` 配置现在仅以 ECC 称呼本项目,发布工作流在校验已发布的包之前会等待 npm 最多五分钟。
### v2.2.2 — 引导式多 Harness 安装(2026年8月) ### v2.2.2 — 引导式多 Harness 安装(2026年8月)
新增可审查的 Claude Code、Codex 与 Kimi Code 多 Harness 安装流程,并提供同步的 npm 命令入口。 新增可审查的 Claude Code、Codex 与 Kimi Code 多 Harness 安装流程,并提供同步的 npm 命令入口。
+1 -1
View File
@@ -1 +1 @@
2.2.2 2.2.3
+1 -1
View File
@@ -1,6 +1,6 @@
spec_version: "0.1.0" spec_version: "0.1.0"
name: ecc name: ecc
version: 2.2.2 version: 2.2.3
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." 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 author: affaan-m
license: MIT license: MIT
+1 -1
View File
@@ -703,7 +703,7 @@ Suggested payload:
"skippedModules": [] "skippedModules": []
}, },
"source": { "source": {
"repoVersion": "2.2.2", "repoVersion": "2.2.3",
"repoCommit": "git-sha", "repoCommit": "git-sha",
"manifestVersion": 1 "manifestVersion": 1
}, },
+4
View File
@@ -79,6 +79,10 @@ Este repositório contém apenas o código. Os guias explicam tudo.
## O Que Há de Novo ## O Que Há de Novo
### v2.2.3 — Perfil pi/core e Confiabilidade de Releases (Out 2026)
O perfil `pi/core` agora se refere ao projeto apenas como ECC, e o workflow de release aguarda até cinco minutos pelo npm antes de verificar o pacote publicado.
### v2.2.2 — Instalação Guiada para Múltiplos Harnesses (Ago 2026) ### v2.2.2 — Instalação Guiada para Múltiplos Harnesses (Ago 2026)
Adiciona uma instalação revisável para Claude Code, Codex e Kimi Code, com uma entrada de comando npm sincronizada. Adiciona uma instalação revisável para Claude Code, Codex e Kimi Code, com uma entrada de comando npm sincronizada.
+26
View File
@@ -0,0 +1,26 @@
# ECC 2.2.3
ECC 2.2.3 is a naming and release-reliability update. The project is called ECC
everywhere it ships, starting with the `pi/core` profile, and the release
workflow now waits long enough for npm to serve a freshly published version.
## Naming
- `pi/core` no longer expands the project name: its README and the bundled
`blueprint` skill refer to ECC only. The profile contents are otherwise
unchanged: 123 curated skills and 24 prompt commands, 35,006 characters of
skill description text.
- Downstream packagers need no changes. The package is still `ecc-pi-core`, the
directory is still `pi/core/`, and existing install paths keep working.
## Release workflow
- After `npm publish`, the release workflow polls the registry for up to five
minutes before verifying the published artifact. In 2.2.2 it gave up after
about 30 seconds while npm was still processing the upload, so the run failed
before promoting `latest` and creating the GitHub Release, and had to be
re-run.
Downstream consumption is unchanged: poll `/releases`, download
`archive/refs/tags/vX.Y.Z.tar.gz`, pin its sha256, copy `pi/core/`, and load it
offline.
+1 -1
View File
@@ -2,7 +2,7 @@
Bu, yazılım geliştirme için 68 özel agent, 293 skill, 94 command ve otomatik hook iş akışları sağlayan **üretime hazır bir AI kodlama eklentisidir**. Bu, yazılım geliştirme için 68 özel agent, 293 skill, 94 command ve otomatik hook iş akışları sağlayan **üretime hazır bir AI kodlama eklentisidir**.
**Sürüm:** 2.2.2 **Sürüm:** 2.2.3
## Temel İlkeler ## Temel İlkeler
+4
View File
@@ -79,6 +79,10 @@ Bu repository yalnızca ham kodu içerir. Rehberler her şeyi açıklıyor.
## Yenilikler ## Yenilikler
### v2.2.3 — pi/core Profili ve Sürüm Güvenilirliği (Eki 2026)
`pi/core` profili projeyi yalnızca ECC olarak adlandırır; sürüm iş akışı yayımlanan paketi doğrulamadan önce npm için beş dakikaya kadar bekler.
### v2.2.2 — Rehberli Çoklu Harness Kurulumu (Ağu 2026) ### v2.2.2 — Rehberli Çoklu Harness Kurulumu (Ağu 2026)
Claude Code, Codex ve Kimi Code için incelenebilir çoklu harness kurulumu ve eşitlenmiş npm komut girişi eklendi. Claude Code, Codex ve Kimi Code için incelenebilir çoklu harness kurulumu ve eşitlenmiş npm komut girişi eklendi.
+1 -1
View File
@@ -2,7 +2,7 @@
这是一个**生产就绪的 AI 编码插件**,提供 68 个专业代理、293 项技能、94 条命令以及自动化钩子工作流,用于软件开发。 这是一个**生产就绪的 AI 编码插件**,提供 68 个专业代理、293 项技能、94 条命令以及自动化钩子工作流,用于软件开发。
**版本:** 2.2.2 **版本:** 2.2.3
## 核心原则 ## 核心原则
+5 -1
View File
@@ -81,6 +81,10 @@
## 最新动态 ## 最新动态
### v2.2.3 — pi/core 配置与发布可靠性(2026年10月)
`pi/core` 配置现在仅以 ECC 称呼本项目,发布工作流在校验已发布的包之前会等待 npm 最多五分钟。
### v2.2.2 — 引导式多 Harness 安装(2026年8月) ### v2.2.2 — 引导式多 Harness 安装(2026年8月)
新增可审查的 Claude Code、Codex 与 Kimi Code 多 Harness 安装流程,并提供同步的 npm 命令入口。 新增可审查的 Claude Code、Codex 与 Kimi Code 多 Harness 安装流程,并提供同步的 npm 命令入口。
@@ -1292,7 +1296,7 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以
| **上下文文件** | CLAUDE.md + AGENTS.md | AGENTS.md | AGENTS.md | AGENTS.md | | **上下文文件** | CLAUDE.md + AGENTS.md | AGENTS.md | AGENTS.md | AGENTS.md |
| **秘密检测** | 基于钩子 | beforeSubmitPrompt 钩子 | 基于沙箱 | 基于钩子 | | **秘密检测** | 基于钩子 | beforeSubmitPrompt 钩子 | 基于沙箱 | 基于钩子 |
| **自动格式化** | PostToolUse 钩子 | afterFileEdit 钩子 | N/A | file.edited 钩子 | | **自动格式化** | PostToolUse 钩子 | afterFileEdit 钩子 | N/A | file.edited 钩子 |
| **版本** | 插件 | 插件 | 参考配置 | 2.2.2 | | **版本** | 插件 | 插件 | 参考配置 | 2.2.3 |
**关键架构决策:** **关键架构决策:**
@@ -1 +1 @@
{"coverage":{"skills":293,"withTriggers":32},"generatedAt":"2026-09-24T23:51:22.784Z","id":"skill-triggers@1","model":{"effort":null,"id":"hand-seeded","source":"manual-curation-pending-regeneration"},"registryDigest":"05b0793ddaad74a794b6f7fcb4f4704b0c1ddeba4edec8347859eebbc394c47e","schemaVersion":1,"triggers":{"skill:api-connector-builder":["add api integration","new provider connector","match existing integration pattern"],"skill:api-design":["rest endpoint design","pagination api","status codes","api versioning","rate limiting api","resource naming","filtering api","api error responses","offset pagination","limit query parameter","pagination defaults"],"skill:backend-patterns":["express api","node backend architecture","nextjs api routes","server side patterns","data access layer","static file server","url path handling","file server"],"skill:browser-qa":["deployed feature test","visual regression screenshots","core web vitals check","axe accessibility audit","ship do not ship","staging verification"],"skill:canary-watch":["post deploy monitoring","smoke test url","production url check","console errors production","sse stream check","after deploy verification"],"skill:code-tour":["onboarding walkthrough","explain subsystem","architecture tour","pr walkthrough","rca tour"],"skill:coding-standards":["code review standards","naming conventions","readability review","immutability conventions","fix naming typo","export naming","consistent exports"],"skill:content-hash-cache-pattern":["cache file processing","content addressed cache","sha256 hash cache"],"skill:database-migrations":["zero downtime migration","schema change production","add column large table","backfill data","expand contract","concurrent index","migration rollback","prisma migration","django migration"],"skill:deployment-patterns":["ci cd setup","dockerize app","health checks","rollback strategy","production readiness","deploy pipeline","containerize application"],"skill:design-system":["design tokens","visual consistency audit","css custom properties","ui audit","design system bootstrap"],"skill:django-patterns":["django orm","drf api","django rest framework","django caching","django signals","django middleware"],"skill:django-security":["django authentication","csrf protection","sql injection prevention","xss prevention","django deployment security","role based access control","authorization middleware","permissions checks"],"skill:docker-patterns":["dockerfile review","docker compose setup","container security","multi service orchestration"],"skill:error-handling":["error types","retry logic","circuit breaker","user facing errors","exception handling patterns","typed errors","error boundaries","go error handling","custom error class","error codes","config validation"],"skill:evm-token-decimals":["token decimals","wei conversion","erc20 balance off","bridge token precision"],"skill:frontend-a11y":["aria attributes","screen reader support","focus management","semantic html","form labeling","keyboard navigation react","a11y lint errors"],"skill:git-workflow":["merge vs rebase","commit conventions","resolve merge conflict","branching strategy","clean up commits","pull request cleanup","git history tidy"],"skill:hexagonal-architecture":["ports and adapters","dependency injection boundaries","decouple domain from io"],"skill:kubernetes-patterns":["kubernetes manifests","kubectl debugging","pod probes","k8s rbac","autoscaling config","configmap secrets"],"skill:orch-fix-defect":["fix a bug","broken behavior","regression fix","reproduce bug","defect repair"],"skill:postgres-patterns":["slow postgres query","query optimization","index design","rls policies","supabase schema","postgres indexing","database performance","schema design postgres","postgres driver","node postgres","query planner"],"skill:python-patterns":["pythonic code","pep 8","type hints python","python code review","idiomatic python"],"skill:python-testing":["pytest fixtures","mocking python","parametrized tests","coverage python","tdd python"],"skill:redis-patterns":["cache aside pattern","distributed lock","redis rate limiting","cache invalidation"],"skill:regex-vs-llm-structured-text":["parse invoice","extract receipt data","text extraction pipeline","parse form fields","cheap document parser","extract table data","parse log lines","parse access logs","common log format","log line parsing"],"skill:rust-patterns":["rust ownership","borrow checker","rust error handling","traits rust","rust concurrency","idiomatic rust"],"skill:search-first":["find existing library","npm package research","before writing custom code","evaluate existing tools","add dependency research"],"skill:security-review":["security audit","authentication review","sanitize user input","secrets handling","payment security checklist","prevent injection attacks","secure api endpoints","authn authz review","vulnerability checklist","input validation security","parameterized queries","sql injection"],"skill:securityLine truncated {"coverage":{"skills":293,"withTriggers":32},"generatedAt":"2026-09-24T23:51:22.784Z","id":"skill-triggers@1","model":{"effort":null,"id":"hand-seeded","source":"manual-curation-pending-regeneration"},"registryDigest":"344ffff25203f57185b223669d0e18724835876019f95482ab109acc03f54bb4","schemaVersion":1,"triggers":{"skill:api-connector-builder":["add api integration","new provider connector","match existing integration pattern"],"skill:api-design":["rest endpoint design","pagination api","status codes","api versioning","rate limiting api","resource naming","filtering api","api error responses","offset pagination","limit query parameter","pagination defaults"],"skill:backend-patterns":["express api","node backend architecture","nextjs api routes","server side patterns","data access layer","static file server","url path handling","file server"],"skill:browser-qa":["deployed feature test","visual regression screenshots","core web vitals check","axe accessibility audit","ship do not ship","staging verification"],"skill:canary-watch":["post deploy monitoring","smoke test url","production url check","console errors production","sse stream check","after deploy verification"],"skill:code-tour":["onboarding walkthrough","explain subsystem","architecture tour","pr walkthrough","rca tour"],"skill:coding-standards":["code review standards","naming conventions","readability review","immutability conventions","fix naming typo","export naming","consistent exports"],"skill:content-hash-cache-pattern":["cache file processing","content addressed cache","sha256 hash cache"],"skill:database-migrations":["zero downtime migration","schema change production","add column large table","backfill data","expand contract","concurrent index","migration rollback","prisma migration","django migration"],"skill:deployment-patterns":["ci cd setup","dockerize app","health checks","rollback strategy","production readiness","deploy pipeline","containerize application"],"skill:design-system":["design tokens","visual consistency audit","css custom properties","ui audit","design system bootstrap"],"skill:django-patterns":["django orm","drf api","django rest framework","django caching","django signals","django middleware"],"skill:django-security":["django authentication","csrf protection","sql injection prevention","xss prevention","django deployment security","role based access control","authorization middleware","permissions checks"],"skill:docker-patterns":["dockerfile review","docker compose setup","container security","multi service orchestration"],"skill:error-handling":["error types","retry logic","circuit breaker","user facing errors","exception handling patterns","typed errors","error boundaries","go error handling","custom error class","error codes","config validation"],"skill:evm-token-decimals":["token decimals","wei conversion","erc20 balance off","bridge token precision"],"skill:frontend-a11y":["aria attributes","screen reader support","focus management","semantic html","form labeling","keyboard navigation react","a11y lint errors"],"skill:git-workflow":["merge vs rebase","commit conventions","resolve merge conflict","branching strategy","clean up commits","pull request cleanup","git history tidy"],"skill:hexagonal-architecture":["ports and adapters","dependency injection boundaries","decouple domain from io"],"skill:kubernetes-patterns":["kubernetes manifests","kubectl debugging","pod probes","k8s rbac","autoscaling config","configmap secrets"],"skill:orch-fix-defect":["fix a bug","broken behavior","regression fix","reproduce bug","defect repair"],"skill:postgres-patterns":["slow postgres query","query optimization","index design","rls policies","supabase schema","postgres indexing","database performance","schema design postgres","postgres driver","node postgres","query planner"],"skill:python-patterns":["pythonic code","pep 8","type hints python","python code review","idiomatic python"],"skill:python-testing":["pytest fixtures","mocking python","parametrized tests","coverage python","tdd python"],"skill:redis-patterns":["cache aside pattern","distributed lock","redis rate limiting","cache invalidation"],"skill:regex-vs-llm-structured-text":["parse invoice","extract receipt data","text extraction pipeline","parse form fields","cheap document parser","extract table data","parse log lines","parse access logs","common log format","log line parsing"],"skill:rust-patterns":["rust ownership","borrow checker","rust error handling","traits rust","rust concurrency","idiomatic rust"],"skill:search-first":["find existing library","npm package research","before writing custom code","evaluate existing tools","add dependency research"],"skill:security-review":["security audit","authentication review","sanitize user input","secrets handling","payment security checklist","prevent injection attacks","secure api endpoints","authn authz review","vulnerability checklist","input validation security","parameterized queries","sql injection"],"skill:securityLine truncated
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@iarna/toml": "2.2.5", "@iarna/toml": "2.2.5",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc-universal", "name": "ecc-universal",
"version": "2.2.2", "version": "2.2.3",
"description": "Harness-native agent operating system for Codex, OpenCode, Cursor, Gemini, Claude Code, and terminal workflows - skills, hooks, rules, MCP conventions, and operator control-plane patterns", "description": "Harness-native agent operating system for Codex, OpenCode, Cursor, Gemini, Claude Code, and terminal workflows - skills, hooks, rules, MCP conventions, and operator control-plane patterns",
"main": ".opencode/dist/index.js", "main": ".opencode/dist/index.js",
"types": ".opencode/dist/index.d.ts", "types": ".opencode/dist/index.d.ts",
+1 -1
View File
@@ -1,6 +1,6 @@
# ecc-pi-core # ecc-pi-core
A curated, Pi-native profile of ECC (Everything Claude Code): 123 portable A curated, Pi-native profile of ECC: 123 portable
engineering skills and 24 pure prompt-workflow commands, with no extensions, engineering skills and 24 pure prompt-workflow commands, with no extensions,
no hooks, no runtime downloads, and no network or SaaS dependencies. no hooks, no runtime downloads, and no network or SaaS dependencies.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc-pi-core", "name": "ecc-pi-core",
"version": "2.2.2", "version": "2.2.3",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [
"pi-package", "pi-package",
+2 -2
View File
@@ -64,7 +64,7 @@ Produces a plan with parallel steps where possible (e.g., "implement Anthropic p
## Installation ## Installation
This skill ships with Everything Claude Code. No separate installation is needed when ECC is installed. This skill ships with ECC. No separate installation is needed when ECC is installed.
### Full ECC install ### Full ECC install
@@ -77,7 +77,7 @@ test -f skills/blueprint/SKILL.md
To update later, review the ECC diff before updating: To update later, review the ECC diff before updating:
```bash ```bash
cd /path/to/everything-claude-code cd /path/to/ECC
git fetch origin main git fetch origin main
git log --oneline HEAD..origin/main # review new commits before updating git log --oneline HEAD..origin/main # review new commits before updating
git checkout <reviewed-full-sha> # pin to a specific reviewed commit git checkout <reviewed-full-sha> # pin to a specific reviewed commit
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ecc", "name": "ecc",
"version": "2.2.2", "version": "2.2.3",
"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.", "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": { "author": {
"name": "Affaan Mustafa", "name": "Affaan Mustafa",
+1 -1
View File
@@ -172,7 +172,7 @@ const descChars = skillDescriptions.reduce((n, d) => n + d.length, 0);
fs.writeFileSync(path.join(tmpDir, 'README.md'), `# ecc-pi-core fs.writeFileSync(path.join(tmpDir, 'README.md'), `# ecc-pi-core
A curated, Pi-native profile of ECC (Everything Claude Code): ${skillCount} portable A curated, Pi-native profile of ECC: ${skillCount} portable
engineering skills and ${commandCount} pure prompt-workflow commands, with no extensions, engineering skills and ${commandCount} pure prompt-workflow commands, with no extensions,
no hooks, no runtime downloads, and no network or SaaS dependencies. no hooks, no runtime downloads, and no network or SaaS dependencies.
+2 -2
View File
@@ -64,7 +64,7 @@ Produces a plan with parallel steps where possible (e.g., "implement Anthropic p
## Installation ## Installation
This skill ships with Everything Claude Code. No separate installation is needed when ECC is installed. This skill ships with ECC. No separate installation is needed when ECC is installed.
### Full ECC install ### Full ECC install
@@ -77,7 +77,7 @@ test -f skills/blueprint/SKILL.md
To update later, review the ECC diff before updating: To update later, review the ECC diff before updating:
```bash ```bash
cd /path/to/everything-claude-code cd /path/to/ECC
git fetch origin main git fetch origin main
git log --oneline HEAD..origin/main # review new commits before updating git log --oneline HEAD..origin/main # review new commits before updating
git checkout <reviewed-full-sha> # pin to a specific reviewed commit git checkout <reviewed-full-sha> # pin to a specific reviewed commit