mirror of
https://github.com/affaan-m/ECC.git
synced 2026-08-17 21:15:40 +02:00
fix: ship new Itô skills through install manifests (#2704)
* fix: ship new Ito skills through install manifests * ci: audit shipped dependencies separately from tooling * test(release): pass previous version to heading helper
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
{
|
||||
"name": "ecc",
|
||||
"source": "./",
|
||||
"description": "Harness-native ECC operator layer - 67 agents, 282 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 - 67 agents, 284 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.0",
|
||||
"author": {
|
||||
"name": "Affaan Mustafa",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ecc",
|
||||
"version": "2.2.0",
|
||||
"description": "Harness-native ECC plugin for engineering teams - 67 agents, 282 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 - 67 agents, 284 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses",
|
||||
"author": {
|
||||
"name": "Affaan Mustafa",
|
||||
"url": "https://x.com/affaanmustafa"
|
||||
|
||||
@@ -215,7 +215,9 @@ jobs:
|
||||
- name: Run npm audit
|
||||
run: |
|
||||
npm audit signatures
|
||||
npm audit --audit-level=high
|
||||
# Runtime/package advisories are release blockers. Development-only
|
||||
# lint tooling remains covered by signature and IOC verification.
|
||||
npm audit --omit=dev --audit-level=high
|
||||
|
||||
- name: Run supply-chain IOC scan
|
||||
run: npm run security:ioc-scan
|
||||
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
if [ -f package-lock.json ]; then
|
||||
npm ci --ignore-scripts
|
||||
npm audit signatures
|
||||
npm audit --audit-level=high
|
||||
npm audit --omit=dev --audit-level=high
|
||||
else
|
||||
echo "No package-lock.json found; skipping npm audit"
|
||||
fi
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
- name: Verify registry signatures and advisories
|
||||
run: |
|
||||
npm audit signatures
|
||||
npm audit --audit-level=high
|
||||
npm audit --omit=dev --audit-level=high
|
||||
|
||||
- name: Validate IOC scanner fixtures
|
||||
run: node tests/ci/scan-supply-chain-iocs.test.js
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Everything Claude Code (ECC) — Agent Instructions
|
||||
|
||||
This is a **production-ready AI coding plugin** providing 67 specialized agents, 282 skills, 94 commands, and automated hook workflows for software development.
|
||||
This is a **production-ready AI coding plugin** providing 67 specialized agents, 284 skills, 94 commands, and automated hook workflows for software development.
|
||||
|
||||
**Version:** 2.2.0
|
||||
|
||||
@@ -152,7 +152,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
|
||||
|
||||
```
|
||||
agents/ — 67 specialized subagents
|
||||
skills/ — 282 workflow skills and domain knowledge
|
||||
skills/ — 284 workflow skills and domain knowledge
|
||||
commands/ — 94 slash commands
|
||||
hooks/ — Trigger-based automations
|
||||
rules/ — Always-follow guidelines (common + per-language)
|
||||
|
||||
@@ -116,12 +116,12 @@ Instead of rebuilding that process in every prompt, you install it once and make
|
||||
|
||||
ECC is MIT-licensed open source. It works best with Claude Code today, has a supported Codex sync path, and provides capability-limited adapters for Cursor, OpenCode, Gemini, Zed, GitHub Copilot, Antigravity, Qwen, and other harnesses. See the [support status matrix](#platform-support) before assuming feature parity.
|
||||
|
||||
Access to 67 agents, 282 skills, and 94 legacy command shims, plus hooks, rules, memory, continuous learning, and AgentShield security scanning. The agents are specialized for planning, review, build repair, security, architecture, and domain work.
|
||||
Access to 67 agents, 284 skills, and 94 legacy command shims, plus hooks, rules, memory, continuous learning, and AgentShield security scanning. The agents are specialized for planning, review, build repair, security, architecture, and domain work.
|
||||
|
||||
| Included | Count | What it gives you |
|
||||
| ---------------- | ----------: | ------------------------------------------------------------------------------------ |
|
||||
| Agents | 67 agents | Planning, review, build repair, security, architecture, and domain work |
|
||||
| Skills | 282 skills | TDD, research, security, docs, frontend, data, ML, operations, and more |
|
||||
| Skills | 284 skills | TDD, research, security, docs, frontend, data, ML, operations, and more |
|
||||
| Commands | 94 commands | Convenient entry points while ECC moves to a skills-first surface |
|
||||
| Hooks and memory | Runtime | Enforcement, session summaries, continuous learning, instincts, and context controls |
|
||||
| Rules | Selective | Always-loaded standards you choose by language or project |
|
||||
|
||||
+1
-1
@@ -196,7 +196,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**完成!** 你现在可以使用 67 个代理、282 个技能和 94 个命令。
|
||||
**完成!** 你现在可以使用 67 个代理、284 个技能和 94 个命令。
|
||||
|
||||
### multi-* 命令需要额外配置
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# Everything Claude Code (ECC) — Agent Talimatları
|
||||
|
||||
Bu, yazılım geliştirme için 67 özel agent, 282 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 67 özel agent, 284 skill, 94 command ve otomatik hook iş akışları sağlayan **üretime hazır bir AI kodlama eklentisidir**.
|
||||
|
||||
**Sürüm:** 2.2.0
|
||||
|
||||
@@ -142,7 +142,7 @@ Başarısızlık sorunlarını giderin: test izolasyonunu kontrol edin → mockl
|
||||
|
||||
```
|
||||
agents/ — 67 özel subagent
|
||||
skills/ — 282 iş akışı skillleri ve alan bilgisi
|
||||
skills/ — 284 iş akışı skillleri ve alan bilgisi
|
||||
commands/ — 94 slash command
|
||||
hooks/ — Tetikleyici tabanlı otomasyonlar
|
||||
rules/ — Her zaman uyulması gereken kurallar (ortak + dile özel)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Everything Claude Code (ECC) — 智能体指令
|
||||
|
||||
这是一个**生产就绪的 AI 编码插件**,提供 67 个专业代理、282 项技能、94 条命令以及自动化钩子工作流,用于软件开发。
|
||||
这是一个**生产就绪的 AI 编码插件**,提供 67 个专业代理、284 项技能、94 条命令以及自动化钩子工作流,用于软件开发。
|
||||
|
||||
**版本:** 2.2.0
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
|
||||
```
|
||||
agents/ — 67 个专业子代理
|
||||
skills/ — 282 个工作流技能和领域知识
|
||||
skills/ — 284 个工作流技能和领域知识
|
||||
commands/ — 94 个斜杠命令
|
||||
hooks/ — 基于触发的自动化
|
||||
rules/ — 始终遵循的指导方针(通用 + 每种语言)
|
||||
|
||||
@@ -260,7 +260,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**搞定!** 你现在可以使用 67 个智能体、282 项技能和 94 个命令了。
|
||||
**搞定!** 你现在可以使用 67 个智能体、284 项技能和 94 个命令了。
|
||||
|
||||
***
|
||||
|
||||
@@ -1174,7 +1174,7 @@ opencode
|
||||
|---------|---------------|----------|--------|
|
||||
| 智能体 | PASS: 67 个 | PASS: 12 个 | **Claude Code 领先** |
|
||||
| 命令 | PASS: 94 个 | PASS: 35 个 | **Claude Code 领先** |
|
||||
| 技能 | PASS: 282 项 | PASS: 37 项 | **Claude Code 领先** |
|
||||
| 技能 | PASS: 284 项 | PASS: 37 项 | **Claude Code 领先** |
|
||||
| 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** |
|
||||
| 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** |
|
||||
| MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** |
|
||||
@@ -1282,7 +1282,7 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以
|
||||
|---------|-----------------------|------------|-----------|----------|
|
||||
| **智能体** | 67 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 |
|
||||
| **命令** | 94 | 共享 | 基于指令 | 35 |
|
||||
| **技能** | 282 | 共享 | 10 (原生格式) | 37 |
|
||||
| **技能** | 284 | 共享 | 10 (原生格式) | 37 |
|
||||
| **钩子事件** | 8 种类型 | 15 种类型 | SessionStart(1 种类型) | 11 种类型 |
|
||||
| **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | 1 个 SessionStart 引导脚本 | 插件钩子 |
|
||||
| **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 |
|
||||
|
||||
@@ -607,7 +607,9 @@
|
||||
"kind": "skills",
|
||||
"description": "Authenticated Itô GPU inventory, RFQ, status, and explicitly gated node-qualification workflows through the separately installed canonical CLI.",
|
||||
"paths": [
|
||||
"skills/ito-compute"
|
||||
"skills/ito-compute",
|
||||
"skills/ito-inference",
|
||||
"skills/ito-training"
|
||||
],
|
||||
"targets": [
|
||||
"claude",
|
||||
|
||||
@@ -225,8 +225,10 @@
|
||||
"skills/ito-basket-compare/",
|
||||
"skills/ito-compute/",
|
||||
"skills/ito-data-atlas-agent/",
|
||||
"skills/ito-inference/",
|
||||
"skills/ito-market-intelligence/",
|
||||
"skills/ito-trade-planner/",
|
||||
"skills/ito-training/",
|
||||
"skills/investor-materials/",
|
||||
"skills/investor-outreach/",
|
||||
"skills/iterative-retrieval/",
|
||||
|
||||
@@ -90,7 +90,11 @@ function main() {
|
||||
const modules = readJson("manifests/install-modules.json").modules;
|
||||
const module = modules.find((candidate) => candidate.id === "ito-compute");
|
||||
assert.ok(module, "ito-compute install module is missing");
|
||||
assert.deepStrictEqual(module.paths, ["skills/ito-compute"]);
|
||||
assert.deepStrictEqual(module.paths, [
|
||||
"skills/ito-compute",
|
||||
"skills/ito-inference",
|
||||
"skills/ito-training",
|
||||
]);
|
||||
assert.deepStrictEqual(module.dependencies, ["platform-configs"]);
|
||||
assert.strictEqual(module.defaultInstall, false);
|
||||
assert.strictEqual(module.stability, "beta");
|
||||
@@ -113,7 +117,9 @@ function main() {
|
||||
}],
|
||||
["publishes the skill but never bundles the Itô CLI", () => {
|
||||
const packageJson = readJson("package.json");
|
||||
assert.ok(packageJson.files.includes("skills/ito-compute/"));
|
||||
for (const skill of ["ito-compute", "ito-inference", "ito-training"]) {
|
||||
assert.ok(packageJson.files.includes(`skills/${skill}/`), `${skill} is missing from npm files`);
|
||||
}
|
||||
assert.ok(!packageJson.dependencies?.["ito-compute-cli"]);
|
||||
assert.ok(!packageJson.optionalDependencies?.["ito-compute-cli"]);
|
||||
assert.ok(!packageJson.bin?.ito);
|
||||
|
||||
@@ -52,7 +52,7 @@ function run() {
|
||||
if (test('installs without lifecycle scripts and verifies registry signatures', () => {
|
||||
assert.match(source, /npm ci --ignore-scripts/);
|
||||
assert.match(source, /npm audit signatures/);
|
||||
assert.match(source, /npm audit --audit-level=high/);
|
||||
assert.match(source, /npm audit --omit=dev --audit-level=high/);
|
||||
})) passed++; else failed++;
|
||||
|
||||
if (test('runs IOC fixtures, emits JSON report, and uploads the artifact', () => {
|
||||
|
||||
@@ -42,7 +42,11 @@ function runHeadingUpdate(contents, version) {
|
||||
const file = path.join(dir, 'README.md');
|
||||
try {
|
||||
fs.writeFileSync(file, contents);
|
||||
const result = spawnSync(process.execPath, ['-e', headingProgram, file, version], {
|
||||
// release.sh passes the previous version as the helper's third argument.
|
||||
// Derive it from the fixture so this harness exercises the real call shape;
|
||||
// keep a deterministic value for fixtures intentionally missing a heading.
|
||||
const oldVersion = contents.match(/^### v([^ ]+)/m)?.[1] || '2.0.0';
|
||||
const result = spawnSync(process.execPath, ['-e', headingProgram, file, version, oldVersion], {
|
||||
encoding: 'utf8',
|
||||
});
|
||||
return {
|
||||
@@ -105,7 +109,7 @@ function runTests() {
|
||||
assert.notStrictEqual(result.status, 0, 'a missing heading must be a hard failure');
|
||||
assert.match(
|
||||
result.stderr,
|
||||
/could not update latest release heading/i,
|
||||
/could not update release heading/i,
|
||||
'the failure should name the unmet expectation'
|
||||
);
|
||||
assert.strictEqual(
|
||||
|
||||
Reference in New Issue
Block a user