Skip to content
Tools/Spec Introspection/get_anti_pattern

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

idstringrequired

Anti-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)

See Also