Platform Tools

Golden Path exposes a set of platform tools via MCP that are always available regardless of which architecture is selected. These tools let you discover architectures, analyze requirements, and manage skills.


TOOLPlatform

analyze_requirements

Analyzes project requirements and recommends the best-fit architecture. Provide a free-text description of your project and the tool returns a ranked recommendation with explanations.

  • Name
    requirements
    Type
    string
    Description

    Free-text description of your project needs, team structure, and constraints.

Example prompt

Analyze my requirements: I'm building a SaaS platform
for project management. We have 3 teams, need independent
deployments, and expect high traffic on the task service.

Response

{
  "recommended": "microservices",
  "reasoning": "Independent team ownership, separate deployment needs, and isolated scaling requirements align well with microservices.",
  "alternatives": [
    {
      "architecture": "modular-monolith",
      "reasoning": "Could work initially with module boundaries..."
    }
  ]
}

TOOLPlatform

get_architecture_details

Returns information about available architectures. Without parameters, it lists all architectures. With an architecture specified, it returns the full manifest, available skills, and tools.

  • Name
    architecture
    Type
    string
    Description

    Architecture slug to get details for. Omit to list all available architectures.

List all

What architectures are available?

Response (list)

{
  "architectures": [
    {
      "name": "clean-architecture",
      "description": "Domain-centric design with strict dependency rules",
      "bestFor": "Complex business logic with rich domain models"
    },
    {
      "name": "modular-monolith",
      "description": "Independent modules in a single deployment",
      "bestFor": "Teams wanting module boundaries without distributed complexity"
    }
  ]
}

TOOLPlatform

select_architecture

Activates an architecture package and makes its skills available as MCP tools. After selection, architecture-specific tools (like create_solution, add_service, implement_feature) become available.

  • Name
    architecture
    Type
    string
    Description

    Architecture slug to activate (e.g., clean-architecture, modular-monolith, microservices).

Example prompt

Select the clean-architecture package.

Response

{
  "architecture": "clean-architecture",
  "metadata": { "...manifest details..." },
  "skills": ["create-solution", "add-module", "implement-feature"],
  "availableTools": ["..."]
}

TOOLPlatform

plan_architecture

Analyzes an existing codebase and designs a reusable architecture package. Returns a decomposition guide, plan template, and discovery questions. The AI reads the repo, fills in the plan, and saves it to docs/ARCHITECTURE_PLAN.md for review.

This is the starting point for turning any reference repo into a Golden Path architecture package.

  • Name
    architecture_name
    Type
    string
    Description

    Slug for the new architecture (e.g., react-clean-arch, dotnet-clean-architecture).

  • Name
    tech_stack
    Type
    string
    Description

    Comma-separated tech stack hint (e.g., React, TypeScript, Vite). The AI will verify against the actual repo.

Example prompt

Analyze the current repo and call plan_architecture
to plan an architecture package.
Use the name "bulletproof-react" for the architecture.

Response (abbreviated)

{
  "important": "Read the existing repo FIRST...",
  "architecture_name": "bulletproof-react",
  "existing_architectures": [
    { "slug": "clean-architecture", "name": "Clean Architecture", "tech_stack": [".NET"], "best_for": "..." }
  ],
  "decomposition_guide": "# Decomposition Guide\n...",
  "plan_template": "# Architecture Plan\n...",
  "instructions": "1. Scan the repo...\n2. Apply decomposition guide..."
}

TOOLPlatform

create_architecture

Registers a new architecture package. Typically called after plan_architecture has produced a reviewed plan. The architecture becomes available immediately — follow up with create_skill calls to add skills.

  • Name
    name
    Type
    string
    Description

    Display name (e.g., Bulletproof React).

  • Name
    slug
    Type
    string
    Description

    URL-safe identifier (e.g., bulletproof-react). Must be unique.

  • Name
    description
    Type
    string
    Description

    What the architecture is for (1-2 sentences).

  • Name
    tech_stack
    Type
    string
    Description

    Comma-separated technologies.

  • Name
    best_for
    Type
    string
    Description

    When to use this architecture (team size, project type, constraints).

  • Name
    version
    Type
    string
    Description

    Semantic version (defaults to 1.0.0).

Example prompt

Create the architecture based on our reviewed plan.

Response

{
  "success": true,
  "slug": "bulletproof-react",
  "name": "Bulletproof React",
  "next_step": "Call create_skill with architecture='bulletproof-react' to add skills. Start with skill_name='create-solution'."
}

TOOLPlatform

plan_skill

Returns the skill format specification and a plan template for authoring a new skill. Use this before create_skill to understand the format and plan the skill's structure.

  • Name
    requirements
    Type
    string
    Description

    Free-text description of what the skill should do.

  • Name
    architecture
    Type
    string
    Description

    Target architecture slug or shared. Can be decided later.

Example prompt

I want to plan a skill that adds Redis caching
to a service.

TOOLPlatform

create_skill

Creates or updates a skill in an architecture package. Accepts structured data (name, description, args, phases, templates) and stores the skill definition and template files. The new skill is immediately available as an MCP tool.

For skills with many templates (>10), create the skill without templates first, then use add_templates in parallel batches. This avoids hitting tool call size limits.

  • Name
    architecture
    Type
    string
    Description

    Target architecture slug or shared.

  • Name
    skill_name
    Type
    string
    Description

    Skill slug (e.g., add-caching).

  • Name
    description
    Type
    string
    Description

    What the skill does (1-2 sentences).

  • Name
    title
    Type
    string
    Description

    Short display name (2-4 words, e.g., New Solution, Add Authentication).

  • Name
    phases
    Type
    string
    Description

    JSON array of phases. Each: { "title": "...", "content": "..." }.

  • Name
    args
    Type
    string
    Description

    JSON array of arguments. Each: { "name": "...", "description": "...", "required": true }.

  • Name
    templates
    Type
    string
    Description

    JSON array of template files. Each: { "filename": "...", "content": "..." }. For large skills, omit this and use add_templates instead.

  • Name
    overwrite
    Type
    string
    Description

    Set to true to replace an existing skill.

  • Name
    keep_templates
    Type
    string
    Description

    Set to true when overwriting to keep existing templates. Use this to update skill metadata/phases without re-sending all templates.

Small skill (≤10 templates)

Create the caching skill based on the plan
we reviewed.

Large skill (>10 templates)

Create the create-solution skill without templates,
then add templates in batches.

Response

{
  "success": true,
  "architecture": "clean-architecture",
  "skill_name": "add-caching",
  "templates_created": ["CacheService.cs"]
}

TOOLPlatform

add_templates

Adds or updates template files for an existing skill. Uses merge semantics: existing filenames are updated, new filenames are added. Call this in parallel batches of 5-10 templates for large skills.

  • Name
    architecture
    Type
    string
    Description

    Architecture slug or shared.

  • Name
    skill_name
    Type
    string
    Description

    Skill slug (e.g., create-solution).

  • Name
    templates
    Type
    string
    Description

    JSON array of template files. Each: { "filename": "...", "content": "..." }. Use dot-notation for filenames.

Example prompt

Add the missing launchSettings.json template
to the create-solution skill.

Response

{
  "success": true,
  "architecture": "clean-architecture-jasontaylor",
  "skill_name": "create-solution",
  "templates_added": ["AppHost.Properties.launchSettings.json"],
  "count": 1
}

TOOLPlatform

remove_templates

Removes template files from an existing skill by filename.

  • Name
    architecture
    Type
    string
    Description

    Architecture slug or shared.

  • Name
    skill_name
    Type
    string
    Description

    Skill slug (e.g., create-solution).

  • Name
    filenames
    Type
    string
    Description

    JSON array of template filenames to remove.

Example prompt

Remove the OldService.cs template from the
add-caching skill.

Response

{
  "success": true,
  "architecture": "clean-architecture",
  "skill_name": "add-caching",
  "templates_removed": ["OldService.cs"],
  "count": 1
}

TOOLPlatform

validate_skill

Validates an existing skill's templates against its phases and args. Returns warnings for mismatches — not blocking, but informative. Run this after creating or updating a skill to catch issues early.

Checks performed:

  • All **Template:** refs in phases match actual template filenames
  • No orphan templates (exist but unreferenced in phases)
  • All {Variables} in template content match defined args
  • All {{#if flag}} conditionals match enum values from args
  • Name
    architecture
    Type
    string
    Description

    Architecture slug or shared.

  • Name
    skill_name
    Type
    string
    Description

    Skill slug to validate.

Example prompt

Validate the create-solution skill in the
bulletproof-react architecture.

Response (warnings found)

{
  "success": true,
  "valid": false,
  "warnings": [
    "Phase references template 'OldFile.cs' but no template with that filename exists",
    "Template 'Unused.cs' exists but is not referenced in any phase",
    "Template 'Config.cs' uses {DbName} but no arg 'DbName' is defined"
  ],
  "stats": {
    "args": 2,
    "enum_values": ["sqlite", "postgresql"],
    "templates": 54,
    "phase_refs": 53
  }
}

TOOLPlatform

pull_skill

Reads an existing skill and returns its structured data for inspection or modification. Returns both a rendered markdown plan (for human review) and structured fields (for passing to create_skill).

  • Name
    skill_name
    Type
    string
    Description

    Skill slug (directory name).

  • Name
    architecture
    Type
    string
    Description

    Architecture slug. If omitted, searches shared skills first, then all architectures.

Example prompt

Pull the add-service skill so I can review it.

Response (abbreviated)

{
  "architecture": "microservices",
  "skillName": "add-service",
  "description": "Adds a new microservice...",
  "args": [...],
  "phases": [...],
  "rendered_plan": "# Add Service\n\n..."
}

Was this page helpful?