Skip to content

feat(wave-4): W4.1 — fill the anti-echo corpus (8 fixtures + node:test harness) #196

@Dewinator

Description

@Dewinator

Scaffold landed in commit f52a914:

  • mcp-server/src/__tests__/fixtures/anti-echo/README.md
  • mcp-server/src/__tests__/fixtures/anti-echo/corpus-types.ts

Per docs/wave-4-anti-echo.md §"Sub-task decomposition", W4.1 is the first piece of Wave 4 and is explicitly agent-eligible. This issue tracks the work after the scaffold: fill the corpus and add the harness, one category at a time so each PR stays small and reviewable.

Decomposition (one PR per row, in any order)

Each PR adds:

  1. A <category>/ subdirectory with its first JSON fixture (or cohort).
  2. A node --test test file (anti-echo-<category>.test.ts) under mcp-server/src/__tests__/ that loads the fixture via AntiEchoCorpusFixture/AntiEchoCohortFixture and asserts the §10 mechanism rejects/quarantines/demotes per metadata.expected_outcome.
  3. If the PR is the first to need a signing key, also lands fixture-key.json (Ed25519, fixture-only, deterministic seed). The README already reserves the file slot.
# Category §10 mechanism it owns Single envelope or cohort?
1 forgery §3.7 PoK + §5 rule 1 single
2 plagiarism §10.4 diversity filter cohort (N≥3, same key OR different keys depending on §10.4 sub-rule the test exercises)
3 sybil-flood §10.2 quarantine + §10.4 cohort (M≥10)
4 echo-chamber §10.4 cohort (≥80% of synthetic peer set)
5 slow-poisoning §10.5 REM self-audit single (paired with a high-confidence local experience the test seeds first)
6 truth-by-repetition §10.4 + §10.6 firebreak cohort (N keys, asserts no Tier-A promotion)
7 polarity-inversion-pair §10.3 contradicts-trigger cohort (size 2)
8 chain-rewrite §5 rule 19 (single-strike) single

Acceptance criteria

  • All 8 categories have at least one fixture and one test case.
  • Every assertion checks both the rejection (admission decision) and the side effect (trust-edge delta, nodes.quarantined_until, memory_relations.contradicts edge, REM falsification reason) — per wave-4-anti-echo.md §"Corpus categories".
  • Tests live alongside the existing lesson-admission.test.ts, rem-audit.test.ts, swarm-admit.test.ts etc. and pass with npm test.
  • No fixture changes the production code path. If a §10 mechanism cannot be made to fire from a unit test (because it requires real federation or a multi-node cohort), that fixture is deferred to W4.2 (HTTP corpus runner, separate issue) — flag it with a comment, do not weaken the assertion.

Out of scope for this issue (covered later)

  • W4.2: scripts/run-anti-echo-campaign.mjs HTTP runner against a self-loop federation listener.
  • W4.3: multi-node campaign + report generator → docs/constitution-defense-report.md. Operator-driven, blocked on Wave 2.

Related

  • Anchor doc: docs/wave-4-anti-echo.md
  • Wave overview: docs/waves.md
  • Spec: docs/SWARM_SPEC.md §10
  • Scaffold commit: f52a914

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-eligibleAutonomous agent loop is allowed to pick thisarchitectureCross-cutting design decisions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions