{
  "Code quality standards": {
    "Core principles": {
      "No unused code": {
        "Rule": "Don't write unused code",
        "Requirement": "Ensure everything written is utilized in the project",
        "Priority": "critical"
      },
      "Readability first": {
        "Rule": "Prioritize readability for human understanding over execution efficiency",
        "Priority": "critical"
      },
      "Maintainability": {
        "Rule": "Maintain long-term maintainability over short-term optimization",
        "Priority": "high"
      },
      "Simplicity": {
        "Rule": "Avoid unnecessary complexity",
        "Approach": "Implement simple solutions unless complexity is truly required",
        "Priority": "high"
      },
      "Clean code philosophy": {
        "Rule": "Follow Linus Torvalds' clean code principles",
        "Guidelines": [
          "Keep it simple",
          "Make code readable like prose",
          "Avoid premature optimization",
          "Express intent clearly",
          "Minimize abstraction layers"
        ],
        "Priority": "high"
      }
    },
    "Documentation standards": {
      "Comment purpose": {
        "Rule": "Comments must explain 'what' (business logic/purpose) and 'why' (reasoning/decisions), not 'how'",
        "Priority": "high"
      },
      "Avoid over-commenting": {
        "Rule": "Avoid over-commenting",
        "Rationale": "Excessive comments indicate poor code quality",
        "Priority": "medium"
      },
      "Function comments": {
        "Rule": "Function comments must explain purpose and reasoning",
        "Placement": "Placed at function beginnings",
        "Priority": "medium"
      },
      "Self-explanatory code": {
        "Rule": "Well-written code should be self-explanatory",
        "Method": "Through meaningful names and clear structure",
        "Priority": "high"
      }
    },
    "Development process": {
      "Description": "Follow these steps in order for effective development",
      "Priority": "critical",
      "Steps": [
        {
          "Step": 1,
          "Name": "Understand first",
          "Action": "Use available tools to understand data structures before implementation",
          "Importance": "critical"
        },
        {
          "Step": 2,
          "Name": "Design data structures",
          "Rationale": "Good data structures lead to good code",
          "Importance": "critical"
        },
        {
          "Step": 3,
          "Name": "Define interfaces",
          "Action": "Specify all input/output structures before writing logic",
          "Importance": "high"
        },
        {
          "Step": 4,
          "Name": "Define functions",
          "Action": "Create all function signatures before implementation",
          "Importance": "high"
        },
        {
          "Step": 5,
          "Name": "Implement logic",
          "Action": "Write implementation only after structures and definitions are complete",
          "Importance": "high"
        },
        {
          "Step": 6,
          "Name": "Validate code quality",
          "Action": "Always run lint and typecheck after writing code. Fix all linting errors and type errors before considering the task complete",
          "Requirement": "Zero tolerance for lint and typecheck errors",
          "Importance": "critical"
        }
      ]
    },
    "Quality guidelines": {
      "Avoid over-engineering": {
        "Rule": "Avoid over-engineering",
        "Focus": "Focus on minimal viable solutions meeting acceptance criteria",
        "Priority": "high"
      },
      "Testing approach": {
        "Rule": "Only create automated tests if explicitly required",
        "Priority": "medium"
      },
      "Feature scope": {
        "Rule": "Never add functionality 'just in case'",
        "Requirement": "Implement only what's needed now",
        "Priority": "high"
      },
      "Code validation": {
        "Rule": "Always run lint and typecheck after code changes",
        "Requirement": "Must fix all linting and type checking errors before completion",
        "Process": "Run lint command, then typecheck command. Address all errors and warnings",
        "Tolerance": "Zero tolerance for lint or typecheck errors",
        "Priority": "critical"
      }
    }
  },
  "Decision making framework": {
    "Description": "Apply these principles systematically for all decisions",
    "Priority": "high",
    "Principles": [
      {
        "Step": 1,
        "Principle": "Gather Complete Information",
        "Importance": "critical"
      },
      {
        "Step": 2,
        "Principle": "Multi-Perspective Analysis",
        "Importance": "high"
      },
      {
        "Step": 3,
        "Principle": "Consider All Stakeholders",
        "Importance": "high"
      },
      {
        "Step": 4,
        "Principle": "Evaluate Alternatives",
        "Importance": "high"
      },
      {
        "Step": 5,
        "Principle": "Assess Impact & Consequences",
        "Importance": "high"
      },
      {
        "Step": 6,
        "Principle": "Apply Ethical Framework",
        "Importance": "medium"
      },
      {
        "Step": 7,
        "Principle": "Take Responsibility",
        "Importance": "high"
      },
      {
        "Step": 8,
        "Principle": "Learn & Adapt",
        "Importance": "high"
      }
    ]
  },
  "Meta": {
    "Purpose": "Guidelines for code quality, development process, and decision-making",
    "Target audience": "AI coding assistants and developers",
    "Version": "1.0"
  }
}