Skip to content

docs(plans): supersede 2026-04-26 strict-contracts design for IaC scope#596

Merged
intel352 merged 5 commits into
mainfrom
docs/supersede-2026-04-26-design
May 10, 2026
Merged

docs(plans): supersede 2026-04-26 strict-contracts design for IaC scope#596
intel352 merged 5 commits into
mainfrom
docs/supersede-2026-04-26-design

Conversation

@intel352

@intel352 intel352 commented May 10, 2026

Copy link
Copy Markdown
Contributor

Summary

PR 1 / Task 1: doc housekeeping for the strict-contracts force-cutover. Marks the prior 2026-04-26 strict-grpc-plugin-contracts design+plan as superseded for the IaC scope, lands the new 2026-05-10-strict-contracts-force-cutover design+plan + 8 adversarial review files + scope-lock sidecar, adds SUPERSEDED-NOTICE pointer, files ADR-0027 documenting frontmatter-replace technique + scope expansion.

Changes (15 files)

  • 2 frontmatter rewrites (2026-04-26 design + plan): superseded_partial → superseded + custom supersession_scope field
  • 1 SUPERSEDED-NOTICE.md created with frontmatter
  • 2 cutover artifacts committed (design + plan) + scope-lock sidecar
  • 8 adversarial-review files committed (status complete → approved)
  • 1 cutover-design.md frontmatter normalized (status draft→approved, area, supersedes list)
  • 1 ADR (decisions/0027-task-1-yaml-replace-vs-append.md)

Verification

  • wfctl audit plans returns 0 ERROR + 2 WARN (both pre-existing, not touched by this PR)
  • yaml.v3 frontmatter parse clean across all 5 changed plan files
  • ADR-0027 documents the replace-vs-append technique and bonus normalizations

Plan-correction notes

See ADR-0027 for the replace-vs-append technique deviation from §Task 1 step 1's literal "add" instruction (which would create yaml.v3 duplicate-key errors). Manifest-section SHA unchanged; no scope-lock unlock required.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 10, 2026 05:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates strict-contracts documentation plans to record a partial supersession for the IaC-related migration items, while keeping the Module/Step/Trigger tracker entries active.

Changes:

  • Add a standalone supersession notice document for the 2026-04-26 strict-contracts plan (IaC scope).
  • Update the 2026-04-26 strict-contracts design frontmatter to indicate partial supersession and point at the newer force-cutover design.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
docs/plans/2026-04-26-strict-grpc-plugin-contracts.SUPERSEDED-NOTICE.md Adds a separate supersession notice pointing readers to the force-cutover plan/design.
docs/plans/2026-04-26-strict-grpc-plugin-contracts-design.md Updates plan metadata to mark IaC scope as superseded (partial).

Comment on lines +2 to +5
status: in_progress
superseded_by: docs/plans/2026-05-10-strict-contracts-force-cutover-design.md
supersession_scope: IaCProvider, ResourceDriver (Module/Step/Trigger work remains live)
status: superseded_partial
Comment on lines +6 to +9
The IaCProvider + ResourceDriver migration tracker entries in `2026-04-26-strict-grpc-plugin-contracts.md` are SUPERSEDED by the 2026-05-10 force-cutover plan:
- Design: `docs/plans/2026-05-10-strict-contracts-force-cutover-design.md`
- Plan: `docs/plans/2026-05-10-strict-contracts-force-cutover.md`

@github-actions

github-actions Bot commented May 10, 2026

Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:262: parsing iteration count: invalid syntax
baseline-bench.txt:350909: parsing iteration count: invalid syntax
baseline-bench.txt:656928: parsing iteration count: invalid syntax
baseline-bench.txt:997759: parsing iteration count: invalid syntax
baseline-bench.txt:1317026: parsing iteration count: invalid syntax
baseline-bench.txt:1570623: parsing iteration count: invalid syntax
benchmark-results.txt:262: parsing iteration count: invalid syntax
benchmark-results.txt:357506: parsing iteration count: invalid syntax
benchmark-results.txt:692013: parsing iteration count: invalid syntax
benchmark-results.txt:994825: parsing iteration count: invalid syntax
benchmark-results.txt:1296578: parsing iteration count: invalid syntax
benchmark-results.txt:1586991: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │       sec/op       │    sec/op      vs base               │
InterpreterCreation-4              3.121m ± 224%   3.758m ± 179%        ~ (p=0.132 n=6)
ComponentLoad-4                    3.538m ±  11%   3.981m ±   2%  +12.53% (p=0.002 n=6)
ComponentExecute-4                 1.941µ ±   0%   2.060µ ±   1%   +6.11% (p=0.002 n=6)
PoolContention/workers-1-4         1.071µ ±   3%   1.160µ ±   2%   +8.26% (p=0.002 n=6)
PoolContention/workers-2-4         1.078µ ±   1%   1.147µ ±   3%   +6.35% (p=0.002 n=6)
PoolContention/workers-4-4         1.077µ ±   4%   1.145µ ±   2%   +6.27% (p=0.002 n=6)
PoolContention/workers-8-4         1.081µ ±   1%   1.138µ ±   1%   +5.27% (p=0.002 n=6)
PoolContention/workers-16-4        1.086µ ±   3%   1.167µ ±   1%   +7.41% (p=0.002 n=6)
ComponentLifecycle-4               3.567m ±   0%   4.101m ±   2%  +14.98% (p=0.002 n=6)
SourceValidation-4                 2.282µ ±   0%   2.472µ ±   2%   +8.33% (p=0.002 n=6)
RegistryConcurrent-4               786.0n ±   5%   886.6n ±   5%  +12.81% (p=0.002 n=6)
LoaderLoadFromString-4             3.570m ±   0%   4.026m ±   2%  +12.78% (p=0.002 n=6)
geomean                            17.29µ          19.03µ         +10.04%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.372 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.253 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.502 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%       ~ (p=0.558 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=1.000 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                  285.2n ± 3%   290.9n ± 0%       ~ (p=0.056 n=6)
CircuitBreakerExecution_Success-4          21.52n ± 2%   21.55n ± 2%       ~ (p=0.288 n=6)
CircuitBreakerExecution_Failure-4          66.38n ± 0%   66.39n ± 0%       ~ (p=0.900 n=6)
geomean                                    74.13n        74.67n       +0.72%

                                  │ 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                     970.2n ± 18%   959.5n ± 27%        ~ (p=0.589 n=6)
JQTransform_ObjectConstruction-4         1.456µ ±  1%   1.576µ ±  1%   +8.20% (p=0.002 n=6)
JQTransform_ArraySelect-4                3.312µ ±  1%   3.659µ ±  0%  +10.48% (p=0.002 n=6)
JQTransform_Complex-4                    38.53µ ±  2%   39.99µ ±  1%   +3.78% (p=0.002 n=6)
JQTransform_Throughput-4                 1.775µ ±  1%   1.909µ ±  2%   +7.55% (p=0.002 n=6)
SSEPublishDelivery-4                     65.42n ±  1%   65.48n ± 29%        ~ (p=1.000 n=6)
geomean                                  1.660µ         1.739µ         +4.75%

                                 │ 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                   1.102µ ± 19%   1.129µ ± 13%       ~ (p=0.331 n=6)
SchemaValidation_AllFields-4                1.666µ ±  6%   1.668µ ±  4%       ~ (p=0.818 n=6)
SchemaValidation_FormatValidation-4         1.579µ ±  2%   1.587µ ±  1%       ~ (p=0.699 n=6)
SchemaValidation_ManySchemas-4              1.804µ ±  2%   1.837µ ±  1%       ~ (p=0.071 n=6)
geomean                                     1.512µ         1.530µ        +1.20%

                                    │ 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                1.100µ ± 18%   1.238µ ± 15%        ~ (p=0.093 n=6)
EventStoreAppend_SQLite-4                  1.298m ±  4%   1.488m ±  4%  +14.60% (p=0.002 n=6)
GetTimeline_InMemory/events-10-4           13.66µ ±  2%   14.90µ ±  3%   +9.06% (p=0.002 n=6)
GetTimeline_InMemory/events-50-4           76.19µ ±  2%   76.25µ ± 15%        ~ (p=1.000 n=6)
GetTimeline_InMemory/events-100-4          121.5µ ± 19%   129.5µ ±  1%        ~ (p=0.065 n=6)
GetTimeline_InMemory/events-500-4          623.0µ ±  1%   667.9µ ±  1%   +7.20% (p=0.002 n=6)
GetTimeline_InMemory/events-1000-4         1.272m ±  1%   1.358m ±  2%   +6.80% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4             104.6µ ±  1%   112.6µ ±  1%   +7.61% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             245.5µ ±  0%   265.2µ ±  1%   +8.00% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            419.8µ ±  2%   449.6µ ±  2%   +7.10% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4            1.791m ±  3%   1.923m ±  1%   +7.39% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4           3.522m ±  4%   3.928m ±  2%  +11.53% (p=0.002 n=6)
geomean                                    214.9µ         232.5µ         +8.15%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                 753.5 ± 14%     804.5 ± 5%       ~ (p=0.093 n=6)
EventStoreAppend_SQLite-4                 1.984Ki ±  3%   1.986Ki ± 3%       ~ (p=0.571 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.121 n=6)
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%   944.3Ki ± 0%       ~ (p=0.076 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%  +0.00% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%   1.639Mi ± 0%       ~ (p=0.214 n=6)
geomean                                   67.08Ki         67.45Ki       +0.56%
¹ 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 added 2 commits May 10, 2026 02:15
…facts

- Replace duplicate-key supersession on 2026-04-26 design+plan: status superseded_partial -> superseded (valid in audit), populate superseded_by list (no longer empty array, cite cutover design+plan), drop top-level duplicates.
- Apply same supersession-status pattern to docs/plans/2026-04-26-strict-grpc-plugin-contracts.md (per team-lead authorization for the lead-owned plan file).
- SUPERSEDED-NOTICE.md frontmatter: switch to audit-valid values (status: superseded, area: plugins, owner: jon).
- Import canonical 2026-05-10 cutover design + plan + scope-lock + 8 adversarial-review files from design/strict-contracts-force-cutover @ e82b7e0c so SUPERSEDED-NOTICE cross-refs resolve.
- Imported design.md frontmatter normalized: status draft -> approved, area plugins/iac -> plugins, supersedes string -> []string list, supersession_scope split out.
- 8 adversarial-review files: status: complete -> status: approved (audit-valid).

Local audit: zero ERROR. Three WARN remain (missing_frontmatter): two pre-existing on main (2026-05-09 sensitive-output-routing pair) + one on the scope-locked 2026-05-10 cutover plan file (cannot edit per scope-lock invariant).
Copilot AI review requested due to automatic review settings May 10, 2026 06:16
Bonus normalization beyond Task 1's literal Files section, per team-lead's
follow-up rulings on PR 596:

- Add YAML frontmatter (status: approved / area: ecosystem / owner: jon /
  supersedes: [2026-04-26 plan]) to docs/plans/2026-05-10-strict-contracts-force-cutover.md.
  Per team-lead ruling #1: scope-lock hash covers ONLY the ## Scope Manifest
  section; prepending frontmatter above the H1 is safe + clears the audit
  missing_frontmatter WARN.
- Extend ADR 0027 with a "Scope: bonus normalizations" section documenting
  the adversarial-review status complete→approved + cutover-design
  status draft→approved + 2026-04-26 files using supersession_scope custom
  field. Treated as fix-forward; manifest unchanged.

Local audit (wfctl audit plans): 0 ERROR, 0 WARN on changed files.
Two WARN remain on 2026-05-09-engine-sensitive-output-routing*.md files —
pre-existing on main, out of scope for PR 596.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 9 comments.

Comment on lines +11 to +13

**Goal:** Replace string-method dispatch (`InvokeService("IaCProvider.X", map[string]any)`) with typed proto-generated gRPC services for the **external-plugin gRPC bridge** (workflow ↔ DO plugin), eliminating two specific bug classes (missing client bridge, missing server dispatcher) by making them compile-time errors.

Comment on lines +83 to +88
**Change class:** Documentation. Verification: spell-check + render preview; no runtime impact, no rollback note required.

**Step 1: Update design frontmatter**

Edit the YAML frontmatter at top of `docs/plans/2026-04-26-strict-grpc-plugin-contracts-design.md`:

Comment on lines +75 to +81
### Task 1: Add supersession-notice doc + update design frontmatter

**Per plan-phase cycle 1 I-3:** the 2026-04-26 implementation PLAN is scope-lock-protected (per memory `feedback_plan_files_lead_owned`); editing its frontmatter mid-flight may be blocked. Compromise: edit only the DESIGN doc's frontmatter (designs are not scope-locked the same way; status is informational); for the implementation PLAN, add a NEW supersession-notice file in the same dir.

**Files:**
- Modify: `docs/plans/2026-04-26-strict-grpc-plugin-contracts-design.md` (frontmatter only — design docs are not scope-lock-protected)
- Create: `docs/plans/2026-04-26-strict-grpc-plugin-contracts.SUPERSEDED-NOTICE.md` (NEW supersession pointer; doesn't modify the locked plan file)
@@ -1,5 +1,6 @@
---
status: in_progress
status: superseded
@@ -1,5 +1,6 @@
---
status: in_progress
status: superseded

The Module/Step/Trigger migration tracker entries (workflow-plugin-{audit, sso, ws-auth, authz, security, etc.}) in the 2026-04-26 plan REMAIN LIVE — they're not superseded.

This notice exists as a separate file because the 2026-04-26 plan itself is scope-lock-protected per `feedback_plan_files_lead_owned` and cannot be edited in-place.
Comment on lines +7 to +12
## Context

Plan §Task 1 step 1 instructed prepending `status: superseded_partial` and `superseded_by: [...]` to two existing plan-doc frontmatter blocks (`2026-04-26-strict-grpc-plugin-contracts-design.md` and `…contracts.md`). The instruction did not account for these files already containing `status:` and `superseded_by:` keys at other lines (line 1 + line 57 respectively).

Faithful execution of the plan introduced YAML duplicate keys, which `wfctl audit plans` (gopkg.in/yaml.v3 in `cmd/wfctl/plan_audit.go`) rejects with `mapping key already defined at line N` errors. Code-reviewer + Copilot independently flagged this on PR #596.

Comment on lines +1 to +6
---
status: approved
area: ecosystem
owner: jon
supersedes: [docs/plans/2026-04-26-strict-grpc-plugin-contracts.md]
---
Comment on lines 60 to +65
- GOWORK=off go run ./cmd/wfctl audit plans --dir docs/plans --fix-index
result: partial
supersedes: []
superseded_by: []
superseded_by:
- docs/plans/2026-05-10-strict-contracts-force-cutover-design.md
- docs/plans/2026-05-10-strict-contracts-force-cutover.md
- ADR 0027 (MINOR-E): drop literal `superseded_partial` from the technical
  Context paragraph; it now only appears in the alternatives-rejected /
  bonus-normalizations sections.
- SUPERSEDED-NOTICE.md (MINOR-F): rephrase the closing paragraph to
  distinguish scope-locked plan BODY (immutable) vs frontmatter
  (lead-gated, may be edited for status/supersession bookkeeping). Avoids
  the prior "cannot be edited in-place" claim that this PR's frontmatter
  edits contradicted.
@intel352 intel352 merged commit 2ce16a9 into main May 10, 2026
18 checks passed
@intel352 intel352 deleted the docs/supersede-2026-04-26-design branch May 10, 2026 06:46
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