{
  "version": "30.0.8",
  "store_product": "theunpartyrunway-foundation-labels",
  "store_budget": "2025-10-29",
  "theunpartyrunway_define": {
    "unparty": {
      "unparty_label": "TBD",
      "unparty_about": "TBD",
      "unparty_build": "TBD",
      "unparty_connect": "TBD"
    },
    "audience": {
      "audience_label": "THEUNPARTYAPP labels for THEUNPARTYRUNWAY",
      "thinker": {
        "loner": "score"
      },
      "talker": {
        "homebody": "score",
        "wallflower": "score",
        "socialite": "score",
        "founder": "score"
      },
      "builder": {
        "homebody": "score",
        "wallflower": "score",
        "socialite": "score",
        "founder": "score"
      },
      "grower": {
        "homebody": "score",
        "wallflower": "score",
        "socialite": "score",
        "founder": "score"
      }
    },
    "house": {
      "description": "A directory located at the root of a project that contains invitations, guests, and parties. Files must follow the naming pattern: {directory_name}.{extension}",
      "naming_pattern": "{directory_name}.{extension}",
      "expected_outputs": {
        "core": {
          "patterns": [
            {
              "type": "fixed",
              "filename": "README.md",
              "description": "Standard documentation entry point"
            },
            {
              "type": "dynamic",
              "pattern": "{directory_name}.md",
              "description": "Directory-specific markdown documentation"
            }
          ],
          "count": 2,
          "examples": [
            "assumptions/README.md",
            "assumptions/assumptions.md",
            "badges/README.md",
            "badges/badges.md"
          ]
        },
        "brand": {
          "pattern": "{directory_name}.png",
          "count": 1,
          "examples": [
            "assumptions/assumptions.png",
            "badges/badges.png"
          ]
        },
        "risk": {
          "pattern": "{directory_name}.csv",
          "count": 1,
          "examples": [
            "assumptions/assumptions.csv",
            "badges/badges.csv"
          ]
        },
        "budget": {
          "pattern": "{directory_name}.json",
          "count": 1,
          "examples": [
            "assumptions/assumptions.json",
            "badges/badges.json"
          ]
        },
        "grow": {
          "pattern": "{directory_name}/performance_dashboard.html",
          "count": 1,
          "examples": [
            "assumptions/performance_dashboard.html",
            "badges/performance_dashboard.html",
            "grow/performance_dashboard.html"
          ]
        },
        "product": {
          "pattern": "{directory_name}.py",
          "count": 1,
          "examples": [
            "assumptions/assumptions.py",
            "badges/badges.py"
          ]
        }
      }
    },
    "house_focus": {
      "description": "A quantitative system for measuring the focus of the house",
      "file_type_mappings": {
        "core": {
          "extensions": [
            ".md"
          ],
          "description": "Documentation files in Markdown format"
        },
        "brand": {
          "extensions": [
            ".png"
          ],
          "description": "Visual assets in PNG format"
        },
        "risk": {
          "extensions": [
            ".csv"
          ],
          "description": "Analysis data in CSV format"
        },
        "budget": {
          "extensions": [
            ".json"
          ],
          "description": "Dynamic data in JSON format"
        },
        "grow": {
          "extensions": [
            ".html"
          ],
          "description": "Performance dashboards and growth tracking content in HTML format"
        },
        "product": {
          "extensions": [
            ".py"
          ],
          "description": "Product code and logic in Python format"
        }
      }
    },
    "house_risk_categories": {
      "description": "Classification system for parties that interact with risk-sensitive file patterns",
      "party_risk_patterns": {
        "audit_files": {
          "pattern": "*audit*.json",
          "description": "Python audit analysis files that track codebase evolution",
          "risk_level": "high",
          "party_interaction_types": [
            "PRODUCER",
            "CONSUMER",
            "TRANSFORMER"
          ],
          "tracking_metrics": [
            "execution_count",
            "file_generation_frequency",
            "data_volume_produced"
          ]
        },
        "script_dependencies_audit": {
          "pattern": "script_dependencies_audit_*.csv",
          "description": "Comprehensive script dependency analysis files tracking readiness and relationships",
          "risk_level": "high",
          "party_interaction_types": [
            "PRODUCER",
            "CONSUMER",
            "TRANSFORMER"
          ],
          "tracking_metrics": [
            "script_coverage_growth",
            "dependency_resolution_rate",
            "readiness_score_improvements"
          ]
        },
        "velocity_analysis": {
          "pattern": "claude_velocity_analysis_*.json",
          "description": "Claude API velocity analysis methodology files",
          "risk_level": "medium",
          "party_interaction_types": [
            "PRODUCER",
            "CONSUMER",
            "TRANSFORMER"
          ],
          "tracking_metrics": [
            "analysis_iterations",
            "methodology_evolution_count",
            "processing_duration"
          ]
        },
        "daily_velocity_data": {
          "pattern": "claude_daily_velocity_data_*.csv",
          "description": "Daily Claude velocity metrics and productivity data",
          "risk_level": "medium",
          "party_interaction_types": [
            "PRODUCER",
            "CONSUMER",
            "TRANSFORMER"
          ],
          "tracking_metrics": [
            "processing_frequency",
            "data_transformation_count",
            "record_volume_processed"
          ]
        }
      },
      "party_categories": {
        "PRODUCER": "Parties that generate risk pattern files",
        "CONSUMER": "Parties that read and analyze risk pattern files",
        "TRANSFORMER": "Parties that modify existing risk pattern files"
      }
    },
    "invitation": {
      "core": "A container that when score threshold is met grants access to process.",
      "brand": "not-ready",
      "risk": "not-ready",
      "budget": "2025-10-06",
      "grow": "2025-10-28",
      "product": "not-ready"
    },
    "guest": {
      "core": "A data-source required by an invitation to execute properly",
      "brand": "not-ready",
      "risk": "not-ready",
      "budget": "2025-10-06",
      "grow": "2025-10-28",
      "product": "not-ready"
    },
    "party": {
      "core": "A single-CORE gathering of logic",
      "brand": "not-ready",
      "risk": "not-ready",
      "budget": "2025-10-03",
      "grow": "2025-10-28",
      "product": "not-ready"
    },
    "foul": {
      "core": "A data entity that has been manipulated from its original state",
      "brand": "not-ready",
      "risk": "not-ready",
      "budget": "2025-10-03",
      "grow": "2025-10-28",
      "product": "not-ready"
    }
  },
  "party_types": {
    "CLASS": {
      "definition": "Object-oriented logic gathering",
      "description": "A blueprint for creating objects that encapsulates data and behavior",
      "metrics": {
        "total_classes": {
          "type": "integer",
          "description": "Count of all class definitions in the script",
          "measurement_method": "count_class_definitions"
        },
        "abstract_classes": {
          "type": "integer",
          "description": "Classes that cannot be instantiated directly, used as blueprints",
          "measurement_method": "count_abc_classes"
        },
        "inherited_classes": {
          "type": "integer",
          "description": "Classes that extend or inherit from other classes",
          "measurement_method": "count_inheritance_declarations"
        }
      }
    },
    "FUNCTION": {
      "definition": "Standalone logic gathering",
      "description": "Independent code blocks that perform specific tasks outside of classes",
      "metrics": {
        "total_functions": {
          "type": "integer",
          "description": "Count of all standalone function definitions (not in classes)",
          "measurement_method": "count_module_level_functions"
        },
        "public_functions": {
          "type": "integer",
          "description": "Standalone functions intended for external use",
          "measurement_method": "count_functions_without_leading_underscore"
        },
        "private_functions": {
          "type": "integer",
          "description": "Standalone functions for internal module use, start with underscore _",
          "measurement_method": "count_functions_with_leading_underscore"
        }
      }
    },
    "METHOD": {
      "definition": "Logic within a class",
      "description": "Functions defined inside classes that operate on class instances or class data",
      "metrics": {
        "total_methods": {
          "type": "integer",
          "description": "Count of all function definitions inside classes",
          "measurement_method": "count_class_method_definitions"
        },
        "public_methods": {
          "type": "integer",
          "description": "Methods intended for external use, no leading underscore",
          "measurement_method": "count_methods_without_leading_underscore"
        },
        "private_methods": {
          "type": "integer",
          "description": "Methods for internal class use only, start with double underscore __",
          "measurement_method": "count_methods_with_double_underscore"
        },
        "protected_methods": {
          "type": "integer",
          "description": "Methods for class and subclass use, start with single underscore _",
          "measurement_method": "count_methods_with_single_underscore"
        },
        "instance_methods": {
          "type": "integer",
          "description": "Standard methods that operate on specific object instances using 'self'",
          "measurement_method": "count_methods_with_self_parameter"
        },
        "class_methods": {
          "type": "integer",
          "description": "Methods that operate on the class itself using @classmethod decorator",
          "measurement_method": "count_classmethod_decorators"
        },
        "static_methods": {
          "type": "integer",
          "description": "Utility methods that don't use 'self' or class, marked with @staticmethod",
          "measurement_method": "count_staticmethod_decorators"
        },
        "property_methods": {
          "type": "integer",
          "description": "Methods accessed like attributes using @property decorator",
          "measurement_method": "count_property_decorators"
        },
        "special_methods": {
          "type": "integer",
          "description": "Python magic methods with double underscores (__init__, __str__, __len__)",
          "measurement_method": "count_dunder_methods"
        },
        "abstract_methods": {
          "type": "integer",
          "description": "Methods that must be implemented by subclasses, raise NotImplementedError",
          "measurement_method": "count_abstract_method_decorators"
        },
        "deprecated_methods": {
          "type": "integer",
          "description": "Methods marked as obsolete with deprecation warnings for users",
          "measurement_method": "count_deprecation_decorators"
        },
        "overridden_methods": {
          "type": "integer",
          "description": "Methods that replace parent class implementations with new behavior",
          "measurement_method": "count_super_calls_in_methods"
        },
        "documented_methods": {
          "type": "integer",
          "description": "Methods that include docstrings explaining CORE and usage",
          "measurement_method": "count_methods_with_docstrings"
        },
        "undocumented_methods": {
          "type": "integer",
          "description": "Methods without docstrings, reducing code maintainability",
          "measurement_method": "count_methods_without_docstrings"
        }
      }
    }
  },
  "foul_categories": {
    "MANIPULATED_DATA": {
      "definition": "Any data that has been altered from its original state",
      "tracking_philosophy": "Monitor what fouls have access to feed on",
      "health_indicators": {
        "data_transformation_points": {
          "type": "integer",
          "description": "Number of locations where data is modified",
          "measurement_method": "count_assignment_operations"
        },
        "mutation_operations": {
          "type": "integer",
          "description": "Direct modifications to existing data structures",
          "measurement_method": "count_in_place_modifications"
        },
        "data_validation_gates": {
          "type": "integer",
          "description": "Checkpoints that verify data integrity during manipulation",
          "measurement_method": "count_validation_assertions"
        }
      }
    }
  },
  "documentation_metrics": {
    "multi_line_docstrings": {
      "type": "integer",
      "description": "Detailed documentation blocks spanning multiple lines",
      "measurement_method": "count_triple_quote_multiline_strings"
    },
    "single_line_docstrings": {
      "type": "integer",
      "description": "Brief one-line descriptions of method CORE",
      "measurement_method": "count_triple_quote_single_line_strings"
    }
  },
  "import_metrics": {
    "total_imports": {
      "type": "integer",
      "description": "Count of all import statements bringing external code into the script",
      "measurement_method": "count_import_statements"
    },
    "standard_lib_imports": {
      "type": "integer",
      "description": "Imports from Python's built-in library modules (os, sys, json)",
      "measurement_method": "count_stdlib_imports"
    },
    "third_party_imports": {
      "type": "integer",
      "description": "Imports from external packages installed via pip (pandas, requests)",
      "measurement_method": "count_external_package_imports"
    },
    "local_imports": {
      "type": "integer",
      "description": "Imports from other files within the same project",
      "measurement_method": "count_relative_imports"
    }
  },
  "variable_metrics": {
    "constants": {
      "type": "integer",
      "description": "Variables in ALL_CAPS that should never change during execution",
      "measurement_method": "count_all_caps_variables"
    },
    "global_variables": {
      "type": "integer",
      "description": "Variables defined at module level, accessible throughout the script",
      "measurement_method": "count_module_level_variables"
    },
    "class_variables": {
      "type": "integer",
      "description": "Variables shared by all instances of a class",
      "measurement_method": "count_class_level_variables"
    }
  },
  "code_quality_metrics": {
    "type_hinted_methods": {
      "type": "integer",
      "description": "Methods with explicit return type annotations for clarity",
      "measurement_method": "count_return_type_annotations"
    },
    "type_hinted_parameters": {
      "type": "integer",
      "description": "Function parameters with type annotations for validation",
      "measurement_method": "count_parameter_type_annotations"
    },
    "exception_handling_blocks": {
      "type": "integer",
      "description": "try/except blocks that gracefully handle potential errors",
      "measurement_method": "count_try_except_blocks"
    },
    "logging_statements": {
      "type": "integer",
      "description": "Calls to logging functions for fouls and monitoring",
      "measurement_method": "count_logging_calls"
    }
  },
  "measurement_configuration": {
    "analysis_scope": "python_files_only",
    "file_extensions": [
      ".py"
    ],
    "exclusion_patterns": [
      "__pycache__/**",
      "*.pyc",
      ".venv/**",
      "venv/**"
    ],
    "ast_parsing": {
      "enabled": true,
      "method": "python_ast_module"
    }
  },
  "output_format": {
    "schema": {
      "file_path": "string",
      "analysis_timestamp": "iso_8601_datetime",
      "party_metrics": {
        "CLASS": "object_with_all_class_metrics",
        "FUNCTION": "object_with_all_function_metrics",
        "METHOD": "object_with_all_method_metrics"
      },
      "foul_metrics": {
        "MANIPULATED_DATA": "object_with_health_indicators"
      },
      "documentation_metrics": "object_with_doc_counts",
      "import_metrics": "object_with_import_counts",
      "variable_metrics": "object_with_variable_counts",
      "code_quality_metrics": "object_with_quality_counts",
      "total_party_score": "calculated_sum_of_all_parties",
      "foul_health_score": "calculated_data_manipulation_health"
    }
  },
  "integration_points": {
    "theunpartyrunway": {
      "repo_metadata_enhancer": "Integrate party metrics into enhanced analytics",
      "github_projects_analyzer": "Cross-reference party patterns with project data"
    },
    "theunpartyproject": {
      "foundation_labels": "Use as canonical source for foundation conventions",
      "development_workflows": "Apply party/foul philosophy to CI/CD processes"
    }
  },
  "last_updated": "2025-10-04"
}
