name: update-landscape description: > This skill should be used when the user asks to "add a company", "add a relationship", "update an edge", "remove a node", "add more companies", "update the data", "add startups", "add X companies", or any request to modify the tech landscape graph data (nodes or edges). Also triggers on "who's missing", "what relationships are missing", or "update company info".
Update Tech Landscape
Manage companies (nodes) and relationships (edges) in the Silicon Valley tech landscape
visualization. Data lives in data.js, loaded by index.html.
Data Location
- Data file:
data.js— contains theDATAobject withnodesandedgesarrays - Visualization:
index.html— readsDATAfromdata.js, renders D3 force graph - Schema reference:
references/schema.md— full field definitions, valid types, constraints
Workflow: Adding Companies
- Read
data.jsto see existing nodes and avoid duplicates - Read
references/schema.mdfor the node schema - For each new company, determine:
id: lowercase, unique, no spaces (e.g.,"databricks")cluster: one of AI, Cloud, Social, Hardware, Enterprise, Fintech, Transport, Consumer- All required fields: name, founded, hq, ceo, description
- Insert new node objects into the
DATA.nodesarray indata.js - Identify relationships between the new company and existing companies
- Add corresponding edges (see below)
Workflow: Adding Relationships
- Read
data.jsto verify both source and target node IDs exist - Read
references/schema.mdfor the edge schema and valid types - For each relationship, determine:
type: ally, rival, investor, acquirer, lawsuit, or frenemystrength: 1-5 scale (see schema for calibration)startYear/endYear: when the relationship started and ended (null if ongoing)summary: 1-3 factual sentences explaining the relationshipevents: 2-6 timeline entries with year and description
- Insert new edge objects into the
DATA.edgesarray indata.js
Workflow: Updating Existing Data
- Read
data.jsand locate the node or edge to update - Apply changes directly — update CEO names, descriptions, add new events to edges, etc.
- When updating a company's cluster, verify no edges assume the old cluster for filtering
Workflow: Removing Data
- When removing a node, also remove ALL edges that reference it as source or target
- When removing an edge, no other cleanup is needed
Validation Rules
Before finalizing any data change, verify:
- Every edge
sourceandtargetreferences an existing nodeid - No duplicate node
idvalues - All required fields are present on every node and edge
-
strengthvalues are integers 1-5 -
startYear<= 2026 for edges that should be visible by default -
typeis one of the 6 valid relationship types -
clusteris one of the 8 valid industry clusters - Event years are within the
startYear-endYearrange (or startYear-2026 if endYear is null) - Descriptions and summaries use factual, verifiable information
Research Guidelines
When adding companies or relationships based on user requests:
- Use factual, well-known public information only
- Dates should be accurate (founding years, lawsuit dates, acquisition dates)
- CEO names should be current
- Relationship summaries should be neutral and factual, not opinionated
- When uncertain about a fact, note it and ask the user rather than guessing
- Prefer well-documented, notable relationships over obscure ones
Quick Reference
Add a company
Edit data.js → DATA.nodes array → insert { id, name, cluster, founded, hq, ceo, description }
Add a relationship
Edit data.js → DATA.edges array → insert { source, target, type, strength, startYear, endYear, summary, events }
Valid clusters
AI, Cloud, Social, Hardware, Enterprise, Fintech, Transport, Consumer
Valid relationship types
ally, rival, investor, acquirer, lawsuit, frenemy
Additional Resources
Reference Files
references/schema.md— Complete field definitions, valid values, constraints, and performance notes