{
  "readme": {
    "files": ["README.md"],
    "questions": [
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "projectDescription",
        "question": "What does this project do?",
        "required": true
      },
      {
        "id": "licenseName",
        "question": "What license does this project use? (e.g., MIT, Apache-2.0, GPL-3.0)",
        "required": false
      }
    ]
  },
  "legal": {
    "files": ["LICENSE"],
    "questions": [
      {
        "id": "licenseType",
        "question": "What license type would you like? (MIT, Apache-2.0, GPL-3.0, BSD-3-Clause)",
        "required": true,
        "options": ["MIT", "Apache-2.0", "GPL-3.0", "BSD-3-Clause"]
      },
      {
        "id": "year",
        "question": "What year for the copyright? (e.g., 2025)",
        "required": true
      },
      {
        "id": "copyrightHolder",
        "question": "Who is the copyright holder? (e.g., Your Name or Your Organization)",
        "required": true
      },
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "projectDescription",
        "question": "What does this project do? (Required for GPL-3.0, optional otherwise)",
        "required": false
      },
      {
        "id": "projectUrl",
        "question": "Project URL (optional, used in NOTICE file for Apache-2.0)",
        "required": false
      }
    ],
    "conditionalFiles": {
      "NOTICE": {
        "condition": "licenseType === 'Apache-2.0'",
        "reason": "NOTICE file is required for Apache 2.0 licensed projects"
      }
    }
  },
  "governance": {
    "files": ["CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "SECURITY.md", "docs/MAINTAINERS.md", "docs/GOVERNANCE.md", "docs/ROADMAP.md"],
    "questions": [
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "repositoryUrl",
        "question": "What is the repository URL? (e.g., https://github.com/username/repo)",
        "required": true
      },
      {
        "id": "repoName",
        "question": "Repository name (without owner, used in git clone commands - e.g., 'dot-ai' from 'github.com/vfarcic/dot-ai')",
        "required": true
      },
      {
        "id": "enforcementEmail",
        "question": "Email address for Code of Conduct enforcement",
        "required": true
      },
      {
        "id": "securityEmail",
        "question": "Email address for security vulnerability reports",
        "required": true
      },
      {
        "id": "maintainerEmail",
        "question": "General maintainer contact email",
        "required": true
      },
      {
        "id": "maintainerName",
        "question": "Lead maintainer name",
        "required": true
      },
      {
        "id": "maintainerGithub",
        "question": "Lead maintainer GitHub username (without @)",
        "required": true
      },
      {
        "id": "setupCommand",
        "question": "Command to install dependencies (e.g., 'npm install', 'pip install -r requirements.txt')",
        "required": false
      },
      {
        "id": "testCommand",
        "question": "Command to run tests (e.g., 'npm test', 'pytest')",
        "required": false
      },
      {
        "id": "lintCommand",
        "question": "Command to run linters (e.g., 'npm run lint', 'ruff check')",
        "required": false
      },
      {
        "id": "requiresDco",
        "question": "Does this project require Developer Certificate of Origin (DCO) sign-off? (yes/no)",
        "required": false
      },
      {
        "id": "discussionsUrl",
        "question": "GitHub Discussions URL (optional)",
        "required": false
      },
      {
        "id": "slackChannel",
        "question": "Slack community channel URL (optional)",
        "required": false
      },
      {
        "id": "discordUrl",
        "question": "Discord server URL (optional)",
        "required": false
      },
      {
        "id": "supportedVersions",
        "question": "Supported versions table for SECURITY.md (optional, markdown format)",
        "required": false
      },
      {
        "id": "maintainerPeriod",
        "question": "How long should someone contribute before becoming a maintainer? (e.g., '6 months', '1 year')",
        "required": false
      },
      {
        "id": "inactivityPeriod",
        "question": "How long before inactive maintainers are removed? (e.g., '6 months', '1 year')",
        "required": false
      },
      {
        "id": "hasVoting",
        "question": "Does this project use voting for decisions? (yes/no)",
        "required": false
      },
      {
        "id": "votingThreshold",
        "question": "If voting is used, what's the threshold? (e.g., 'majority', '2/3 majority', 'consensus')",
        "required": false
      },
      {
        "id": "githubProjectUrl",
        "question": "GitHub Project Board URL for roadmap tracking (optional)",
        "required": false
      },
      {
        "id": "shortTermGoals",
        "question": "Short-term goals (1-3 months) in markdown format (optional)",
        "required": false
      },
      {
        "id": "mediumTermGoals",
        "question": "Medium-term goals (3-6 months) in markdown format (optional)",
        "required": false
      },
      {
        "id": "longTermGoals",
        "question": "Long-term goals (6-12 months) in markdown format (optional)",
        "required": false
      },
      {
        "id": "roadmapIntro",
        "question": "Custom introduction for ROADMAP.md (optional)",
        "required": false
      },
      {
        "id": "requiresConsensus",
        "question": "Do major decisions require consensus among maintainers? (yes/no)",
        "required": false
      },
      {
        "id": "hasCommitters",
        "question": "Does this project have a separate 'Committers' role? (yes/no)",
        "required": false
      },
      {
        "id": "hasSteeringCommittee",
        "question": "Does this project have a Steering Committee? (yes/no)",
        "required": false
      }
    ]
  },
  "community": {
    "files": ["SUPPORT.md", "ADOPTERS.md"],
    "questions": [
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "projectDescription",
        "question": "What does this project do? (brief description)",
        "required": false
      },
      {
        "id": "projectUrl",
        "question": "What is the project URL? (e.g., https://github.com/username/repo)",
        "required": true
      },
      {
        "id": "docsUrl",
        "question": "What is the documentation URL? (e.g., https://docs.example.com or README)",
        "required": true
      },
      {
        "id": "discussionsUrl",
        "question": "What is the GitHub Discussions URL? (e.g., https://github.com/username/repo/discussions)",
        "required": true
      },
      {
        "id": "stackOverflowTag",
        "question": "Stack Overflow tag for your project (optional, e.g., 'my-project')",
        "required": false
      },
      {
        "id": "slackUrl",
        "question": "Slack workspace URL (optional)",
        "required": false
      },
      {
        "id": "discordUrl",
        "question": "Discord server URL (optional)",
        "required": false
      },
      {
        "id": "forumUrl",
        "question": "Community forum URL (optional)",
        "required": false
      },
      {
        "id": "maintainerCount",
        "question": "How many maintainers does this project have? (number)",
        "required": false
      },
      {
        "id": "criticalResponseTime",
        "question": "Typical response time for critical bugs (e.g., '24 hours', '48 hours', 'best effort')",
        "required": false
      },
      {
        "id": "featureResponseTime",
        "question": "Typical response time for feature requests (e.g., '1 week', '2 weeks', 'best effort')",
        "required": false
      },
      {
        "id": "questionResponseTime",
        "question": "Typical response time for questions (e.g., '48 hours', '1 week', 'best effort')",
        "required": false
      },
      {
        "id": "commercialSupportAvailable",
        "question": "Is commercial support available? (yes/no)",
        "required": false
      },
      {
        "id": "commercialSupportProvider",
        "question": "Who provides commercial support? (if available)",
        "required": false
      },
      {
        "id": "commercialSupportEmail",
        "question": "Email for commercial support inquiries (if available)",
        "required": false
      },
      {
        "id": "securityEmail",
        "question": "Email address for security vulnerability reports",
        "required": true
      },
      {
        "id": "includeUseCase",
        "question": "Should ADOPTERS.md include a use case column? (yes/no)",
        "required": false
      },
      {
        "id": "maintainerOrganization",
        "question": "Add your organization as the first adopter? (organization name, optional)",
        "required": false
      },
      {
        "id": "maintainerUseCase",
        "question": "Your organization's use case (if adding as first adopter)",
        "required": false
      },
      {
        "id": "maintainerWebsite",
        "question": "Your organization's website (if adding as first adopter)",
        "required": false
      },
      {
        "id": "requiresDco",
        "question": "Do PRs require DCO sign-off? (yes/no)",
        "required": false
      },
      {
        "id": "requiresVerification",
        "question": "Do you verify organizations before adding to ADOPTERS? (yes/no)",
        "required": false
      },
      {
        "id": "recognitionProgram",
        "question": "Do you have an adopter recognition program? (yes/no)",
        "required": false
      },
      {
        "id": "maintainerEmail",
        "question": "General maintainer contact email",
        "required": true
      },
      {
        "id": "questionsContact",
        "question": "Contact email for questions about the adopters list (optional, defaults to maintainer email)",
        "required": false
      }
    ]
  },
  "github-issues": {
    "files": [".github/ISSUE_TEMPLATE/bug_report.yml", ".github/ISSUE_TEMPLATE/feature_request.yml", ".github/ISSUE_TEMPLATE/config.yml"],
    "questions": [
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "githubOrg",
        "question": "GitHub organization or username (e.g., 'octocat' from github.com/octocat/repo)",
        "required": true
      },
      {
        "id": "githubRepo",
        "question": "GitHub repository name (e.g., 'repo' from github.com/octocat/repo)",
        "required": true
      },
      {
        "id": "isNodeProject",
        "question": "Is this a Node.js/TypeScript project? (yes/no)",
        "required": false
      },
      {
        "id": "isPythonProject",
        "question": "Is this a Python project? (yes/no)",
        "required": false
      },
      {
        "id": "isGoProject",
        "question": "Is this a Go project? (yes/no)",
        "required": false
      },
      {
        "id": "isKubernetesProject",
        "question": "Is this a Kubernetes-related project? (yes/no)",
        "required": false
      },
      {
        "id": "hasDiscussions",
        "question": "Do you have GitHub Discussions enabled? (yes/no)",
        "required": false
      },
      {
        "id": "blankIssuesEnabled",
        "question": "Allow blank issues (no template)? Recommended: no (yes/no)",
        "required": false
      },
      {
        "id": "docsSiteUrl",
        "question": "Documentation site URL (optional, leave blank if none)",
        "required": false
      },
      {
        "id": "slackInviteUrl",
        "question": "Slack workspace invite URL (optional, leave blank if none)",
        "required": false
      },
      {
        "id": "discordInviteUrl",
        "question": "Discord server invite URL (optional, leave blank if none)",
        "required": false
      },
      {
        "id": "supportFilePath",
        "question": "Path to SUPPORT.md file (if exists, e.g., 'SUPPORT.md' or 'docs/SUPPORT.md', leave blank if none)",
        "required": false
      },
      {
        "id": "securityFilePath",
        "question": "Path to SECURITY.md file (if exists, e.g., 'SECURITY.md' or leave blank if none)",
        "required": false
      },
      {
        "id": "roadmapPath",
        "question": "Path to ROADMAP.md file (if exists, e.g., 'docs/ROADMAP.md' or leave blank if none)",
        "required": false
      }
    ]
  },
  "pr-template": {
    "files": [".github/PULL_REQUEST_TEMPLATE.md"],
    "questions": [
      {
        "id": "projectName",
        "question": "What is the project name?",
        "required": true
      },
      {
        "id": "requiresDco",
        "question": "Require DCO (Developer Certificate of Origin) sign-off on all commits? (yes/no)",
        "required": false
      },
      {
        "id": "requiresConventionalCommits",
        "question": "Enforce Conventional Commits format for PR titles? (yes/no)",
        "required": false
      },
      {
        "id": "includesSecurityChecklist",
        "question": "Include security checklist in PR template? (yes/no)",
        "required": false
      },
      {
        "id": "requiresScreenshots",
        "question": "Require screenshots for UI changes? (yes/no)",
        "required": false
      },
      {
        "id": "contributingPath",
        "question": "Path to CONTRIBUTING.md file (if exists, e.g., 'CONTRIBUTING.md' or 'docs/CONTRIBUTING.md', leave blank if none)",
        "required": false
      }
    ]
  },
  "github-community": {
    "files": [".github/CODEOWNERS", ".github/release.yml"],
    "questions": [
      {
        "id": "useTeams",
        "question": "Use GitHub teams for code ownership? (yes/no) - If yes, requires organization; if no, uses individual maintainer usernames",
        "required": false
      },
      {
        "id": "githubOrg",
        "question": "GitHub organization name (required if using teams, e.g., 'kubernetes', 'apache')",
        "required": false
      },
      {
        "id": "defaultTeam",
        "question": "Default team name for code ownership (required if using teams, e.g., 'maintainers', 'core-team')",
        "required": false
      },
      {
        "id": "maintainerUsernames",
        "question": "Maintainer GitHub usernames (comma-separated, without @, required if not using teams, e.g., 'octocat,torvalds')",
        "required": false
      },
      {
        "id": "enableFunding",
        "question": "Enable GitHub sponsor button with funding links? (yes/no)",
        "required": false
      },
      {
        "id": "githubSponsors",
        "question": "GitHub Sponsors username (optional, leave blank if not using GitHub Sponsors)",
        "required": false
      },
      {
        "id": "openCollective",
        "question": "Open Collective project slug (optional, e.g., 'webpack', 'babel')",
        "required": false
      },
      {
        "id": "patreon",
        "question": "Patreon username (optional, leave blank if not using Patreon)",
        "required": false
      },
      {
        "id": "kofi",
        "question": "Ko-fi username (optional, leave blank if not using Ko-fi)",
        "required": false
      },
      {
        "id": "tidelift",
        "question": "Tidelift package name (optional, format: npm/package-name or pypi/package-name)",
        "required": false
      },
      {
        "id": "customFunding",
        "question": "Custom funding URL (optional, leave blank if not using custom funding link)",
        "required": false
      }
    ],
    "conditionalFiles": {
      ".github/FUNDING.yml": {
        "condition": "enableFunding === 'yes' || enableFunding === 'true' || enableFunding === true",
        "reason": "FUNDING.yml is only generated when funding/sponsorship is enabled"
      }
    }
  },
  "github-security": {
    "files": [".github/workflows/scorecard.yml"],
    "questions": [
      {
        "id": "githubOrg",
        "question": "GitHub organization or username (e.g., 'kubernetes', 'octocat')",
        "required": true
      },
      {
        "id": "githubRepo",
        "question": "GitHub repository name (e.g., 'kubernetes', 'hello-world')",
        "required": true
      },
      {
        "id": "defaultBranch",
        "question": "What is your default branch name? (e.g., main, master)",
        "required": true
      },
      {
        "id": "scheduleCron",
        "question": "Cron expression for when to run security analysis (standard 5-field cron syntax). Examples: '30 1 * * 6' (weekly on Saturdays at 1:30 AM UTC), '30 1 * * *' (daily at 1:30 AM UTC), '30 1 1 * *' (monthly on 1st at 1:30 AM UTC). Recommended: weekly",
        "required": true
      },
      {
        "id": "scheduleDescription",
        "question": "Human-readable description of the schedule (e.g., 'Weekly on Saturdays at 1:30 AM UTC', 'Daily at 1:30 AM UTC')",
        "required": true
      },
      {
        "id": "publishResults",
        "question": "Publish results to enable Scorecard badge and REST API access? (true/false - recommended: true for public repos)",
        "required": true
      },
      {
        "id": "isPrivateRepo",
        "question": "Is this a private repository? (yes/no) - Private repos need additional permissions to detect SAST tools and query commits",
        "required": true
      }
    ],
    "additionalInstructions": "If you enabled publish_results: true, you can add an OpenSSF Scorecard badge to your README.md to display your security score:\n\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/{{githubOrg}}/{{githubRepo}}/badge)](https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}})\n\nThe badge will display your repository's security score and link to detailed results at https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}}"
  },
  "github-automation": {
    "files": ["renovate.json", ".github/labeler.yml", ".github/workflows/labeler.yml", ".github/workflows/stale.yml"],
    "questions": [
      {
        "id": "prConcurrentLimit",
        "question": "Maximum number of concurrent pull requests for Renovate (recommended: 3-10, leave empty for default: 10)",
        "required": false
      },
      {
        "id": "prHourlyLimit",
        "question": "Maximum PRs per hour for Renovate (0 for unlimited, recommended: 2-5, leave empty for default: 0)",
        "required": false
      },
      {
        "id": "enableDependencyDashboard",
        "question": "Enable Renovate dependency dashboard issue? (true/false - shows all pending updates in one place, leave empty for default: true)",
        "required": false
      },
      {
        "id": "enableVulnerabilityAlerts",
        "question": "Enable Renovate OSV vulnerability alerts? (true/false - checks dependencies for known vulnerabilities, leave empty for default: true)",
        "required": false
      },
      {
        "id": "schedule",
        "question": "Schedule for Renovate dependency checks (text format like 'before 5am on monday', 'after 10pm every weekday', 'every weekend', leave empty for default: 'before 5am on monday')",
        "required": false
      },
      {
        "id": "groupDependencies",
        "question": "Group non-major dependencies into single PRs in Renovate? (true/false - reduces PR volume, leave empty for default: true)",
        "required": false
      },
      {
        "id": "automergeMinor",
        "question": "Auto-merge minor and patch updates in Renovate? (true/false - automatically merges non-breaking updates, leave empty for default: false)",
        "required": false
      },
      {
        "id": "automergeSecurity",
        "question": "Auto-merge security updates in Renovate? (true/false - automatically merges security patches, leave empty for default: false)",
        "required": false
      },
      {
        "id": "sourceDirectory",
        "question": "Source code directory for labeler (optional, e.g., 'src', 'lib'). Leave empty if no specific source directory",
        "required": false
      },
      {
        "id": "testDirectory",
        "question": "Test directory for labeler (optional, e.g., 'tests', 'test', '__tests__'). Leave empty if tests follow common patterns",
        "required": false
      },
      {
        "id": "infrastructureDirectory",
        "question": "Infrastructure directory for labeler (optional, e.g., 'infrastructure', 'deploy'). Leave empty if using common patterns (terraform/, k8s/, etc.)",
        "required": false
      },
      {
        "id": "staleBotSchedule",
        "question": "Cron schedule for stale bot (e.g., '0 0 * * *' for daily at midnight, leave empty for default: '0 0 * * *')",
        "required": false
      },
      {
        "id": "daysBeforeIssueStale",
        "question": "Days before marking issue as stale (recommended: 60-90, leave empty for default: 60)",
        "required": false
      },
      {
        "id": "daysBeforeIssueClose",
        "question": "Days before closing stale issue (recommended: 7-14, leave empty for default: 7)",
        "required": false
      },
      {
        "id": "daysBeforePrStale",
        "question": "Days before marking PR as stale (recommended: 30-60, leave empty for default: 30)",
        "required": false
      },
      {
        "id": "daysBeforePrClose",
        "question": "Days before closing stale PR (recommended: 7-14, leave empty for default: 7)",
        "required": false
      },
      {
        "id": "exemptIssueLabels",
        "question": "Issue labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,bug,needs-maintainer-response', leave empty for default: 'pinned,security')",
        "required": false
      },
      {
        "id": "exemptPrLabels",
        "question": "PR labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,work-in-progress', leave empty for default: 'pinned,security')",
        "required": false
      },
      {
        "id": "exemptMilestones",
        "question": "Exempt issues/PRs in milestones from stale bot? (true/false, leave empty for default: true)",
        "required": false
      },
      {
        "id": "exemptAssignees",
        "question": "Exempt assigned issues/PRs from stale bot? (true/false, leave empty for default: true)",
        "required": false
      }
    ]
  }
}
