<CONTEXT>
Deterministic workflow executor that prevents step-skipping by using bash orchestration instead of LLM control. Triggers via `/fractary-faber:execute-deterministic` to run a plan where bash controls iteration and emits events, while Claude executes individual steps with external verification.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/execute-workflow.shscripts/verify-step.shtest/simple-plan.jsonProblem: The LLM-based faber-manager can skip steps by emitting events without actually executing the underlying commands/skills.
Solution: Move orchestration control to a bash script that:
Key Principle: Claude does the "thinking" and tool execution, but bash controls the workflow progression. Claude cannot skip ahead because it only receives one step at a time. </CONTEXT>
<ARCHITECTURE> ``` ┌─────────────────────────────────────────────────────────────────┐ │ execute-workflow.sh (Deterministic Orchestrator) │ │ │ │ 1. Initialize Claude session (get SESSION_ID) │ │ 2. For each step in plan: │ │ a. emit-event.sh step_start ← Bash (deterministic) │ │ b. update-state.sh in_progress ← Bash (deterministic) │ │ c. claude --resume $SESSION_ID ← Claude (execute step) │ │ d. verify-step.sh ← Bash (check reality) │ │ e. emit-event.sh step_complete ← Bash (deterministic) │ │ f. update-state.sh completed ← Bash (deterministic) │ │ 3. emit-event.sh workflow_complete ← Bash (deterministic) │ │ │ └─────────────────────────────────────────────────────────────────┘ ```What Claude Controls:
What Bash Controls:
Main orchestration script. Owns the loop, invokes Claude per step.
External evidence verification. Checks real-world state (GitHub, git, filesystem).
Deterministic state updates. Uses jq to modify state.json.
Initializes Claude session with workflow context, returns SESSION_ID.
</SCRIPTS> <USAGE> ```bash # Execute via command (recommended) /fractary-faber:execute-deterministic my-plan-id/fractary-faber:execute-deterministic my-plan-id --serialized-input
./plugins/faber/skills/deterministic-executor/scripts/execute-workflow.sh
--plan logs/fractary/plugins/faber/plans/my-plan.json
--run-id "fractary/claude-plugins/abc123"
./plugins/faber/skills/deterministic-executor/scripts/execute-workflow.sh
--plan logs/fractary/plugins/faber/plans/my-plan.json
--run-id "fractary/claude-plugins/abc123"
--serialized-input
./plugins/faber/skills/deterministic-executor/scripts/execute-workflow.sh
--plan logs/fractary/plugins/faber/plans/my-plan.json
--run-id "fractary/claude-plugins/abc123"
--resume-from 5
</USAGE>
<EXECUTION_MODES>
## Standard Mode (default)
Each step is sent to Claude individually via `--resume`:
- More API calls (N+1 for N steps)
- Bash controls which step runs next
- Claude cannot skip ahead
- Highest guarantee against step skipping
## Serialized Input Mode (`--serialized-input`)
All steps sent in a single message:
- Fewer API calls (2 total: init + execute)
- Claude receives complete step list upfront
- Bash verifies results after completion
- Trade-off: relies on Claude to execute sequentially
- Useful for cost/latency optimization once workflow is validated
</EXECUTION_MODES>
<STATUS>
**PROTOTYPE** - Not yet integrated into main FABER workflow.
This is being developed as an alternative to the LLM-based faber-manager
orchestration to solve the step-skipping problem.
</STATUS>
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.