Skip to content

docs(retros): #617 godo removal post-merge retro#655

Merged
intel352 merged 1 commit into
mainfrom
docs/issue-617-retro
May 13, 2026
Merged

docs(retros): #617 godo removal post-merge retro#655
intel352 merged 1 commit into
mainfrom
docs/issue-617-retro

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Post-merge retrospective for PR #654 (issue #617 godo removal).

11 adversarial cycles (3 design + 8 plan) PASS → scope-locked → 5 tasks shipped clean → 2 Copilot rounds → merged at c55a56e.

Two gate misses recorded for adversarial-design-review --phase=plan:

  1. Step config-shape symmetry not audited (Copilot caught: step.do_* → step.iac_* auto-rewrite produced invalid configs)
  2. Regression-test coverage breadth not verified (Copilot caught: godo_absent_test.go used non-recursive Glob)

Recorded as patterns to watch for in next 1-2 retros before proposing plugin-level checklist additions.

🤖 Generated with Claude Code

11 adversarial cycles caught most issues pre-merge. Copilot caught 2 real
correctness gaps (step config-shape symmetry; regression-test coverage
breadth) — recorded as patterns to watch for in next retros before
proposing plugin-level checklist additions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 10:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a post-merge retrospective document for issue #617 / PR #654 (“remove godo from workflow core”), capturing what the adversarial design/plan cycles found, what Copilot caught post-PR, and the resulting patterns to watch in future retros.

Changes:

  • Introduces a new retro doc summarizing design- and plan-phase adversarial review findings and outcomes.
  • Records two “gate misses” (step config-shape symmetry audit + regression-test traversal breadth) and proposed checklist improvements.
  • Documents which automation “skill gates” fired and what worked/didn’t during execution.

Comment on lines +14 to +18
| Phase | Finding | Severity | Outcome |
|---|---|---|---|
| design c1 | C-1 step.do_* migration error gap | Critical | **Prescient** — without it, step types would have hit generic schema error post-merge |
| design c1 | I-1 step.do_logs/scale capability gap | Important | **Prescient** — workaround documented; 2 follow-up plugin issues filed pre-merge |
| design c1 | I-2 migration error misleading for plugin-loaded users | Important | **Prescient** — branching now correct; field-tested in tests |
@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:263: parsing iteration count: invalid syntax
baseline-bench.txt:382566: parsing iteration count: invalid syntax
baseline-bench.txt:833263: parsing iteration count: invalid syntax
baseline-bench.txt:1218878: parsing iteration count: invalid syntax
baseline-bench.txt:1641567: parsing iteration count: invalid syntax
baseline-bench.txt:2072065: parsing iteration count: invalid syntax
benchmark-results.txt:263: parsing iteration count: invalid syntax
benchmark-results.txt:349734: parsing iteration count: invalid syntax
benchmark-results.txt:668905: parsing iteration count: invalid syntax
benchmark-results.txt:992636: parsing iteration count: invalid syntax
benchmark-results.txt:1318968: parsing iteration count: invalid syntax
benchmark-results.txt:1638739: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 9V74 80-Core Processor                
                            │ baseline-bench.txt │         benchmark-results.txt         │
                            │       sec/op       │     sec/op      vs base               │
InterpreterCreation-4              2.795m ± 150%    4.255m ± 132%        ~ (p=0.240 n=6)
ComponentLoad-4                    2.742m ±  10%    3.540m ±   2%  +29.09% (p=0.002 n=6)
ComponentExecute-4                 1.424µ ±   1%    1.848µ ±   1%  +29.74% (p=0.002 n=6)
PoolContention/workers-1-4         796.3n ±   2%   1018.5n ±   1%  +27.90% (p=0.002 n=6)
PoolContention/workers-2-4         783.9n ±   1%   1018.5n ±   2%  +29.94% (p=0.002 n=6)
PoolContention/workers-4-4         781.5n ±   1%   1019.5n ±   2%  +30.45% (p=0.002 n=6)
PoolContention/workers-8-4         781.2n ±   2%   1031.0n ±   2%  +31.98% (p=0.002 n=6)
PoolContention/workers-16-4        782.2n ±   1%   1036.5n ±   4%  +32.50% (p=0.002 n=6)
ComponentLifecycle-4               2.729m ±   1%    3.518m ±   1%  +28.93% (p=0.002 n=6)
SourceValidation-4                 1.624µ ±   2%    2.104µ ±   1%  +29.63% (p=0.002 n=6)
RegistryConcurrent-4               583.2n ±   3%    752.3n ±   2%  +29.00% (p=0.002 n=6)
LoaderLoadFromString-4             2.764m ±   1%    3.568m ±   2%  +29.09% (p=0.002 n=6)
geomean                            13.00µ           17.10µ         +31.57%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.675 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%  +0.00% (p=0.041 n=6)
ComponentExecute-4                  1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4         1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                2.183Mi ± 0%   2.183Mi ± 0%       ~ (p=0.725 n=6)
SourceValidation-4                  1.984Ki ± 0%   1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                1.133Ki ± 0%   1.133Ki ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4              2.182Mi ± 0%   2.182Mi ± 0%  -0.00% (p=0.050 n=6)
geomean                             15.25Ki        15.25Ki       +0.00%
¹ all samples are equal

                            │ baseline-bench.txt │        benchmark-results.txt        │
                            │     allocs/op      │  allocs/op   vs base                │
InterpreterCreation-4                15.68k ± 0%   15.68k ± 0%       ~ (p=1.000 n=6) ¹
ComponentLoad-4                      18.02k ± 0%   18.02k ± 0%       ~ (p=1.000 n=6)
ComponentExecute-4                    25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4           25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                 18.07k ± 0%   18.07k ± 0%       ~ (p=1.000 n=6) ¹
SourceValidation-4                    32.00 ± 0%    32.00 ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                  2.000 ± 0%    2.000 ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4               18.06k ± 0%   18.06k ± 0%       ~ (p=0.455 n=6)
geomean                               183.3         183.3       +0.00%
¹ all samples are equal

pkg: github.com/GoCodeAlone/workflow/middleware
                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │       sec/op       │   sec/op     vs base               │
CircuitBreakerDetection-4                  229.6n ± 4%   297.2n ± 1%  +29.46% (p=0.002 n=6)
CircuitBreakerExecution_Success-4          17.58n ± 0%   22.68n ± 2%  +28.98% (p=0.002 n=6)
CircuitBreakerExecution_Failure-4          55.17n ± 0%   71.06n ± 0%  +28.80% (p=0.002 n=6)
geomean                                    60.61n        78.24n       +29.08%

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │        B/op        │    B/op     vs base                │
CircuitBreakerDetection-4                 144.0 ± 0%     144.0 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │     allocs/op      │ allocs/op   vs base                │
CircuitBreakerDetection-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
                                 │ baseline-bench.txt │        benchmark-results.txt        │
                                 │       sec/op       │    sec/op     vs base               │
JQTransform_Simple-4                     625.1n ± 31%   840.7n ± 28%  +34.47% (p=0.004 n=6)
JQTransform_ObjectConstruction-4         1.059µ ±  1%   1.426µ ±  3%  +34.67% (p=0.002 n=6)
JQTransform_ArraySelect-4                2.590µ ±  1%   3.483µ ±  3%  +34.46% (p=0.002 n=6)
JQTransform_Complex-4                    31.79µ ±  1%   40.59µ ±  1%  +27.68% (p=0.002 n=6)
JQTransform_Throughput-4                 1.292µ ±  1%   1.748µ ±  3%  +35.29% (p=0.002 n=6)
SSEPublishDelivery-4                     48.89n ±  1%   63.38n ±  2%  +29.64% (p=0.002 n=6)
geomean                                  1.229µ         1.630µ        +32.67%

                                 │ baseline-bench.txt │        benchmark-results.txt         │
                                 │        B/op        │     B/op      vs base                │
JQTransform_Simple-4                   1.273Ki ± 0%     1.273Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4       1.773Ki ± 0%     1.773Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4              2.625Ki ± 0%     2.625Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                  16.22Ki ± 0%     16.22Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4               1.984Ki ± 0%     1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                 +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │     allocs/op      │ allocs/op   vs base                │
JQTransform_Simple-4                     10.00 ± 0%     10.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4         15.00 ± 0%     15.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4                30.00 ± 0%     30.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                    324.0 ± 0%     324.0 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4                 17.00 ± 0%     17.00 ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
                                    │ baseline-bench.txt │        benchmark-results.txt         │
                                    │       sec/op       │    sec/op      vs base               │
SchemaValidation_Simple-4                   848.6n ± 14%   1079.5n ± 17%  +27.22% (p=0.002 n=6)
SchemaValidation_AllFields-4                1.261µ ±  2%    1.633µ ±  1%  +29.51% (p=0.002 n=6)
SchemaValidation_FormatValidation-4         1.227µ ±  3%    1.593µ ±  4%  +29.84% (p=0.002 n=6)
SchemaValidation_ManySchemas-4              1.227µ ±  1%    1.590µ ±  1%  +29.60% (p=0.002 n=6)
geomean                                     1.126µ          1.453µ        +29.04%

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │        B/op        │    B/op     vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │     allocs/op      │ allocs/op   vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │       sec/op       │    sec/op      vs base               │
EventStoreAppend_InMemory-4               741.6n ±  14%   1105.0n ± 16%  +49.00% (p=0.002 n=6)
EventStoreAppend_SQLite-4                 2.056m ± 111%    1.080m ±  6%  -47.45% (p=0.002 n=6)
GetTimeline_InMemory/events-10-4          9.070µ ±  14%   12.633µ ±  1%  +39.28% (p=0.002 n=6)
GetTimeline_InMemory/events-50-4          43.79µ ±   0%    71.81µ ± 22%  +63.98% (p=0.002 n=6)
GetTimeline_InMemory/events-100-4         87.99µ ±   1%   110.24µ ±  2%  +25.29% (p=0.002 n=6)
GetTimeline_InMemory/events-500-4         447.9µ ±   1%    562.5µ ±  1%  +25.59% (p=0.002 n=6)
GetTimeline_InMemory/events-1000-4        902.9µ ±   1%   1140.7µ ±  1%  +26.34% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4            65.26µ ±   1%    84.39µ ±  2%  +29.30% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4            170.4µ ±   2%    220.9µ ±  1%  +29.62% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4           298.6µ ±   1%    392.3µ ±  1%  +31.41% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4           1.295m ±   1%    1.672m ±  1%  +29.09% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4          2.518m ±   2%    3.246m ±  2%  +28.91% (p=0.002 n=6)
geomean                                   157.5µ           195.1µ        +23.85%

                                   │ baseline-bench.txt │         benchmark-results.txt         │
                                   │        B/op        │     B/op       vs base                │
EventStoreAppend_InMemory-4                 848.0 ± 12%     780.5 ± 11%       ~ (p=0.509 n=6)
EventStoreAppend_SQLite-4                 1.980Ki ±  3%   1.985Ki ±  1%       ~ (p=0.232 n=6)
GetTimeline_InMemory/events-10-4          7.953Ki ±  0%   7.953Ki ±  0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4          46.62Ki ±  0%   46.62Ki ±  0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4         94.48Ki ±  0%   94.48Ki ±  0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4         472.8Ki ±  0%   472.8Ki ±  0%       ~ (p=0.455 n=6)
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%   944.3Ki ±  0%       ~ (p=0.455 n=6)
GetTimeline_SQLite/events-10-4            16.74Ki ±  0%   16.74Ki ±  0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4            87.14Ki ±  0%   87.14Ki ±  0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4           175.4Ki ±  0%   175.4Ki ±  0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-500-4           846.1Ki ±  0%   846.1Ki ±  0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%   1.639Mi ±  0%       ~ (p=0.864 n=6)
geomean                                   67.73Ki         67.28Ki        -0.67%
¹ all samples are equal

                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │     allocs/op      │  allocs/op   vs base                │
EventStoreAppend_InMemory-4                  7.000 ± 0%    7.000 ± 0%       ~ (p=1.000 n=6) ¹
EventStoreAppend_SQLite-4                    53.00 ± 0%    53.00 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-10-4             125.0 ± 0%    125.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4             653.0 ± 0%    653.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4           1.306k ± 0%   1.306k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4           6.514k ± 0%   6.514k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-1000-4          13.02k ± 0%   13.02k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-10-4               382.0 ± 0%    382.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.852k ± 0%   1.852k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             3.681k ± 0%   3.681k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             18.54k ± 0%   18.54k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            37.29k ± 0%   37.29k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.162k        1.162k       +0.00%
¹ all samples are equal

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

@intel352 intel352 merged commit d77d7d0 into main May 13, 2026
24 checks passed
@intel352 intel352 deleted the docs/issue-617-retro branch May 13, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants