ソース情報
- リポジトリ
- joshka0/foxctl
- ソースの最終更新活動
- 2026年4月14日 12:42
- 検出された SKILL.md の言語
- 英語
- スター
- 3
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/joshka0/foxctl --skill foxctl-workflowコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SOC 職業分類に基づく
SKILL.md を表示中
| name | foxctl-workflow |
| description | Execute and manage workflow pipelines that chain multiple foxctl skills |
Chain multiple foxctl skills into automated pipelines with dependencies, parallel execution, loops, and conditionals.
# Execute a workflow
foxctl workflow run <name-or-path> --input '{"key": "value"}'
# List available workflows
foxctl workflow list
# Validate without executing
foxctl workflow validate <name>
# Show workflow details
foxctl workflow show <name>
Workflows are YAML files in workflows/ or ~/.foxctl/workflows/:
apiVersion: foxctl/v1
kind: Workflow
metadata:
name: my-workflow
description: "What this workflow does"
inputs:
- name: path
type: string
required: true
- name: pattern
default: "*.go"
steps:
- id: find
skill: fs/find
input:
path: "{{.inputs.path}}"
pattern: "{{.inputs.pattern}}"
- id: analyze
skill: code/symbols
loop:
over: "{{.find.data.files}}"
as: file
parallel: 4
input:
path: "{{.file}}"
- id: report
skill: workflow/aggregate
depends_on: [analyze]
input:
data: "{{.analyze.data}}"
outputs:
- name: file_count
value: "{{len .find.data.files}}"
Access inputs and step results:
input:
path: "{{.inputs.path}}" # Workflow input
files: "{{.find.data.files}}" # Previous step's data
status: "{{.find.status}}" # Step status
Iterate over arrays with optional parallelism:
- id: process
skill: code/symbols
loop:
over: "{{.find.data.files}}"
as: file
parallel: 4 # Max concurrent executions
input:
path: "{{.file}}"
Skip steps based on conditions:
- id: deep_analysis
skill: lsp/gopls
if: "{{.inputs.deep}}"
input:
operation: call_hierarchy
Explicit or inferred from template references:
- id: report
depends_on: [step1, step2] # Explicit
# Or automatic via {{.step1.data}}
- id: risky_step
skill: external/api
on_error: continue # fail (default), continue, retry
timeout: "30s"
max_retries: 3
retry_delay: "1s"
len, first, last, index, slicekeys, values, filter, map, flatMapflatten, unique, sort, reverseappend, concatupper, lower, trim, replace, split, joincontains, hasPrefix, hasSuffixbase, dir, ext, clean, joinPathget (nested path access), pluck, pick, omit, merge, hasKeydefault, coalesce, ternary, emptyeq, ne, lt, le, gt, geand, or, notadd, sub, mul, div, mod, max, mintoJSON, fromJSON, toString, toInt, toBool| Workflow | Description |
|---|---|
pre-impl-analysis | Find files, extract symbols, check complexity |
code-review | Complexity analysis + TODO scanning |
lsp-analysis | Definition, references, call hierarchy |
batch-process | Parallel file processing with retries |
foxctl workflow run pre-impl-analysis --input '{"path": "./internal", "pattern": "*.go"}'
foxctl workflow run code-review --input '{"path": ".", "lang": "go"}' -v
foxctl workflow run my-workflow --input '{}' --dry-run
import "github.com/joshka0/foxctl/internal/runtime/orchestration/workflow"
// Using the engine
engine := workflow.NewEngine()
result, err := engine.Run(ctx, "my-workflow", map[string]any{
"path": "./src",
})
// Using the builder
wf, _ := workflow.NewBuilder("my-workflow").
Input("path", "string", workflow.Required()).
Step("find", "fs/find", map[string]any{
"path": "{{.inputs.path}}",
}).
Step("analyze", "code/symbols", map[string]any{
"path": "{{.find.data.files}}",
}).Loop("{{.find.data.files}}", "file").Parallel(4).
Build()