Skip to content

Port import skill to MCP-first conventions - #6

Open
chrisghill wants to merge 3 commits into
mainfrom
import-skill-mcp-first
Open

Port import skill to MCP-first conventions#6
chrisghill wants to merge 3 commits into
mainfrom
import-skill-mcp-first

Conversation

@chrisghill

@chrisghill chrisghill commented Aug 27, 2026

Copy link
Copy Markdown
Member

Re-lands the /massdriver:import workflow from add-import-skill, rewritten against main's MCP-first conventions, and rewrites the README for users rather than as a tool inventory.

Import skill, ported to MCP-first

The original branch predates the MCP server, so the mechanics were rebuilt rather than rebased:

  • Control-plane operations move to MCP toolsmass component addadd_component, mass instance version --release-channelupdate_instance with latest+dev, mass instance deploy --plancreate_deployment with action: PLAN + get_deployment_logs, mass environment defaultset_environment_default. Adds a get_viewer auth check and the OCI repo/grant step that add_component now requires.
  • Drops reading ~/.config/massdriver/config.yaml for state backend credentials, which main now forbids outright. TF_HTTP_USERNAME/TF_HTTP_PASSWORD come from already-exported env vars or from the user.
  • Corrects the backend guidanceTF_HTTP_* only applies when the http backend is selected, so the procedure writes a throwaway backend_import.tf rather than assuming no backend block works.
  • Takes the state URL from get_instance's statePaths[].stateUrl instead of hand-building the /state/<id>/<step> URL.
  • New safety steptofu import runs through Bash, so the safety hook does not guard it; the workflow now requires explicit confirmation before writing to a production instance's state. Also adds the local provider-credential step tofu import actually needs, state recovery via tofu state rm / orphan_instance, and the resource type instructions field for Path C.
  • Agent frontmatter matches current convention (skills: massdriver, no tools or model keys); drops v2 wording and the massdriver/-prefix rule.

Version 4.2.0 → 4.3.0.

README rewrite

The README is user-facing — no agent reads it — so naming individual MCP tools throughout was noise.

  • Command "What it does" lists describe outcomes instead of annotating each step with the tool that performs it.
  • "How It Works" was an inventory of the MCP tool surface; it now covers what the plugin does for you — blueprint-once semantics, log streaming, safe dry runs, development release isolation, day 2, environment waves.
  • Tool names are kept in Safety Guardrails, where they're load-bearing: those are the exact strings users see in permission prompts, so knowing approve_deployment is hard-blocked and get_*/list_* are auto-approved explains behavior they'll actually observe.
  • The MCP-first paragraph read as a prerequisite warning; it's now a lede about what the plugin does, with the MCP server as the reason Docker is required rather than the headline.

Terminology: "citizen engineer" → "citizen developer"

"Citizen developer" is the established industry term for the audience the architect agent targets. Straight swap across the architect agent, its command, and the README; no behavior or guidance changes.

🤖 Generated with Claude Code

chrisghill and others added 3 commits August 26, 2026 10:55
Re-lands the /massdriver:import workflow from add-import-skill, rewritten
against main's MCP-first rewrite. That branch predates the MCP server, so
the mechanics were rebuilt rather than rebased:

* Control-plane operations move to MCP tools: mass component add ->
  add_component, mass instance version --release-channel -> update_instance
  with latest+dev, mass instance deploy --plan -> create_deployment with
  action: PLAN + get_deployment_logs, mass environment default ->
  set_environment_default. Adds get_viewer auth check and the OCI
  repo/grant step add_component now requires.
* Drops reading ~/.config/massdriver/config.yaml for the state backend
  credentials, which main now forbids outright. TF_HTTP_USERNAME/PASSWORD
  come from already-exported env vars or from the user.
* Corrects the backend guidance: TF_HTTP_* only applies when the http
  backend is selected, so the procedure writes a throwaway
  backend_import.tf rather than assuming no backend block works.
* Takes the state URL from get_instance's statePaths[].stateUrl instead of
  hand-building the /state/<id>/<step> URL.
* New: tofu import is Bash, so the safety hook does not guard it -- calls
  for explicit confirmation before writing to a production instance's
  state. Adds the local provider-credential step tofu import actually
  needs, state recovery via tofu state rm / orphan_instance, and the
  resource type instructions field for Path C.
* Agent frontmatter matches current convention (skills: massdriver, no
  tools or model keys); drops v2 wording and the massdriver/-prefix rule.

Version 4.2.0 -> 4.3.0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The README is user-facing — no agent reads it (the only mentions inside the
plugin are agents pointing users at it when MCP auth fails), so naming
individual MCP tools throughout was noise.

* Command "What it does" lists now describe outcomes instead of annotating
  each step with the tool that performs it.
* "How It Works" was an inventory of the MCP tool surface; it now covers
  what the plugin does for you -- blueprint-once semantics, log streaming,
  safe dry runs, development release isolation, day 2, environment waves.
* Tool names are kept in Safety Guardrails, where they are load-bearing:
  those are the exact strings users see in permission prompts, so knowing
  approve_deployment is hard-blocked and get_*/list_* are auto-approved
  explains behavior they will actually observe.
* The MCP-first paragraph read as a prerequisite warning. It is now a lede
  about what the plugin does for you, with the MCP server as the reason
  Docker is required rather than the headline.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
"Citizen developer" is the established industry term for the audience the
architect agent targets -- non-infra folks shipping an app with an LLM's
help. Straight terminology swap across the architect agent, its command,
and the README; no behavior or guidance changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@chrisghill
chrisghill requested a review from coryodaniel August 27, 2026 05:31
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