Normalize Map
Convert only fields supported by source evidence or explicit confirmation.
Follow ../../references/interaction-contract.md.
Process
- Run
python3 <skill-dir>/scripts/run.py --input <candidate.json> --output <normalized.json>. - Validate all deterministic conversions automatically.
- Group remaining assumptions and holds by shared root cause and affected scope.
- Ask once for all independent blocking engineering choices, then rerun once.
An explicitly confirmed
--defaultsaddress convention fills absent or blank conventions across that scope; it does not override a nonblank source claim.--defaultstakes a JSON file, for example{"address_convention": "protocol-offset"}after that convention is confirmed. Rerun with--defaults <confirmed-defaults.json>. To refresh the normalized output you created for this same scope, also pass--overwrite; otherwise choose a new output path. Never overwrite the source candidates. Check the command succeeded before treating an existing output as the corrected result.
Output files
normalized.json- Use this canonical map for validation and later steps. It keeps source values, resolved engineering fields, warnings, and grouped unresolved holds together.
Completion requires every source field to be normalized, held, or rejected with evidence; clean deterministic normalization needs no human approval.
Stop
- Do not guess unknown datatype, access, bit order, or byte order.
- Keep the raw source address separate from protocol offset.
- Stop for writes, broadcasts, discovery, or unbounded polling.
Handoff
- Normalization completes: suggest
check-map. - The user requests a known map-wide address conversion: suggest
remap-addresses.
Keep the raw source address separate from protocol offset. Preserve unknown datatype, access, and byte order as unresolved.