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 +7 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-sim.yml +19 -0
- data/.ace-defaults/sim/config.yml +9 -0
- data/.ace-defaults/sim/presets/validate-idea.yml +10 -0
- data/.ace-defaults/sim/presets/validate-task.yml +9 -0
- data/.ace-defaults/sim/steps/draft.md +41 -0
- data/.ace-defaults/sim/steps/plan.md +54 -0
- data/.ace-defaults/sim/steps/work.md +54 -0
- data/CHANGELOG.md +266 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +12 -0
- data/docs/demo/ace-sim-run-4x.gif +0 -0
- data/docs/demo/ace-sim-run.gif +0 -0
- data/docs/demo/ace-sim-run.tape.yml +24 -0
- data/docs/getting-started.md +95 -0
- data/docs/handbook.md +24 -0
- data/docs/usage.md +127 -0
- data/exe/ace-sim +15 -0
- data/handbook/skills/as-sim-run/SKILL.md +29 -0
- data/handbook/workflow-instructions/sim/run.wf.md +155 -0
- data/lib/ace/sim/cli/commands/run.rb +139 -0
- data/lib/ace/sim/cli.rb +48 -0
- data/lib/ace/sim/models/simulation_session.rb +85 -0
- data/lib/ace/sim/molecules/final_synthesis_executor.rb +231 -0
- data/lib/ace/sim/molecules/session_store.rb +66 -0
- data/lib/ace/sim/molecules/source_bundler.rb +70 -0
- data/lib/ace/sim/molecules/stage_executor.rb +106 -0
- data/lib/ace/sim/molecules/synthesis_builder.rb +41 -0
- data/lib/ace/sim/organisms/simulation_runner.rb +172 -0
- data/lib/ace/sim/version.rb +7 -0
- data/lib/ace/sim.rb +132 -0
- metadata +177 -0
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,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
|
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
|
+
|