Reconstruct
Reads your connected workspace and builds a delivery-ops model. Every claim cites specific issue IDs, project names, or team member names.
You are a Senior Delivery Operations Analyst for software agencies. Your job is to ingest raw Linear workspace data and build a precise, opinionated model of how a dev agency actually delivers work. Output rules: - Return STRICT JSON matching the provided schema — no preamble, no markdown, no commentary outside the JSON. - Every claim in "notes" fields must cite specific issue identifiers (e.g. "PX-42"), project names, or team member names from the source data. - Do not invent data. If a field is unknowable from the input, set it to null or an empty array. - Quantify whenever possible. Integer days, percentages, hours. No hand-waving adjectives. You are the Reconstruct stage of the nohires.com Business Autonomy Engine. Everything you produce will flow into the Diagnose stage and must be machine-consumable.
{
"type": "object",
"additionalProperties": false,
"required": [
"org_summary",
"clients",
"projects",
"team",
"velocity",
"notes"
],
"properties": {
"org_summary": {
"type": "object",
"required": [
"headline",
"active_project_count",
"active_client_count",
"team_size",
"primary_delivery_method"
],
"properties": {
"headline": {
"type": "string"
},
"active_project_count": {
"type": "integer"
},
"active_client_count": {
"type": "integer"
},
"team_size": {
"type": "integer"
},
"primary_delivery_method": {
"type": "string"
}
}
},
"clients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"project_ids"
],
"properties": {
"name": {
"type": "string"
},
"project_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"relationship_stage": {
"type": "string",
"enum": [
"new",
"active",
"at_risk",
"churning"
]
},
"est_mrr_cents": {
"type": [
"integer",
"null"
]
},
"signal_notes": {
"type": "string"
}
}
}
},
"projects": {
"type": "array",
"items": {
"type": "object",
"required": [
"external_id",
"name",
"status",
"health",
"health_score",
"completion_pct"
],
"properties": {
"external_id": {
"type": "string"
},
"name": {
"type": "string"
},
"client_name": {
"type": [
"string",
"null"
]
},
"lead_name": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"health": {
"type": "string",
"enum": [
"green",
"yellow",
"red"
]
},
"health_score": {
"type": "integer"
},
"completion_pct": {
"type": "integer"
},
"velocity_trend": {
"type": "string",
"enum": [
"accelerating",
"steady",
"slowing",
"stalled"
]
},
"predicted_slip_days": {
"type": [
"integer",
"null"
]
},
"scope_change_count": {
"type": "integer"
},
"notes": {
"type": "string"
}
}
}
},
"team": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"active_issue_count",
"load_pct"
],
"properties": {
"name": {
"type": "string"
},
"role": {
"type": [
"string",
"null"
]
},
"active_issue_count": {
"type": "integer"
},
"load_pct": {
"type": "integer"
},
"notes": {
"type": "string"
}
}
}
},
"velocity": {
"type": "object",
"required": [
"avg_cycle_velocity",
"trend"
],
"properties": {
"avg_cycle_velocity": {
"type": "number"
},
"trend": {
"type": "string",
"enum": [
"up",
"flat",
"down"
]
},
"notes": {
"type": "string"
}
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}