{ "name": "MotoVaultPro Solo Sprint Workflow", "version": "1.0", "principles": [ "Issues are the source of truth.", "One status label per issue.", "Work is timeboxed into 14-day sprints using milestones.", "Every PR must link to at least one issue and satisfy its acceptance criteria." ], "sprints": { "length_days": 14, "milestone_naming": "Sprint YYYY-MM-DD (start date)", "default_start_day": "Monday", "calendar_reference": ".gitea/SPRINTS.md", "process": [ "If a milestone for the current sprint does not exist, create it.", "Assign selected issues to the current sprint milestone." ] }, "labels": { "status_prefix": "status/", "status_values": [ "status/backlog", "status/ready", "status/in-progress", "status/review", "status/blocked", "status/done" ], "type_prefix": "type/", "type_values": [ "type/feature", "type/bug", "type/chore", "type/docs" ], "rules": [ "Exactly one status/* label must be present on open issues.", "Exactly one type/* label must be present on issues.", "When moving status, remove the previous status/* label first." ] }, "branching": { "branch_format": "issue-{index}-{slug}", "target_branch": "main", "example": "issue-42-add-fuel-efficiency-report" }, "commit_conventions": { "message_format": "{type}: {short summary} (refs #{index})", "allowed_types": ["feat", "fix", "chore", "docs", "refactor", "test"], "examples": [ "feat: add fuel efficiency calculation (refs #42)", "fix: correct VIN validation for pre-1981 vehicles (refs #1)" ] }, "pull_requests": { "title_format": "{type}: {summary} (#{index})", "body_requirements": [ "Link issue(s) using 'Fixes #123' or 'Relates to #123'.", "Include test plan and results.", "Confirm acceptance criteria completion." ], "merge_policy": "squash_or_rebase_ok", "template_location": ".gitea/PULL_REQUEST_TEMPLATE.md" }, "execution_loop": [ "List repo issues in current sprint milestone with status/ready; if none, pull from status/backlog and promote the best candidate to status/ready.", "Select one issue (prefer smallest size and highest priority).", "Move issue to status/in-progress.", "Create branch issue-{index}-{slug}.", "Implement changes with focused commits.", "Open PR targeting main and linking issue(s).", "Move issue to status/review.", "If CI/tests fail, iterate until pass.", "When PR is merged, move issue to status/done and close issue if not auto-closed." ], "gitea_mcp_tools": { "repository": { "owner": "egullickson", "repo": "motovaultpro" }, "issue_operations": { "list_issues": "mcp__gitea-mcp__list_repo_issues", "get_issue": "mcp__gitea-mcp__get_issue_by_index", "create_issue": "mcp__gitea-mcp__create_issue", "edit_issue": "mcp__gitea-mcp__edit_issue" }, "label_operations": { "list_labels": "mcp__gitea-mcp__list_repo_labels", "add_labels": "mcp__gitea-mcp__add_issue_labels", "remove_label": "mcp__gitea-mcp__remove_issue_label", "replace_labels": "mcp__gitea-mcp__replace_issue_labels" }, "milestone_operations": { "list_milestones": "mcp__gitea-mcp__list_milestones", "create_milestone": "mcp__gitea-mcp__create_milestone", "get_milestone": "mcp__gitea-mcp__get_milestone" }, "branch_operations": { "list_branches": "mcp__gitea-mcp__list_branches", "create_branch": "mcp__gitea-mcp__create_branch" }, "pr_operations": { "list_prs": "mcp__gitea-mcp__list_repo_pull_requests", "create_pr": "mcp__gitea-mcp__create_pull_request", "get_pr": "mcp__gitea-mcp__get_pull_request_by_index" } }, "fallbacks": { "if_label_update_not_available_in_mcp": [ "Use REST API issue label endpoints to add/replace labels.", "If REST is unavailable, add a comment 'STATUS: ' and proceed, but do not leave multiple status labels." ], "if_milestone_ops_not_available_in_mcp": [ "Use REST API to create/list milestones and assign issues to the sprint milestone.", "If milestone cannot be set, add a comment 'SPRINT: '." ] } }