Manus에서 모든 스킬 실행
원클릭으로
원클릭으로
원클릭으로 Manus에서 모든 스킬 실행
시작하기$pwd:
implement-feature
// Implement an approved feature file using ATDD workflow with test-first development
$ git log --oneline --stat
stars:17
forks:3
updated:2026년 3월 16일 12:07
SKILL.md
// Implement an approved feature file using ATDD workflow with test-first development
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
Create a new React component following project conventions with PropTypes and test attributes
Create a new feature file for ATDD workflow - must be done BEFORE any implementation
Add a new type of process step to the VSM builder with custom visualization
Create or run simulation features for analyzing work flow through value streams
| 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"
/>
</label>
<button type="submit">Save</button>
</form>
)
}
StepEditor.propTypes = {
step: PropTypes.shape({
id: PropTypes.string,
name: PropTypes.string,
processTime: PropTypes.number,
}),
onUpdate: PropTypes.func.isRequired,
}
export default StepEditor
# 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