Files
ECC/package.json
T
a511395613 feat: Plan Canvas, a browser review canvas for plans (#2467)
* feat: add Plan Canvas - browser annotate-and-approve review for plan artifacts

- scripts/plan-canvas.js CLI (open/await/end/stop/server; bin ecc-plan-canvas)
- loopback server + ECC-styled chrome + annotation SDK + zero-dep markdown renderer
- Approve/Request-changes verdicts wired to the /plan confirmation gate
- plan-canvas skill, /plan-canvas command, SessionStart hook surfacing open reviews
- shared scripts/lib/loopback-guard.js extracted from control-pane (API re-exported)
- 121 new tests incl. full-workflow E2E; registered in manifests, catalog, registry

Inspired by lavish-axi (https://github.com/kunchenguid/lavish-axi) by @kunchenguid;
original ECC-native implementation, not a port.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(plan-canvas): invoke via ecc-plan-canvas bin so the skill works from any project

Skill/command referenced a cwd-relative `node scripts/plan-canvas.js`, unusable
outside the ECC root. Switch to the ecc-plan-canvas bin (and $CLAUDE_PLUGIN_ROOT
fallback) and align CLI next_step hints so an agent can run it as a skill in any repo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(plan-canvas): render Mermaid diagrams + ship Codex cross-harness surface

- markdown renderer emits <pre class="mermaid"> for ```mermaid blocks (source
  entity-escaped so the browser decodes it for the renderer while blocking injection)
- artifact template loads a pinned Mermaid build only when a diagram is present,
  themed to ECC dark, securityLevel strict, graceful offline fallback to source
  (ECC_PLAN_CANVAS_MERMAID_URL overrides for a local mirror)
- skill teaches Mermaid-for-diagrams and states the CLI+JSON loop is harness-agnostic
- add .agents/skills/plan-canvas (Codex) with agents/openai.yaml interface manifest
- register in install-modules workflow-quality paths; docs updated

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(plan-canvas): add demo screenshot

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ci): sync yarn.lock with new bin; add contributor checklist

- yarn.lock records the ecc-plan-canvas bin so Yarn hardened-mode install no
  longer wants to modify the lockfile on public PRs
- PR template + CONTRIBUTING gain a pre-push checklist covering the lockfile
  trap and the full skill/command/CLI registration surfaces

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Haley Chen <2022hachen@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:12:48 -04:00

393 lines
13 KiB
JSON

{
"name": "ecc-universal",
"version": "2.0.0",
"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",
"publishConfig": {
"access": "public"
},
"keywords": [
"ai",
"agents",
"skills",
"hooks",
"mcp",
"rules",
"harness",
"agent-harness",
"tdd",
"code-review",
"security",
"automation",
"best-practices",
"cursor",
"cursor-ide",
"opencode",
"codex",
"presentations",
"slides"
],
"author": {
"name": "Affaan Mustafa",
"url": "https://x.com/affaan"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/affaan-m/ECC.git"
},
"homepage": "https://github.com/affaan-m/ECC#readme",
"bugs": {
"url": "https://github.com/affaan-m/ECC/issues"
},
"files": [
".agents/",
".claude-plugin/",
".codex/",
".codex-plugin/",
".cursor/",
".gemini/",
".hermes/",
".kimi/",
".opencode/",
".openclaw/",
".qwen/",
".zed/",
".mcp.json",
"AGENTS.md",
"VERSION",
"agent.yaml",
"assets/ecc-icon.svg",
"assets/hero.png",
"agents/",
"commands/",
"docs/de-DE/",
"docs/ja-JP/",
"docs/ko-KR/",
"docs/pt-BR/",
"docs/ru/",
"docs/tr/",
"docs/vi-VN/",
"docs/zh-CN/",
"docs/zh-TW/",
"hooks/",
"install.ps1",
"install.sh",
"manifests/",
"mcp-configs/",
"plugins/ecc/",
"rules/",
"schemas/",
"scripts/catalog.js",
"scripts/ci/scan-supply-chain-iocs.js",
"scripts/ci/supply-chain-advisory-sources.js",
"scripts/consult.js",
"scripts/auto-update.js",
"scripts/claw.js",
"scripts/control-pane.js",
"scripts/codex/check-plugin-cache.js",
"scripts/codex/merge-codex-config.js",
"scripts/codex/merge-mcp-config.js",
"scripts/discussion-audit.js",
"scripts/doctor.js",
"scripts/ecc.js",
"scripts/gemini-adapt-agents.js",
"scripts/harness-adapter-compliance.js",
"scripts/harness-audit.js",
"scripts/observability-readiness.js",
"scripts/operator-readiness-dashboard.js",
"scripts/platform-audit.js",
"scripts/preview-pack-smoke.js",
"scripts/release-approval-gate.js",
"scripts/release-video-suite.js",
"scripts/dashboard-web.js",
"scripts/skills-health.js",
"scripts/hooks/",
"scripts/install-apply.js",
"scripts/install-plan.js",
"scripts/lib/",
"scripts/list-installed.js",
"scripts/loop-status.js",
"scripts/plan-canvas.js",
"scripts/orchestration-status.js",
"scripts/orchestrate-codex-worker.sh",
"scripts/orchestrate-worktrees.js",
"scripts/repair.js",
"scripts/session-inspect.js",
"scripts/sessions-cli.js",
"scripts/setup-package-manager.js",
"scripts/skill-create-output.js",
"scripts/status.js",
"scripts/work-items.js",
"scripts/uninstall.js",
"skills/agent-architecture-audit/",
"skills/agent-harness-construction/",
"skills/agent-introspection-debugging/",
"skills/agent-sort/",
"skills/agentic-engineering/",
"skills/agentic-os/",
"skills/ai-first-engineering/",
"skills/ai-regression-testing/",
"skills/android-clean-architecture/",
"skills/angular-developer/",
"skills/api-connector-builder/",
"skills/api-design/",
"skills/article-writing/",
"skills/automation-audit-ops/",
"skills/autonomous-loops/",
"skills/backend-patterns/",
"skills/blender-motion-state-inspection/",
"skills/blueprint/",
"skills/brand-voice/",
"skills/carrier-relationship-management/",
"skills/claude-devfleet/",
"skills/cisco-ios-patterns/",
"skills/clickhouse-io/",
"skills/code-tour/",
"skills/coding-standards/",
"skills/compose-multiplatform-patterns/",
"skills/configure-ecc/",
"skills/connections-optimizer/",
"skills/content-engine/",
"skills/content-hash-cache-pattern/",
"skills/continuous-agent-loop/",
"skills/continuous-learning/",
"skills/continuous-learning-v2/",
"skills/cost-aware-llm-pipeline/",
"skills/cost-tracking/",
"skills/council/",
"skills/cpp-coding-standards/",
"skills/cpp-testing/",
"skills/crosspost/",
"skills/csharp-testing/",
"skills/customer-billing-ops/",
"skills/customs-trade-compliance/",
"skills/dart-flutter-patterns/",
"skills/dashboard-builder/",
"skills/data-throughput-accelerator/",
"skills/data-scraper-agent/",
"skills/database-migrations/",
"skills/deep-research/",
"skills/defi-amm-security/",
"skills/deployment-patterns/",
"skills/django-patterns/",
"skills/django-security/",
"skills/django-tdd/",
"skills/django-verification/",
"skills/dmux-workflows/",
"skills/docker-patterns/",
"skills/dotnet-patterns/",
"skills/dynamic-workflow-mode/",
"skills/e2e-testing/",
"skills/ecc-tools-cost-audit/",
"skills/email-ops/",
"skills/energy-procurement/",
"skills/enterprise-agent-ops/",
"skills/error-handling/",
"skills/eval-harness/",
"skills/evm-token-decimals/",
"skills/exa-search/",
"skills/benchmark-optimization-loop/",
"skills/fal-ai-media/",
"skills/fastapi-patterns/",
"skills/finance-billing-ops/",
"skills/foundation-models-on-device/",
"skills/frontend-design-direction/",
"skills/frontend-patterns/",
"skills/frontend-slides/",
"skills/fsharp-testing/",
"skills/github-ops/",
"skills/golang-patterns/",
"skills/golang-testing/",
"skills/google-workspace-ops/",
"skills/healthcare-phi-compliance/",
"skills/hipaa-compliance/",
"skills/homelab-network-readiness/",
"skills/homelab-network-setup/",
"skills/hookify-rules/",
"skills/inventory-demand-planning/",
"skills/ito-basket-compare/",
"skills/ito-data-atlas-agent/",
"skills/ito-market-intelligence/",
"skills/ito-trade-planner/",
"skills/investor-materials/",
"skills/investor-outreach/",
"skills/iterative-retrieval/",
"skills/java-coding-standards/",
"skills/jira-integration/",
"skills/jpa-patterns/",
"skills/knowledge-ops/",
"skills/kotlin-coroutines-flows/",
"skills/kotlin-exposed-patterns/",
"skills/kotlin-ktor-patterns/",
"skills/kotlin-patterns/",
"skills/kotlin-testing/",
"skills/laravel-patterns/",
"skills/laravel-plugin-discovery/",
"skills/laravel-security/",
"skills/laravel-tdd/",
"skills/laravel-verification/",
"skills/lead-intelligence/",
"skills/liquid-glass-design/",
"skills/llm-trading-agent-security/",
"skills/logistics-exception-management/",
"skills/manim-video/",
"skills/market-research/",
"skills/make-interfaces-feel-better/",
"skills/mcp-server-patterns/",
"skills/messages-ops/",
"skills/mle-workflow/",
"skills/motion-ui/",
"skills/mysql-patterns/",
"skills/nanoclaw-repl/",
"skills/nestjs-patterns/",
"skills/netmiko-ssh-automation/",
"skills/network-bgp-diagnostics/",
"skills/network-config-validation/",
"skills/network-interface-health/",
"skills/nodejs-keccak256/",
"skills/nutrient-document-processing/",
"skills/latency-critical-systems/",
"skills/perl-patterns/",
"skills/perl-security/",
"skills/perl-testing/",
"skills/plan-canvas/",
"skills/plankton-code-quality/",
"skills/parallel-execution-optimizer/",
"skills/postgres-patterns/",
"skills/prisma-patterns/",
"skills/product-capability/",
"skills/production-audit/",
"skills/production-scheduling/",
"skills/prediction-market-oracle-research/",
"skills/prediction-market-risk-review/",
"skills/project-flow-ops/",
"skills/prompt-optimizer/",
"skills/python-patterns/",
"skills/python-testing/",
"skills/quality-nonconformance/",
"skills/recursive-decision-ledger/",
"skills/quarkus-patterns/",
"skills/quarkus-security/",
"skills/quarkus-tdd/",
"skills/quarkus-verification/",
"skills/ralphinho-rfc-pipeline/",
"skills/react-patterns/",
"skills/react-performance/",
"skills/react-testing/",
"skills/regex-vs-llm-structured-text/",
"skills/remotion-video-creation/",
"skills/research-ops/",
"skills/scientific-db-pubmed-database/",
"skills/scientific-db-uspto-database/",
"skills/scientific-pkg-gget/",
"skills/scientific-thinking-literature-review/",
"skills/scientific-thinking-scholar-evaluation/",
"skills/returns-reverse-logistics/",
"skills/rust-patterns/",
"skills/rust-testing/",
"skills/search-first/",
"skills/security-bounty-hunter/",
"skills/security-review/",
"skills/security-scan/",
"skills/seo/",
"skills/skill-scout/",
"skills/skill-stocktake/",
"skills/social-graph-ranker/",
"skills/springboot-patterns/",
"skills/springboot-security/",
"skills/springboot-tdd/",
"skills/springboot-verification/",
"skills/strategic-compact/",
"skills/swift-actor-persistence/",
"skills/swift-concurrency-6-2/",
"skills/swift-protocol-di-testing/",
"skills/swiftui-patterns/",
"skills/tdd-workflow/",
"skills/team-agent-orchestration/",
"skills/team-builder/",
"skills/terminal-ops/",
"skills/token-budget-advisor/",
"skills/ui-demo/",
"skills/ui-to-vue/",
"skills/unified-notifications-ops/",
"skills/verification-loop/",
"skills/video-editing/",
"skills/videodb/",
"skills/visa-doc-translate/",
"skills/vue-patterns/",
"skills/windows-desktop-e2e/",
"skills/workspace-surface-audit/",
"skills/x-api/",
"the-security-guide.md",
"!**/__pycache__/**",
"!**/*.pyc",
"!**/*.pyo",
"!**/*.pyd",
"!**/.pytest_cache/**"
],
"bin": {
"ecc": "scripts/ecc.js",
"ecc-control-pane": "scripts/control-pane.js",
"ecc-install": "scripts/install-apply.js",
"ecc-plan-canvas": "scripts/plan-canvas.js"
},
"scripts": {
"postinstall": "echo '\\n ecc-universal installed!\\n Run: npx ecc typescript\\n Compat: npx ecc-install typescript\\n Docs: https://github.com/affaan-m/ECC\\n'",
"catalog:check": "node scripts/ci/catalog.js --text",
"catalog:sync": "node scripts/ci/catalog.js --write --text",
"command-registry:generate": "node scripts/ci/generate-command-registry.js",
"command-registry:write": "node scripts/ci/generate-command-registry.js --write",
"command-registry:check": "node scripts/ci/generate-command-registry.js --check",
"lint": "eslint . && markdownlint '**/*.md' --ignore node_modules",
"harness:adapters": "node scripts/harness-adapter-compliance.js",
"harness:audit": "node scripts/harness-audit.js",
"observability:ready": "node scripts/observability-readiness.js",
"operator:dashboard": "node scripts/operator-readiness-dashboard.js",
"preview-pack:smoke": "node scripts/preview-pack-smoke.js",
"release:approval-gate": "node scripts/release-approval-gate.js",
"release:video-suite": "node scripts/release-video-suite.js",
"control:pane": "node scripts/control-pane.js",
"platform:audit": "node scripts/platform-audit.js",
"discussion:audit": "node scripts/discussion-audit.js",
"security:ioc-scan": "node scripts/ci/scan-supply-chain-iocs.js",
"security:advisory-sources": "node scripts/ci/supply-chain-advisory-sources.js",
"claw": "node scripts/claw.js",
"orchestrate:status": "node scripts/orchestration-status.js",
"orchestrate:worker": "bash scripts/orchestrate-codex-worker.sh",
"orchestrate:tmux": "node scripts/orchestrate-worktrees.js",
"test": "node scripts/ci/check-unicode-safety.js && node scripts/ci/validate-agents.js && node scripts/ci/validate-commands.js && node scripts/ci/validate-rules.js && node scripts/ci/validate-skills.js && node scripts/ci/validate-hooks.js && node scripts/ci/validate-install-manifests.js && node scripts/ci/validate-no-personal-paths.js && npm run catalog:check && npm run command-registry:check && node tests/run-all.js",
"coverage": "c8 --all --include=\"scripts/**/*.js\" --check-coverage --lines 80 --functions 80 --branches 79 --statements 80 --reporter=text --reporter=lcov node tests/run-all.js",
"build:opencode": "node scripts/build-opencode.js",
"prepack": "npm run build:opencode",
"dashboard": "python3 ./ecc_dashboard.py",
"dashboard:web": "node scripts/dashboard-web.js"
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"ajv": "^8.20.0",
"sql.js": "^1.14.1"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@opencode-ai/plugin": "^1.16.2",
"@types/node": "25.9.2",
"c8": "^11.0.0",
"eslint": "^10.6.0",
"globals": "^17.4.0",
"markdownlint-cli": "^0.48.0",
"typescript": "^6.0.3"
},
"engines": {
"node": ">=18"
},
"overrides": {
"markdown-it": ">=14.2.0",
"js-yaml": ">=4.2.0"
},
"resolutions": {
"markdown-it": ">=14.2.0",
"js-yaml": ">=4.2.0"
},
"packageManager": "yarn@4.9.2+sha512.1fc009bc09d13cfd0e19efa44cbfc2b9cf6ca61482725eb35bbc5e257e093ebf4130db6dfe15d604ff4b79efd8e1e8e99b25fa7d0a6197c9f9826358d4d65c3c"
}