{
  "jira": {
    "custom_fields": {
      "customfield_10000": "Development — PR info from Jira-GitHub integration. Contains embedded JSON with PR state/count. Empty '{}' = no linked PRs.",
      "customfield_10020": "Sprint — array of sprint objects: { id, name, state, startDate, endDate, boardId }. Active sprint has state='active'.",
      "customfield_10021": "Flagged — non-null means impediment/blocked.",
      "customfield_10028": "Story Points.",
      "customfield_10097": "Dev Branch — URL like https://github.com/HumandDev/<repo>/tree/<branch> or /pull/<number>."
    },
    "statuses": {
      "For Development":  { "category": "To Do",       "meaning": "Refined, prioritized, not started" },
      "To Do":            { "category": "To Do",       "meaning": "Subtask not started" },
      "Developing":       { "category": "In Progress", "meaning": "Active development" },
      "In Progress":      { "category": "In Progress", "meaning": "Subtask active" },
      "In Review":        { "category": "In Progress", "meaning": "Code review" },
      "Staging":          { "category": "In Progress", "meaning": "Deployed to staging/QA" },
      "Done":             { "category": "Done",        "meaning": "Subtask completed" },
      "Released":         { "category": "Done",        "meaning": "Deployed to production" },
      "Closed":           { "category": "Done",        "meaning": "Resolved" }
    },
    "issue_hierarchy": {
      "parent_types": ["Story", "Bug", "Tech", "Spike"],
      "subtask_type": "Dev Task",
      "rules": [
        "Parent issues are the reportable work items.",
        "Dev Tasks are implementation subtasks scoped to a platform (prefix: 'Web |', 'Backend |', 'Mobile |', 'Admin |').",
        "Parents often have NO assignee and NO dev info — the actual code activity is on their Dev Task subtasks.",
        "ALWAYS roll up subtask dev info, assignees, and branches to the parent when the parent has none.",
        "A parent with '{}' dev but a subtask with MERGED PRs should be categorized as Shipped, not 'no-code'."
      ]
    },
    "sprint_naming": "Q<quarter> <year> <AnimalName> Sprint <N>",
    "fields_to_request": [
      "summary", "issuetype", "status", "priority", "assignee", "parent",
      "customfield_10020", "customfield_10021", "customfield_10028",
      "customfield_10000", "customfield_10097"
    ]
  },
  "github": {
    "repos_by_platform": {
      "web":          ["humand-web", "humand-backoffice", "material-hu"],
      "backend":      ["humand-main-api"],
      "mobile":       ["humand-mobile"],
      "translations": ["hu-translations"]
    },
    "dev_task_title_prefix_to_platform": {
      "Web |":      "web",
      "Backend |":  "backend",
      "Mobile |":   "mobile",
      "Admin |":    "web"
    }
  },
  "reporting": {
    "scope": "Report on parent issues only (Story, Bug, Tech, Spike). Subtask data enriches parents but subtasks do not appear as separate rows.",
    "assignee_rollup": "If parent has no assignee, list unique assignees from its subtasks (comma-separated).",
    "code_rollup": "If parent has no dev info (customfield_10000 = '{}'), aggregate dev info from all its subtasks: union of PR states, sum PR counts, union of repos.",
    "platform_from_subtask_title": "Parse 'Web | ...' prefix from subtask summary to determine platform. Multiple subtasks → multi-platform ticket."
  }
}
