Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 10 additions & 14 deletions .github/skills/error-messages/ssl.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
"goal": "Determine error category and required message components",
"entry_condition": "$error_context and $validation_rule are available",
"exit_condition": "$error_category and $message_components are selected",
"next_scene_rules": [
{"condition": "category determined", "target": "scene_act"}
],
"next_scene_rules": [{ "condition": "category determined", "target": "scene_act" }],
"inputs": ["$error_context", "$invalid_input", "$validation_rule"],
"outputs": ["$error_category", "$message_components"],
"entry_logic_step": "step_reason_classify"
Expand All @@ -31,9 +29,7 @@
"goal": "Compose error message string using the three-part template",
"entry_condition": "$error_category and $message_components are ready",
"exit_condition": "$error_message is composed",
"next_scene_rules": [
{"condition": "success", "target": "scene_verify"}
],
"next_scene_rules": [{ "condition": "success", "target": "scene_verify" }],
"inputs": ["$error_category", "$message_components", "$invalid_input"],
"outputs": ["$error_message"],
"entry_logic_step": "step_act_compose"
Expand All @@ -45,8 +41,8 @@
"entry_condition": "$error_message is composed",
"exit_condition": "$error_message passes completeness check",
"next_scene_rules": [
{"condition": "message is complete and actionable", "target": "END_SUCCESS"},
{"condition": "message is incomplete", "target": "END_FAIL"}
{ "condition": "message is complete and actionable", "target": "END_SUCCESS" },
{ "condition": "message is incomplete", "target": "END_FAIL" }
],
"inputs": ["$error_message"],
"outputs": ["$error_message"],
Expand All @@ -60,8 +56,8 @@
"action_type": "SELECT",
"resource_scope": "MEMORY",
"description": "Classify the error as format, type, enum, or configuration validation to determine required message components",
"inputs": {"context": "$error_context", "rule": "$validation_rule"},
"outputs": {"category": "$error_category", "components": "$message_components"},
"inputs": { "context": "$error_context", "rule": "$validation_rule" },
"outputs": { "category": "$error_category", "components": "$message_components" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -70,8 +66,8 @@
"action_type": "WRITE",
"resource_scope": "MEMORY",
"description": "Compose the error message string: [what is wrong]. [what is expected]. [example of correct usage]",
"inputs": {"category": "$error_category", "components": "$message_components", "input": "$invalid_input"},
"outputs": {"message": "$error_message"},
"inputs": { "category": "$error_category", "components": "$message_components", "input": "$invalid_input" },
"outputs": { "message": "$error_message" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -80,8 +76,8 @@
"action_type": "VALIDATE",
"resource_scope": "MEMORY",
"description": "Check that $error_message contains all three template components: problem statement, expected format or values, and a concrete usage example",
"inputs": {"message": "$error_message"},
"outputs": {"validated": "$error_message"},
"inputs": { "message": "$error_message" },
"outputs": { "validated": "$error_message" },
"next": "YIELD_SUCCESS"
}
]
Expand Down
26 changes: 12 additions & 14 deletions .github/skills/jqschema/ssl.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
"entry_condition": "$GITHUB_WORKSPACE is set and jqschema.sh exists in the skill directory",
"exit_condition": "/tmp/gh-aw/jqschema.sh is executable",
"next_scene_rules": [
{"condition": "setup successful", "target": "scene_acquire"},
{"condition": "setup failed", "target": "END_FAIL"}
{ "condition": "setup successful", "target": "scene_acquire" },
{ "condition": "setup failed", "target": "END_FAIL" }
],
"inputs": ["$GITHUB_WORKSPACE"],
"outputs": ["$jqschema_bin"],
Expand All @@ -32,9 +32,7 @@
"goal": "Receive JSON input to analyze",
"entry_condition": "$jqschema_bin is available",
"exit_condition": "$json_input is available as a processable stream",
"next_scene_rules": [
{"condition": "input available", "target": "scene_act"}
],
"next_scene_rules": [{ "condition": "input available", "target": "scene_act" }],
"inputs": ["$json_input"],
"outputs": ["$json_input"],
"entry_logic_step": "step_acquire_receive"
Expand All @@ -46,8 +44,8 @@
"entry_condition": "$json_input and $jqschema_bin are ready",
"exit_condition": "$schema_output is produced",
"next_scene_rules": [
{"condition": "execution successful", "target": "END_SUCCESS"},
{"condition": "jq execution error", "target": "END_FAIL"}
{ "condition": "execution successful", "target": "END_SUCCESS" },
{ "condition": "jq execution error", "target": "END_FAIL" }
],
"inputs": ["$json_input", "$jqschema_bin"],
"outputs": ["$schema_output"],
Expand All @@ -61,7 +59,7 @@
"action_type": "CALL_TOOL",
"resource_scope": "LOCAL_FS",
"description": "Create /tmp/gh-aw directory if it does not exist",
"inputs": {"path": "/tmp/gh-aw"},
"inputs": { "path": "/tmp/gh-aw" },
"outputs": {},
"next": "step_prepare_copy"
},
Expand All @@ -71,8 +69,8 @@
"action_type": "CALL_TOOL",
"resource_scope": "LOCAL_FS",
"description": "Copy jqschema.sh from $GITHUB_WORKSPACE/.github/skills/jqschema/ to /tmp/gh-aw/ and set executable permissions",
"inputs": {"source": "$GITHUB_WORKSPACE/.github/skills/jqschema/jqschema.sh", "dest": "/tmp/gh-aw/jqschema.sh"},
"outputs": {"bin": "$jqschema_bin"},
"inputs": { "source": "$GITHUB_WORKSPACE/.github/skills/jqschema/jqschema.sh", "dest": "/tmp/gh-aw/jqschema.sh" },
"outputs": { "bin": "$jqschema_bin" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -81,8 +79,8 @@
"action_type": "READ",
"resource_scope": "PROCESS",
"description": "Receive JSON data as stdin or from a file path, binding the result to $json_input",
"inputs": {"data": "$json_input"},
"outputs": {"data": "$json_input"},
"inputs": { "data": "$json_input" },
"outputs": { "data": "$json_input" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -91,8 +89,8 @@
"action_type": "CALL_TOOL",
"resource_scope": "PROCESS",
"description": "Pipe $json_input through $jqschema_bin to produce a compact structural schema that replaces values with type names",
"inputs": {"json": "$json_input", "bin": "$jqschema_bin"},
"outputs": {"schema": "$schema_output"},
"inputs": { "json": "$json_input", "bin": "$jqschema_bin" },
"outputs": { "schema": "$schema_output" },
"next": "YIELD_SUCCESS"
}
]
Expand Down
14 changes: 5 additions & 9 deletions .github/skills/reporting/ssl.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
"goal": "Wrap report content in HTML details/summary tags",
"entry_condition": "$report_content and $report_title are available",
"exit_condition": "$formatted_report is composed",
"next_scene_rules": [
{"condition": "success", "target": "scene_finalize"}
],
"next_scene_rules": [{ "condition": "success", "target": "scene_finalize" }],
"inputs": ["$report_content", "$report_title"],
"outputs": ["$formatted_report"],
"entry_logic_step": "step_act_compose"
Expand All @@ -31,9 +29,7 @@
"goal": "Emit the formatted report as final output",
"entry_condition": "$formatted_report is ready",
"exit_condition": "report emitted to caller",
"next_scene_rules": [
{"condition": "success", "target": "END_SUCCESS"}
],
"next_scene_rules": [{ "condition": "success", "target": "END_SUCCESS" }],
"inputs": ["$formatted_report"],
"outputs": ["$formatted_report"],
"entry_logic_step": "step_finalize_emit"
Expand All @@ -46,8 +42,8 @@
"action_type": "WRITE",
"resource_scope": "MEMORY",
"description": "Compose HTML <details>/<summary> wrapper around $report_content using $report_title as the summary label",
"inputs": {"content": "$report_content", "title": "$report_title"},
"outputs": {"formatted": "$formatted_report"},
"inputs": { "content": "$report_content", "title": "$report_title" },
"outputs": { "formatted": "$formatted_report" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -56,7 +52,7 @@
"action_type": "TERMINATE",
"resource_scope": "MEMORY",
"description": "Emit $formatted_report as the final output to the caller",
"inputs": {"report": "$formatted_report"},
"inputs": { "report": "$formatted_report" },
"outputs": {},
"next": "YIELD_SUCCESS"
}
Expand Down
62 changes: 30 additions & 32 deletions .github/skills/ssl/ssl.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
"entry_condition": "$skill_path is provided and the file exists",
"exit_condition": "$raw_text and $frontmatter are available in memory",
"next_scene_rules": [
{"condition": "parse succeeded", "target": "scene_reason"},
{"condition": "file not found or parse error", "target": "END_FAIL"}
{ "condition": "parse succeeded", "target": "scene_reason" },
{ "condition": "file not found or parse error", "target": "END_FAIL" }
],
"inputs": ["$skill_path"],
"outputs": ["$raw_text", "$frontmatter"],
Expand All @@ -32,9 +32,7 @@
"goal": "Run Passes 1–3: extract scheduling metadata, decompose scenes, and expand logic steps into a draft SSL JSON",
"entry_condition": "$raw_text and $frontmatter are available",
"exit_condition": "$draft_ssl is produced as an in-memory JSON object",
"next_scene_rules": [
{"condition": "draft produced", "target": "scene_verify"}
],
"next_scene_rules": [{ "condition": "draft produced", "target": "scene_verify" }],
"inputs": ["$raw_text", "$frontmatter"],
"outputs": ["$draft_ssl"],
"entry_logic_step": "step_reason_pass1"
Expand All @@ -46,9 +44,9 @@
"entry_condition": "$draft_ssl is available",
"exit_condition": "$draft_ssl passes all Pass-4 validation rules, or retry budget is exhausted",
"next_scene_rules": [
{"condition": "all validation rules pass", "target": "scene_finalize"},
{"condition": "validation failures detected and retry budget remains", "target": "scene_recover"},
{"condition": "validation failures detected and retry budget exhausted", "target": "END_FAIL"}
{ "condition": "all validation rules pass", "target": "scene_finalize" },
{ "condition": "validation failures detected and retry budget remains", "target": "scene_recover" },
{ "condition": "validation failures detected and retry budget exhausted", "target": "END_FAIL" }
],
"inputs": ["$draft_ssl"],
"outputs": ["$validation_failures"],
Expand All @@ -61,8 +59,8 @@
"entry_condition": "$validation_failures is non-empty and $retry_count < retry_budget",
"exit_condition": "$retry_count is incremented and $draft_ssl is cleared for regeneration",
"next_scene_rules": [
{"condition": "retry budget not exhausted", "target": "scene_reason"},
{"condition": "retry budget exhausted", "target": "END_FAIL"}
{ "condition": "retry budget not exhausted", "target": "scene_reason" },
{ "condition": "retry budget exhausted", "target": "END_FAIL" }
],
"inputs": ["$validation_failures", "$retry_count"],
"outputs": ["$retry_count", "$failure_log"],
Expand All @@ -75,8 +73,8 @@
"entry_condition": "$draft_ssl passed all validation rules",
"exit_condition": "ssl.json is written to disk and $validation_report is emitted",
"next_scene_rules": [
{"condition": "write succeeded", "target": "END_SUCCESS"},
{"condition": "write failed", "target": "END_FAIL"}
{ "condition": "write succeeded", "target": "END_SUCCESS" },
{ "condition": "write failed", "target": "END_FAIL" }
],
"inputs": ["$draft_ssl", "$failure_log"],
"outputs": ["$ssl_json", "$validation_report"],
Expand All @@ -90,8 +88,8 @@
"action_type": "READ",
"resource_scope": "LOCAL_FS",
"description": "Read the SKILL.md file at $skill_path into $raw_text",
"inputs": {"path": "$skill_path"},
"outputs": {"text": "$raw_text"},
"inputs": { "path": "$skill_path" },
"outputs": { "text": "$raw_text" },
"next": "step_prepare_parse"
},
{
Expand All @@ -100,8 +98,8 @@
"action_type": "INFER",
"resource_scope": "MEMORY",
"description": "Parse YAML frontmatter and markdown body from $raw_text into $frontmatter and $body",
"inputs": {"text": "$raw_text"},
"outputs": {"frontmatter": "$frontmatter", "body": "$body"},
"inputs": { "text": "$raw_text" },
"outputs": { "frontmatter": "$frontmatter", "body": "$body" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -110,8 +108,8 @@
"action_type": "INFER",
"resource_scope": "MEMORY",
"description": "Pass 1 – Extract scheduling layer: id, name, goal, intent_signature, inputs, outputs, dependencies, control_flow_features, entry_scene, subscene_refs from $frontmatter and $body",
"inputs": {"frontmatter": "$frontmatter", "body": "$body"},
"outputs": {"scheduling": "$scheduling"},
"inputs": { "frontmatter": "$frontmatter", "body": "$body" },
"outputs": { "scheduling": "$scheduling" },
"next": "step_reason_pass2"
},
{
Expand All @@ -120,8 +118,8 @@
"action_type": "INFER",
"resource_scope": "MEMORY",
"description": "Pass 2 – Decompose skill execution flow into 2–5 macro-level scenes with allowed types, entry/exit conditions, transition rules, and input/output bindings",
"inputs": {"body": "$body", "scheduling": "$scheduling"},
"outputs": {"scenes": "$scenes"},
"inputs": { "body": "$body", "scheduling": "$scheduling" },
"outputs": { "scenes": "$scenes" },
"next": "step_reason_pass3"
},
{
Expand All @@ -130,8 +128,8 @@
"action_type": "INFER",
"resource_scope": "MEMORY",
"description": "Pass 3 – Expand each scene into atomic logic steps with allowed action types, resource scopes, and $-prefixed variable bindings",
"inputs": {"body": "$body", "scenes": "$scenes"},
"outputs": {"logic_steps": "$logic_steps"},
"inputs": { "body": "$body", "scenes": "$scenes" },
"outputs": { "logic_steps": "$logic_steps" },
"next": "step_reason_compose"
},
{
Expand All @@ -140,8 +138,8 @@
"action_type": "WRITE",
"resource_scope": "MEMORY",
"description": "Assemble $scheduling, $scenes, and $logic_steps into the $draft_ssl JSON object",
"inputs": {"scheduling": "$scheduling", "scenes": "$scenes", "logic_steps": "$logic_steps"},
"outputs": {"draft": "$draft_ssl"},
"inputs": { "scheduling": "$scheduling", "scenes": "$scenes", "logic_steps": "$logic_steps" },
"outputs": { "draft": "$draft_ssl" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -150,8 +148,8 @@
"action_type": "VALIDATE",
"resource_scope": "MEMORY",
"description": "Run all Pass-4 validation rules against $draft_ssl: JSON syntax, required fields, enum membership, unique IDs, entry pointers, transition targets, graph integrity",
"inputs": {"draft": "$draft_ssl"},
"outputs": {"failures": "$validation_failures"},
"inputs": { "draft": "$draft_ssl" },
"outputs": { "failures": "$validation_failures" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -160,8 +158,8 @@
"action_type": "UPDATE_STATE",
"resource_scope": "MEMORY",
"description": "Append $validation_failures to $failure_log and increment $retry_count",
"inputs": {"failures": "$validation_failures", "retry_count": "$retry_count"},
"outputs": {"retry_count": "$retry_count", "failure_log": "$failure_log"},
"inputs": { "failures": "$validation_failures", "retry_count": "$retry_count" },
"outputs": { "retry_count": "$retry_count", "failure_log": "$failure_log" },
"next": "YIELD_SUCCESS"
},
{
Expand All @@ -170,8 +168,8 @@
"action_type": "WRITE",
"resource_scope": "LOCAL_FS",
"description": "Write $draft_ssl as ssl.json into the same directory as the source SKILL.md",
"inputs": {"draft": "$draft_ssl", "skill_path": "$skill_path"},
"outputs": {"ssl_json": "$ssl_json"},
"inputs": { "draft": "$draft_ssl", "skill_path": "$skill_path" },
"outputs": { "ssl_json": "$ssl_json" },
"next": "step_finalize_report"
},
{
Expand All @@ -180,8 +178,8 @@
"action_type": "NOTIFY",
"resource_scope": "MEMORY",
"description": "Compose and emit the validation report containing processed count, valid/rejected counts, and per-artifact diagnostics from $failure_log",
"inputs": {"ssl_json": "$ssl_json", "failure_log": "$failure_log"},
"outputs": {"report": "$validation_report"},
"inputs": { "ssl_json": "$ssl_json", "failure_log": "$failure_log" },
"outputs": { "report": "$validation_report" },
"next": "YIELD_SUCCESS"
}
]
Expand Down
Loading