process-builder by a5c-ai/babysitter
npx skills add https://github.com/a5c-ai/babysitter --skill process-builder为 babysitter 事件溯源编排框架创建新的流程定义。
流程存放于:plugins/babysitter/skills/babysit/process/
├── methodologies/ # 可复用的开发方法(TDD、BDD、Scrum 等)
│ └── [name]/
│ ├── README.md # 文档
│ ├── [name].js # 主流程
│ └── examples/ # 示例输入
│
└── specializations/ # 特定领域的流程
├── [category]/ # 工程专业领域(直接子目录)
│ └── [process].js
└── domains/
└── [domain]/ # 商业、科学、社会科学
└── [spec]/
├── README.md
├── references.md
├── processes-backlog.md
└── [process].js
创建基础文档:
# 检查现有专业领域
ls plugins/babysitter/skills/babysit/process/specializations/
# 检查方法学
ls plugins/babysitter/skills/babysit/process/methodologies/
创建:
README.md - 概述、角色、目标、用例、常见流程references.md - 外部参考、最佳实践、来源链接广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
使用已识别的流程创建 processes-backlog.md:
# 流程待办事项 - [专业领域名称]
## 已识别的流程
- [ ] **process-name** - 此流程完成内容的简短描述
- 参考:[方法学或标准链接]
- 输入:列出关键输入
- 输出:列出关键输出
- [ ] **another-process** - 描述
...
按照 SDK 模式创建 .js 流程文件(见下文)。
每个流程文件都遵循此模式:
/**
* @process [category]/[process-name]
* @description 关于该流程端到端完成内容的清晰描述
* @inputs { inputName: type, optionalInput?: type }
* @outputs { success: boolean, outputName: type, artifacts: array }
*
* @example
* const result = await orchestrate('[category]/[process-name]', {
* inputName: 'value',
* optionalInput: 'optional-value'
* });
*
* @references
* - Book: "Relevant Book Title" by Author
* - Article: [Title](https://link)
* - Standard: ISO/IEEE reference
*/
import { defineTask } from '@a5c-ai/babysitter-sdk';
/**
* [流程名称] 流程
*
* 方法学:方法的简要描述
*
* 阶段:
* 1. 阶段名称 - 发生什么
* 2. 阶段名称 - 发生什么
* ...
*
* 优势:
* - 优势 1
* - 优势 2
*
* @param {Object} inputs - 流程输入
* @param {string} inputs.inputName - 输入描述
* @param {Object} ctx - 流程上下文(参见 SDK)
* @returns {Promise<Object>} 流程结果
*/
export async function process(inputs, ctx) {
const {
inputName,
optionalInput = 'default-value',
// ... 带默认值的解构
} = inputs;
const artifacts = [];
// ============================================================================
// 阶段 1: [阶段名称]
// ============================================================================
ctx.log?.('info', '开始阶段 1...');
const phase1Result = await ctx.task(someTask, {
// 任务输入
});
artifacts.push(...(phase1Result.artifacts || []));
// 人工审核断点(需要时)
await ctx.breakpoint({
question: '审核结果并批准继续?',
title: '阶段 1 审核',
context: {
runId: ctx.runId,
files: [
{ path: 'artifacts/output.md', format: 'markdown', label: '输出' }
]
}
});
// ============================================================================
// 阶段 2: [阶段名称] - 并行执行示例
// ============================================================================
const [result1, result2, result3] = await ctx.parallel.all([
() => ctx.task(task1, { /* args */ }),
() => ctx.task(task2, { /* args */ }),
() => ctx.task(task3, { /* args */ })
]);
// ============================================================================
// 阶段 3: [迭代示例]
// ============================================================================
let iteration = 0;
let targetMet = false;
while (!targetMet && iteration < maxIterations) {
iteration++;
const iterResult = await ctx.task(iterativeTask, {
iteration,
previousResults: /* ... */
});
targetMet = iterResult.meetsTarget;
if (!targetMet && iteration % 3 === 0) {
// 定期检查点
await ctx.breakpoint({
question: `迭代 ${iteration}:目标未达成。继续?`,
title: '进度检查点',
context: { /* ... */ }
});
}
}
// ============================================================================
// 完成
// ============================================================================
return {
success: targetMet,
iterations: iteration,
artifacts,
// ... 与 @outputs 匹配的其他输出
};
}
// ============================================================================
// 任务定义
// ============================================================================
/**
* 任务:[任务名称]
* 目的:此任务完成的内容
*/
const someTask = defineTask({
name: 'task-name',
description: '此任务的作用',
// 任务定义 - 由编排器外部执行
// 返回一个描述如何运行任务的 TaskDef
inputs: {
inputName: { type: 'string', required: true },
optionalInput: { type: 'number', default: 10 }
},
outputs: {
result: { type: 'object' },
artifacts: { type: 'array' }
},
async run(inputs, taskCtx) {
const effectId = taskCtx.effectId;
return {
kind: 'node', // 或 'agent', 'skill', 'shell', 'breakpoint'
title: `任务: ${inputs.inputName}`,
node: {
entry: 'scripts/task-runner.js',
args: ['--input', inputs.inputName, '--effect-id', effectId]
},
io: {
inputJsonPath: `tasks/${effectId}/input.json`,
outputJsonPath: `tasks/${effectId}/result.json`
},
labels: ['category', 'subcategory']
};
}
});
ctx 对象提供以下内置方法:
| 方法 | 目的 | 行为 |
|---|---|---|
ctx.task(taskDef, args, opts?) | 执行任务 | 返回结果或抛出类型化异常 |
ctx.breakpoint(payload) | 人工审批关卡 | 暂停直到人工批准 |
ctx.sleepUntil(isoOrEpochMs) | 基于时间的关卡 | 暂停直到指定时间 |
ctx.parallel.all([...thunks]) | 并行执行 | 并发运行独立任务 |
ctx.parallel.map(items, fn) | 并行映射 | 通过任务函数映射项目 |
ctx.now() | 确定性时间 | 返回当前日期(或提供的时间) |
ctx.log?.(level, msg, data?) | 日志记录 | 可选的日志记录辅助工具 |
ctx.runId | 运行标识符 | 当前运行的唯一 ID |
| 类型 | 用例 | 执行器 |
|---|---|---|
node | 脚本、构建、测试 | Node.js 进程 |
agent | LLM 驱动的分析、生成 | Claude Code 代理 |
skill | Claude Code 技能 | 技能调用 |
shell | 系统命令 | Shell 执行 |
breakpoint | 人工审批 | 断点 UI/服务 |
sleep | 时间关卡 | 编排器调度 |
orchestrator_task | 内部编排器工作 | 自路由 |
await ctx.breakpoint({
question: '批准继续?',
title: '检查点',
context: { runId: ctx.runId }
});
await ctx.breakpoint({
question: '审核生成的规范。它是否符合要求?',
title: '规范审核',
context: {
runId: ctx.runId,
files: [
{ path: 'artifacts/spec.md', format: 'markdown', label: '规范' },
{ path: 'artifacts/spec.json', format: 'json', label: 'JSON 模式' },
{ path: 'src/implementation.ts', format: 'code', language: 'typescript', label: '实现' }
]
}
});
if (qualityScore < targetScore) {
await ctx.breakpoint({
question: `质量分数 ${qualityScore} 低于目标 ${targetScore}。继续迭代还是接受当前结果?`,
title: '质量关卡',
context: {
runId: ctx.runId,
data: { qualityScore, targetScore, iteration }
}
});
}
let quality = 0;
let iteration = 0;
const targetQuality = inputs.targetQuality || 85;
const maxIterations = inputs.maxIterations || 10;
while (quality < targetQuality && iteration < maxIterations) {
iteration++;
ctx.log?.('info', `迭代 ${iteration}/${maxIterations}`);
// 执行改进任务
const improvement = await ctx.task(improveTask, { iteration });
// 评分质量(并行检查)
const [coverage, lint, security, tests] = await ctx.parallel.all([
() => ctx.task(coverageTask, {}),
() => ctx.task(lintTask, {}),
() => ctx.task(securityTask, {}),
() => ctx.task(runTestsTask, {})
]);
// 代理对整体质量评分
const score = await ctx.task(agentScoringTask, {
coverage, lint, security, tests, iteration
});
quality = score.overall;
ctx.log?.('info', `质量: ${quality}/${targetQuality}`);
if (quality >= targetQuality) {
ctx.log?.('info', '质量目标已达成!');
break;
}
}
return {
success: quality >= targetQuality,
quality,
iterations: iteration
};
// 阶段 1:研究
const research = await ctx.task(researchTask, { topic: inputs.topic });
await ctx.breakpoint({
question: '在进入规划之前审核研究发现。',
title: '研究审核',
context: { runId: ctx.runId }
});
// 阶段 2:规划
const plan = await ctx.task(planningTask, { research });
await ctx.breakpoint({
question: '在实施之前审核计划。',
title: '计划审核',
context: { runId: ctx.runId }
});
// 阶段 3:实施
const implementation = await ctx.task(implementTask, { plan });
// 阶段 4:验证
const verification = await ctx.task(verifyTask, { implementation, plan });
await ctx.breakpoint({
question: '完成前的最终审核。',
title: '最终批准',
context: { runId: ctx.runId }
});
return { success: verification.passed, plan, implementation };
// 扇出到多个并行分析
const analyses = await ctx.parallel.map(components, component =>
ctx.task(analyzeTask, { component }, { label: `analyze:${component.name}` })
);
// 聚合结果
const aggregated = await ctx.task(aggregateTask, { analyses });
return { analyses, summary: aggregated.summary };
# 创建新运行
babysitter run:create \
--process-id methodologies/my-process \
--entry ./plugins/babysitter/skills/babysit/process/methodologies/my-process.js#process \
--inputs ./test-inputs.json \
--json
# 迭代运行
babysitter run:iterate .a5c/runs/<runId> --json
# 列出待处理任务
babysitter task:list .a5c/runs/<runId> --pending --json
# 发布任务结果
babysitter task:post .a5c/runs/<runId> <effectId> \
--status ok \
--value ./result.json
# 检查运行状态
babysitter run:status .a5c/runs/<runId>
# 查看事件
babysitter run:events .a5c/runs/<runId> --limit 20 --reverse
{
"feature": "User authentication with JWT",
"acceptanceCriteria": [
"Users can register with email and password",
"Users can login and receive a JWT token",
"Invalid credentials are rejected"
],
"testFramework": "jest",
"targetQuality": 85,
"maxIterations": 5
}
询问用户:
| 问题 | 目的 |
|---|---|
| 领域/类别 | 确定目录位置 |
| 流程名称 | kebab-case 标识符 |
| 目标 | 流程应完成什么? |
| 输入 | 流程需要什么数据? |
| 输出 | 它产生什么工件/结果? |
| 阶段 | 主要步骤是什么? |
| 质量关卡 | 应在何处进行人工审核? |
| 迭代策略 | 固定阶段 vs 收敛循环? |
# 查找类似流程
ls plugins/babysitter/skills/babysit/process/methodologies/
ls plugins/babysitter/skills/babysit/process/specializations/
# 阅读类似流程以了解模式
cat plugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/atdd-tdd.js | head -200
# 检查方法学 README 结构
cat plugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/README.md
cat plugins/babysitter/skills/babysit/process/methodologies/backlog.md
对于方法学:
methodologies/[name]/README.md(综合文档)methodologies/[name]/[name].js(流程实现)methodologies/[name]/examples/(示例输入)对于专业领域:
specializations/domains/[domain]/[spec]/specializations/[category]/[process].js检查清单:
@a5c-ai/babysitter-sdk 导入export async function process(inputs, ctx)// === 阶段 N: 名称 ===)ctx.log?.('info', message) 记录日志ctx.task(taskDef, inputs) 执行任务/**
* @process methodologies/my-methodology
* @description 我的开发方法学,包含质量收敛
* @inputs { feature: string, targetQuality?: number }
* @outputs { success: boolean, quality: number, artifacts: array }
*/
export async function process(inputs, ctx) {
const { feature, targetQuality = 85 } = inputs;
// ... 实现
}
/**
* @process specializations/game-development/core-mechanics-prototyping
* @description 通过迭代原型化和验证核心游戏机制
* @inputs { prototypeName: string, mechanicsToTest: array, engine?: string }
* @outputs { success: boolean, mechanicsValidated: array, playtestResults: object }
*/
export async function process(inputs, ctx) {
const { prototypeName, mechanicsToTest, engine = 'Unity' } = inputs;
// ... 实现
}
/**
* @process specializations/domains/science/bioinformatics/sequence-analysis
* @description 使用标准生物信息学工作流分析基因组序列
* @inputs { sequences: array, analysisType: string, referenceGenome?: string }
* @outputs { success: boolean, alignments: array, variants: array, report: object }
*/
export async function process(inputs, ctx) {
const { sequences, analysisType, referenceGenome = 'GRCh38' } = inputs;
// ... 实现
}
plugins/babysitter/skills/babysit/reference/sdk.mdplugins/babysitter/skills/babysit/process/methodologies/backlog.mdplugins/babysitter/skills/babysit/process/specializations/backlog.mdplugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/plugins/babysitter/skills/babysit/process/methodologies/spec-driven-development.jsREADME.md 获取完整框架文档每周安装量
108
仓库
GitHub 星标数
419
首次出现
2026年1月26日
安全审计
安装于
opencode91
codex91
gemini-cli90
github-copilot86
cursor74
amp71
Create new process definitions for the babysitter event-sourced orchestration framework.
Processes live in: plugins/babysitter/skills/babysit/process/
├── methodologies/ # Reusable development approaches (TDD, BDD, Scrum, etc.)
│ └── [name]/
│ ├── README.md # Documentation
│ ├── [name].js # Main process
│ └── examples/ # Sample inputs
│
└── specializations/ # Domain-specific processes
├── [category]/ # Engineering specializations (direct children)
│ └── [process].js
└── domains/
└── [domain]/ # Business, Science, Social Sciences
└── [spec]/
├── README.md
├── references.md
├── processes-backlog.md
└── [process].js
Create foundational documentation:
# Check existing specializations
ls plugins/babysitter/skills/babysit/process/specializations/
# Check methodologies
ls plugins/babysitter/skills/babysit/process/methodologies/
Create:
README.md - Overview, roles, goals, use cases, common flowsreferences.md - External references, best practices, links to sourcesCreate processes-backlog.md with identified processes:
# Processes Backlog - [Specialization Name]
## Identified Processes
- [ ] **process-name** - Short description of what this process accomplishes
- Reference: [Link to methodology or standard]
- Inputs: list key inputs
- Outputs: list key outputs
- [ ] **another-process** - Description
...
Create .js process files following SDK patterns (see below).
Every process file follows this pattern:
/**
* @process [category]/[process-name]
* @description Clear description of what the process accomplishes end-to-end
* @inputs { inputName: type, optionalInput?: type }
* @outputs { success: boolean, outputName: type, artifacts: array }
*
* @example
* const result = await orchestrate('[category]/[process-name]', {
* inputName: 'value',
* optionalInput: 'optional-value'
* });
*
* @references
* - Book: "Relevant Book Title" by Author
* - Article: [Title](https://link)
* - Standard: ISO/IEEE reference
*/
import { defineTask } from '@a5c-ai/babysitter-sdk';
/**
* [Process Name] Process
*
* Methodology: Brief description of the approach
*
* Phases:
* 1. Phase Name - What happens
* 2. Phase Name - What happens
* ...
*
* Benefits:
* - Benefit 1
* - Benefit 2
*
* @param {Object} inputs - Process inputs
* @param {string} inputs.inputName - Description of input
* @param {Object} ctx - Process context (see SDK)
* @returns {Promise<Object>} Process result
*/
export async function process(inputs, ctx) {
const {
inputName,
optionalInput = 'default-value',
// ... destructure with defaults
} = inputs;
const artifacts = [];
// ============================================================================
// PHASE 1: [PHASE NAME]
// ============================================================================
ctx.log?.('info', 'Starting Phase 1...');
const phase1Result = await ctx.task(someTask, {
// task inputs
});
artifacts.push(...(phase1Result.artifacts || []));
// Breakpoint for human review (when needed)
await ctx.breakpoint({
question: 'Review the results and approve to continue?',
title: 'Phase 1 Review',
context: {
runId: ctx.runId,
files: [
{ path: 'artifacts/output.md', format: 'markdown', label: 'Output' }
]
}
});
// ============================================================================
// PHASE 2: [PHASE NAME] - Parallel Execution Example
// ============================================================================
const [result1, result2, result3] = await ctx.parallel.all([
() => ctx.task(task1, { /* args */ }),
() => ctx.task(task2, { /* args */ }),
() => ctx.task(task3, { /* args */ })
]);
// ============================================================================
// PHASE 3: [ITERATION EXAMPLE]
// ============================================================================
let iteration = 0;
let targetMet = false;
while (!targetMet && iteration < maxIterations) {
iteration++;
const iterResult = await ctx.task(iterativeTask, {
iteration,
previousResults: /* ... */
});
targetMet = iterResult.meetsTarget;
if (!targetMet && iteration % 3 === 0) {
// Periodic checkpoint
await ctx.breakpoint({
question: `Iteration ${iteration}: Target not met. Continue?`,
title: 'Progress Checkpoint',
context: { /* ... */ }
});
}
}
// ============================================================================
// COMPLETION
// ============================================================================
return {
success: targetMet,
iterations: iteration,
artifacts,
// ... other outputs matching @outputs
};
}
// ============================================================================
// TASK DEFINITIONS
// ============================================================================
/**
* Task: [Task Name]
* Purpose: What this task accomplishes
*/
const someTask = defineTask({
name: 'task-name',
description: 'What this task does',
// Task definition - executed externally by orchestrator
// This returns a TaskDef that describes HOW to run the task
inputs: {
inputName: { type: 'string', required: true },
optionalInput: { type: 'number', default: 10 }
},
outputs: {
result: { type: 'object' },
artifacts: { type: 'array' }
},
async run(inputs, taskCtx) {
const effectId = taskCtx.effectId;
return {
kind: 'node', // or 'agent', 'skill', 'shell', 'breakpoint'
title: `Task: ${inputs.inputName}`,
node: {
entry: 'scripts/task-runner.js',
args: ['--input', inputs.inputName, '--effect-id', effectId]
},
io: {
inputJsonPath: `tasks/${effectId}/input.json`,
outputJsonPath: `tasks/${effectId}/result.json`
},
labels: ['category', 'subcategory']
};
}
});
The ctx object provides these intrinsics:
| Method | Purpose | Behavior |
|---|---|---|
ctx.task(taskDef, args, opts?) | Execute a task | Returns result or throws typed exception |
ctx.breakpoint(payload) | Human approval gate | Pauses until approved via human |
ctx.sleepUntil(isoOrEpochMs) | Time-based gate | Pauses until specified time |
ctx.parallel.all([...thunks]) | Parallel execution | Runs independent tasks concurrently |
ctx.parallel.map(items, fn) |
| Kind | Use Case | Executor |
|---|---|---|
node | Scripts, builds, tests | Node.js process |
agent | LLM-powered analysis, generation | Claude Code agent |
skill | Claude Code skills | Skill invocation |
shell | System commands | Shell execution |
breakpoint | Human approval | Breakpoints UI/service |
await ctx.breakpoint({
question: 'Approve to continue?',
title: 'Checkpoint',
context: { runId: ctx.runId }
});
await ctx.breakpoint({
question: 'Review the generated specification. Does it meet requirements?',
title: 'Specification Review',
context: {
runId: ctx.runId,
files: [
{ path: 'artifacts/spec.md', format: 'markdown', label: 'Specification' },
{ path: 'artifacts/spec.json', format: 'json', label: 'JSON Schema' },
{ path: 'src/implementation.ts', format: 'code', language: 'typescript', label: 'Implementation' }
]
}
});
if (qualityScore < targetScore) {
await ctx.breakpoint({
question: `Quality score ${qualityScore} is below target ${targetScore}. Continue iterating or accept current result?`,
title: 'Quality Gate',
context: {
runId: ctx.runId,
data: { qualityScore, targetScore, iteration }
}
});
}
let quality = 0;
let iteration = 0;
const targetQuality = inputs.targetQuality || 85;
const maxIterations = inputs.maxIterations || 10;
while (quality < targetQuality && iteration < maxIterations) {
iteration++;
ctx.log?.('info', `Iteration ${iteration}/${maxIterations}`);
// Execute improvement tasks
const improvement = await ctx.task(improveTask, { iteration });
// Score quality (parallel checks)
const [coverage, lint, security, tests] = await ctx.parallel.all([
() => ctx.task(coverageTask, {}),
() => ctx.task(lintTask, {}),
() => ctx.task(securityTask, {}),
() => ctx.task(runTestsTask, {})
]);
// Agent scores overall quality
const score = await ctx.task(agentScoringTask, {
coverage, lint, security, tests, iteration
});
quality = score.overall;
ctx.log?.('info', `Quality: ${quality}/${targetQuality}`);
if (quality >= targetQuality) {
ctx.log?.('info', 'Quality target achieved!');
break;
}
}
return {
success: quality >= targetQuality,
quality,
iterations: iteration
};
// Phase 1: Research
const research = await ctx.task(researchTask, { topic: inputs.topic });
await ctx.breakpoint({
question: 'Review research findings before proceeding to planning.',
title: 'Research Review',
context: { runId: ctx.runId }
});
// Phase 2: Planning
const plan = await ctx.task(planningTask, { research });
await ctx.breakpoint({
question: 'Review plan before implementation.',
title: 'Plan Review',
context: { runId: ctx.runId }
});
// Phase 3: Implementation
const implementation = await ctx.task(implementTask, { plan });
// Phase 4: Verification
const verification = await ctx.task(verifyTask, { implementation, plan });
await ctx.breakpoint({
question: 'Final review before completion.',
title: 'Final Approval',
context: { runId: ctx.runId }
});
return { success: verification.passed, plan, implementation };
// Fan out to multiple parallel analyses
const analyses = await ctx.parallel.map(components, component =>
ctx.task(analyzeTask, { component }, { label: `analyze:${component.name}` })
);
// Aggregate results
const aggregated = await ctx.task(aggregateTask, { analyses });
return { analyses, summary: aggregated.summary };
# Create a new run
babysitter run:create \
--process-id methodologies/my-process \
--entry ./plugins/babysitter/skills/babysit/process/methodologies/my-process.js#process \
--inputs ./test-inputs.json \
--json
# Iterate the run
babysitter run:iterate .a5c/runs/<runId> --json
# List pending tasks
babysitter task:list .a5c/runs/<runId> --pending --json
# Post a task result
babysitter task:post .a5c/runs/<runId> <effectId> \
--status ok \
--value ./result.json
# Check run status
babysitter run:status .a5c/runs/<runId>
# View events
babysitter run:events .a5c/runs/<runId> --limit 20 --reverse
{
"feature": "User authentication with JWT",
"acceptanceCriteria": [
"Users can register with email and password",
"Users can login and receive a JWT token",
"Invalid credentials are rejected"
],
"testFramework": "jest",
"targetQuality": 85,
"maxIterations": 5
}
Ask the user:
| Question | Purpose |
|---|---|
| Domain/Category | Determines directory location |
| Process Name | kebab-case identifier |
| Goal | What should the process accomplish? |
| Inputs | What data does the process need? |
| Outputs | What artifacts/results does it produce? |
| Phases | What are the major steps? |
| Quality Gates | Where should humans review? |
| Iteration Strategy | Fixed phases vs. convergence loop? |
# Find similar processes
ls plugins/babysitter/skills/babysit/process/methodologies/
ls plugins/babysitter/skills/babysit/process/specializations/
# Read similar process for patterns
cat plugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/atdd-tdd.js | head -200
# Check methodology README structure
cat plugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/README.md
cat plugins/babysitter/skills/babysit/process/methodologies/backlog.md
For Methodologies:
methodologies/[name]/README.md (comprehensive documentation)methodologies/[name]/[name].js (process implementation)methodologies/[name]/examples/ (sample inputs)For Specializations:
specializations/domains/[domain]/[spec]/specializations/[category]/[process].jsChecklist:
@a5c-ai/babysitter-sdkexport async function process(inputs, ctx)// === PHASE N: NAME ===)ctx.log?.('info', message)ctx.task(taskDef, inputs)/**
* @process methodologies/my-methodology
* @description My development methodology with quality convergence
* @inputs { feature: string, targetQuality?: number }
* @outputs { success: boolean, quality: number, artifacts: array }
*/
export async function process(inputs, ctx) {
const { feature, targetQuality = 85 } = inputs;
// ... implementation
}
/**
* @process specializations/game-development/core-mechanics-prototyping
* @description Prototype and validate core gameplay mechanics through iteration
* @inputs { prototypeName: string, mechanicsToTest: array, engine?: string }
* @outputs { success: boolean, mechanicsValidated: array, playtestResults: object }
*/
export async function process(inputs, ctx) {
const { prototypeName, mechanicsToTest, engine = 'Unity' } = inputs;
// ... implementation
}
/**
* @process specializations/domains/science/bioinformatics/sequence-analysis
* @description Analyze genomic sequences using standard bioinformatics workflows
* @inputs { sequences: array, analysisType: string, referenceGenome?: string }
* @outputs { success: boolean, alignments: array, variants: array, report: object }
*/
export async function process(inputs, ctx) {
const { sequences, analysisType, referenceGenome = 'GRCh38' } = inputs;
// ... implementation
}
plugins/babysitter/skills/babysit/reference/sdk.mdplugins/babysitter/skills/babysit/process/methodologies/backlog.mdplugins/babysitter/skills/babysit/process/specializations/backlog.mdplugins/babysitter/skills/babysit/process/methodologies/atdd-tdd/plugins/babysitter/skills/babysit/process/methodologies/spec-driven-development.jsREADME.md for full framework documentationWeekly Installs
108
Repository
GitHub Stars
419
First Seen
Jan 26, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode91
codex91
gemini-cli90
github-copilot86
cursor74
amp71
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
43,100 周安装
| Parallel map |
| Maps items through task function |
ctx.now() | Deterministic time | Returns current Date (or provided time) |
ctx.log?.(level, msg, data?) | Logging | Optional logging helper |
ctx.runId | Run identifier | Current run's unique ID |
sleep | Time gates | Orchestrator scheduling |
orchestrator_task | Internal orchestrator work | Self-routed |