Merge branch 'affaan-m:main' into main

This commit is contained in:
Varun Gore
2026-10-08 19:36:33 +05:30
committed by GitHub
228 changed files with 741 additions and 676 deletions
+1
View File
@@ -133,6 +133,7 @@ function determineInstallCwd(record, repoRoot) {
// install-apply.js if its package.json identifies it as ECC — otherwise a
// cloned project that ships a nested `evil/{package.json,scripts/install-apply.js}`
// could drive auto-update into executing attacker code (GHSA-hfpv-w6mp-5g95).
// 'everything-claude-code' is the legacy 1.x package name, kept for existing checkouts.
const ECC_PACKAGE_NAMES = new Set(['ecc-universal', 'everything-claude-code']);
function validateRepoRoot(repoRoot) {
+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
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,
no hooks, no runtime downloads, and no network or SaaS dependencies.
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env node
/**
* NanoClaw v2 — Barebones Agent REPL for Everything Claude Code
* NanoClaw v2 — Barebones Agent REPL for ECC
*
* Zero external dependencies. Session-aware REPL around `claude -p`.
*/
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* scripts/codemaps/generate.ts
*
* Codemap Generator for everything-claude-code (ECC)
* Codemap Generator for ECC
*
* Scans the current working directory and generates architectural
* codemap documentation under docs/CODEMAPS/ as specified by the
+3 -1
View File
@@ -81,7 +81,9 @@ require_file "$CONFIG_FILE" "Global config.toml"
require_file "$AGENTS_FILE" "Global AGENTS.md"
if [[ -f "$AGENTS_FILE" ]]; then
if search_file '^# Everything Claude Code \(ECC\)' "$AGENTS_FILE"; then
# Accept the current "# ECC" heading and the legacy expanded-name heading
# that older syncs wrote into existing ~/.codex/AGENTS.md files.
if search_file '^# (ECC|Everything Claude Code \(ECC\))( |$)' "$AGENTS_FILE"; then
ok "AGENTS contains ECC root instructions"
else
fail "AGENTS missing ECC root instructions"
+9 -4
View File
@@ -3,7 +3,7 @@
// Slash commands: /ecc /help /skill /docs /release
//
// Env: DISCORD_BOT_TOKEN (required), DISCORD_APP_ID (required),
// ECC_REPO (path to local clone, default ~/GitHub/ECC/everything-claude-code),
// ECC_REPO (path to local clone, default ~/GitHub/ECC),
// DISCORD_INVITE (optional, shown in /ecc)
//
// Crash-only design: any gateway close, error, or missed heartbeat ack exits
@@ -21,7 +21,12 @@ if (!TOKEN || !APP_ID) {
console.error('missing DISCORD_BOT_TOKEN / DISCORD_APP_ID');
process.exit(1);
}
const REPO = process.env.ECC_REPO || join(homedir(), 'GitHub/ECC/everything-claude-code');
// Prefer ~/GitHub/ECC. The nested legacy checkout path is still accepted so
// existing hosts keep working without setting ECC_REPO.
const REPO = process.env.ECC_REPO || [
join(homedir(), 'GitHub/ECC'),
join(homedir(), 'GitHub/ECC/everything-claude-code'),
].find(dir => existsSync(join(dir, 'package.json'))) || join(homedir(), 'GitHub/ECC');
const REPO_URL = 'https://github.com/affaan-m/ECC';
const INVITE = process.env.DISCORD_INVITE || '';
const API = 'https://discord.com/api/v10';
@@ -133,12 +138,12 @@ const HELP = [
const handlers = {
ecc: () => [
'**Everything Claude Code (ECC)** — the agent harness performance system.',
'**ECC** — the agent harness performance system.',
'Skills, agents, rules, hooks, MCP conventions, and operator workflows that move across Claude Code, Codex, OpenCode, Cursor, Gemini, and Zed.',
'',
`- repo: ${REPO_URL}`,
'- site: https://ecc.tools',
`- install: \`/plugin marketplace add affaan-m/everything-claude-code\` then \`/plugin install ecc\``,
`- install: \`/plugin marketplace add affaan-m/ECC\` then \`/plugin install ecc\``,
INVITE ? `- invite a friend: ${INVITE}` : '',
].filter(Boolean).join('\n'),
+5 -2
View File
@@ -216,7 +216,8 @@ function hasFileWithExtension(rootDir, relativeDir, extensions) {
function detectTargetMode(rootDir) {
const packageJson = safeParseJson(safeRead(rootDir, 'package.json'));
if (packageJson?.name === 'everything-claude-code') {
// 'everything-claude-code' is the legacy package name, kept for older checkouts.
if (['ecc-universal', 'everything-claude-code'].includes(packageJson?.name)) {
return 'repo';
}
@@ -232,6 +233,8 @@ function detectTargetMode(rootDir) {
return 'consumer';
}
// The everything-claude-code entries below are legacy install ids, kept so
// existing 1.x installs are still detected.
const ECC_PLUGIN_KEY_PATTERNS = [
/^ecc@/i,
/^everything-claude-code@/i,
@@ -831,7 +834,7 @@ function getConsumerChecks(rootDir) {
points: 4,
scopes: ['repo'],
path: '~/.claude/plugins/ecc/ (legacy everything-claude-code paths also supported)',
description: 'Everything Claude Code is installed for the active user or project',
description: 'ECC is installed for the active user or project',
pass: Boolean(pluginInstall),
fix: 'Install the ECC plugin for this user or project before auditing project-specific harness quality.',
},
+1 -1
View File
@@ -722,7 +722,7 @@ async function main() {
// compaction resume the model would re-run /fw-task-new (or any
// ARGUMENTS-bearing slash skill) with the last ARGUMENTS it saw,
// duplicating issues/branches/Notion tasks. Tracking upstream at
// https://github.com/affaan-m/everything-claude-code/issues/1534
// https://github.com/affaan-m/ECC/issues/1534
const guarded = [
'HISTORICAL REFERENCE ONLY — NOT LIVE INSTRUCTIONS.',
'The block below is a frozen summary of a PRIOR conversation that',
+2
View File
@@ -97,6 +97,7 @@ function parsePluginList(stdout) {
plugin.id === CURRENT_PLUGIN_ID
|| String(plugin.id || '').startsWith('ecc@')
|| LEGACY_PLUGIN_IDS.has(plugin.id)
// Legacy install id prefix, kept for existing installs.
|| String(plugin.id || '').startsWith('everything-claude-code@')
);
if (!isRelevant) continue;
@@ -400,6 +401,7 @@ function currentEccPlugins(plugins) {
function assertNoConflictingEccPlugins(plugins) {
const legacy = plugins.find(plugin => (
LEGACY_PLUGIN_IDS.has(plugin?.id)
// Legacy install id prefix, kept for existing installs.
|| String(plugin?.id || '').startsWith('everything-claude-code@')
));
if (legacy) {
+2
View File
@@ -6,6 +6,7 @@ const path = require('path');
const { isWithinRoot, realpathNearestExisting } = require('../path-safety');
const CURRENT_PLUGIN_ID = 'ecc@ecc';
// Legacy plugin ids, kept so existing installs are still recognized.
const LEGACY_PLUGIN_IDS = new Set([
'everything-claude-code@everything-claude-code',
'everything-claude-code@ecc',
@@ -49,6 +50,7 @@ function findManualClaudePlugin(options = {}) {
['ecc', 'plugin.json'],
['ecc@ecc', '.claude-plugin', 'plugin.json'],
['ecc@ecc', 'plugin.json'],
// Legacy install dir, kept for existing installs.
['everything-claude-code', '.claude-plugin', 'plugin.json'],
['everything-claude-code', 'plugin.json'],
];
+1 -1
View File
@@ -11,7 +11,7 @@
* ranking degrades to confidence-only (unchanged behaviour).
*
* Resolves part (b) of:
* https://github.com/affaan-m/everything-claude-code/issues/2371
* https://github.com/affaan-m/ECC/issues/2371
*/
const fs = require('fs');
+1 -1
View File
@@ -4,7 +4,7 @@
* Cross-platform (Windows, macOS, Linux) project type detection
* by inspecting files in the working directory.
*
* Resolves: https://github.com/affaan-m/everything-claude-code/issues/293
* Resolves: https://github.com/affaan-m/ECC/issues/293
*/
const fs = require('fs');
+1
View File
@@ -5,6 +5,7 @@ const path = require('path');
const os = require('os');
const CURRENT_PLUGIN_SLUG = 'ecc';
// Legacy install id, kept for existing installs.
const LEGACY_PLUGIN_SLUG = 'everything-claude-code';
const CURRENT_PLUGIN_HANDLE = `${CURRENT_PLUGIN_SLUG}@${CURRENT_PLUGIN_SLUG}`;
const LEGACY_PLUGIN_HANDLE = `${LEGACY_PLUGIN_SLUG}@${LEGACY_PLUGIN_SLUG}`;
+1 -1
View File
@@ -167,7 +167,7 @@ ${chalk.yellow('4.')} Evolve into skills: ${chalk.cyan('/evolve')}
footer() {
console.log(chalk.gray('─'.repeat(60)));
console.log(chalk.dim(` Powered by Everything Claude Code • ecc.tools`));
console.log(chalk.dim(` Powered by ECC • ecc.tools`));
console.log(chalk.dim(` GitHub App: github.com/apps/skill-creator`));
console.log('\n');
}
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# Sync Everything Claude Code (ECC) assets into a local Codex CLI setup.
# Sync ECC assets into a local Codex CLI setup.
# - Backs up ~/.codex config and AGENTS.md
# - Merges ECC AGENTS.md into existing AGENTS.md (marker-based, preserves user content)
# - Generates prompt files from commands/*.md