Skip to content

Conversation

@wolfiesch
Copy link
Collaborator

@wolfiesch wolfiesch commented Jan 15, 2026

Summary

Adds the official FGP skills tap structure:

  • JSON Schema for skill.yaml validation
  • Example skill (research-assistant) demonstrating the format
  • Tap metadata (tap.yaml) for GitHub-based distribution

Files Added

protocol/
├── tap.yaml                           # Tap metadata (name, description, categories)
├── schemas/
│   └── skill.schema.json              # JSON Schema for skill.yaml validation
└── skills/
    └── research-assistant/            # Example skill package
        ├── skill.yaml                 # Skill manifest
        ├── instructions/
        │   ├── core.md                # Agent-agnostic instructions
        │   ├── claude-code.md         # Claude Code specific
        │   └── cursor.md              # Cursor specific
        ├── workflows/
        │   ├── research.yaml          # Full research workflow
        │   └── quick-search.yaml      # Fast search workflow
        └── README.md

Usage

# Add this tap
fgp skill tap add fast-gateway-protocol/protocol

# Search for skills
fgp skill search research

# Install a skill
fgp skill install research-assistant

Test plan

  • fgp skill validate skills/research-assistant/ passes
  • Skill installs correctly from tap
  • Auto-exports to Claude Code SKILL.md

🤖 Generated with Claude Code

Defines the skill package format for FGP's composed skill layer:

Schema (schemas/skill.schema.json):
- Skill metadata (name, version, description, author)
- Daemon dependencies with version requirements
- Agent-specific instruction files
- Triggers (keywords, patterns, commands)
- Workflows (DAG references)
- Auth requirements and permissions
- Export configurations

Example (examples/research-assistant/):
- Complete skill package demonstrating the format
- Instructions for Claude Code, Cursor, and core
- Two workflow definitions (research, quick-search)
- README with usage documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings January 15, 2026 09:28
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a JSON Schema specification for FGP skill packages and provides a comprehensive example demonstrating the skill package format. The schema defines the structure for Layer 1 composed skills that orchestrate daemon dependencies, workflows, and agent-specific instructions.

Changes:

  • Added JSON Schema for skill.yaml manifest files with validation rules for metadata, dependencies, triggers, workflows, and permissions
  • Provided complete research-assistant example skill with multi-agent instructions and two workflow definitions
  • Documented skill package structure with README and agent-specific instruction files

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
schemas/skill.schema.json JSON Schema defining skill manifest structure with comprehensive validation rules
examples/research-assistant/skill.yaml Example skill manifest demonstrating browser and gmail daemon dependencies
examples/research-assistant/workflows/research.yaml Full research workflow with templating, daemon calls, and conditional email step
examples/research-assistant/workflows/quick-search.yaml Simplified quick-search workflow without email functionality
examples/research-assistant/instructions/core.md Agent-agnostic core instructions for the research assistant skill
examples/research-assistant/instructions/claude-code.md Claude Code-specific instructions with step-by-step execution guidance
examples/research-assistant/instructions/cursor.md Cursor-specific rules and command examples
examples/research-assistant/README.md Documentation for installation, usage, configuration, and development

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- click
gmail:
- send
filesystem: deny
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The filesystem: deny entry appears under permissions.daemons, but according to the schema, the daemons property expects daemon names (like browser, gmail) mapped to either arrays of method names or the strings 'all'/'deny'. filesystem is not a daemon name and seems misplaced. If this is intended to be a permission type separate from daemons, it should be at the same level as network and subprocess in the permissions object, not nested under daemons.

Suggested change
filesystem: deny
filesystem: deny

Copilot uses AI. Check for mistakes.
- search
cursor:
enabled: true
rules_file: ./exports/cursor-rules.md
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cursor export configuration references ./exports/cursor-rules.md, but this file does not exist in the example directory structure. Either the file should be created or the reference should be updated to point to an existing file (such as ./instructions/cursor.md).

Suggested change
rules_file: ./exports/cursor-rules.md
rules_file: ./instructions/cursor.md

Copilot uses AI. Check for mistakes.
Comment on lines +57 to +58
# Extract search results from ARIA tree
# Returns structured data with titles, URLs, snippets
Copy link

Copilot AI Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The transform field contains only placeholder comments without actual transformation logic. While this may be acceptable for an example demonstrating the workflow format, it should either include a minimal working implementation or be clearly marked as a placeholder that needs to be implemented. Consider adding a note indicating this is example scaffolding.

Suggested change
# Extract search results from ARIA tree
# Returns structured data with titles, URLs, snippets
# TODO: Implement extraction of search results from the browser snapshot.
# This is example scaffolding only and does not perform any real transformation.
# Expected output is structured data with titles, URLs, and snippets.

Copilot uses AI. Check for mistakes.
- Move example skill to skills/ directory
- Add tap.yaml metadata
- Structure repo for use as fgp skill tap

This allows the protocol repo to be used as:
  fgp skill tap add fast-gateway-protocol/protocol

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@wolfiesch wolfiesch merged commit 0853921 into master Jan 15, 2026
@wolfiesch wolfiesch deleted the feat/skill-yaml-schema branch January 15, 2026 10:08
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