Skip to content

docs(wfctl): ci plan + smart ci generate + secrets wizard/--json (v0.67.0)#803

Merged
intel352 merged 1 commit into
mainfrom
docs/wfctl-ci-plan-secrets-wizard
May 31, 2026
Merged

docs(wfctl): ci plan + smart ci generate + secrets wizard/--json (v0.67.0)#803
intel352 merged 1 commit into
mainfrom
docs/wfctl-ci-plan-secrets-wizard

Conversation

@intel352
Copy link
Copy Markdown
Contributor

What

Docs follow-up for the v0.67.0 wfctl surface (secrets wizard + smart CI). docs/WFCTL.md still documented the pre-v0.67.0 template ci generate (with nonexistent --format/--environments/--include-infra flags), had no ci plan, and a three-flag secrets setup stub. Per CLAUDE.md ("new wfctl command → docs/WFCTL.md").

Changes (docs-only)

  • ci generate — rewritten to the real smart (cigen) surface: --platform, -c/--config, --output/--out, --runner, --from-plan, --diff, --exit-code, --write, --phase-config, --config-path-alias, --phase-config-alias, --interactive; explains derived secret env: wiring, plugin-install, two-phase prereq→deploy, wfctl migrations up, plan-guard, smoke, and non-derivable-secret warnings.
  • ci plan (new section) — emits the CIPlan JSON for inspection / AI-stepping; flags -c/--config, --out, --phase-config, --config-path-alias, --phase-config-alias, --wfctl-version, --branch, --runner.
  • secrets setup — interactive wizard (store resolution priority, multi-select, masked input) + non-interactive (--from-env/stdin/--secret, --only/--all/--skip-existing, --store); audit-log path.
  • secrets list--json + UPDATED column + store-access line.
  • Command summary table: added ci plan/run/init/validate.

Every documented flag was verified against the built binary's --help + the flag definitions in cmd/wfctl/.

🤖 Generated with Claude Code

…json (v0.67.0)

- Rewrite `ci generate` to reflect the cigen engine (CIPlan-based smart
  generator): real flags (--platform, -c/--config, --output/--out, --runner,
  --from-plan, --diff, --exit-code, --write, --phase-config,
  --config-path-alias, --phase-config-alias, --interactive), engine behaviour
  (secrets env: block derivation, plugin install step, two-phase prereq/deploy,
  migrations step, plan-guard, healthz smoke), and accurate examples.
- Add new `ci plan` section: flags (-c/--config, --out, --phase-config,
  --config-path-alias, --phase-config-alias, --wfctl-version, --branch,
  --runner) and example of plan→generate workflow.
- Update CI/CD command summary table to include `ci plan`, `ci run`, `ci init`,
  `ci validate`.
- Expand `secrets setup` to document interactive wizard (store resolution,
  multi-select, masked input) and non-interactive mode (--from-env,
  piped KEY=VALUE, --secret, --auto-gen-keys, --only, --all,
  --skip-existing, --store, --non-interactive) plus legacy --plugin flags and
  audit log path.
- Expand `secrets list` to document --json flag (machine-readable array),
  UPDATED column, and store-access line in text output.

All flags validated against built binary --help and flag definitions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:307: parsing iteration count: invalid syntax
baseline-bench.txt:300014: parsing iteration count: invalid syntax
baseline-bench.txt:635946: parsing iteration count: invalid syntax
baseline-bench.txt:982840: parsing iteration count: invalid syntax
baseline-bench.txt:1304585: parsing iteration count: invalid syntax
baseline-bench.txt:1616169: parsing iteration count: invalid syntax
benchmark-results.txt:307: parsing iteration count: invalid syntax
benchmark-results.txt:344942: parsing iteration count: invalid syntax
benchmark-results.txt:612312: parsing iteration count: invalid syntax
benchmark-results.txt:961324: parsing iteration count: invalid syntax
benchmark-results.txt:1287650: parsing iteration count: invalid syntax
benchmark-results.txt:1576743: 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               9.595m ± 68%   9.496m ± 68%       ~ (p=0.818 n=6)
ComponentLoad-4                     3.528m ±  6%   3.487m ± 11%       ~ (p=0.240 n=6)
ComponentExecute-4                  1.840µ ±  1%   1.820µ ±  2%       ~ (p=0.102 n=6)
PoolContention/workers-1-4          1.024µ ±  3%   1.008µ ±  1%  -1.61% (p=0.002 n=6)
PoolContention/workers-2-4          1.019µ ±  2%   1.010µ ±  3%       ~ (p=0.117 n=6)
PoolContention/workers-4-4          1.024µ ±  2%   1.009µ ±  2%       ~ (p=0.141 n=6)
PoolContention/workers-8-4          1.032µ ±  1%   1.015µ ±  2%  -1.65% (p=0.013 n=6)
PoolContention/workers-16-4         1.026µ ±  2%   1.013µ ±  5%       ~ (p=0.063 n=6)
ComponentLifecycle-4                3.561m ±  2%   3.497m ±  1%  -1.81% (p=0.002 n=6)
SourceValidation-4                  2.097µ ±  2%   2.108µ ±  1%       ~ (p=0.240 n=6)
RegistryConcurrent-4                741.2n ±  7%   754.6n ±  5%       ~ (p=0.394 n=6)
LoaderLoadFromString-4              3.564m ±  0%   3.529m ±  1%       ~ (p=0.065 n=6)
geomean                             18.28µ         18.12µ        -0.89%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.818 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.818 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.563 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.565 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                  299.5n ± 3%   297.6n ± 1%  -0.63% (p=0.013 n=6)
CircuitBreakerExecution_Success-4          22.69n ± 0%   22.70n ± 1%       ~ (p=0.485 n=6)
CircuitBreakerExecution_Failure-4          70.92n ± 0%   70.94n ± 1%       ~ (p=0.675 n=6)
geomean                                    78.40n        78.25n       -0.20%

                                  │ 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              │
IaCStateBackend_InProcess-4              295.8n ±  3%   290.3n ± 27%       ~ (p=0.121 n=6)
IaCStateBackend_GRPC-4                   11.33m ± 10%   10.04m ± 14%       ~ (p=0.065 n=6)
JQTransform_Simple-4                     674.8n ± 24%   669.9n ± 27%       ~ (p=0.818 n=6)
JQTransform_ObjectConstruction-4         1.415µ ±  1%   1.411µ ±  1%       ~ (p=0.799 n=6)
JQTransform_ArraySelect-4                3.446µ ±  2%   3.343µ ±  1%  -2.99% (p=0.002 n=6)
JQTransform_Complex-4                    42.11µ ±  1%   41.15µ ±  0%  -2.27% (p=0.002 n=6)
JQTransform_Throughput-4                 1.743µ ±  4%   1.719µ ±  3%  -1.41% (p=0.041 n=6)
SSEPublishDelivery-4                     64.70n ±  1%   64.64n ±  1%       ~ (p=0.236 n=6)
geomean                                  3.889µ         3.785µ        -2.69%

                                 │ baseline-bench.txt │         benchmark-results.txt         │
                                 │        B/op        │     B/op       vs base                │
IaCStateBackend_InProcess-4              416.0 ± 0%       416.0 ±  0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                 5.843Mi ± 6%     5.738Mi ± 10%       ~ (p=0.699 n=6)
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.31Ki ± 0%     16.31Ki ±  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.23%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │        benchmark-results.txt        │
                                 │     allocs/op      │  allocs/op   vs base                │
IaCStateBackend_InProcess-4              2.000 ± 0%      2.000 ± 0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                  6.854k ± 0%     6.857k ± 0%       ~ (p=0.513 n=6)
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                    328.0 ± 0%      328.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.01%               ²
¹ 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.091µ ± 18%   1.081µ ±  1%       ~ (p=0.368 n=6)
SchemaValidation_AllFields-4                1.637µ ±  4%   1.658µ ± 17%       ~ (p=0.621 n=6)
SchemaValidation_FormatValidation-4         1.559µ ±  1%   1.566µ ±  1%       ~ (p=0.329 n=6)
SchemaValidation_ManySchemas-4              1.585µ ±  1%   1.585µ ±  4%       ~ (p=0.784 n=6)
geomean                                     1.449µ         1.452µ        +0.19%

                                    │ 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.151µ ± 13%   1.117µ ± 15%       ~ (p=0.818 n=6)
EventStoreAppend_SQLite-4                  1.103m ±  5%   1.085m ±  5%       ~ (p=0.485 n=6)
GetTimeline_InMemory/events-10-4           13.39µ ±  4%   12.79µ ±  5%       ~ (p=0.065 n=6)
GetTimeline_InMemory/events-50-4           72.09µ ±  2%   71.71µ ±  5%       ~ (p=0.818 n=6)
GetTimeline_InMemory/events-100-4          120.0µ ± 21%   109.1µ ±  1%  -9.07% (p=0.009 n=6)
GetTimeline_InMemory/events-500-4          562.8µ ±  0%   558.5µ ±  1%  -0.77% (p=0.002 n=6)
GetTimeline_InMemory/events-1000-4         1.137m ±  1%   1.133m ±  1%       ~ (p=0.065 n=6)
GetTimeline_SQLite/events-10-4             86.21µ ±  2%   84.84µ ±  1%  -1.59% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             222.8µ ±  0%   220.3µ ±  1%  -1.12% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            385.9µ ±  0%   383.7µ ±  1%  -0.58% (p=0.041 n=6)
GetTimeline_SQLite/events-500-4            1.672m ±  1%   1.665m ±  3%       ~ (p=0.394 n=6)
GetTimeline_SQLite/events-1000-4           3.287m ±  3%   3.251m ±  1%  -1.12% (p=0.015 n=6)
geomean                                    198.9µ         194.8µ        -2.08%

                                   │ baseline-bench.txt │         benchmark-results.txt         │
                                   │        B/op        │     B/op       vs base                │
EventStoreAppend_InMemory-4                  765.5 ± 7%     755.0 ± 14%       ~ (p=0.673 n=6)
EventStoreAppend_SQLite-4                  1.987Ki ± 1%   1.985Ki ±  1%       ~ (p=0.727 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=1.000 n=6)
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%   944.3Ki ±  0%       ~ (p=1.000 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=1.000 n=6)
geomean                                    67.18Ki        67.09Ki        -0.13%
¹ 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.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@intel352 intel352 merged commit 3488c72 into main May 31, 2026
22 checks passed
@intel352 intel352 deleted the docs/wfctl-ci-plan-secrets-wizard branch May 31, 2026 02: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.

1 participant