heavymap

Adapted from PR #58 (hm/fresh-foundation @ 15adec2) for the #57 layout; CLI/registry-specific parts deferred to a later code PR.

Hard rules

These apply to every agent on every task. If a task would break one, stop and report it. Follow root AGENTS.md, AGENTS-MCS.md, and CONTRIBUTING.md; dataset work follows heavymap-planning/DATASET-ROUTINE.md.

  1. Pulled data never goes in the repo. Keep raw pulls local. Commit only the permitted documentation and sheet changes; never commit real personal data.
  2. Pull everything; never show or ship identifying information publicly. Pulls keep all fields, including owner names and other identifying fields (outFields=*). Raw and processed data stays local in git-ignored local-data/, never in git (rule 1). Identifying or personal information (owner names, owner mailing addresses, contact details, personal names on grant or registry tables) is never shown or shipped publicly: it is screened out at the publish/display boundary, which covers published tiles, site files, UI and exports. Screening is not done at pull time. This follows D-13 (“retain, don’t strip; mask at the presentation layer”, first-attempts/niagara-atlas/TECHNOLOGY-DECISIONS.md). The proposed per-field access_tier (heavymap-planning/12-authority-scale-and-meta-proposals.md) is the intended screening mechanism; its values are still undecided. Until it exists, identifying fields default to screened. Roll numbers, tax or property class and parcel civic (street) addresses in Ontario are public and not screened (rule 4; Morgen 2026-10-17: “Yes, show addresses”). Owner names, owner mailing addresses, legal descriptions (e.g. Legal_Txt) and other personal information stay screened. In sheets, docs, PRs and comments, record identifying field names only, never values.
  3. Public publish or deploy needs Morgen’s per-jurisdiction beta-gate sign-off. Building and testing publish or deploy tooling is allowed. Actually publishing or deploying publicly still requires Morgen’s per-jurisdiction sign-off on the beta gate (NA-269, heavymap-planning/BETA-GATE-HAMILTON.md). Treat each jurisdiction’s Stage B as closed until that sign-off. Morgen decides whether a layer becomes dormant or surfaced.
  4. MPAC-derived data may be pulled, used and published (Morgen, 2026-10-17). In Ontario, roll numbers (ARN or assessment number), MPAC tax or property class and parcel civic (street) addresses may be shown publicly. Rule 2 still applies: identifying or personal information is screened at the publish boundary.
  5. NPCA-derived layers may be pulled, used and published, including NPCA’s MPAC-derived assessment parcels, under rule 4. All fields are pulled; identifying information is screened at the publish boundary (rule 2).
  6. Pull permission and use or publication permission are separate. Check access before pulling. Licences do not gate MPAC- or NPCA-derived data (rules 4 and 5). Record each layer’s licence anyway, for provenance. See heavymap-planning/DATASET-ROUTINE.md.
  7. Human review. Agents do not approve or merge their work. Use the pickup and packet rules in AGENTS.md. Cite an existing Linear ID in a PR when applicable under CONTRIBUTING.md.
  8. Unknown stays unknown. Blank is not zero, and a zero-result scan is valid. Do not invent values to fill a sheet.
  9. No workaround for gated sources. If access is blocked or login-walled, mark it blocked and stop. No tokens or scraping around authentication.
  10. No secrets. If one is found, report its path and type, never its value, and stop.
  11. UK geography is out of scope. Follow AGENTS.md and AGENTS-MCS.md for the UK analogue convention.
  12. No unsupported vacancy claims. HeavyMap must not assert on its own that land is vacant. A source’s own classification may be displayed quoted and attributed (for example City class: Vacant Lands). UI naming for surfaced source classes will be refined later. Display pattern, not final copy: MPAC tax or property class (public in Ontario, rule 4) may be shown as a cross-confirmation signal such as Tax class confirmed: industrial. See docs/architecture/claim-refusal-contract.md.
For actual Spreadsheets/ CSV edits, use UTF-8, LF line endings, RFC-4180 quoting, ISO dates (YYYY-MM-DD), text IDs, and no formula-leading cells. Do not put semicolons or newlines inside cells; separate multiple values with ` `.