一键导入
repo-development-pipeline-operator
Operate milestone, spec, spike, feature, worktree, issue, and stacked PR pipelines
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Operate milestone, spec, spike, feature, worktree, issue, and stacked PR pipelines
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Set up DeepWork Reviews — automated code review rules using .deepreview config files
Start structured planning — explores, designs, and produces an executable plan
Reference documentation for DeepWork Reviews — automated code review rules using .deepreview configs and DeepSchema-generated rules
Create and manage DeepSchemas — rich file-level schemas with automatic validation and review generation
Start or continue DeepWork workflows using MCP tools
Agent profile/skill maintenance — quickly edit ks-config/agents and commit + push successful changes
| name | repo-development-pipeline-operator |
| description | Operate milestone, spec, spike, feature, worktree, issue, and stacked PR pipelines |
Use this skill when work spans milestone/spec planning, branch topology, stacked PRs, rebases, issue linkage, or repo worktree state.
This skill sits between product management and platform engineering. It keeps the product scope, engineering specs, git branch graph, PR targets, and local worktrees aligned so milestone work remains reviewable and releasable.
Treat milestones and specs as separate peers:
Use this branch shape unless the repo has a stricter local convention:
main
├── milestone/<milestone-slug>
├── spec/<spec-slug>
│ ├── feat/<spec-slug>-<task-slug>
│ └── feat/<spec-slug>-<task-slug>
└── spike/<spike-slug>
Some repos use Spec Kit-style branches instead of explicit spec/* branches:
NNN-<spec-slug>
copilot/<NNN>-<spec-slug>-<task-id>
When that convention is present, extract the active spec from the numeric
prefix and locate specs/NNN-*/. Do not rename the repo's branch model to the
generic one just to fit this skill.
Promotion boundaries:
feat/* PRs target spec/<spec-slug> and squash-merge into the spec branch.spec/* PRs target milestone/<milestone-slug> and squash-merge as one
spec-sized commit.spike/* branches do not promote by default; capture findings in spec docs or
issues, then discard or archive the branch.Milestones may depend on specs; specs do not point back to milestones. Compute "used by milestones" by scanning milestone metadata, not by adding milestone frontmatter to specs.
Use the repo-local docs layout when present. If no stronger convention exists, use this shape:
docs/
├── milestones/
│ └── M<N>-<milestone-slug>/
│ ├── press-release.md
│ ├── internal-faq.md
│ ├── designs.md
│ └── milestone.yaml
└── specs/
└── NNN-<spec-slug>/
├── plan.md
├── spec.md
├── data-model.md
├── api-spec.json
├── research.md
└── tasks.md
M<N> matches the provider milestone id when the repo uses Forgejo or GitHub
milestones. NNN is a repo-local, zero-padded spec number that should not be
reused.
Milestone docs carry product context:
press-release.md: customer-facing value and announcement shape.internal-faq.md: stakeholder questions, scope decisions, and trade-offs.designs.md: screenshots, sketches, or an explicit stub.milestone.yaml: machine-readable milestone metadata.Spec docs carry engineering context:
plan.md: architecture and phased implementation narrative.spec.md: behavioral requirements, preferably with stable requirement IDs.data-model.md: storage/schema changes when applicable.api-spec.json: request/response contracts when applicable.research.md: findings from spikes, libraries, and discarded approaches.tasks.md: sequenced PR plan.contracts/: API or CLI contracts when the repo uses directory-based
contracts.checklists/: quality gates, requirement checks, and manual verification
steps.quickstart.md: demo or local validation path when the repo uses Spec Kit.When working inside a spec directory, read in this order unless the repo says otherwise:
tasks.mdspec.mdplan.mddata-model.md, if presentcontracts/, if presentresearch.md, if presentchecklists/, if presentWhen a milestone has milestone.yaml, keep this schema:
slug: hardware-enrollment
forgejoMilestone: 5
forgejoIssue: 10
flag: KEYSTONE_FLAG_MILESTONE_HARDWARE_ENROLLMENT
dependsOnSpecs:
- full-disk-encryption-unlock-methods
status: in_progress
Required fields:
slug: kebab-case; matches the milestone directory suffix and branch slug.forgejoMilestone: provider milestone id when available.forgejoIssue: tracking issue id for Milestone: <slug>.flag: per-milestone feature flag when the repo uses flags.dependsOnSpecs: kebab-case spec slugs; zero or more.status: planned, in_progress, shipped, or cancelled.Do not add milestone backrefs to spec files. A spec can serve multiple
milestones, and milestone consumers should be discovered from
dependsOnSpecs.
Use repo-local issue labels when present. If no stronger convention exists, use:
Milestone: <slug> label: kind:milestone
Spec: <slug> label: kind:spec
Spike: <slug> label: kind:spike
Milestone issues should link:
dependsOnSpecs.Spec issues should link:
Spike issues should record:
research.md or a parent issue.Do not add redundant suffixes like (M#) or explanatory title tails when the
label and slug already identify the issue.
If the repo gates milestone work with flags, use:
<PROJECT>_FLAG_MILESTONE_<SLUG_UPPER>
Hyphens become underscores. For example, hardware-enrollment becomes
KEYSTONE_FLAG_MILESTONE_HARDWARE_ENROLLMENT.
Default to disabled in production. Enable locally or on milestone branches only when the preview path needs the code live. The production flip belongs to the release event or a follow-up release-safe commit.
Before making decisions, inspect local and remote state. Prefer local worktrees so agents can compare branches without repeatedly switching the main checkout.
Use this layout:
~/repos/OWNER/REPO_NAME/ default branch checkout
~/repos/OWNER/REPO_NAME/worktrees/BRANCH_NAME/
If the repo defines its own worktree tool, use that instead. Common repo-local commands:
bin/worktree add <branch-name> [base-ref]
bin/worktree list
bin/worktree remove <branch-name>
BRANCH_NAME preserves branch slashes as subdirectories. Do not flatten branch
names into hyphenated slugs unless the repo-local worktree tool explicitly does
that. For example:
~/repos/ncrmro/keystone/worktrees/spec/REQ-032-full-disk-encryption-unlock-methods/
~/repos/ncrmro/keystone/worktrees/milestone/M1-V1-KS-OS-FDE-deployment/
~/repos/ncrmro/keystone/worktrees/feat/hardware-fde-namespace/
At skill start:
.gitignore, and
existing worktree paths.milestone/*, spec/*, feat/*,
copilot/*, and spike/* branches when safe.Update from the trunk outward:
milestone/* branches on the default branch when the milestone is
intended to preview current trunk.spec/* branches on the default branch, unless the repo convention
explicitly bases specs on milestone branches.feat/* branches on their target spec/* branch.Do not rebase or force-push a shared branch unless the repo convention permits it and the branch owner is known.
Keep the public record aligned:
research.md or the relevant issue
before the spike branch is deleted.When a repo uses numbered spec/task conventions:
copilot/001-smart-doc-upload-T012.feat(001-smart-doc-upload): implement drag-and-drop UI.[T001] implement drag-and-drop UI.tasks.md immediately after finishing and validating
them.When issue-backed work starts or materially changes, post the repo-required
Work Started or Work Update comment.
For spec-driven task work:
checklists/ first; warn if quality gates are incomplete.[P].plan.md, and commit or record the completed
state according to the repo convention.For new work, classify it before implementation:
milestone: changes product scope, demo promise, or release readiness.spec: needed to make an engineering behavior coherent and reviewable.feat: an implementation slice under an existing spec.spike: resolves uncertainty before committing to a spec.follow-up: valuable but not required for the current milestone.If the work threatens milestone scope, say so directly and propose the smallest branch or issue shape that preserves the release path.
When reporting status, include: