ssljson

package
v0.74.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package ssljson implements a Go analysis linter that validates .github/skills/*/ssl.json files against the SSL specification rules.

The analyzer fires only when run against its own anchor package (github.com/github/gh-aw/pkg/linters/ssljson), ensuring it executes exactly once per golint-custom invocation without producing duplicate diagnostics across every package in ./cmd/... and ./pkg/...

Index

Constants

This section is empty.

Variables

View Source
var Analyzer = &analysis.Analyzer{
	Name: "ssljson",
	Doc:  "validates .github/skills/*/ssl.json files against the SSL specification enum and graph rules",
	URL:  "https://github.com/github/gh-aw/tree/main/pkg/linters/ssljson",
	Run:  run,
}

Analyzer is the ssl-json analysis pass.

Functions

func FindSSLFiles

func FindSSLFiles(root string) ([]string, error)

FindSSLFiles returns all ssl.json file paths found under root/.github/skills/.

func ValidateDoc

func ValidateDoc(doc SSLDoc) []string

ValidateDoc validates an SSLDoc against all SSL Pass-4 rules. It returns a slice of diagnostic messages; an empty slice means the document is valid.

Types

type SSLDoc

type SSLDoc struct {
	Scheduling SSLScheduling `json:"scheduling"`
	Scenes     []SSLScene    `json:"scenes"`
	LogicSteps []SSLStep     `json:"logic_steps"`
}

SSLDoc is the top-level structure of an ssl.json file.

func LoadDoc

func LoadDoc(path string) (SSLDoc, error)

LoadDoc reads and parses an ssl.json file from disk.

type SSLScene

type SSLScene struct {
	ID             string         `json:"id"`
	Type           string         `json:"type"`
	EntryLogicStep string         `json:"entry_logic_step"`
	NextSceneRules []SSLSceneRule `json:"next_scene_rules"`
}

SSLScene is a macro-level execution stage.

type SSLSceneRule

type SSLSceneRule struct {
	Condition string `json:"condition"`
	Target    string `json:"target"`
}

SSLSceneRule is a conditional transition rule for a scene.

type SSLScheduling

type SSLScheduling struct {
	ID         string `json:"id"`
	EntryScene string `json:"entry_scene"`
}

SSLScheduling holds the scheduling layer of an SSL document.

type SSLStep

type SSLStep struct {
	ID            string `json:"id"`
	SceneID       string `json:"scene_id"`
	ActionType    string `json:"action_type"`
	ResourceScope string `json:"resource_scope"`
	Next          string `json:"next"`
}

SSLStep is an atomic logic step within a scene.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL