Sidebar swatch now follows function family rather than S88 level, so the
palette is visually identifiable instead of monochromatically blue. Editor-group
rectangles in flow.json still follow S88 — only the registerType color changed.
Full table + rationale: superproject .claude/rules/node-red-flow-layout.md §10.0
and .claude/refactor/OPEN_QUESTIONS.md (2026-05-21 entry).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The repo's prior docs (CLAUDE.md, MEMORY notes, superproject overview)
framed monster as a "multi-parameter biological process monitor"
suggesting NH4/NO3/COD/TSS measurement. The source code only emits
volumetric pulse + bucket state — no constituent analysis. The
framing was misleading. Reframed to match the code.
Also updated examples/README.md: removed references to four flow
files that don't exist in the repo (`integration.flow.json`,
`edge.flow.json`, `monster-dashboard.flow.json`,
`monster-api-dashboard.flow.json`) and documented the actual two
files (`basic.flow.json`, `02-integrated-e2e.json`). The missing
flows stay tracked in wiki/Reference-Examples.md as TODOs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The commands registry has `child.register` (with `registerChild` alias);
CONTRACT.md mentioned it only in the Port 2 prose. contract-verify
required it in the canonical Inputs table.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the agent-written placeholder inside Reference-Contracts.md with
the authoritative table generated from src/commands/index.js. Both the
BEGIN and END markers are normalized to the canonical form used by
`@evolv/wiki-gen`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the prior stub/partial wiki with a Home + Reference-{Architecture,
Contracts,Examples,Limitations} + _Sidebar structure. Topic-contract and
data-model sections wrapped in AUTOGEN markers for the future wiki-gen tool.
Source-vs-spec contradictions surfaced and flagged inline (not silently
fixed). Pending-review notes mark sections that need a full node review.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each repo can now be read standalone for the file-naming convention. Full rule:
.claude/rules/node-architecture.md in the EVOLV superproject.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drop the pre-refactor flows (edge.flow.json, integration.flow.json,
monster-dashboard.flow.json, monster-api-dashboard.flow.json) and ship
one canonical 02-integrated-e2e.json instead.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Banner hash updated to 8540328 (was stale 2a6a0bc).
- Section 9: flag constraints.flowmeter not wired in buildDomainConfig
(effectively always true at runtime); add nominalFlowMin / flowMax /
maxRainRef rows that were missing from the config table.
- Section 12: add two new debug recipes — measurement child ignored
(assetType must be "flow", not "flow-electromagnetic") and flowmeter=false
has no runtime effect.
- Section 14 #3: expand flowmeter limitation to call out buildDomainConfig gap.
- Section 14 #5: add S88 colour cleanup note (#4f8582 teal → #50a8d9 Unit).
- AUTOGEN markers untouched; npm run wiki:all re-ran cleanly before commit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
For all 11 nodes with auto-gen markers: wiki/Home.md sections 5 (topic
contract) and 9 (data model) regenerated via npm run wiki:all. New
Unit column shows '<measure> (default <unit>)' for declared topics,
'—' otherwise. Effect column now uses descriptor.description (P11.2
field) overriding the generic per-prefix fallback.
For rotatingMachine + reactor: Phase 10 test rewrites — 3 + 8 files
moved off private nodeClass internals (_attachInputHandler, _commands,
_pendingExtras, _registerChild, _tick, etc.) to the public
BaseNodeAdapter surface (node.handlers.input, node.source.*).
+6 / +7 net new tests.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds to scalar setters whose payloads are
plain numbers OR {value, unit}. Skipped where payload is compound or
mode-dependent (control-%, {F, C: [...]}, etc.) — documented inline.
Every command gains a description field for wikiGen consumption.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Root cause: configUtils.initConfig was silently stripping the four
unknown constraint keys (nominalFlowMin, flowMax, maxRainRef,
minSampleIntervalSec) because they weren't declared in the schema.
With those keys gone, validateFlowBounds saw NaN/NaN and routed every
i_start into the invalid-bounds branch — _beginRun never fired, so
sumPuls stayed 0.
Fix is in generalFunctions/src/configs/monster.json (declared the
four keys with sensible defaults). Plus a 4-line comment at the guard
site documenting the schema dependency. 10/10 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The P6.3 refactor dropped the case 'registerChild' branch from the
nodeClass switch. Restored as a canonical child.register descriptor
with the legacy registerChild alias.
Monster accepts measurement children — without this, inbound Port 2
handshakes from a child were silently ignored.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Refactor of monster to use the platform infrastructure (BaseDomain, BaseNodeAdapter,
ChildRouter, commandRegistry, statusBadge). Extracts concerns into
focused modules per .claude/refactor/MODULE_SPLIT.md generic template.
Tests stay green; CONTRACT.md generated; legacy aliases preserved.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
References the flow-layout rule set in the EVOLV superproject
(.claude/rules/node-red-flow-layout.md) so Claude Code sessions working
in this repo know the S88 level, colour, and placement lane for this node.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>