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

1 month 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 about 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
  1. 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.

    Slide text
    github.com/affaan-m/ECC merged Oct 11, 2026
    module 03: PASS
    05-aggregation · exit 1
    github.com/affaan-m/ECC/pull/3413 · skills/module-regression/SKILL.md
  2. 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.

    Slide text
    github.com/affaan-m/ECC module-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
  3. 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.

    Slide text
    github.com/affaan-m/ECC REGRESSION.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
  4. 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.

    Slide text
    github.com/affaan-m/ECC module-regression · PR #3413
    build tooling or import scan recorded edge
    edge it cannot establish unverified · blocks all-green
    skills/module-regression/SKILL.md · Three Required Fields per Module
  5. 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.

    Slide text
    github.com/affaan-m/ECC module-regression · Four Invariants
    no acceptance command ledger gap, not a pass
    one red downstream consumer change unfinished
    auditor reports, does not fix
    skills/module-regression/SKILL.md · Four Invariants
  6. 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.

    Slide text
    github.com/affaan-m/ECC module-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
  7. 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.

    Slide text
    github.com/affaan-m/ECC test-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
  8. 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.

    Slide text
    github.com/affaan-m/ECC test-collaboration · section 5
    command exit code 0
    asserts only “called” or HTTP 200 not covered
    test count or green CI alone not covered
    skills/test-collaboration/SKILL.md · Review Test Evidence
  9. 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.

    Slide text
    github.com/affaan-m/ECC test-collaboration · section 4
    contract schema lint
    consumer generated mocks
    provider serialized response
    integration one real path
    skills/test-collaboration/SKILL.md · Drive Cross-Boundary Tests from One Contract
  10. 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.

    Slide text
    github.com/affaan-m/ECC manifests/install-modules.json
    documentation-test-regression beta
    defaultInstall false
    targets 14 harnesses, incl. Claude Code, Codex, Cursor, OpenCode
    github.com/affaan-m/ECC/pull/3413 · manifests/install-modules.json · install-profiles.json
  11. 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.

    Slide text
    github.com/affaan-m/ECC module-regression · PR #3413
    module 03: PASS 05-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

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built with ❤️ in New York