vouchington-tooling 0.3.1 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vouchington-tooling",
3
- "version": "0.3.1",
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.
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "agent-workflow",
6
6
  "plugin": "vouchington-workflow",
7
- "pluginVersion": "0.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.0",
136
+ "pluginVersion": "0.4.0",
130
137
  "path": "static-analysis-checklist/SKILL.md"
131
138
  },
132
139
  {