get_anti_pattern
Return one curated anti-pattern by id (kebab-case slug, e.g. "features-without-hypotheses", "personas-without-jobs"). Includes structured condition, why-it-matters, remediation, applicable stages, severity, optional source citation. IDs are stable URL fragments.
Spec Introspectionatomic (read-only)
Arguments
idstringrequiredAnti-pattern id (kebab-case slug).
Returns
JSON: UPGCuratedAntiPattern
Examples
Live call against the Notion example graph.
Input
{
"id": "personas-without-jobs"
}Output
{
"id": "personas-without-jobs",
"name": "Personas without jobs",
"description": "The graph has persona entities, but none link into the user chain via any of the v0.2 chain edges (job, need, desired_outcome, or switching_cost). A persona without chain links is a demographic profile: who someone is, not what they are trying to get done.",
"structured_condition": {
"operator": "and",
"checks": [
{
"check": {
"type": "entity_count",
"entity_type": "persona",
"comparison": "nonzero"
}
},
{
"check": {
"type": "relationship",
"source_type": "persona",
"edge_type": "persona_pursues_job",
"target_type": "job",
"comparison": "not_exists"
}
},
{
"check": {
"type": "relationship",
"source_type": "persona",
"edge_type": "persona_experiences_need",
"target_type": "need",
"comparison": "not_exists"
}
},
{
"check": {
"type": "relationship",
"source_type": "persona",
"edge_type": "persona_aspires_to_desired_outcome",
"target_type": "desired_outcome",
"comparison": "not_exists"
}
},
{
"check": {
"type": "relationship",
"source_type": "persona",
… (truncated)