.cursor/skills/masterplan/SKILL.md
Generate a holistic product vision from Linear tickets. Pulls backlog, to-do, and in-progress tickets and synthesises them into a status-agnostic overview. Use when starting a new feature to understand the bigger picture, onboarding to the project, or when AI needs context on long-term goals. Supports refreshing existing masterplans with latest data.
npx skillsauth add Samuel-Harris/Bytes-and-Nibbles-Website masterplanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Synthesise Linear tickets into a status-agnostic product vision. The masterplan describes WHAT the product should do and WHY — never whether features are done, in progress, or planned. This keeps the document useful across implementation sessions without confusing AI agents about current state.
| Mode | Trigger | Action | | ------------ | ----------------------------------------------- | ------------------------------------------------------------------------- | | Generate | "generate a masterplan", "create a masterplan" | Full pipeline: scope → fetch → synthesise → write | | Refresh | "refresh the masterplan", path to existing file | Re-fetch tickets using stored criteria, re-synthesise, overwrite in place |
Use them directly. Valid criteria: team, project, label, priority, assignee, cycle, or search query.
Gather scope using AskQuestion. First call list_teams and list_projects (Linear MCP, server: user-Linear) in parallel to populate options dynamically:
Unless the user explicitly overrides, include only these Linear state types:
| State | Linear state type |
| ----------- | ----------------- |
| Backlog | backlog |
| To-do | unstarted |
| In Progress | started |
If the user's scope description is genuinely ambiguous (not just missing filter values), read and invoke the deep-interview skill at .cursor/skills/deep-interview/SKILL.md.
Needs deep-interview: "masterplan for the AI stuff", "masterplan for next quarter's priorities" Does not: "masterplan", "masterplan for the Copilot team", "masterplan for project Alpha"
Before fetching, present the resolved filters to the user for confirmation. Generating a masterplan is expensive (many API calls + synthesis), so the filters must be correct.
Display a summary and ask for approval via AskQuestion:
I'll pull tickets with these filters:
- **Team**: {team or "all teams"}
- **Project**: {project or "all projects"}
- **States**: Backlog, To-do, In Progress
- **Labels**: {labels or "none"}
- **Priority**: {priority or "any"}
- **Assignee**: {assignee or "any"}
Options: "Looks good — proceed", "Adjust filters" (loop back to Phase 1).
Use the Linear MCP server (server: user-Linear). Run calls in parallel where possible.
list_issues accepts only one state per call. Make three parallel calls:
list_issues — state: "backlog", limit: 250, includeArchived: false + user filterslist_issues — state: "unstarted", limit: 250, includeArchived: false + user filterslist_issues — state: "started", limit: 250, includeArchived: false + user filtersIf any call returns a cursor, paginate until exhausted. Merge and deduplicate by issue ID.
If state type strings are rejected, fall back: call list_issue_statuses for the relevant team to discover actual state names/IDs, then re-query.
list_initiatives — includeProjects: true, includeSubInitiatives: truelist_projects — includeMilestones: trueFor issues that appear to be parent issues or epics, call get_issue with includeRelations: true to capture full scope.
| Rule | Detail | | ------------------ | ------------------------------------------------------------------------------------------------------------- | | Status-agnostic | Present tense: "The system supports X", "Users can Y". NEVER "planned", "not yet implemented", "to be built". | | No ticket metadata | No Linear IDs, statuses, assignees, priorities, or dates. | | Synthesise | Combine related tickets into coherent feature descriptions — don't list them individually. | | Preserve intent | Capture WHY behind features, not just WHAT. | | Domain language | Mirror terminology from the tickets. | | Concise | Target 200–500 lines total. Dense and useful, not exhaustive. |
date '+%Y-%m-%d_%H-%M-%S' to get the timestamp.mkdir -p .cursor/artefacts/masterplans.cursor/artefacts/masterplans/{timestamp}_{description}_masterplan.mdRead the template at references/masterplan-template.md and fill in all sections.
The metadata section must include a Criteria block so the refresh mode can re-use the same filters. See the template for format.
Attach this masterplan as context when implementing features:
.cursor/artefacts/masterplans/{filename}
When the user asks to refresh an existing masterplan:
*_masterplan.md in .cursor/artefacts/masterplans/.Criteria block from the metadata section.Generated to the current timestamp and set Last refreshed. Keep the same filename.If criteria cannot be parsed, ask the user to confirm scope before proceeding.
| Case | Action |
| --------------------------- | -------------------------------------------------------- |
| 0 tickets found | Inform user, suggest broadening criteria |
| 500+ tickets | Warn output will be high-level, offer to narrow scope |
| Linear MCP unavailable | Stop and inform user — do not generate without data |
| State type strings rejected | Fall back to list_issue_statuses to discover names/IDs |
development
# Code Review Instructions ## Introduction You are a senior software engineer. ## Exploring the changes Run `git --no-pager diff origin/main...HEAD` to identify the differences between this branch and the main branch. Perform any other necessary git diffs to explore the changes made in this branch. ## Rules: - You absolutely must not edit any of the code. - Investigate any potential issue you find, to validate whether it actually is an issue. ## Code Review Checklist (internal) Work thro
testing
Iterative planning consensus loop. Orchestrates Planner, Architect, and Critic agents in rounds until the plan is approved or max iterations reached. Use for complex tasks that need a validated plan before implementation.
development
Audit a repository's Cursor configuration or evaluate whether a specific artefact (rule, skill, command, subagent) is correctly placed. Use when optimising the repo for Cursor, improving indexing, adding or assessing rules/skills, or deciding where information should live.
documentation
Create a comprehensive AI context handoff document for long-running sessions.