-
Notifications
You must be signed in to change notification settings - Fork 1.3k
docs: add napkin-changes proposal #538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Replace interactive config prompts with automatic config creation using default schema. The generated config includes helpful comments explaining context and rules options. - Remove unused promptForConfig, promptForArtifactRules, and isExitPromptError functions from config-prompts.ts - Add forceExit: true to vitest config to prevent worker processes from hanging after tests complete
Proposal to add schema alias support so `openspec-default` and `spec-driven` can be used interchangeably, enabling a rename without breaking existing configs.
- Remove `forceExit: true` from vitest.config.ts (Jest option, not Vitest) - Add actual teardown logic in vitest.setup.ts that forces exit after 1s grace period if processes are still hanging
Proposal to introduce lightweight "napkin" files (.napkin.md) as precursors to full changes. Napkins capture user intent immediately when starting a change, then get promoted to full change folders with proposals. Key points: - Napkins live in openspec/changes/ as <name>.napkin.md files - Promoted to folders via /opsx:continue - Deleted after promotion (content seeds proposal) - Solves the "lost intent" problem when creating new changes
📝 WalkthroughWalkthroughThis PR introduces a "napkin" concept—a lightweight markdown-based precursor to full OpenSpec changes. It adds configuration metadata and documentation defining a workflow where napkins can be created, edited, refined, promoted to full proposals via the Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummarySimplified config creation by removing interactive prompts and replaced them with a default config file containing helpful comment templates. Added two new change proposals: Key Changes:
Proposals:
Confidence Score: 5/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant CLI as artifact-experimental-setup
participant FS as FileSystem
participant Config as config-prompts
User->>CLI: Run openspec artifact-experimental-setup
CLI->>CLI: Create .claude/skills and commands
alt config.yaml exists
CLI->>FS: Check for openspec/config.yaml
FS-->>CLI: File exists
CLI->>User: Skip config creation (already exists)
else non-interactive mode
CLI->>CLI: Check process.stdin.isTTY
CLI->>User: Skip config prompts (CI/automation)
else interactive mode
CLI->>Config: serializeConfig({ schema: DEFAULT_SCHEMA })
Config-->>CLI: YAML with default schema + comment templates
CLI->>FS: Write openspec/config.yaml
alt write success
FS-->>CLI: Success
CLI->>User: Config created with default schema
CLI->>User: Show git commit suggestion
else write failure
FS-->>CLI: Error
CLI->>User: Show error + manual fallback instructions
end
end
CLI->>User: Show usage instructions
|
Review CompleteYour review story is ready! Comment !reviewfast on this PR to re-generate the story. |
Summary
Proposal to introduce lightweight "napkin" files (
.napkin.md) as precursors to full changes.Problem: When users start a new change with
/opsx:new, their initial description gets lost. The system creates an empty folder but the user's intent isn't captured anywhere.Solution: Napkins are simple markdown files that:
openspec/changes/as<name>.napkin.md/opsx:continueTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.