Skip to main content
Glama

steering-guide

Generate project steering documents with templates for product, technical, and structural specifications to guide development architecture.

Instructions

Load guide for creating project steering documents.

Instructions

Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function for the 'steering-guide' tool. It returns a success response with the steering guide content obtained from getSteeringGuide() and next steps.
    export async function steeringGuideHandler(args: any, context: ToolContext): Promise<ToolResponse> {
      return {
        success: true,
        message: 'Steering workflow guide loaded - follow this workflow exactly to avoid errors',
        data: {
          guide: getSteeringGuide(),
          dashboardUrl: context.dashboardUrl
        },
        nextSteps: [
          'Only proceed if user requested steering docs',
          'Create product.md first',
          'Then tech.md and structure.md',
          'Reference in future specs',
          context.dashboardUrl ? `Dashboard: ${context.dashboardUrl}` : 'Start the dashboard with: spec-workflow-mcp --dashboard'
        ]
      };
    }
  • The tool definition including name, description, and input schema (no input parameters required).
    export const steeringGuideTool: Tool = {
      name: 'steering-guide',
      description: `Load guide for creating project steering documents.
    
    # Instructions
    Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.`,
      inputSchema: {
        type: 'object',
        properties: {},
        additionalProperties: false
      }
    };
  • Helper function that returns the detailed steering guide content, including workflow diagram, phases, rules, and file structure.
    function getSteeringGuide(): string {
      return `# Steering Workflow
    
    ## Overview
    
    Create project-level guidance documents when explicitly requested. Steering docs establish vision, architecture, and conventions for established codebases. Its important that you follow this workflow exactly to avoid errors.
    
    ## Workflow Diagram
    
    \`\`\`mermaid
    flowchart TD
        Start([Start: Setup steering docs]) --> Guide[steering-guide<br/>Load workflow instructions]
    
        %% Phase 1: Product
        Guide --> P1_Template[Check user-templates first,<br/>then read template:<br/>product-template.md]
        P1_Template --> P1_Generate[Generate vision & goals]
        P1_Generate --> P1_Create[Create file:<br/>.spec-workflow/steering/<br/>product.md]
        P1_Create --> P1_Approve[approvals<br/>action: request<br/>filePath only]
        P1_Approve --> P1_Status[approvals<br/>action: status<br/>poll status]
        P1_Status --> P1_Check{Status?}
        P1_Check -->|needs-revision| P1_Update[Update document using user comments for guidance]
        P1_Update --> P1_Create
        P1_Check -->|approved| P1_Clean[approvals<br/>action: delete]
        P1_Clean -->|failed| P1_Status
    
        %% Phase 2: Tech
        P1_Clean -->|success| P2_Template[Check user-templates first,<br/>then read template:<br/>tech-template.md]
        P2_Template --> P2_Analyze[Analyze tech stack]
        P2_Analyze --> P2_Create[Create file:<br/>.spec-workflow/steering/<br/>tech.md]
        P2_Create --> P2_Approve[approvals<br/>action: request<br/>filePath only]
        P2_Approve --> P2_Status[approvals<br/>action: status<br/>poll status]
        P2_Status --> P2_Check{Status?}
        P2_Check -->|needs-revision| P2_Update[Update document using user comments for guidance]
        P2_Update --> P2_Create
        P2_Check -->|approved| P2_Clean[approvals<br/>action: delete]
        P2_Clean -->|failed| P2_Status
    
        %% Phase 3: Structure
        P2_Clean -->|success| P3_Template[Check user-templates first,<br/>then read template:<br/>structure-template.md]
        P3_Template --> P3_Analyze[Analyze codebase structure]
        P3_Analyze --> P3_Create[Create file:<br/>.spec-workflow/steering/<br/>structure.md]
        P3_Create --> P3_Approve[approvals<br/>action: request<br/>filePath only]
        P3_Approve --> P3_Status[approvals<br/>action: status<br/>poll status]
        P3_Status --> P3_Check{Status?}
        P3_Check -->|needs-revision| P3_Update[Update document using user comments for guidance]
        P3_Update --> P3_Create
        P3_Check -->|approved| P3_Clean[approvals<br/>action: delete]
        P3_Clean -->|failed| P3_Status
    
        P3_Clean -->|success| Complete([Steering docs complete])
    
        style Start fill:#e6f3ff
        style Complete fill:#e6f3ff
        style P1_Check fill:#ffe6e6
        style P2_Check fill:#ffe6e6
        style P3_Check fill:#ffe6e6
    \`\`\`
    
    ## Steering Workflow Phases
    
    ### Phase 1: Product Document
    **Purpose**: Define vision, goals, and user outcomes.
    
    **File Operations**:
    - Check for custom template: \`.spec-workflow/user-templates/product-template.md\`
    - Read template: \`.spec-workflow/templates/product-template.md\` (if no custom template)
    - Create document: \`.spec-workflow/steering/product.md\`
    
    **Tools**:
    - steering-guide: Load workflow instructions
    - approvals: Manage approval workflow (actions: request, status, delete)
    
    **Process**:
    1. Load steering guide for workflow overview
    2. Check for custom template at \`.spec-workflow/user-templates/product-template.md\`
    3. If no custom template, read from \`.spec-workflow/templates/product-template.md\`
    4. Generate product vision and goals
    5. Create \`product.md\` at \`.spec-workflow/steering/product.md\`
    6. Request approval using approvals tool with action:'request' (filePath only)
    7. Poll status using approvals with action:'status' until approved/needs-revision (NEVER accept verbal approval)
    8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
    9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
    10. If delete fails: STOP - return to polling
    
    ### Phase 2: Tech Document
    **Purpose**: Document technology decisions and architecture.
    
    **File Operations**:
    - Check for custom template: \`.spec-workflow/user-templates/tech-template.md\`
    - Read template: \`.spec-workflow/templates/tech-template.md\` (if no custom template)
    - Create document: \`.spec-workflow/steering/tech.md\`
    
    **Tools**:
    - approvals: Manage approval workflow (actions: request, status, delete)
    
    **Process**:
    1. Check for custom template at \`.spec-workflow/user-templates/tech-template.md\`
    2. If no custom template, read from \`.spec-workflow/templates/tech-template.md\`
    3. Analyze existing technology stack
    4. Document architectural decisions and patterns
    5. Create \`tech.md\` at \`.spec-workflow/steering/tech.md\`
    6. Request approval using approvals tool with action:'request'
    7. Poll status using approvals with action:'status' until approved/needs-revision
    8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
    9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
    10. If delete fails: STOP - return to polling
    
    ### Phase 3: Structure Document
    **Purpose**: Map codebase organization and patterns.
    
    **File Operations**:
    - Check for custom template: \`.spec-workflow/user-templates/structure-template.md\`
    - Read template: \`.spec-workflow/templates/structure-template.md\` (if no custom template)
    - Create document: \`.spec-workflow/steering/structure.md\`
    
    **Tools**:
    - approvals: Manage approval workflow (actions: request, status, delete)
    
    **Process**:
    1. Check for custom template at \`.spec-workflow/user-templates/structure-template.md\`
    2. If no custom template, read from \`.spec-workflow/templates/structure-template.md\`
    3. Analyze directory structure and file organization
    4. Document coding patterns and conventions
    5. Create \`structure.md\` at \`.spec-workflow/steering/structure.md\`
    6. Request approval using approvals tool with action:'request'
    7. Poll status using approvals with action:'status' until approved/needs-revision
    8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
    9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
    10. If delete fails: STOP - return to polling
    11. After successful cleanup: "Steering docs complete. Ready for spec creation?"
    
    ## Workflow Rules
    
    - Create documents directly at specified file paths
    - Check for custom templates in \`.spec-workflow/user-templates/\` first
    - Read templates from \`.spec-workflow/templates/\` directory if no custom template exists
    - Follow exact template structures
    - Get explicit user approval between phases (using approvals tool with action:'request')
    - Complete phases in sequence (no skipping)
    - Approval requests: provide filePath only, never content
    - BLOCKING: Never proceed if approval delete fails
    - CRITICAL: Must have approved status AND successful cleanup before next phase
    - CRITICAL: Verbal approval is NEVER accepted - dashboard or VS Code extension only
    - NEVER proceed on user saying "approved" - check system status only
    
    ## File Structure
    \`\`\`
    .spec-workflow/
    ├── templates/           # Auto-populated on server start
    │   ├── product-template.md
    │   ├── tech-template.md
    │   └── structure-template.md
    └── steering/
        ├── product.md
        ├── tech.md
        └── structure.md
    \`\`\``;
    }
  • Registration of the steeringGuideTool in the list of tools returned by registerTools().
    export function registerTools(): Tool[] {
      return [
        specWorkflowGuideTool,
        steeringGuideTool,
        specStatusTool,
        approvalsTool,
        logImplementationTool
      ];
    }
  • Dispatch case in handleToolCall that routes 'steering-guide' calls to steeringGuideHandler.
    case 'steering-guide':
      response = await steeringGuideHandler(args, context);
      break;
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions that the tool 'Provides templates and guidance' and emphasizes following the workflow 'exactly to avoid errors,' which hints at behavioral constraints. However, it lacks details on what 'errors' might occur, whether it's read-only or mutative, or any permissions/rate limits, leaving gaps in behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the main purpose, followed by instructions. It uses two paragraphs efficiently, with no wasted sentences. However, the second paragraph could be slightly more concise by combining some points, but overall, it's clear and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0 parameters, the description provides good usage guidelines and purpose clarity. However, it lacks details on what the 'guide' output entails (e.g., format, content), and the behavioral aspects are under-specified. For a tool with no structured data, this leaves some contextual gaps, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't discuss parameters, which is appropriate. However, it could slightly improve by noting the lack of inputs, but this is minor; thus, a baseline score of 4 is given for adequate handling in a parameterless context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Load guide for creating project steering documents' and specifies the resources involved ('templates and guidance for product.md, tech.md, and structure.md creation'). However, it doesn't explicitly differentiate from sibling tools like 'spec-workflow-guide' beyond stating 'Not part of standard spec workflow,' which is somewhat indirect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: 'Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow.' It clearly defines when to use the tool and distinguishes it from alternatives by noting it's not part of the standard workflow, though it doesn't name specific sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pimzino/spec-workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server