docs(mcp): surface config-derived cigen CI generation in MCP output#854
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- C1: all four CI platforms are config-derived from the CIPlan (not Jenkins/CircleCI=template); the only hybrid is within generate_github_actions (cigen CI vs legacy cd_yaml/release_yaml) - I1: add 5th surface — setup_guide.go CI/CD Setup Flow (cigen path + scaffold_ci-vs-cigen relationship) - I2: exact param names for ref-doc entries + correct the stale scaffold_ci entry; scope out scaffold_environment/infra Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…le ref entries Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ix stale scaffold_ci
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the MCP server’s user-facing documentation surfaces so AI clients can correctly discover and describe wfctl’s config-derived cigen CI generation (CIPlan analysis + platform render), aligning MCP output with the already-cigen-backed implementation path.
Changes:
- Update MCP server Instructions and
workflow://docs/overview/workflow://docs/setup-guideresources to explicitly describe the cigen CIPlan workflow and key behaviors (phase-scoped secrets, migrations step, smoke job, plan-guard). - Update
ci_planandgenerate_github_actionstool descriptions to reflect the cigen-backed CI output and the legacy-template CD/release outputs. - Add a focused Go test to assert that key “cigen/config-derived” keywords are present across MCP doc surfaces and tool descriptions, and update the human MCP tools reference doc.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| mcp/wfctl_tools.go | Updates MCP tool descriptions for generate_github_actions and ci_plan to describe cigen-backed CI generation and legacy CD/release templates. |
| mcp/setup_guide.go | Extends setup guide to mention the config-derived cigen path alongside the existing thin-bootstrap flow. |
| mcp/server.go | Updates MCP server Instructions to mention cigen + ci_plan / generate_github_actions. |
| mcp/docs.go | Updates the overview resource to describe config-derived CI generation and related CLI/MCP surfaces. |
| mcp/cigen_info_test.go | Adds a test to lock cigen-related keywords into MCP resources/tool descriptions. |
| docs/mcp-tools-reference.md | Fixes stale scaffold_ci docs and adds missing ci_plan / generate_github_actions reference entries. |
| docs/plans/2026-06-04-mcp-cigen-info*.md* | Adds/updates planning artifacts for this change set. |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
⏱ Benchmark Results✅ No significant performance regressions detected. benchstat comparison (baseline → PR)
|
- generate_github_actions/ci_plan descriptions: clarify the tool re-analyzes the config and renders GitHub Actions ONLY; it does NOT accept a pre-built/edited CIPlan — rendering an edited plan or GitLab CI is the wfctl CLI (--from-plan / --platform gitlab_ci). Fixes the misleading 'edit the plan then render via MCP'. - setup-guide: same GHA-only / CLI-for-GitLab clarification. - extract serverInstructions package const + assert it in the test so the Instructions are genuinely locked (the test previously only claimed to). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
intel352
added a commit
that referenced
this pull request
Jun 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Makes wfctl's MCP output accurately describe the config-derived cigen CI generation. The render path is already cigen-backed (
generate_github_actionsroutes throughcigen.Analyze+cigen.RenderGitHubActions;ci_planis cigen-backed) — but the information was stale/missing, so an AI driving the MCP couldn't tell the config-derived surface existed. Informational only: no new tools, no handler/behavior change, no release.Surfaces (5 + a test)
mcp/server.goInstructions — name the cigen engine +ci_plan/generate_github_actions; "config-derived CI/CD generation (ci plan / ci generate)".mcp/docs.godocsOverview(workflow://docs/overview) — config-derived framing (per-phase scoped secrets,wfctl migrations upstep, smoke job, plan-guard) + thewfctl ci plan/ci generatecommands. All four platforms (github_actions,gitlab_ci,jenkins,circleci) are config-derived from the same CIPlan (mirrorsdocs/WFCTL.md:2142).mcp/wfctl_tools.go— accurategenerate_github_actionsdescription (CI = cigen;cd_yaml/release_yamlare legacy template using theregistry/platformsinputs) +ci_plan(per-phase scoped secrets; renders viagenerate_github_actions).mcp/setup_guide.go(workflow://docs/setup-guide) — adds the cigen path alongside the existingscaffold_ci→generate_bootstrap→wfctl ci runflow + a "which to use" note (the two are distinct:scaffold_ciemits aci:section; cigen renders a platform-native workflow).docs/mcp-tools-reference.md— add the absentci_plan+generate_github_actionsentries; correct the stalescaffold_cientry (it listed a fictionalprovider/circleci; real params aredescriptionreq +yaml_content/binary_path/environments).mcp/cigen_info_test.go(new) —Containsassertions locking the cigen keywords into the Instructions/resources/tool descriptions, incl a negative assertion thatdocsOverviewdoes NOT claim Jenkins/CircleCI are template-based.Verification
GOWORK=off go test ./mcp/...— green (inclTestMCPOutputSurfacesCigen)GOWORK=off go build ./cmd/wfctl— exit 0GOWORK=off golangci-lint run --new-from-rev=origin/main ./mcp/...— 0 issueswfctl mcpserver over stdio JSON-RPC; theinitializeInstructions and theworkflow://docs/overviewresource body both containcigen.Out of scope (logged follow-ups)
generate_github_actionshandler readsphase_config_yaml/wfctl_versionbut its tool def doesn't declare them (latent schema gap) — not fixed here (would be a schema change).scaffold_environment/scaffold_infraref-doc entries also drift from their defs (not CI-related).Pipeline
Full autodev: brainstorming → design adversarial PASS (2 cycles; caught a Jenkins/CircleCI-template factual error + a missed setup-guide CI surface) → plan adversarial PASS (reviewer ran the runtime handshake live) → alignment PASS → scope-lock → implement → code review. Design + plan + lock included.
Rollback
Revert the PR; the MCP reverts to the prior generic strings. No release, no state.
🤖 Generated with Claude Code