ECC's module-regression skill reruns everything downstream of the module you changed

15 hours ago

ECC adds two skills in pull request #3413. module-regression keeps a REGRESSION.md ledger of each module's downstream consumers and acceptance command, reruns them after a change, and treats any red exit code as an unfinished change. test-collaboration ties requirements and bugs to TEST-IDs backed by passing, behavior-level tests. Both ship as one optional beta install module, off by default, and are on main after the latest tagged release. https://github.com/affaan-m/ECC/pull/3413 https://github.com/affaan-m/ECC/blob/main/skills/module-regression/SKILL.md https://github.com/affaan-m/ECC/blob/main/skills/test-collaboration/SKILL.md

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00ECC's module-regression skill reruns everything downstream of the module you changed
  2. 0:14Agents check the module they changed and miss the one it broke
  3. 0:29A ledger names each module's consumers and the command that proves it works
  4. 0:43Consumers come from the dependency graph, never from a guess
  5. 1:00The verdict is the exit code, not a model's review
  6. 1:15Ledger commands are shown for review before they run
  7. 1:32test-collaboration ties each requirement and bug to a TEST-ID
  8. 1:47Covered means a passing command and assertions on behavior
  9. 2:03Separate green client and server tests do not prove they agree
  10. 2:17One optional install module, in beta and off by default
  11. 2:32ECC's module-regression skill reruns everything downstream of the module you changed
Show transcript

ECC's module-regression skill reruns everything downstream of the module you changed

github.com/affaan-m/ECCmerged Oct 11, 2026
module 03: PASS
05-aggregation · exit 1
github.com/affaan-m/ECC/pull/3413 · skills/module-regression/SKILL.md

The ECC plugin added a skill called module-regression. After a change, it runs the module you touched and every module that depends on it. If any of them fails, your change is not done.

Agents check the module they changed and miss the one it broke

github.com/affaan-m/ECCmodule-regression · PR #3413
Modifying A may break B.

The defect appears days later, when an aggregate, export, or external behavior is wrong.

skills/module-regression/SKILL.md · Problem

In a large repository, modules depend on each other. People and agents tend to verify only the module they changed. So a downstream consumer fails silently, and a wrong total or export turns up days later.

A ledger names each module's consumers and the command that proves it works

github.com/affaan-m/ECCREGRESSION.md
## Module 03: Shop Data Cleaning
Downstream consumers: 05-aggregation, 07-final-export
Acceptance command: pytest tests/test_03.py && python scripts/reconcile.py --module 03
Propagation rule: external behavior change → run 05 and 07
skills/module-regression/SKILL.md · Three Required Fields per Module

The skill keeps that map in a file called REGRESSION.md. Each module lists its downstream consumers, a command that proves it still works, and a rule for which consumers must rerun after a change.

Consumers come from the dependency graph, never from a guess

github.com/affaan-m/ECCmodule-regression · PR #3413
build tooling or import scanrecorded edge
edge it cannot establishunverified · blocks all-green
skills/module-regression/SKILL.md · Three Required Fields per Module

The consumer lists come from the repository's build tooling or a reproducible import scan. An edge the scan cannot establish is marked unverified, and an affected unverified edge blocks an all-green result until a person confirms it.

The verdict is the exit code, not a model's review

github.com/affaan-m/ECCmodule-regression · Four Invariants
no acceptance commandledger gap, not a pass
one red downstream consumerchange unfinished
auditorreports, does not fix
skills/module-regression/SKILL.md · Four Invariants

The verdict is the exit code, not a model looking and finding no problem. A module with no acceptance command is a gap, never a pass. One red consumer means the change is unfinished, and the author fixes it.

Ledger commands are shown for review before they run

github.com/affaan-m/ECCmodule-regression · Audit Flow
# .agents/skills/module-regression/agents/openai.yaml
policy:
allow_implicit_invocation: false
skills/module-regression/SKILL.md · Audit Flow · agents/openai.yaml

Ledger commands count as untrusted repository content. The skill lists them with their risks, timeout and network needs, and asks before any new authority. Codex runs it only when you call it by name.

test-collaboration ties each requirement and bug to a TEST-ID

github.com/affaan-m/ECCtest-collaboration · PR #3413
TEST-ORDER-001
state: missing · in progress · unverified · covered · not applicable
source: requirement, rule, risk, bug or incident

A bug fix without a TEST-ID or a recorded manual exit is not closed.

skills/test-collaboration/SKILL.md · sections 2 and 3

The companion skill, test-collaboration, gives each requirement, business rule and bug a stable test ID with a state. A bug fix with no test ID, and no recorded manual check, does not count as closed.

Covered means a passing command and assertions on behavior

github.com/affaan-m/ECCtest-collaboration · section 5
command exit code0
asserts only “called” or HTTP 200not covered
test count or green CI alonenot covered
skills/test-collaboration/SKILL.md · Review Test Evidence

A test ID is marked covered only when its command exits zero and its assertions check behavior. A test that only confirms a call happened, or got an HTTP 200, does not count, and neither does a green CI run.

Separate green client and server tests do not prove they agree

github.com/affaan-m/ECCtest-collaboration · section 4
contractschema lint
consumergenerated mocks
providerserialized response
integrationone real path
skills/test-collaboration/SKILL.md · Drive Cross-Boundary Tests from One Contract

When a frontend and backend are built apart, one machine-readable contract feeds the contract, consumer and provider tests. One test ID also needs a real cross-boundary path, or a recorded gap.

One optional install module, in beta and off by default

github.com/affaan-m/ECCmanifests/install-modules.json
documentation-test-regressionbeta
defaultInstallfalse
targets14 harnesses, incl. Claude Code, Codex, Cursor, OpenCode
github.com/affaan-m/ECC/pull/3413 · manifests/install-modules.json · install-profiles.json

Both skills ship together as one optional install module, marked beta and off by default. Only the full profile includes it. It targets fourteen harnesses, among them Claude Code, Codex, Cursor and OpenCode.

ECC's module-regression skill reruns everything downstream of the module you changed

github.com/affaan-m/ECCmodule-regression · PR #3413
module 03: PASS05-aggregation · exit 1

Merged to main. The latest tagged release, from Oct 1, predates it.

github.com/affaan-m/ECC/pull/3413
github.com/affaan-m/ECC/releases

The two skills are on main. ECC's latest tagged release, from October first, came out before them. ECC's module-regression skill reruns everything downstream of the module you changed. It's pull request 3413 in the ECC repository.