ace-sim 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3a6297bbbb7cb55c1293488c60696397ecef7f68fda202182498abd9f54e1c45
4
+ data.tar.gz: 90b468fe9fdad0dcc1d9325cc87ff2b7570af95d07ae4b92bec151df821cd224
5
+ SHA512:
6
+ metadata.gz: cef9bb565960a1b72302e3a753f57903357fd0069e07c92c30a9b3f031fbfa8776df11bf22da22148e8997fe844bc99d98c7b683041cff7ca6afe930e5d75d41
7
+ data.tar.gz: c14b12a7577d119204483a67483f534d63d6cf3ece944d4e441612c111c6df5cada1e77f85227c3b0d33b20e66e45dc2136c8cfbdae4e64fa58347e3d6b55106
@@ -0,0 +1,19 @@
1
+ ---
2
+ # WFI Sources Protocol Configuration for ace-sim gem
3
+ # This enables workflow discovery from the installed ace-sim gem
4
+
5
+ name: ace-sim
6
+ type: gem
7
+ description: Simulation workflow instructions from ace-sim gem
8
+ priority: 10
9
+
10
+ # Configuration for workflow discovery within the gem
11
+ config:
12
+ # Relative path within the gem (default: handbook/workflow-instructions)
13
+ relative_path: handbook/workflow-instructions
14
+
15
+ # Pattern for finding workflow files (default: *.wf.md)
16
+ pattern: "*.wf.md"
17
+
18
+ # Enable discovery
19
+ enabled: true
@@ -0,0 +1,9 @@
1
+ sim:
2
+ cache_root: ".ace-local/sim"
3
+ default_preset: "validate-idea"
4
+ default_repeat: 1
5
+ default_steps:
6
+ - draft
7
+ - plan
8
+ - work
9
+ writeback: false
@@ -0,0 +1,10 @@
1
+ name: validate-idea
2
+ steps:
3
+ - draft
4
+ - plan
5
+ - work
6
+ provider:
7
+ - google:flash-preview
8
+ repeat: 1
9
+ synthesis_workflow: wfi://idea/review
10
+ synthesis_provider: claude:haiku
@@ -0,0 +1,9 @@
1
+ name: validate-task
2
+ steps:
3
+ - plan
4
+ - work
5
+ provider:
6
+ - google:flash-preview
7
+ repeat: 1
8
+ synthesis_workflow: wfi://task/review
9
+ synthesis_provider: claude:haiku
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: "ace-sim draft step bundle"
3
+ bundle:
4
+ embed_document_source: true
5
+ sections:
6
+ project_context:
7
+ preset: project
8
+ draft_workflow:
9
+ files:
10
+ - wfi://task/draft
11
+ review_workflow:
12
+ files:
13
+ - wfi://task/review
14
+ input:
15
+ files:
16
+ - ./input.md
17
+ ---
18
+
19
+ # Purpose
20
+
21
+ Prepare a high-quality draft task from `<input>` using the workflow context and then self-review it.
22
+
23
+ ## Instructions
24
+
25
+ 1. Read `<project_context>` for repository constraints and conventions.
26
+ 2. Read `<input>` as the source request.
27
+ 3. Use `<draft_workflow>` to draft the task content.
28
+ 4. Use `<review_workflow>` to review the drafted task quality.
29
+
30
+ ## Workflow
31
+
32
+ Use the embedded workflow sections directly:
33
+ - `<draft_workflow>`
34
+ - `<review_workflow>`
35
+
36
+ ## Report
37
+
38
+ Return markdown only with these tags:
39
+ 1. `<observations>...</observations>`
40
+ 2. `<task>...</task>`
41
+ 3. `<task-review>...</task-review>`
@@ -0,0 +1,54 @@
1
+ ---
2
+ description: "ace-sim plan step bundle"
3
+ bundle:
4
+ embed_document_source: true
5
+ sections:
6
+ project_context:
7
+ preset: project
8
+ plan_workflow:
9
+ files:
10
+ - wfi://task/plan
11
+ plan_critique:
12
+ files:
13
+ - wfi://task/review-plan
14
+ input:
15
+ files:
16
+ - ./input.md
17
+ ---
18
+
19
+ # Purpose
20
+
21
+ Create an implementation plan from the previous step output using repository context, then critically review it for completeness and executability.
22
+
23
+ ## Instructions
24
+
25
+ ### Phase 1: Build the Plan
26
+
27
+ Exhaust every detail. Do NOT shortcut — a vague plan produces vague execution.
28
+
29
+ 1. Read `<project_context>` first.
30
+ 2. Read `<input>` as the planning source.
31
+ 3. Follow `<plan_workflow>` to produce a decision-complete implementation plan.
32
+ 4. Be so specific that an agent could execute the plan without asking a single clarifying question.
33
+
34
+ ### Phase 2: Critique the Plan
35
+
36
+ Now you are the adversarial reviewer. Forget that you wrote this plan — tear it apart.
37
+
38
+ 1. Follow `<plan_critique>` to evaluate the plan you just produced.
39
+ 2. Score every dimension honestly. Do NOT give yourself a pass out of convenience.
40
+ 3. If the critique reveals gaps, fix them in the plan before reporting.
41
+
42
+ ## Workflow
43
+
44
+ Use the embedded workflow sections:
45
+ - `<plan_workflow>` — for Phase 1 (building the plan)
46
+ - `<plan_critique>` — for Phase 2 (critiquing the plan)
47
+
48
+ ## Report
49
+
50
+ Return markdown only with these tags:
51
+ 1. `<observations>...</observations>`
52
+ 2. `<implementation-plan>...</implementation-plan>`
53
+ 3. `<plan-critique>...</plan-critique>`
54
+ 4. `<open-questions>...</open-questions>`
@@ -0,0 +1,54 @@
1
+ ---
2
+ description: "ace-sim work step bundle"
3
+ bundle:
4
+ embed_document_source: true
5
+ sections:
6
+ project_context:
7
+ preset: project
8
+ work_workflow:
9
+ files:
10
+ - wfi://task/work
11
+ work_critique:
12
+ files:
13
+ - wfi://task/review-work
14
+ input:
15
+ files:
16
+ - ./input.md
17
+ ---
18
+
19
+ # Purpose
20
+
21
+ Execute the implementation plan from `<input>` and produce a concrete delivery report, then critically review it for completeness and credibility.
22
+
23
+ ## Instructions
24
+
25
+ ### Phase 1: Execute the Plan
26
+
27
+ Be so specific that an agent could produce exact file changes from your report. Every claim must reference real files, real code patterns, and real project conventions.
28
+
29
+ 1. Read `<project_context>` for constraints.
30
+ 2. Read `<input>` for the implementation plan.
31
+ 3. Follow `<work_workflow>` to execute and report outcomes.
32
+ 4. Do NOT shortcut — list every file changed, every test written, every decision made.
33
+
34
+ ### Phase 2: Critique the Execution
35
+
36
+ Now you are the adversarial reviewer. Compare the plan and the execution item-by-item.
37
+
38
+ 1. Follow `<work_critique>` to evaluate the execution report you just produced.
39
+ 2. Score every dimension honestly. Do NOT give yourself a pass out of convenience.
40
+ 3. If the critique reveals gaps, fix them in the report before delivering.
41
+
42
+ ## Workflow
43
+
44
+ Use the embedded workflow sections:
45
+ - `<work_workflow>` — for Phase 1 (executing the plan)
46
+ - `<work_critique>` — for Phase 2 (critiquing the execution)
47
+
48
+ ## Report
49
+
50
+ Return markdown only with these tags:
51
+ 1. `<observations>...</observations>`
52
+ 2. `<execution-report>...</execution-report>`
53
+ 3. `<work-critique>...</work-critique>`
54
+ 4. `<risks>...</risks>`
data/CHANGELOG.md ADDED
@@ -0,0 +1,266 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.13.0] - 2026-03-24
8
+
9
+ ### Changed
10
+ - Rewrote "How It Works" and docs to emphasize chained feedback: each step's output feeds the next, and synthesis gathers all stage feedback to propose improvements and produce revised source artifacts.
11
+ - Aligned README tagline and gemspec summary/description to unified framing.
12
+ - Added experimental status note to README.
13
+ - Removed demo GIF reference from README (dry-run hangs due to unguarded provider calls; tape has TODO).
14
+ - Updated demo tape with sandbox-free layout and TODO for dry-run fix.
15
+
16
+ ## [0.12.0] - 2026-03-23
17
+
18
+ ### Changed
19
+ - Refreshed `README.md` to align with the current package layout pattern, including top-level docs navigation, use-case framing, integration links, and updated feature wording.
20
+
21
+ ## [0.11.1] - 2026-03-22
22
+
23
+ ### Fixed
24
+ - Corrected handbook documentation links in `docs/handbook.md` so skill and workflow references resolve correctly.
25
+ - Updated usage guidance to document that `--dry-run` cannot be combined with `--writeback`, matching runtime validation behavior.
26
+
27
+ ### Changed
28
+ - Re-recorded `docs/demo/ace-sim-run.gif` from the package tape so the demo reflects `ace-sim` behavior instead of a placeholder asset.
29
+
30
+ ## [0.11.0] - 2026-03-22
31
+
32
+ ### Added
33
+ - Rebuilt package documentation as a landing-page experience with updated README, getting-started tutorial, usage reference, and handbook catalog.
34
+
35
+ ### Changed
36
+ - Added a generated VHS demo tape and screenshot for the documented getting-started workflow.
37
+ - Updated gem metadata text to reflect the new documentation-first positioning.
38
+
39
+ ### Fixed
40
+ - Corrected validate-task chain phase numbering for `plan` and `work` steps so file artifacts use absolute phase indices (`02-plan`, `03-work`) when draft is intentionally omitted.
41
+ - Require explicit `--synthesis-workflow` when `--synthesis-provider` is provided, preventing preset default fallback from masking invalid provider/workflow combinations.
42
+
43
+ ## [0.10.0] - 2026-03-20
44
+
45
+ ### Changed
46
+ - Expanded `TS-SIM-001-next-phase-smoke` E2E coverage with two new goals: `validate-task` preset contract validation and deterministic synthesis-provider guard failure validation.
47
+ - Strengthened existing verifier assertions for help-surface flags and explicit single-step override behavior.
48
+
49
+ ## [0.9.1] - 2026-03-18
50
+
51
+ ### Changed
52
+ - Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
53
+
54
+
55
+ ## [0.9.0] - 2026-03-18
56
+
57
+ ### Changed
58
+ - Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
59
+
60
+
61
+ ## [0.8.8] - 2026-03-17
62
+
63
+ ### Changed
64
+ - Raised `TS-SIM-001-next-phase-smoke` E2E timeout from default to 15 minutes (`900` seconds).
65
+
66
+ ## [0.8.7] - 2026-03-15
67
+
68
+ ### Fixed
69
+ - Made E2E handoff-check comparison step explicit so the runner produces non-empty verification artifacts
70
+
71
+ ## [0.8.6] - 2026-03-15
72
+
73
+ ### Changed
74
+ - Migrated CLI framework from dry-cli to ace-support-cli
75
+
76
+ ## [0.8.5] - 2026-03-13
77
+
78
+ ### Changed
79
+ - Updated the canonical simulation skill to explicitly run its bundled workflow in the current project and execute it end-to-end.
80
+
81
+ ### Fixed
82
+ - Restored the built-in `validate-idea` and `validate-task` synthesis preset defaults to `claude:haiku` so default end-to-end simulations use the stable shipped synthesis path again.
83
+
84
+ ## [0.8.4] - 2026-03-13
85
+
86
+ ### Changed
87
+ - Updated the `TS-SIM-001` default preset E2E scenario to verify the shipped preset contract and chained handoff behavior while accepting either successful synthesis or a cleanly recorded final-stage failure.
88
+
89
+ ## [0.8.2] - 2026-03-13
90
+
91
+ ### Changed
92
+ - Updated the full-chain synthesis E2E scenario to verify complete chain aggregation and recorded final-stage outcomes, including cleanly captured external synthesis failures.
93
+
94
+ ## [0.8.1] - 2026-03-12
95
+
96
+ ### Fixed
97
+ - Switched simulation bundle/stage/final synthesis subprocess execution to the shared core command executor so failed external commands do not leak Ruby thread-read exceptions into run output handling.
98
+
99
+ ### Technical
100
+ - Expanded simulation runner coverage to verify failed final synthesis still leaves inspection artifacts such as `synthesis.yml` and final input/source files.
101
+
102
+ ## [0.8.0] - 2026-03-10
103
+
104
+ ### Added
105
+ - Added the canonical handbook-owned simulation skill for scenario/provider comparison flows.
106
+
107
+
108
+ ## [0.7.2] - 2026-03-04
109
+
110
+ ### Changed
111
+ - Default simulation cache root now uses `.ace-local/sim`.
112
+
113
+
114
+ ## [0.7.1] - 2026-03-04
115
+
116
+ ### Fixed
117
+ - Usage docs artifact paths corrected to short-name convention (`.ace-local/sim/` not `.ace-local/ace-sim/`)
118
+
119
+ ## [0.7.0] - 2026-03-04
120
+
121
+ ### Changed
122
+ - Default session store directory migrated from `.cache/ace-sim` to `.ace-local/sim`
123
+
124
+ ## [0.6.0] - 2026-02-28
125
+
126
+ ### Changed
127
+ - **BREAKING**: `--source` now accepts multiple values via repeatable flag (not CSV parsing)
128
+ - `--source` values passed directly to `ace-bundle` without Ruby preprocessing
129
+ - `SourceResolver` deleted - ace-bundle handles glob expansion and file resolution
130
+ - `SimulationSession.source` is now an array instead of string
131
+
132
+ ### Removed
133
+ - CSV parsing for comma-separated sources (use multiple `--source` flags)
134
+ - Ruby glob expansion (ace-bundle handles this)
135
+ - `SourceResolver` molecule (171 lines removed)
136
+
137
+ ## [0.5.1] - 2026-02-28
138
+
139
+ ### Fixed
140
+ - Simplify nil guard in `FinalSynthesisExecutor#copy_source` to use `||` operator
141
+
142
+ ## [0.5.0] - 2026-02-28
143
+
144
+ ### Added
145
+ - Multi-file input support via `--source` flag (repeatable)
146
+ - `SourceBundler` molecule creates bundle YAML and invokes `ace-bundle`
147
+ - Writeback guard: error when `--writeback` used with multiple sources
148
+
149
+ ### Fixed
150
+ - Update preset provider assertions in command tests
151
+
152
+ ## [0.4.4] - 2026-02-28
153
+
154
+ ### Changed
155
+ - Update `sim/run` workflow: when source is a task with usage documentation (`ux/usage.md`), include both spec and usage files via comma-separated `--source` to provide behavioral acceptance context
156
+
157
+ ## [0.4.3] - 2026-02-28
158
+
159
+ ### Fixed
160
+ - Add missing "Apply Validated Changes" step (Step 4) to `sim/run` workflow so simulation refinements are written back to original source files, not left only in the simulation cache folder
161
+
162
+ ### Technical
163
+ - Update model providers in `validate-task` preset
164
+
165
+ ## [0.4.2] - 2026-02-28
166
+
167
+ ### Added
168
+ - Add `sim/run` workflow instruction (`handbook/workflow-instructions/sim/run.wf.md`) for codified simulation execution
169
+ - Add `ace-sim-run` Claude skill for `/ace-sim-run` invocation
170
+ - Add WFI sources registration for `wfi://sim/*` protocol discovery
171
+
172
+ ## [0.4.1] - 2026-02-28
173
+
174
+ ### Added
175
+ - Add built-in preset defaults so `validate-idea` and `validate-task` can run with only `--source`.
176
+ - Add default synthesis workflow/provider mappings in preset files:
177
+ - `validate-idea` -> `wfi://idea/review` + `claude:haiku`
178
+ - `validate-task` -> `wfi://task/review` + `claude:haiku`
179
+
180
+ ### Changed
181
+ - Update README and usage docs to show source-only preset invocations.
182
+ - Update run command tests to assert default preset contract values for provider and synthesis settings.
183
+
184
+ ## [0.4.0] - 2026-02-27
185
+
186
+ ### Added
187
+ - Add optional final synthesis stage with `--synthesis-workflow` and `--synthesis-provider` run flags.
188
+ - Add `final/suggestions.report.md` run artifact generation with deterministic bundle/prompt/report files.
189
+ - Add `FinalSynthesisExecutor` molecule and unit tests for success/failure paths.
190
+
191
+ ### Changed
192
+ - Extend simulation session/synthesis metadata with `synthesis_workflow`, `synthesis_provider`, and `final_stage`.
193
+ - Mark run as failed when final synthesis is enabled and fails.
194
+ - Update docs and CLI examples for final suggestions synthesis usage.
195
+
196
+ ## [0.3.3] - 2026-02-27
197
+
198
+ ### Changed
199
+ - Extract `normalize_list` helper to `Ace::Sim` module, replacing inline array normalization in CLI commands and session model
200
+ - Simplify `SourceResolver#resolve` to return minimal `{"path" => expanded}` hash
201
+ - Extract `chain_status` method from `SimulationRunner` to `SynthesisBuilder`
202
+ - Replace `value_from`/`present?`/`normalized_providers` helpers with `pick_value` and `normalize_list`
203
+ - Restore `dry_run?` predicate on `SimulationSession` and update all callers
204
+ - Remove `writeback?` predicate (use `writeback` attribute directly)
205
+ - Remove source-empty validation from `SimulationSession#validate!` (validated upstream)
206
+
207
+ ## [0.3.2] - 2026-02-27
208
+
209
+ ### Fixed
210
+ - Handle unhandled runtime exceptions in `SimulationRunner#run` by rescuing `StandardError` and returning structured failure result
211
+
212
+ ## [0.3.1] - 2026-02-27
213
+
214
+ ### Changed
215
+ - Add self-critic pattern to `plan.md` step: Phase 1 (Build) / Phase 2 (Critique) with `wfi://task/review-plan` embedding
216
+ - Add self-critic pattern to `work.md` step: Phase 1 (Execute) / Phase 2 (Critique) with `wfi://task/review-work` embedding
217
+ - Rename `<changes>` output tag to `<execution-report>` in work step for clarity
218
+
219
+ ## [0.3.0] - 2026-02-27
220
+
221
+ ### Added
222
+ - Enforce `--source` as a readable file path and copy source bytes directly to first-step `input.md`.
223
+ - Add strict, section-rich default step bundle templates for `draft`, `plan`, and `work` with explicit workflow/reporting structure.
224
+
225
+ ### Changed
226
+ - Rewrite step runtime to markdown-first artifacts: `input.md`, `user.bundle.md`, `user.prompt.md`, `output.md`.
227
+ - Update chain execution to pass `output.md` directly into the next step as `input.md`.
228
+ - Update docs, help examples, and E2E scenario content to the markdown chain contract.
229
+
230
+ ## [0.2.0] - 2026-02-27
231
+
232
+ ### Changed
233
+ - Rebuilt runtime as minimal file-chained simulation: each step reads `input.yml`, writes `output.yml`, and output feeds next step.
234
+ - `ace-sim run` is now preset-driven with canonical `--preset` flag (no scenario flow).
235
+ - Added strict precedence model: CLI explicit flags override preset values, which override global defaults.
236
+ - Replaced step contract model with bundle-based step configs (`.ace/sim/steps/*.md`, fallback `.ace-defaults/sim/steps/*.md`).
237
+ - Replaced scenario defaults with preset defaults (`.ace-defaults/sim/presets/validate-idea.yml`).
238
+ - Provider execution now runs independent chains for each provider x repeat with failure isolation.
239
+
240
+ ### Removed
241
+ - Scenario-specific machinery and schema-heavy step validation requirements.
242
+ - Final `result.yml` artifact path in favor of chain and synthesis artifacts.
243
+ - Default scenario file `.ace-defaults/sim/scenarios/next-phase.yml`.
244
+
245
+ ## [0.1.3] - 2026-02-27
246
+
247
+ ### Fixed
248
+ - Disable YAML alias parsing for untrusted LLM output (security hardening)
249
+ - Align config loading with ADR-022 pattern using Config::Models::Config.wrap
250
+ - Remove redundant `--no-writeback` CLI flag; writeback defaults to false
251
+ - Align dry-cli version constraint to `~> 1.0` matching monorepo convention
252
+
253
+ ## [0.1.2] - 2026-02-27
254
+
255
+ ### Fixed
256
+ - Validate `--scenario` CLI argument against configured scenarios; reject unknown scenarios with clear error
257
+ - Mark stage run as failed when ace-llm succeeds but output file is not created
258
+ - Initialize output_path before rescue block to prevent nil in error reports
259
+ - Remove redundant attr_reader shadowed by lazy initializer method
260
+
261
+ ## [0.1.1] - 2026-02-27
262
+
263
+ ### Added
264
+ - Initial `ace-sim` package scaffold.
265
+ - `ace-sim run` CLI for next-phase simulation execution.
266
+ - Session/stage/synthesis artifact generation under `.cache/ace-sim/simulations/`.
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Michal Czyz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,40 @@
1
+ <div align="center">
2
+ <h1> ACE - Sim </h1>
3
+
4
+ Multi-provider LLM simulation chains for validating ideas and reviewing tasks before implementation.
5
+
6
+ <img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
7
+ <br><br>
8
+
9
+ <a href="https://rubygems.org/gems/ace-sim"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-sim.svg" /></a>
10
+ <a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
11
+ <a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
12
+
13
+ </div>
14
+
15
+ > Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
16
+
17
+ > **Experimental** — its already proof its worth, but need some more work.
18
+
19
+ [Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
20
+
21
+ `ace-sim` executes preset-driven simulation chains (sequential step runs per provider) across one or more providers via [ace-llm](../ace-llm), then optionally synthesizes suggestions and revised source artifacts for follow-up work. Use `/as-sim-run` to launch simulations from inside a coding agent.
22
+
23
+ ## How It Works
24
+
25
+ 1. Select a simulation preset (`validate-idea` or `validate-task`) and provide a source file, with context assembled by [ace-bundle](../ace-bundle).
26
+ 2. The simulation engine runs each step (draft, plan, work) sequentially — each step's output feeds as input into the next, building on prior reasoning through [ace-llm](../ace-llm).
27
+ 3. After all steps complete, a final synthesis stage gathers feedback from every stage to propose improvements, surface questions, and produce a revised source artifact — feeding better specs back into [ace-task](../ace-taskflow) or sharper ideas into [ace-idea](../ace-idea).
28
+
29
+ ## Use Cases
30
+
31
+ **Validate ideas before committing to implementation** - run `validate-idea` to compare model reasoning across providers and stress-test assumptions from a single source file.
32
+
33
+ **Review task specs before coding starts** - run `validate-task` to inspect plan/work outputs across providers and iteration counts, keeping [ace-task](../ace-task) specs sharp before delivery begins.
34
+
35
+ **Compare provider behavior under the same workflow** - use repeated `--provider` and `--repeat` options to evaluate consistency and convergence in [ace-llm](../ace-llm) simulation outputs.
36
+
37
+ **Synthesize recommendations from simulation runs** - enable `--synthesis-workflow` and `--synthesis-provider` to produce actionable suggestions, then feed results into [ace-review](../ace-review) for follow-up review.
38
+
39
+ ---
40
+ [Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "test" << "lib"
8
+ t.test_files = FileList["test/**/*_test.rb"]
9
+ end
10
+
11
+ task spec: :test
12
+ task default: :test
Binary file
Binary file
@@ -0,0 +1,24 @@
1
+ ---
2
+ # TODO: --dry-run does not skip ace-llm provider calls (flag is metadata-only),
3
+ # so the run scene hangs. Fix ace-sim dry-run to skip stage execution, then re-enable.
4
+ description: Showcase ace-sim CLI help and dry-run
5
+ tags:
6
+ - ace-sim
7
+ - docs
8
+ - getting-started
9
+ settings:
10
+ font_size: 12
11
+ width: 960
12
+ height: 540
13
+ format: gif
14
+ env:
15
+ PROJECT_ROOT_PATH: /home/mc/ace-t.5nx
16
+ scenes:
17
+ - name: Switch to project root for gem resolution
18
+ commands:
19
+ - type: cd $PROJECT_ROOT_PATH && clear
20
+ sleep: 1s
21
+ - name: Show help
22
+ commands:
23
+ - type: ace-sim run --help
24
+ sleep: 4s
@@ -0,0 +1,95 @@
1
+ ---
2
+ doc-type: user
3
+ title: ace-sim Getting Started
4
+ purpose: Tutorial for first-run ace-sim workflows
5
+ ace-docs:
6
+ last-updated: 2026-03-22
7
+ last-checked: 2026-03-22
8
+ ---
9
+
10
+ # Getting Started with ace-sim
11
+
12
+ `ace-sim` gives you a controlled way to validate ideas and tasks with multiple LLMs before you make changes.
13
+
14
+ ## 1. Prerequisites
15
+
16
+ - Ruby 3.2+
17
+ - `ace-sim` installed
18
+ - `vhs` installed when you want to run the demonstration recording
19
+ - Access to at least one LLM provider configured in your environment
20
+
21
+ ## 2. Prepare your source
22
+
23
+ `ace-sim` reads one or more markdown sources. A source can be:
24
+
25
+ - A draft issue file
26
+ - A task specification
27
+ - A short prompt file for idea checks
28
+
29
+ ## 3. First dry-run simulation
30
+
31
+ Use a dry run to inspect the plan without executing providers:
32
+
33
+ ```bash
34
+ ace-sim run --preset validate-idea --source idea.md --dry-run
35
+ ```
36
+
37
+ Expected behavior:
38
+
39
+ - A run is prepared with a generated run directory under `.ace-local/sim/simulations/<run-id>`
40
+ - No final artifacts are written by providers because dry-run disables mutations
41
+ - You can still inspect the run metadata output in the command result
42
+
43
+ ## 4. Understand the output
44
+
45
+ Each run produces a directory under `.ace-local/sim/simulations/<run-id>/`:
46
+
47
+ - `input.md` and `input.bundle.md` — the bundled source used as initial input
48
+ - `chains/<provider>-<iteration>/` — step-by-step outputs where each step's result feeds into the next (draft -> plan -> work)
49
+ - `final/` — synthesis results that gather feedback from all stages, propose improvements, and produce a revised source artifact
50
+
51
+ The chain is sequential: each step builds on the previous step's output, so the final work step has the benefit of the draft and plan reasoning before it. The synthesis stage then reviews everything to surface questions and actionable suggestions.
52
+
53
+ ## 5. Run for real
54
+
55
+ Remove `--dry-run` to execute real simulation providers:
56
+
57
+ ```bash
58
+ ace-sim run --preset validate-idea --source idea.md
59
+ ```
60
+
61
+ ## 6. Validate a task
62
+
63
+ Use the task preset for task-oriented review:
64
+
65
+ ```bash
66
+ ace-sim run --preset validate-task --source path/to/task.s.md
67
+ ```
68
+
69
+ `validate-task` defaults to a shorter `plan -> work` flow with task-oriented synthesis.
70
+
71
+ ## 7. Override providers
72
+
73
+ You can compare outputs by provider:
74
+
75
+ ```bash
76
+ ace-sim run --preset validate-task --source task.md --provider codex:mini --provider google:gflash
77
+ ```
78
+
79
+ ## 8. Common commands
80
+
81
+ | Goal | Command |
82
+ |---|---|
83
+ | Run idea validation (dry) | `ace-sim run --preset validate-idea --source idea.md --dry-run` |
84
+ | Run task validation | `ace-sim run --preset validate-task --source task.md` |
85
+ | Use a different provider mix | `ace-sim run --preset validate-task --source task.md --provider codex:mini --provider google:gflash` |
86
+ | Repeat each provider chain | `ace-sim run --preset validate-task --source task.md --repeat 2` |
87
+ | See full command reference | [`docs/usage.md`](usage.md) |
88
+
89
+ ## 9. What to try next
90
+
91
+ - Add a custom step override (`--steps`) to focus on only `plan` or only `work`
92
+ - Pair with `--repeat` for stress-testing convergence
93
+ - Use `--synthesis-workflow` for custom review logic
94
+ - Explore all switches in [`docs/usage.md`](usage.md)
95
+