---
title: TRACEROUTE-TEMP-000 · README
kind: readme
project_code: TRACEROUTE-TEMP-000
stamp: TRACEROUTE-TEMP-000-A000-05-25-06-15
captured: 2026-05-25
back_reference: ../_principia/executing-as-architecting.md
parent_groundrule: ../_ops/AGENT-PRE-FLIGHT.md
parent_axiom: ../_ops/AXM-COMMS-001.md
siblings:
  - ./traceroute-instantiate.py
  - ./template/views/traceroute.html
  - ./template/data/traceroute-nodes.json
  - ./template/LAUNCH-TEMPLATE.command
  - ./SHIP.md
prior_art:
  - ../_TRACE-000/  (the refined working shape extracted from)
  - ../Principia-Triskelion/views/lotr-trace.html  (the original cyrelium-skin traceroute)
principle_honored:
  - executing-as-architecting (template IS the demonstration: it produced JCL-TRACE-000 as its first instantiation)
  - filename-hygiene
  - iterate-don't-decimate (CLI refuses to overwrite an existing target)
sigil: ⊙
---

# TRACEROUTE-TEMP-000

Subject-agnostic template-builder for the TRACEROUTE operation. Extracted from the working shape proven by `_TRACE-000/` (empathy traceroute, May 2026) and `Principia-Triskelion/views/lotr-trace.html` (the cyrelium skin).

A traceroute viewer holds a corpus of nodes — each one a primary-sourced act that moved something — and surfaces them in two registers: a scale/category-grouped tree and a date-anchored timeline lane. Nodes link to each other via kin verbs that emerge from the corpus, not pre-locked. Contests are surfaced via a `contested` tag, not flattened. The viewer wears a Cyrelium skin (deep-blue gradient, Cormorant serif, color-by-scale).

## Usage

Instantiate a new subject:

```bash
python3 /Users/shalaco/Desktop/root/_TRACEROUTE-TEMP-000/traceroute-instantiate.py <subject-slug> --title "Display Title"
```

This creates `/Users/shalaco/Desktop/root/_<subject-slug>-TRACE-000/` with the template files copied and all `{{PLACEHOLDER}}` tokens filled. The CLI refuses to overwrite an existing target — archive or rename it first. The launcher inside the instantiated folder is double-click-runnable (it probes for a free port, serves the parent over loopback HTTP, opens the viewer).

After instantiation, the work is in the nodes JSON: populate `data/traceroute-nodes.json` with the subject's corpus. The viewer reads it on every load; no build step. The empty seed ships with one example node and a `_README` block in the JSON documenting every field — delete both once your real nodes are in.

## Schema notes (`traceroute-temp-000-1.0`)

The schema honors TRACE-000's field set as canonical: `id`, `title`, `scale`, `act`, `body`, `date_anchor`, `region`, `contested`, `sources` (array of `{title, outlet, date, url}`), `kin` (array of `{verb, target, note?}`), plus optional `era_bucket` for timeline grouping. The `scale` field carries either a register (macro/crossover/micro/institutional) or a category (upstream/core/downstream/lateral) — both palettes ship as defaults in the viewer, and a subject can override via `$frontmatter.scales_meta`. Shadow nodes (referenced as kin but not standalone) live in a top-level `shadow_nodes` array.

The timeline lane parses `$frontmatter.window` (`YYYY-MM-DD → YYYY-MM-DD`) for its axis; if absent, it derives bounds from the corpus's `date_anchor` range (with a 30-day pad), falling back to trailing-365 if there are too few dated nodes.

## First instantiation

`_jim-crow-laws-TRACE-000/` was instantiated as TRACEROUTE-TEMP-000's first real-world test AND the JCL-TRACE-000 ship — one fire, not two, per Captain redirect. See `SHIP.md` for the stamped ship report.

Future instantiations: use the CLI, not the in-place pattern that JCL-TRACE-000 originally proposed.
