navigator

Diagnose and fix Navigator configuration parsing and routing issues in multi-tenant web servers.

36|6|Updated Apr 6, 2022
One-click install
npx skills add https://github.com/rubys/showcase --skill navigator
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: navigator
Source: https://github.com/rubys/showcase/tree/main/.claude/skills/navigator
Command: npx skills add https://github.com/rubys/showcase --skill navigator

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides in-depth knowledge for developing and debugging the Navigator Go submodule, a critical component for multi-tenant web server management. It clarifies complex configuration parsing, request handling, and common bug patterns, empowering you to implement fixes and enhancements efficiently.

Core Features & Use Cases

  • Configuration Flow Deep Dive: Understand the critical YAML-to-Go struct conversion process, highlighting common pitfalls like missing yaml tags or incomplete parsing logic.
  • Request Handler Order: Learn the precise order of operations in ServeHTTP(), which is crucial for security, correct routing, and preventing authentication bypasses.
  • Development & Testing Workflow: Follow a step-by-step guide for adding new config options or handler behavior, complete with comprehensive testing requirements and commands.
  • Use Case: If a new configuration option for Navigator isn't being applied, use this skill to quickly identify if the field is missing from YAMLConfig, lacks a yaml tag, or if the parsing logic in parser.go is incomplete, guiding you directly to the fix.

Quick Start

Use the navigator skill to understand how to add a new configuration option to the Navigator Go server, including the necessary steps for types.go and parser.go.

Frequently Asked Questions about navigator

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix Navigator configuration options that aren't being applied to the Go server?

Configuration options fail to apply when fields are missing from `YAMLConfig`, lack `yaml` tags, or parsing logic in `parser.go` is incomplete. Verify the field exists in `types.go` with the correct tag, then trace the parsing flow to ensure the option is read and assigned during initialization.

What's the correct order of operations in Navigator's request handler?

The `ServeHTTP()` method enforces a precise operation sequence critical for security and correct routing. Understanding this order prevents authentication bypasses and routing failures when adding or modifying handlers in the multi-tenant web server.

How do I add a new configuration option to Navigator?

Add a new configuration option by defining the field in `types.go` with a `yaml` tag, implementing parsing logic in `parser.go`, and adding comprehensive tests. This step-by-step workflow ensures the option is correctly read from YAML and applied to the running server.

What are common bugs when parsing YAML configuration in Navigator?

Common pitfalls include missing `yaml` tags on struct fields, incomplete parsing logic that skips conversion steps, and misaligned YAML-to-Go struct mapping. These errors prevent configuration values from reaching the server runtime.

When should I use Navigator debugging for multi-tenant web server issues?

Use Navigator debugging when deployment plans require routing changes, config parsing fixes, or new proxy behavior in a multi-tenant environment. It addresses health-check ordering, submodule integration, and test coverage for the Navigator component.