用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/bdfinst/vsm-workshop --skill implement-feature命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Create a new feature file for ATDD workflow - must be done BEFORE any implementation
Analyze code with Semgrep for security vulnerabilities and code quality issues, then create a prioritized fix plan
Add a new calculated metric to the VSM dashboard with test-first development
基于 SOC 职业分类
正在显示 SKILL.md
| name | implement-feature |
| description | Implement an approved feature file using ATDD workflow with test-first development |
| user-invocable | true |
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash |
Implement an approved feature using ATDD workflow.
/implement-feature <feature-file-path>
features/step-definitions/// features/step-definitions/{feature}.steps.js
import { Given, When, Then } from '@cucumber/cucumber'
import { expect } from 'chai'
Given('I have an empty value stream map', function () {
this.vsm = { steps: [], connections: [] }
})
When('I add a step named {string} with process time {int} minutes', function (name, processTime) {
const step = {
id: crypto.randomUUID(),
name,
processTime,
leadTime: processTime,
percentCompleteAccurate: 100,
queueSize: 0,
batchSize: 1,
}
this.vsm.steps.push(step)
})
Then('the map should contain {int} step(s)', function (count) {
expect(this.vsm.steps).to.have.lengthOf(count)
})
Then('the step should display {string}', function (name) {
const step = this.vsm.steps.find(s => s.name === name)
expect(step).to.exist
})
// src/components/builder/StepEditor.jsx
import { useState } from 'react'
import PropTypes from 'prop-types'
function StepEditor({ step, onUpdate }) {
const [name, setName] = useState(step?.name || '')
const [processTime, setProcessTime] = useState(step?.processTime || 0)
const handleSubmit = (e) => {
e.preventDefault()
onUpdate({ ...step, name, processTime })
}
return (
<form onSubmit={handleSubmit} data-testid="step-editor">
<label>
Step Name
<input
value={name}
onChange={(e) => setName(e.target.value)}
data-testid="step-name-input"
/>
</label>
<label>
Process Time (minutes)
<input
type="number"
value={processTime}
onChange={(e) => setProcessTime(Number(e.target.value))}
data-testid="process-time-input"
/>
Save
)
}
. = {
: .({
: .,
: .,
: .,
}),
: ..,
}
# Run acceptance tests for specific feature
npm run test:acceptance -- features/builder/add-step.feature
# Run in watch mode during implementation
npm run test:acceptance --watch
# Run all acceptance tests
npm run test:acceptance