ProductIntent
ProductIntent is the “product constitution” that the host product hands to GHW. It tells the digital life:
- Which product it lives in.
- Why the product exists.
- Which KPIs matter most.
- Which things must never be done.
- What approval a change requires.
- What the operating cadence and audit policy are.
Minimal example
For a complete example, see product_intent.example.crm.json in the repository root.
{
"schema_version": 1,
"product_id": "ghw-crm",
"product_type": "saas_web",
"version": "0.1.0",
"update_epoch": 1,
"approved_by": "ops",
"manifesto": "Help sales teams follow up faster without leaking tenant data.",
"sacrosanct": ["never leak tenant data"],
"north_star_kpi": "nrr_quarterly",
"secondary_kpis": ["deal_win_rate", "sales_cycle_days_p50"],
"value_weights": {
"user_satisfaction": 0.25,
"retention": 0.30,
"revenue": 0.35,
"safety": 0.10
}
}
Who can modify it
GHW cannot modify ProductIntent directly. It can:
- Discover that ProductIntent no longer matches reality.
- Propose a change.
- Write to the audit log.
- Wait for human approval.
What actually writes product_intent.json should be ops, the product owner, or the deployment pipeline.
Relationship to E
ProductIntent is not stored directly in ExistenceDegree; instead it influences three pathways:
- KPI weights: determine how
Kis aggregated. - Consent policy: determines the approval threshold for changes.
- LLM context: lets goal/rule proposals know the product mission and red lines.
Production recommendations
- Keep ProductIntent in a controlled configuration directory.
- Bind
update_epochto signed commits or a config-center version number. - Write every change to the audit system.
- Do not put API keys, customer data samples, or personally identifiable information into ProductIntent.