Claudeagent and ClaudeagentA JavaScript action's pre runs as on GitHub's runner: before the job's first step, a step of its own named Pre and the step's name, in step order and when its pre-if holds, and what it saves with GITHUB_STATE or ::save-state:: reaches the step's main and post as STATE_<name>; an action in the repository warns that its pre is not run, as GitHub does, and a step that gives an input its action does not declare is warned of with GitHub's words. Problem matchers work: ::add-matcher:: reads GitHub's JSON format, with patterns over several lines and loop, and ::remove-matcher:: takes one away, so the matchers actions/setup-node, setup-go and setup-python add turn compiler and linter output into annotations in place of the line. Annotations carry their column, end line and end column, ::echo::on and ::echo::off show workflow commands in the log, shell: python runs python where there is one and python3 otherwise, PowerShell scripts stop at the first error and exit with the last program's code, each script gets GitHub's extension for its shell, and an action declaring node20 runs on Node 20 where the machine has one. Steps get RUNNER_WORKSPACE, GITHUB_REPOSITORY_OWNER_ID when the event names the owner's id, and a GITHUB_ACTION of __run, __run_2 and on for run steps. The actions guide says so.4810c20History
README.md
GitHub's workflow schema
workflow-v1.0.json is GitHub's schema for workflow files, copied unchanged from
actions/languageservices, file
workflow-parser/src/workflow-v1.0.json, at commit
4043eda158e16579cc5fb1b0b07a4bce2a76f0b5 (5 August 2026). It is MIT licensed;
LICENSE is that repository's licence, copied from the same commit.
g1t does not read it at run time. src/syntax.rs lists the keys each part of a
workflow may have, and its tests check those lists against this file, so they
cannot drift from GitHub's. To update it, copy the file again, write the commit
here, and run cargo test -p g1t-actions.