microsoft / microsoft/PromptKit
Preset/overlay system: org and project-level component customization
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 105
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Add a preset/overlay system that lets organizations and projects customize PromptKit components (personas, protocols, formats, templates) without forking the core library — using a priority-based resolution stack.
Motivation
GitHub Spec Kit has a mature preset system with a clean design:
- Resolution stack: project overrides > org presets > extension templates > core templates
- Priority-based: Multiple presets stack with explicit priority ordering (lower number wins)
- Runtime resolution: Templates resolved dynamically on every lookup — presets can be added/removed without rebuilding
- Dual catalogs: Official (curated, install-allowed) + community (discoverable, explicit install)
- Scaffolding: Template directory for creating new presets
This solves a real PromptKit need. Today, organizations that want to:
- Replace
systems-engineerwith their own domain-specific persona - Add company-specific guardrail protocols (""always use our internal auth library"")
- Customize the
requirements-docformat with additional sections
...must either fork the repo or manually edit assembled output every time.
Proposed Design
PromptKit's ""code"" is all Markdown/YAML, so the preset system can be much simpler than Spec Kit's Python-based implementation:
-
Resolution stack for component lookup during assembly:
Priority 1: .promptkit/overrides/{type}/{name}.md (project-local) Priority 2: .promptkit/presets/{preset-id}/{type}/ (installed presets) Priority 3: {promptkit-repo}/{type}/{name}.md (core library) -
Preset manifest (
preset.yaml):name: acme-corp-standards version: 1.0.0 description: ACME Corp engineering standards overlay overrides: personas: [systems-engineer] protocols: [operational-constraints] formats: [requirements-doc] adds: protocols: [acme-security-review] -
CLI support:
npx promptkit preset add <path-or-url> -
Catalog (future): A community catalog of preset packs for specific domains (embedded systems, web development, data engineering, etc.)
Credit
This pattern is directly inspired by GitHub Spec Kit's preset system. See their presets/ARCHITECTURE.md for the resolution stack design and presets/README.md for the CLI interface.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the component lookup used during assembly and the CLI entry point for npx promptkit preset add <path-or-url>. Review the proposed preset.yaml manifest and the .promptkit/overrides and .promptkit/presets paths; done means priority-based resolution, preset installation, and project/org customization work without modifying core components.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100