vouchington-tooling 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/cli/usage.d.mts +1 -1
- package/dist/cli/usage.mjs +1 -1
- package/dist/gha-dependabot-automerge-action/index.test-helpers.d.mts +1 -1
- package/dist/gha-dependabot-automerge-action/index.test-helpers.mjs +2 -1
- package/dist/skill-discovery/index.mjs +13 -1
- package/package.json +1 -1
- package/skills/github-actions-authoring/SKILL.md +47 -0
- package/skills/manifest.json +22 -15
package/README.md
CHANGED
|
@@ -241,6 +241,9 @@ cross-references and never cause additional skills to be linked.
|
|
|
241
241
|
Use `readSkillManifest(skillsRoot)` to discover installed skills or
|
|
242
242
|
`linkSkill({ name, sourceRoot, targetRoot })` to link one into an explicit consumer directory. The
|
|
243
243
|
CLI equivalent is `vouchington link-skill <name> --source-root <skills-dir> --target-root <dir>`.
|
|
244
|
-
|
|
244
|
+
When `sourceRoot` contains `manifest.json`, linking validates the packaged inventory and recursively
|
|
245
|
+
links declared prerequisites. Without a manifest, it links the conventional
|
|
246
|
+
`<sourceRoot>/<name>/SKILL.md` repository-local skill. It rejects missing or unsafe sources, paths
|
|
247
|
+
outside either root, and existing non-matching destinations.
|
|
245
248
|
`targetRoot` must already exist as a physical directory path: symlinked target roots or ancestors are
|
|
246
249
|
rejected.
|
package/dist/cli/usage.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const USAGE = "Usage: vouchington <command> [options]\n\nCommands:\n runner-port-policy Print or validate a runner port policy\n with-host-lock Run a command under a host-wide lock\n gha-runtime-audit Audit successful GitHub Actions job runtimes\n gha-output Write a collision-safe multiline GITHUB_OUTPUT record\n gha-needs-results Fail if required GitHub Actions job results failed\n download-with-diagnostics Download a URL and report HTTP status on failure\n download-optional-run-artifacts Download optional artifacts from the current run\n host-pressure-diagnostics Print a bounded host memory/OOM/PSI snapshot\n allocate-browser-safe-ports Allocate Fetch-safe localhost ports\n diagnose-port-collision Capture bounded localhost port diagnostics\n prepare-trivy-db Download the Trivy vulnerability database\n gha-artifacts-cleanup Delete classified GitHub Actions artifacts\n http-origin Validate an optional HTTP(S) origin\n vitest-blob-manifest Stamp a vitest-blob-manifest:v1 identity file\n pnpm-install Install a pnpm workspace with retry and release-age fail-fast\n check-cache-size Measure a path and decide whether to save a GHA cache\n make-shard-matrix Emit a [1..N] GitHub Actions shard matrix\n load-runner-env Overlay a runner env file onto GITHUB_ENV with injection guards\n clean-workspace Reset a persistent-runner workspace with a fork-PR trust gate\n install-github-release Download a checksum-verified GitHub Release binary\n run-with-timeout Run a command with GNU timeout or a Perl fallback\n lint-links Two-pass lychee: internal links fail, external warn\n materialize-pr-context Dump PR title/body/files/diff/comments and #N crawl\n wait-for-apt-locks Wait until apt/dpkg lock files are free\n install-playwright-chromium-arm64 Install Playwright Chromium from browsers.json\n ghcr-package-retention Delete old GHCR package versions past KEEP_MIN\n harness-admission-lane Compute a GITHUB_RUN_ID admission lane for fleet fan-out\n harness-assert-gates Fail if any named HARNESS_*_ENABLED gate is enabled\n nuget-central-version Validate a Directory.Packages.props PackageVersion delta\n swift-semantic-equal Compare Swift sources ignoring comments and whitespace\n post-review Post one COMMENT review from a staged payload file\n stage-review-payload Validate a review payload file into a staging directory\n retrospective-transcript Format facts from Claude-compatible, Codex, or Grok transcripts\n link-skill Link one packaged skill into an explicit consumer directory\n retrospective-facts Gather immutable facts for a retrospective\n agent-blackboard Probe and journal an Agent Blackboard deployment\n\nOptions:\n -h, --help Show this help\n -v, --version Print the package version\n\nrunner-port-policy\n (no args) Print the shipped policy as JSON\n --file <path> Validate and print a policy file\n --reserved <port> Print true if the port is reserved\n\nwith-host-lock\n --name <family>\n [--slots <n>]\n --timeout-seconds <n>\n [--command-timeout-seconds <n>]\n [--failure-diagnostics <absolute-script>]\n [--on-acquire-timeout fail|run-unlocked]\n -- <command> [args...]\n\ngha-runtime-audit\n [--repository owner/name] Default GITHUB_REPOSITORY\n [--branch main]\n --pr-workflow <name|/regex/> Repeatable\n --push-workflow <name|/regex/> Repeatable\n\ngha-output <name>\ngha-needs-results [label]\ndownload-with-diagnostics <url> <destination> [-- curl-args...]\ndownload-optional-run-artifacts (--name <name> | --pattern <pattern>) --dir <directory>\nhost-pressure-diagnostics\nallocate-browser-safe-ports [count] [--policy path] [--forbidden-ports path]\ndiagnose-port-collision [--ports \"2200 2216\"] [--output-dir PATH]\nprepare-trivy-db\ngha-artifacts-cleanup run --run-id <id> [--keep-pattern glob] [--delete-pattern glob] [--patterns-file json]\ngha-artifacts-cleanup sweep --older-than-hours <n> [--keep-pattern glob] [--delete-pattern glob] [--patterns-file json]\nhttp-origin [--field NAME] [value]\nvitest-blob-manifest <suite> [reports-directory]\npnpm-install --runner-lifecycle persistent|ephemeral|ephemeral-full --install-scripts true|false\ncheck-cache-size <path> <max-bytes> <label>\nmake-shard-matrix <total>\nload-runner-env\nclean-workspace\ninstall-github-release --repo owner/name --version X --asset 'name-{platform}.tar.gz' --bin name [--tag-prefix PREFIX] [--expected-sha256 SHA256] [--no-checksum] [--checksums-asset NAME] [--version-flag FLAG] [--bin-dir DIR]\nrun-with-timeout <timeout-seconds> <kill-after-seconds> <command...>\nlint-links [--offline] [--config PATH] [--glob PATTERN] [files...]\nmaterialize-pr-context\nwait-for-apt-locks\ninstall-playwright-chromium-arm64 [name:archive...]\nghcr-package-retention <url-encoded-package>...\nharness-admission-lane <lanes>\nharness-assert-gates <gate>...\nnuget-central-version <trusted-props> <candidate-props> <metadata-json> <output-props>\nswift-semantic-equal <base> <head> <file.swift>\npost-review\nstage-review-payload optional|required <source> <destination>\nretrospective-transcript [--session-id ID] [--jsonl PATH] [--projects-dir PATH] [--codex-sessions-dir PATH] [--grok-sessions-dir PATH]\nlink-skill <name> --source-root <skills-dir> --target-root <consumer-skills-dir
|
|
1
|
+
export declare const USAGE = "Usage: vouchington <command> [options]\n\nCommands:\n runner-port-policy Print or validate a runner port policy\n with-host-lock Run a command under a host-wide lock\n gha-runtime-audit Audit successful GitHub Actions job runtimes\n gha-output Write a collision-safe multiline GITHUB_OUTPUT record\n gha-needs-results Fail if required GitHub Actions job results failed\n download-with-diagnostics Download a URL and report HTTP status on failure\n download-optional-run-artifacts Download optional artifacts from the current run\n host-pressure-diagnostics Print a bounded host memory/OOM/PSI snapshot\n allocate-browser-safe-ports Allocate Fetch-safe localhost ports\n diagnose-port-collision Capture bounded localhost port diagnostics\n prepare-trivy-db Download the Trivy vulnerability database\n gha-artifacts-cleanup Delete classified GitHub Actions artifacts\n http-origin Validate an optional HTTP(S) origin\n vitest-blob-manifest Stamp a vitest-blob-manifest:v1 identity file\n pnpm-install Install a pnpm workspace with retry and release-age fail-fast\n check-cache-size Measure a path and decide whether to save a GHA cache\n make-shard-matrix Emit a [1..N] GitHub Actions shard matrix\n load-runner-env Overlay a runner env file onto GITHUB_ENV with injection guards\n clean-workspace Reset a persistent-runner workspace with a fork-PR trust gate\n install-github-release Download a checksum-verified GitHub Release binary\n run-with-timeout Run a command with GNU timeout or a Perl fallback\n lint-links Two-pass lychee: internal links fail, external warn\n materialize-pr-context Dump PR title/body/files/diff/comments and #N crawl\n wait-for-apt-locks Wait until apt/dpkg lock files are free\n install-playwright-chromium-arm64 Install Playwright Chromium from browsers.json\n ghcr-package-retention Delete old GHCR package versions past KEEP_MIN\n harness-admission-lane Compute a GITHUB_RUN_ID admission lane for fleet fan-out\n harness-assert-gates Fail if any named HARNESS_*_ENABLED gate is enabled\n nuget-central-version Validate a Directory.Packages.props PackageVersion delta\n swift-semantic-equal Compare Swift sources ignoring comments and whitespace\n post-review Post one COMMENT review from a staged payload file\n stage-review-payload Validate a review payload file into a staging directory\n retrospective-transcript Format facts from Claude-compatible, Codex, or Grok transcripts\n link-skill Link one packaged skill into an explicit consumer directory\n retrospective-facts Gather immutable facts for a retrospective\n agent-blackboard Probe and journal an Agent Blackboard deployment\n\nOptions:\n -h, --help Show this help\n -v, --version Print the package version\n\nrunner-port-policy\n (no args) Print the shipped policy as JSON\n --file <path> Validate and print a policy file\n --reserved <port> Print true if the port is reserved\n\nwith-host-lock\n --name <family>\n [--slots <n>]\n --timeout-seconds <n>\n [--command-timeout-seconds <n>]\n [--failure-diagnostics <absolute-script>]\n [--on-acquire-timeout fail|run-unlocked]\n -- <command> [args...]\n\ngha-runtime-audit\n [--repository owner/name] Default GITHUB_REPOSITORY\n [--branch main]\n --pr-workflow <name|/regex/> Repeatable\n --push-workflow <name|/regex/> Repeatable\n\ngha-output <name>\ngha-needs-results [label]\ndownload-with-diagnostics <url> <destination> [-- curl-args...]\ndownload-optional-run-artifacts (--name <name> | --pattern <pattern>) --dir <directory>\nhost-pressure-diagnostics\nallocate-browser-safe-ports [count] [--policy path] [--forbidden-ports path]\ndiagnose-port-collision [--ports \"2200 2216\"] [--output-dir PATH]\nprepare-trivy-db\ngha-artifacts-cleanup run --run-id <id> [--keep-pattern glob] [--delete-pattern glob] [--patterns-file json]\ngha-artifacts-cleanup sweep --older-than-hours <n> [--keep-pattern glob] [--delete-pattern glob] [--patterns-file json]\nhttp-origin [--field NAME] [value]\nvitest-blob-manifest <suite> [reports-directory]\npnpm-install --runner-lifecycle persistent|ephemeral|ephemeral-full --install-scripts true|false\ncheck-cache-size <path> <max-bytes> <label>\nmake-shard-matrix <total>\nload-runner-env\nclean-workspace\ninstall-github-release --repo owner/name --version X --asset 'name-{platform}.tar.gz' --bin name [--tag-prefix PREFIX] [--expected-sha256 SHA256] [--no-checksum] [--checksums-asset NAME] [--version-flag FLAG] [--bin-dir DIR]\nrun-with-timeout <timeout-seconds> <kill-after-seconds> <command...>\nlint-links [--offline] [--config PATH] [--glob PATTERN] [files...]\nmaterialize-pr-context\nwait-for-apt-locks\ninstall-playwright-chromium-arm64 [name:archive...]\nghcr-package-retention <url-encoded-package>...\nharness-admission-lane <lanes>\nharness-assert-gates <gate>...\nnuget-central-version <trusted-props> <candidate-props> <metadata-json> <output-props>\nswift-semantic-equal <base> <head> <file.swift>\npost-review\nstage-review-payload optional|required <source> <destination>\nretrospective-transcript [--session-id ID] [--jsonl PATH] [--projects-dir PATH] [--codex-sessions-dir PATH] [--grok-sessions-dir PATH]\nlink-skill <name> --source-root <skills-dir> --target-root <consumer-skills-dir> Link a packaged or repository-local skill\nretrospective-facts (--pr NUMBER | --branch NAME | --no-pr) [--repo OWNER/NAME] [--raw]\nagent-blackboard probe\nagent-blackboard journal append --session-id UUID --agent NAME --version VERSION --file PATH [--parent-session-id UUID] [--timestamp ISO8601]\nagent-blackboard journal entries --session-id UUID\nagent-blackboard snapshot partition --snapshot PATH --checksum SHA256 --counts '{\"sessions\":N,\"entries\":N,\"records\":N,\"bytes\":N}'\nagent-blackboard snapshot cleanup [--snapshot PATH] [--partition-directory PATH --receipt JSON]\n";
|
|
2
2
|
export declare function printUsage(stream?: NodeJS.WritableStream): void;
|
package/dist/cli/usage.mjs
CHANGED
|
@@ -93,7 +93,7 @@ swift-semantic-equal <base> <head> <file.swift>
|
|
|
93
93
|
post-review
|
|
94
94
|
stage-review-payload optional|required <source> <destination>
|
|
95
95
|
retrospective-transcript [--session-id ID] [--jsonl PATH] [--projects-dir PATH] [--codex-sessions-dir PATH] [--grok-sessions-dir PATH]
|
|
96
|
-
link-skill <name> --source-root <skills-dir> --target-root <consumer-skills-dir>
|
|
96
|
+
link-skill <name> --source-root <skills-dir> --target-root <consumer-skills-dir> Link a packaged or repository-local skill
|
|
97
97
|
retrospective-facts (--pr NUMBER | --branch NAME | --no-pr) [--repo OWNER/NAME] [--raw]
|
|
98
98
|
agent-blackboard probe
|
|
99
99
|
agent-blackboard journal append --session-id UUID --agent NAME --version VERSION --file PATH [--parent-session-id UUID] [--timestamp ISO8601]
|
|
@@ -19,4 +19,4 @@ export declare function runPolicy(metadata: DependencyUpdate[] | string | undefi
|
|
|
19
19
|
}, dependabot?: {
|
|
20
20
|
directory: string;
|
|
21
21
|
ecosystem: string;
|
|
22
|
-
}, expectedBase?: string, expectedHead?: string, manualRules?: string, confirmedPullRequestOverrides?: Error | Record<string, unknown>, initialRefreshError?: Error): Promise<ScriptResult>;
|
|
22
|
+
}, expectedBase?: string, expectedHead?: string, manualRules?: string, confirmedPullRequestOverrides?: Error | Record<string, unknown>, initialRefreshError?: Error, metadataOutcome?: string): Promise<ScriptResult>;
|
|
@@ -14,7 +14,7 @@ export function update(prevVersion, newVersion, updateType, dependencyName = 'ex
|
|
|
14
14
|
updateType,
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
export async function runPolicy(metadata, pullRequestOverrides = {}, freshPullRequestOverrides = {}, mergeToken = 'merge-token', mutationResult = {}, dependabot = { directory: '/', ecosystem: 'npm' }, expectedBase, expectedHead, manualRules = '[]', confirmedPullRequestOverrides = freshPullRequestOverrides, initialRefreshError) {
|
|
17
|
+
export async function runPolicy(metadata, pullRequestOverrides = {}, freshPullRequestOverrides = {}, mergeToken = 'merge-token', mutationResult = {}, dependabot = { directory: '/', ecosystem: 'npm' }, expectedBase, expectedHead, manualRules = '[]', confirmedPullRequestOverrides = freshPullRequestOverrides, initialRefreshError, metadataOutcome = 'success') {
|
|
18
18
|
if (!script)
|
|
19
19
|
throw new Error('Dependabot auto-merge script is missing');
|
|
20
20
|
const failures = [];
|
|
@@ -74,6 +74,7 @@ export async function runPolicy(metadata, pullRequestOverrides = {}, freshPullRe
|
|
|
74
74
|
const environment = {
|
|
75
75
|
DEPENDABOT_DIRECTORY: dependabot.directory,
|
|
76
76
|
DEPENDABOT_ECOSYSTEM: dependabot.ecosystem,
|
|
77
|
+
DEPENDABOT_METADATA_OUTCOME: metadataOutcome,
|
|
77
78
|
EXPECTED_BASE_SHA: expectedBase ?? String(eventPullRequest.base.sha),
|
|
78
79
|
EXPECTED_HEAD_SHA: expectedHead ?? String(eventPullRequest.head.sha),
|
|
79
80
|
GRAPHQL_URL: 'https://github.example.test/api/graphql',
|
|
@@ -8,7 +8,16 @@ export async function linkSkill(options) {
|
|
|
8
8
|
throw new Error(`Invalid skill name: ${options.name}`);
|
|
9
9
|
const sourceRoot = resolve(options.sourceRoot);
|
|
10
10
|
const canonicalSourceRoot = await realpath(sourceRoot);
|
|
11
|
-
|
|
11
|
+
let manifest;
|
|
12
|
+
try {
|
|
13
|
+
manifest = await readSkillManifest(sourceRoot);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
if (!isMissingManifest(error))
|
|
17
|
+
throw error;
|
|
18
|
+
const targetRoot = await resolveTargetDirectory(options.targetRoot);
|
|
19
|
+
return linkResult(targetRoot, options.name, sourceRoot, canonicalSourceRoot, `${options.name}/SKILL.md`);
|
|
20
|
+
}
|
|
12
21
|
const entry = manifest.skills.find((candidate) => candidate.name === options.name);
|
|
13
22
|
if (entry === undefined)
|
|
14
23
|
throw new Error(`Unknown skill: ${options.name}`);
|
|
@@ -17,6 +26,9 @@ export async function linkSkill(options) {
|
|
|
17
26
|
const linking = new Set();
|
|
18
27
|
return linkManifestSkill(sourceRoot, canonicalSourceRoot, targetRoot, manifest, entry, linked, linking);
|
|
19
28
|
}
|
|
29
|
+
function isMissingManifest(error) {
|
|
30
|
+
return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT';
|
|
31
|
+
}
|
|
20
32
|
async function linkManifestSkill(sourceRoot, canonicalSourceRoot, targetRoot, manifest, entry, linked, linking) {
|
|
21
33
|
if (linked.has(entry.name))
|
|
22
34
|
return linkResult(targetRoot, entry.name, sourceRoot, canonicalSourceRoot, entry.path);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vouchington-tooling",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Vouchington CLI and extractable tooling libraries.",
|
|
5
5
|
"homepage": "https://github.com/vouchington/vouchington-tooling/tree/main/packages/vouchington-tooling#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-actions-authoring
|
|
3
|
+
description: Author or redesign GitHub Actions workflows around event-driven orchestration, with remote-state polling prohibited.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GitHub Actions authoring
|
|
7
|
+
|
|
8
|
+
Never poll in CI. A workflow must react to a state transition, not repeatedly ask whether remote
|
|
9
|
+
state has changed. Read [github-actions-checklist](../github-actions-checklist/SKILL.md) first, then
|
|
10
|
+
every applicable `AGENTS.md` and `CLAUDE.md`. Repository-local policy and the consumer wrapper own
|
|
11
|
+
runner labels, permissions, action pins, concurrency, secrets, and required-check names.
|
|
12
|
+
|
|
13
|
+
## Design the event graph
|
|
14
|
+
|
|
15
|
+
1. Name the producer, the durable transition it emits, and the consumer that owns the next action.
|
|
16
|
+
2. Use `needs` for jobs in one workflow and `workflow_call` for a reusable workflow whose caller
|
|
17
|
+
must await its result. When a consumer must run after failure or skip, give it an explicit status
|
|
18
|
+
condition and inspect `needs.<job>.result`; the implicit success condition skips it otherwise.
|
|
19
|
+
3. Use `workflow_run` when a completed workflow is the trusted event boundary. Validate the exact
|
|
20
|
+
source workflow, repository, branch or pull-request head, conclusion, and artifacts before acting.
|
|
21
|
+
The receiving workflow must already exist on the default branch, and GitHub starts at most three
|
|
22
|
+
chained `workflow_run` levels; plan rollout explicitly and collapse deeper chains into one DAG.
|
|
23
|
+
4. Use `repository_dispatch` for a cross-repository transition or authenticated external callback.
|
|
24
|
+
Authenticate the sender, pass immutable correlation data, validate it against the source, and make
|
|
25
|
+
duplicate delivery safe. Its receiving workflow must also already exist on the default branch,
|
|
26
|
+
so introduce and verify the receiver before enabling senders.
|
|
27
|
+
5. Prefer provider-native completion events, callbacks, queues, or state-machine transitions for
|
|
28
|
+
deployments and services. A scheduled reconciliation workflow may repair missed events, but it
|
|
29
|
+
must inspect a snapshot once and exit; it must not wait for convergence.
|
|
30
|
+
|
|
31
|
+
## Reject polling designs
|
|
32
|
+
|
|
33
|
+
Do not add a sleep-and-read loop, repeated run/check/deployment/lease/service queries, a CLI waiter,
|
|
34
|
+
or recursive redispatch whose purpose is to observe remote state eventually changing. Timeouts cap
|
|
35
|
+
cost but do not make polling event-driven. If the producer cannot emit a usable event, add a bridge
|
|
36
|
+
at the producer or provider boundary and let that bridge dispatch the correlated completion event.
|
|
37
|
+
|
|
38
|
+
Bounded retries are allowed only for the same failed operation when failure is transient and the
|
|
39
|
+
operation is idempotent. Local process readiness checks are allowed when the process runs inside the
|
|
40
|
+
job and cannot emit a workflow event. Neither exception permits repeated observation of remote state.
|
|
41
|
+
|
|
42
|
+
## Validate the result
|
|
43
|
+
|
|
44
|
+
Test accepted, rejected, duplicate, stale, and out-of-order events. Preserve required-check names
|
|
45
|
+
and prove that every terminal producer outcome causes one terminal consumer outcome. Run the local
|
|
46
|
+
workflow checker and affected tests, then inspect the completed event graph for credentials crossing
|
|
47
|
+
untrusted boundaries, missing correlation fields, and any remaining polling path.
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "agent-workflow",
|
|
6
6
|
"plugin": "vouchington-workflow",
|
|
7
|
-
"pluginVersion": "0.
|
|
7
|
+
"pluginVersion": "0.4.0",
|
|
8
8
|
"path": "agent-workflow/SKILL.md"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{
|
|
18
18
|
"name": "blackboard",
|
|
19
19
|
"plugin": "vouchington-workflow",
|
|
20
|
-
"pluginVersion": "0.
|
|
20
|
+
"pluginVersion": "0.4.0",
|
|
21
21
|
"path": "blackboard/SKILL.md"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
@@ -29,19 +29,26 @@
|
|
|
29
29
|
{
|
|
30
30
|
"name": "git-commit-checklist",
|
|
31
31
|
"plugin": "vouchington-workflow",
|
|
32
|
-
"pluginVersion": "0.
|
|
32
|
+
"pluginVersion": "0.4.0",
|
|
33
33
|
"path": "git-commit-checklist/SKILL.md"
|
|
34
34
|
},
|
|
35
|
+
{
|
|
36
|
+
"name": "github-actions-authoring",
|
|
37
|
+
"plugin": "vouchington-workflow",
|
|
38
|
+
"pluginVersion": "0.4.0",
|
|
39
|
+
"path": "github-actions-authoring/SKILL.md",
|
|
40
|
+
"prerequisites": ["github-actions-checklist"]
|
|
41
|
+
},
|
|
35
42
|
{
|
|
36
43
|
"name": "github-actions-checklist",
|
|
37
44
|
"plugin": "vouchington-workflow",
|
|
38
|
-
"pluginVersion": "0.
|
|
45
|
+
"pluginVersion": "0.4.0",
|
|
39
46
|
"path": "github-actions-checklist/SKILL.md"
|
|
40
47
|
},
|
|
41
48
|
{
|
|
42
49
|
"name": "github-issue",
|
|
43
50
|
"plugin": "vouchington-workflow",
|
|
44
|
-
"pluginVersion": "0.
|
|
51
|
+
"pluginVersion": "0.4.0",
|
|
45
52
|
"path": "github-issue/SKILL.md"
|
|
46
53
|
},
|
|
47
54
|
{
|
|
@@ -54,19 +61,19 @@
|
|
|
54
61
|
{
|
|
55
62
|
"name": "organize-github-issues",
|
|
56
63
|
"plugin": "vouchington-workflow",
|
|
57
|
-
"pluginVersion": "0.
|
|
64
|
+
"pluginVersion": "0.4.0",
|
|
58
65
|
"path": "organize-github-issues/SKILL.md"
|
|
59
66
|
},
|
|
60
67
|
{
|
|
61
68
|
"name": "package-json-checklist",
|
|
62
69
|
"plugin": "vouchington-workflow",
|
|
63
|
-
"pluginVersion": "0.
|
|
70
|
+
"pluginVersion": "0.4.0",
|
|
64
71
|
"path": "package-json-checklist/SKILL.md"
|
|
65
72
|
},
|
|
66
73
|
{
|
|
67
74
|
"name": "planning",
|
|
68
75
|
"plugin": "vouchington-workflow",
|
|
69
|
-
"pluginVersion": "0.
|
|
76
|
+
"pluginVersion": "0.4.0",
|
|
70
77
|
"path": "planning/SKILL.md"
|
|
71
78
|
},
|
|
72
79
|
{
|
|
@@ -90,43 +97,43 @@
|
|
|
90
97
|
{
|
|
91
98
|
"name": "pr-description",
|
|
92
99
|
"plugin": "vouchington-workflow",
|
|
93
|
-
"pluginVersion": "0.
|
|
100
|
+
"pluginVersion": "0.4.0",
|
|
94
101
|
"path": "pr-description/SKILL.md"
|
|
95
102
|
},
|
|
96
103
|
{
|
|
97
104
|
"name": "retrospective",
|
|
98
105
|
"plugin": "vouchington-workflow",
|
|
99
|
-
"pluginVersion": "0.
|
|
106
|
+
"pluginVersion": "0.4.0",
|
|
100
107
|
"path": "retrospective/SKILL.md"
|
|
101
108
|
},
|
|
102
109
|
{
|
|
103
110
|
"name": "retrospective-distill",
|
|
104
111
|
"plugin": "vouchington-workflow",
|
|
105
|
-
"pluginVersion": "0.
|
|
112
|
+
"pluginVersion": "0.4.0",
|
|
106
113
|
"path": "retrospective-distill/SKILL.md"
|
|
107
114
|
},
|
|
108
115
|
{
|
|
109
116
|
"name": "review-ci-logs",
|
|
110
117
|
"plugin": "vouchington-workflow",
|
|
111
|
-
"pluginVersion": "0.
|
|
118
|
+
"pluginVersion": "0.4.0",
|
|
112
119
|
"path": "review-ci-logs/SKILL.md"
|
|
113
120
|
},
|
|
114
121
|
{
|
|
115
122
|
"name": "review-github-issue-taxonomy",
|
|
116
123
|
"plugin": "vouchington-workflow",
|
|
117
|
-
"pluginVersion": "0.
|
|
124
|
+
"pluginVersion": "0.4.0",
|
|
118
125
|
"path": "review-github-issue-taxonomy/SKILL.md"
|
|
119
126
|
},
|
|
120
127
|
{
|
|
121
128
|
"name": "revisit-followups",
|
|
122
129
|
"plugin": "vouchington-workflow",
|
|
123
|
-
"pluginVersion": "0.
|
|
130
|
+
"pluginVersion": "0.4.0",
|
|
124
131
|
"path": "revisit-followups/SKILL.md"
|
|
125
132
|
},
|
|
126
133
|
{
|
|
127
134
|
"name": "static-analysis-checklist",
|
|
128
135
|
"plugin": "vouchington-workflow",
|
|
129
|
-
"pluginVersion": "0.
|
|
136
|
+
"pluginVersion": "0.4.0",
|
|
130
137
|
"path": "static-analysis-checklist/SKILL.md"
|
|
131
138
|
},
|
|
132
139
|
{
|