ECC ships 10 JSON Schema (Draft-07) files that govern every major data structure: from what you install and into which harness, to how sessions are persisted in the SQLite state store and what a valid hook looks like. These schemas live in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/affaan-m/ECC/llms.txt
Use this file to discover all available pages before exploring further.
schemas/ directory and are used both for validation at install time and as stable contracts for tooling integrations.
ecc-install-config.schema.json
Top-level install configuration schema. Used by ecc install, ecc plan, and programmatic installers.
| Property | Type | Required | Description |
|---|---|---|---|
version | integer (const: 1) | ✅ | Schema version |
target | string (enum) | — | One of 14 harness IDs |
profile | string | — | Named profile ID (^[a-z0-9-]+$) |
modules | array<string> | — | Explicit module IDs |
include | array<string> | — | Component selectors to include |
exclude | array<string> | — | Component selectors to exclude |
options | object | — | Free-form options |
^(baseline|lang|framework|capability):[a-z0-9-]+$
install-modules.schema.json
Defines the shape of each installable module entry in manifests/install-modules.json.
| Property | Type | Description |
|---|---|---|
id | string | Module ID — pattern: (baseline|lang|framework|capability|agent|skill|locale):<name> |
kind | string | One of: rules, agents, commands, hooks, platform, orchestration, skills, docs |
description | string | Human-readable description |
paths | array<string> | File/directory paths to install |
targets | array<string> | Harness targets this module supports |
dependencies | array<string> | Module IDs that must be installed first |
defaultInstall | boolean | Whether included in the core profile by default |
cost | string | light, medium, or heavy |
stability | string | experimental, beta, or stable |
install-components.schema.json
Defines logical groupings of modules into named components. Components are what you reference with --include/--exclude.
| Property | Type | Description |
|---|---|---|
id | string | Component ID — same pattern as module IDs |
family | string | One of: baseline, language, framework, capability, agent, skill, locale |
description | string | Human-readable description |
modules | array<string> | One or more module IDs that make up this component |
install-profiles.schema.json
Defines named install profiles.
| Property | Type | Description |
|---|---|---|
id | string | Profile ID — pattern: ^[a-z0-9-]+$ |
description | string | Human-readable description |
modules | array<string> | Ordered list of module IDs |
install-state.schema.json
Records the result of an install operation. Schema ID: ecc.install.v1. This is what ecc doctor and ecc repair read to understand what was installed.
target — Where ECC was installed
target — Where ECC was installed
| Field | Type | Description |
|---|---|---|
id | string | Harness target ID |
root | string | Absolute path to the harness config root |
installStatePath | string | Path to this install-state file |
kind | string | home (user-level) or project (repo-level) |
request — What was requested
request — What was requested
| Field | Type | Description |
|---|---|---|
profile | string | Profile name used |
modules | array | Explicit module IDs requested |
include | array | Component selectors included |
exclude | array | Component selectors excluded |
resolution — What was resolved
resolution — What was resolved
| Field | Type | Description |
|---|---|---|
selectedModules | array | Module IDs that were installed |
skippedModules | array | Module IDs that were skipped (e.g., unsupported target) |
source — Where files came from
source — Where files came from
| Field | Type | Description |
|---|---|---|
repoVersion | string | ECC version (from package.json) |
repoCommit | string | Git commit SHA |
manifestVersion | integer | Manifest schema version |
operations — What files were written
operations — What files were written
Each operation record:
| Field | Type | Description |
|---|---|---|
kind | string | Operation type (copy, merge, scaffold) |
moduleId | string | Source module |
sourcePath | string | Source file path in ECC repo |
destinationPath | string | Destination path in harness root |
strategy | string | Conflict resolution strategy |
ownership | string | Who owns this file (ecc or user) |
scaffoldOnly | boolean | If true, only written on first install |
state-store.schema.json
The central ECC state store. Schema ID: ecc.state-store.v1. All tables are arrays of typed records persisted in a SQLite database.
sessions
sessions
| Field | Type | Description |
|---|---|---|
id | string | Unique session ID |
adapterId | string | Harness adapter identifier |
harness | string | Harness name (e.g., claude, codex) |
state | string | active, completed, error |
repoRoot | string | Absolute path to the project root |
startedAt | string | ISO 8601 start timestamp |
endedAt | string | ISO 8601 end timestamp (null if active) |
snapshot | object | Bounded context snapshot |
skillRuns
skillRuns
| Field | Type | Description |
|---|---|---|
id | string | Unique skill run ID |
skillId | string | Skill identifier |
skillVersion | string | Skill version |
sessionId | string | Parent session ID |
taskDescription | string | Description of the task executed |
outcome | string | success, failure, partial |
failureReason | string | Error message if outcome is failure |
tokensUsed | integer | Approximate tokens consumed |
durationMs | integer | Wall-clock duration in milliseconds |
userFeedback | string | Optional feedback captured at session end |
createdAt | string | ISO 8601 creation timestamp |
skillVersions
skillVersions
| Field | Type | Description |
|---|---|---|
skillId | string | Skill identifier |
version | string | Version string |
contentHash | string | Hash of the skill content |
amendmentReason | string | Why this version was created (nullable) |
promotedAt | string | ISO 8601 timestamp when promoted (nullable) |
rolledBackAt | string | ISO 8601 timestamp when rolled back (nullable) |
decisions
decisions
| Field | Type | Description |
|---|---|---|
id | string | Unique decision ID |
sessionId | string | Session that recorded this decision |
title | string | Decision title |
rationale | string | Why this decision was made |
alternatives | array | Other options considered |
supersedes | string | ID of a prior decision this replaces (nullable) |
status | string | active, superseded, reversed |
createdAt | string | ISO 8601 creation timestamp |
installState
installState
| Field | Type | Description |
|---|---|---|
targetId | string | Harness target ID |
targetRoot | string | Absolute path to the harness config root |
profile | string | Profile name used (nullable) |
modules | array | Module IDs that were installed |
operations | array | File operation records |
installedAt | string | ISO 8601 install timestamp |
sourceVersion | string | ECC version at install time (nullable) |
governanceEvents
governanceEvents
| Field | Type | Description |
|---|---|---|
id | string | Unique event ID |
sessionId | string | Associated session ID (nullable) |
eventType | string | Type of governance event |
payload | any | Event payload (JSON value) |
resolvedAt | string | ISO 8601 resolution timestamp (nullable) |
resolution | string | Resolution description (nullable) |
createdAt | string | ISO 8601 creation timestamp |
workItems
workItems
| Field | Type | Description |
|---|---|---|
id | string | Unique work item ID |
source | string | linear, github, handoff, manual |
sourceId | string | External ID (e.g., GitHub issue number, nullable) |
title | string | Work item title |
status | string | Current status |
priority | string | Priority level (nullable) |
url | string | Link to external tracker (nullable) |
owner | string | Assignee (nullable) |
repoRoot | string | Project this item belongs to (nullable) |
sessionId | string | Session that last touched this item (nullable) |
metadata | any | Arbitrary metadata (JSON value) |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 last-updated timestamp |
hooks.schema.json
Defines the structure of Claude Code hook configurations. See the Hooks Reference for full documentation of action types and built-in hooks.
Supported events (18 total): SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification, SubagentStart, Stop, SubagentStop, PreCompact, InstructionsLoaded, TeammateIdle, TaskCompleted, ConfigChange, WorktreeCreate, WorktreeRemove, SessionEnd
Action types: command (shell), http (HTTP POST), prompt/agent (sub-agent)
plugin.schema.json
Defines the shape of an ECC plugin manifest (used by Codex plugin marketplace installs).
| Property | Type | Description |
|---|---|---|
name | string | Plugin name |
version | string | Semver version |
description | string | Human-readable description |
author | string|object | Author name or {name, url} |
homepage | string | Plugin homepage URL |
repository | string | Source repository URL |
license | string | SPDX license identifier |
keywords | array<string> | Searchable keywords |
skills | array<string> | Skill paths |
commands | array<string> | Command paths |
mcpServers | string|array|object | MCP server definitions |
features.agents | integer | Number of agent definitions |
features.commands | integer | Number of command definitions |
features.skills | integer | Number of skill definitions |
features.configAssets | — | Config file assets |
features.hookEvents | array | Hook event types this plugin uses |
features.customTools | array | Custom tool definitions |
package-manager.schema.json
Tracks the user’s preferred package manager for ECC operations.
| Property | Type | Description |
|---|---|---|
packageManager | string | One of: npm, pnpm, yarn, bun |
setAt | string | ISO 8601 timestamp when this was set |
provenance.schema.json
Metadata attached to learned or imported skills in ~/.claude/skills/learned/ and ~/.claude/skills/imported/.
| Property | Type | Description |
|---|---|---|
source | string | Origin URL, file path, or identifier |
created_at | string | ISO 8601 creation timestamp |
confidence | number | Score 0–1 indicating extraction confidence |
author | string | Who or what produced the skill |