diff --git a/components/instructions-wizard.tsx b/components/instructions-wizard.tsx
index 30cada2..c0814c0 100644
--- a/components/instructions-wizard.tsx
+++ b/components/instructions-wizard.tsx
@@ -139,6 +139,7 @@ const mapAnswerSourceToWizard = (answer: DataAnswerSource): WizardAnswer => {
isDefault: answer.isDefault,
disabled: answer.disabled,
disabledLabel: answer.disabledLabel,
+ skippable: answer.skippable,
}
}
@@ -154,6 +155,7 @@ const buildStepFromQuestionSet = (
question: question.question,
allowMultiple: question.allowMultiple,
answers: question.answers.map(mapAnswerSourceToWizard),
+ skippable: question.skippable,
})),
})
@@ -165,6 +167,7 @@ const idesStep: WizardStep = {
id: "preferredIdes",
question: "Which IDEs should we prepare instructions for?",
allowMultiple: true,
+ skippable: false,
answers: (rawIdes as IdeConfig[]).map((ide) => ({
value: ide.id,
label: ide.label,
@@ -179,6 +182,7 @@ const idesStep: WizardStep = {
disabled: ide.enabled === false,
disabledLabel: ide.enabled === false ? "Soon" : undefined,
docs: ide.docs,
+ skippable: ide.skippable,
})),
},
],
@@ -191,6 +195,7 @@ const frameworksStep: WizardStep = {
{
id: FRAMEWORK_QUESTION_ID,
question: "Which framework are you working with?",
+ skippable: false,
answers: (rawFrameworks as FrameworkConfig[]).map((framework) => ({
value: framework.id,
label: framework.label,
@@ -198,6 +203,7 @@ const frameworksStep: WizardStep = {
disabled: framework.enabled === false,
disabledLabel: framework.enabled === false ? "Soon" : undefined,
docs: framework.docs,
+ skippable: framework.skippable,
})),
},
],
@@ -241,6 +247,7 @@ const filesStep: WizardStep = {
id: "outputFiles",
question: "Which instruction files should we generate?",
allowMultiple: true,
+ skippable: false,
answers: (filesData as FileOutputConfig[]).map((file) => {
const infoLines: string[] = []
if (file.filename) {
@@ -259,6 +266,7 @@ const filesStep: WizardStep = {
tags: file.format ? [file.format] : undefined,
disabled: file.enabled === false,
disabledLabel: file.enabled === false ? "Soon" : undefined,
+ skippable: file.skippable,
}
}),
},
@@ -374,6 +382,7 @@ export function InstructionsWizard({ onClose }: InstructionsWizardProps) {
id: question.id,
question: question.question,
allowMultiple: question.allowMultiple,
+ skippable: question.skippable,
answers: question.answers.map((answer) => {
const infoLines: string[] = []
if (answer.pros && answer.pros.length > 0) {
@@ -390,6 +399,7 @@ export function InstructionsWizard({ onClose }: InstructionsWizardProps) {
example: answer.example,
infoLines: infoLines.length > 0 ? infoLines : undefined,
docs: answer.docs,
+ skippable: answer.skippable,
}
}),
}))
@@ -473,6 +483,10 @@ export function InstructionsWizard({ onClose }: InstructionsWizardProps) {
}
const skipQuestion = () => {
+ if (currentQuestion.skippable === false) {
+ return
+ }
+
setResponses((prev) => ({
...prev,
[currentQuestion.id]: null,
@@ -722,9 +736,11 @@ export function InstructionsWizard({ onClose }: InstructionsWizardProps) {
{currentQuestion.question}
-
+ {currentQuestion.skippable !== false ? (
+
+ ) : null}
diff --git a/data/files.json b/data/files.json
index c547259..e0649b0 100644
--- a/data/files.json
+++ b/data/files.json
@@ -6,7 +6,8 @@
"format": "markdown",
"enabled": true,
"icon": "markdown",
- "docs": "https://docs.github.com/en/copilot"
+ "docs": "https://docs.github.com/en/copilot",
+ "skippable": false
},
{
"id": "agents-md",
@@ -15,7 +16,8 @@
"format": "markdown",
"enabled": true,
"icon": "markdown",
- "docs": "https://docs.github.com/en/copilot"
+ "docs": "https://docs.github.com/en/copilot",
+ "skippable": false
},
{
"id": "cursor-rules",
@@ -23,7 +25,8 @@
"filename": ".cursor/rules",
"format": "cursor-rules",
"enabled": false,
- "docs": "https://docs.cursor.com/workflows/rules"
+ "docs": "https://docs.cursor.com/workflows/rules",
+ "skippable": false
},
{
"id": "json-rules",
@@ -32,6 +35,7 @@
"format": "json",
"enabled": false,
"icon": "json",
- "docs": "https://json-schema.org/"
+ "docs": "https://json-schema.org/",
+ "skippable": false
}
-]
\ No newline at end of file
+]
diff --git a/data/frameworks.json b/data/frameworks.json
index fd26a6f..8369cbe 100644
--- a/data/frameworks.json
+++ b/data/frameworks.json
@@ -4,20 +4,23 @@
"label": "React",
"icon": "react",
"enabled": true,
- "docs": "https://react.dev/learn"
+ "docs": "https://react.dev/learn",
+ "skippable": false
},
{
"id": "nextjs",
"label": "Next.js",
"icon": "nextdotjs",
"enabled": true,
- "docs": "https://nextjs.org/docs"
+ "docs": "https://nextjs.org/docs",
+ "skippable": false
},
{
"id": "angular",
"label": "Angular",
"icon": "angular",
"enabled": false,
- "docs": "https://angular.io/docs"
+ "docs": "https://angular.io/docs",
+ "skippable": false
}
]
diff --git a/data/ides.json b/data/ides.json
index 69296cd..08527a3 100644
--- a/data/ides.json
+++ b/data/ides.json
@@ -5,6 +5,7 @@
"icon": "visualstudiocode",
"enabled": true,
"docs": "https://code.visualstudio.com/docs",
+ "skippable": false,
"outputFiles": [
"instructions-md",
"agents-md"
@@ -16,6 +17,7 @@
"icon": "/icons/cursor.svg",
"enabled": false,
"docs": "https://docs.cursor.com/",
+ "skippable": false,
"outputFiles": [
"cursor-rules",
"json-rules"
@@ -27,6 +29,7 @@
"icon": "/icons/jetbrains.svg",
"enabled": false,
"docs": "https://www.jetbrains.com/help/",
+ "skippable": false,
"outputFiles": [
"instructions-md"
]
@@ -37,9 +40,10 @@
"icon": "windsurf",
"enabled": false,
"docs": "https://codeium.com/windsurf",
+ "skippable": false,
"outputFiles": [
"instructions-md",
"json-rules"
]
}
-]
\ No newline at end of file
+]
diff --git a/types/wizard.ts b/types/wizard.ts
index 9179730..568a2c6 100644
--- a/types/wizard.ts
+++ b/types/wizard.ts
@@ -5,6 +5,7 @@ export type IdeConfig = {
enabled?: boolean
outputFiles?: string[]
docs?: string
+ skippable?: boolean
}
export type FrameworkConfig = {
@@ -13,6 +14,7 @@ export type FrameworkConfig = {
icon?: string
enabled?: boolean
docs?: string
+ skippable?: boolean
}
export type DataAnswerSource = {
@@ -27,6 +29,7 @@ export type DataAnswerSource = {
isDefault?: boolean
disabled?: boolean
disabledLabel?: string
+ skippable?: boolean
}
export type DataQuestionSource = {
@@ -34,6 +37,7 @@ export type DataQuestionSource = {
question: string
allowMultiple?: boolean
answers: DataAnswerSource[]
+ skippable?: boolean
}
export type FileOutputConfig = {
@@ -44,6 +48,7 @@ export type FileOutputConfig = {
enabled?: boolean
icon?: string
docs?: string
+ skippable?: boolean
}
export type WizardAnswer = {
@@ -57,6 +62,7 @@ export type WizardAnswer = {
disabled?: boolean
disabledLabel?: string
docs?: string
+ skippable?: boolean
}
export type WizardQuestion = {
@@ -64,6 +70,7 @@ export type WizardQuestion = {
question: string
allowMultiple?: boolean
answers: WizardAnswer[]
+ skippable?: boolean
}
export type WizardStep = {