一键导入
migrate-imports
Find and replace all @keystone-6 import paths across every file in the project. Invoke as a forked subagent, passing the project root path.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Find and replace all @keystone-6 import paths across every file in the project. Invoke as a forked subagent, passing the project root path.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Orchestrate a team of agents to implement a PRD's issues end-to-end — plan dependency waves, dispatch implementer/reviewer/QA agents, and shepherd each issue through PR, review, CI, and merge onto a target branch. Use when the user wants to act as engineering manager, implement a PRD or a set of issues with a team, run a parallel/dependency-ordered build, "lead the team" to deliver issues, or get issues merged onto a branch (never main).
Migrate Keystone image and file fields to OpenSaaS Stack. Leads with the non-destructive multi-column path (map onto the existing Keystone columns in place — no data migration, no re-upload). Invoke as a forked subagent, passing the project details.
Expert knowledge for migrating projects to OpenSaaS Stack. Invoke whenever the user mentions migrating from KeystoneJS, Prisma, or an existing Next.js project; asks about access control patterns or opensaas.config.ts; or is troubleshooting any aspect of an OpenSaaS Stack migration. Don't wait for the user to say "migration" — trigger whenever the conversation touches these areas.
Migrate context.graphql.run/raw and context.query.* calls to context.db.* across a project. Invoke as a forked subagent when these patterns are detected, passing the project root path as arguments.
Independently QA an implemented PRD against its issue spec before sign-off — verify acceptance criteria, required tests, user-story coverage, and out-of-scope guarantees against the real merged code, then post a sign-off comment. Use when the user wants a QA pass on delivered work, an acceptance review of a PRD or spec, or a sign-off before closing a PRD. Distinct from /review (per-PR diff) and /verify (runs the app) — this checks a whole spec against the codebase.
Pick up and complete a GitHub issue end-to-end with TDD, linting, PR creation, and CI review cycle. Use when the user says "complete issue
| name | migrate-imports |
| description | Find and replace all @keystone-6 import paths across every file in the project. Invoke as a forked subagent, passing the project root path. |
| context | fork |
| agent | general-purpose |
Find and replace all KeystoneJS import paths with their OpenSaaS Stack equivalents across the project described below. This is a mechanical find-and-replace across every TypeScript/JavaScript file.
$ARGUMENTS
| Keystone import (remove/replace) | OpenSaaS import |
|---|---|
@keystone-6/core | @opensaas/stack-core |
@keystone-6/core/fields | @opensaas/stack-core/fields |
@keystone-6/auth | @opensaas/stack-auth |
@keystone-6/fields-document | @opensaas/stack-tiptap/fields (see note) |
.keystone/types or '.keystone/types' | @opensaas/stack-core |
@keystone-6/core/session | Remove entirely (handled by authPlugin) |
Note on @keystone-6/fields-document: Replace with @opensaas/stack-tiptap/fields and change document() → richText(). If document field migration is complex, note it for the user and leave a // TODO: migrate document field comment.
Note on .keystone/types: Common imports to update:
// Before
import type { Session } from '.keystone/types'
import type { KeystoneContext } from '.keystone/types'
import type { Lists } from '.keystone/types'
// After
import type { AccessControl } from '@opensaas/stack-core'
// KeystoneContext and Lists are no longer needed — use context from getContext()
If the project has keystone.ts or keystone.config.ts, it should be renamed to opensaas.config.ts. Check if it has already been renamed before doing so.
.ts and .tsx files in the project (exclude node_modules, .next, dist)@keystone-6 or .keystone/types imports.keystone/types imports, update the specific type names (Session → AccessControl, etc.)
d. Edit the file with the changeskeystone.ts or keystone.config.ts exists and rename to opensaas.config.ts if needed (and if not already done)