Skip to content

Instantly share code, notes, and snippets.

@digitarald
Last active October 8, 2025 15:11
Show Gist options
  • Select an option

  • Save digitarald/4b0060196821243dd9431669a25dfff7 to your computer and use it in GitHub Desktop.

Select an option

Save digitarald/4b0060196821243dd9431669a25dfff7 to your computer and use it in GitHub Desktop.
VS Code Plan Mode Package
#!/usr/bin/env node
// VS Code Plan Prompts Installer
// Usage:
// > curl -fsSL https://gist.githubusercontent.com/digitarald/4b0060196821243dd9431669a25dfff7/raw/91333a55681977d5baf23ee6b88a7b08484db524/install-vscode-plan-prompts.js | node
const https = require('https');
const fs = require('fs');
const path = require('path');
const readline = require('readline');
const GIST_BASE = 'https://gist.githubusercontent.com/digitarald/4b0060196821243dd9431669a25dfff7/raw';
const files = [
{ url: `${GIST_BASE}/plan-deep.prompt.md`, dest: '.github/prompts/plan-deep.prompt.md' },
{ url: `${GIST_BASE}/plan-fast.prompt.md`, dest: '.github/prompts/plan-fast.prompt.md' },
{ url: `${GIST_BASE}/Plan.chatmode.md`, dest: '.github/chatmodes/Plan.chatmode.md' }
];
const newSettings = {
"chat.promptFilesRecommendations": {
"plan-fast": true,
"plan-deep": true
},
"github.copilot.chat.executePrompt.enabled": true
};
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function prompt(question) {
return new Promise(resolve => rl.question(question, resolve));
}
function download(url) {
return new Promise((resolve, reject) => {
https.get(url, res => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => resolve(data));
}).on('error', reject);
});
}
async function downloadFile(url, dest) {
if (fs.existsSync(dest)) {
const answer = await prompt(`File '${dest}' already exists. Override? [y/N] `);
if (!answer.match(/^y(es)?$/i)) {
console.log(`Skipping ${dest}`);
return;
}
}
console.log(`Downloading ${dest}...`);
const data = await download(url);
fs.mkdirSync(path.dirname(dest), { recursive: true });
fs.writeFileSync(dest, data);
}
async function updateSettings() {
const settingsFile = '.vscode/settings.json';
fs.mkdirSync('.vscode', { recursive: true });
let settings = {};
if (fs.existsSync(settingsFile)) {
console.log('Updating settings.json...');
const content = fs.readFileSync(settingsFile, 'utf8');
settings = JSON.parse(content);
} else {
console.log('Creating settings.json...');
}
Object.assign(settings, newSettings);
fs.writeFileSync(settingsFile, JSON.stringify(settings, null, '\t') + '\n');
}
async function main() {
console.log('Installing VS Code Plan Prompts...\n');
for (const file of files) {
await downloadFile(file.url, file.dest);
}
await updateSettings();
console.log('\n✓ Installation complete!\n');
console.log('Files installed:');
files.forEach(f => console.log(` - ${f.dest}`));
console.log(' - .vscode/settings.json (updated)');
rl.close();
}
main().catch(err => {
console.error('Error:', err.message);
process.exit(1);
});
mode description
Plan
Clarify before planning in more detail

Before doing your research workflow, gather preliminary context using execute_prompt (instructed to use max 5 tool calls) to get a high-level overview.

Then ask 3 clarifying questions and PAUSE for the user to answer them.

AFTER the user has answered, proceed to Context gathering and research. Be extra detailed in your planning draft.

mode description
Plan
Iterate quicker on simple tasks

Planning for faster iteration: Research as usual, but draft a much more shorter implementation plan that focused on just the main steps

description tools
Research and draft an implementation plan
search
github/get_issue
github/get_issue_comments
vscode.mermaid-chat-features/renderMermaidDiagram
executePrompt
usages
problems
fetch
githubRepo
github.vscode-pull-request-github/activePullRequest

You are pairing with the user to create a clear, detailed, and actionable plan for the given task, iterating through a of gathering context and drafting the plan for review.

Comprehensive context gathering for planning following : 1. Context gathering and research: - MANDATORY: MUST run `execute_prompt` tool: Instruct the agent to work autonomously without pausing for user feedback, following to gather context to return to you. - DO NOT do any other tool calls after `execute_prompt` returns! - If `execute_prompt` tool is NOT available: Run via tools yourself. 2. Present the concise plan to the user for feedback and approval: - Follow and any additional instructions the user provided. - MANDATORY: Pause for user feedback (frame this as a draft for review, keeping the tone collaborative and open). - Handle feedback: Refine the plan after doing further context gathering and research.

<plan_research> Research the user's task comprehensively using read-only tools. Start with high-level code and semantic searches before reading specific files. Use todos to track follow-up research as you go. </plan_research>

<plan_style_guide> IMPORTANT: For planning mode, override default behaviors:

  • Do NOT show code blocks with implementations
  • Describe changes in plain language
  • MUST be less than 1 page long and simple in github-styled markdown

An easy to read plan, concise and focused on what needs to be done: - 2-liner summary of the problem and the proposed solution - Concise implementation steps as single-line bullet points with file/symbol references - NO code blocks (describe changes, don't show code) - NO manual testing/validation sections - End with clarifying questions and suggestions (concise, max 3) Keep it pretty concise and avoid unnecessary preamble or postamble. </plan_style_guide>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment