vouchington-tooling 0.1.2 → 0.1.4

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 CHANGED
@@ -150,3 +150,11 @@ The runner uses monotonic elapsed time, rejects timer budgets above Node's maxim
150
150
  the dedicated process group to exit after the direct child closes so descendants cannot overlap a retry.
151
151
  `isProcessGroupAlive` and `waitForProcessGroupExit` are also available when callers need the same
152
152
  process-group probe and bounded-drain semantics outside a browser session.
153
+
154
+ ## Workflow skills outside plugins
155
+
156
+ The package ships the canonical Vouchington workflow skill tree at
157
+ `skills/<skill>/SKILL.md`. This stable installed path supports agents that do not
158
+ load Claude or Codex plugins. The Claude and Codex plugin manifests continue to reference the same
159
+ canonical source tree under `plugins/vouchington-workflow/skills`; package build materializes that tree
160
+ without hand-copying skill content.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vouchington-tooling",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
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": {
@@ -18,6 +18,7 @@
18
18
  },
19
19
  "files": [
20
20
  "dist",
21
+ "skills",
21
22
  "scripts",
22
23
  "README.md"
23
24
  ],
package/scripts/build.mjs CHANGED
@@ -1,11 +1,12 @@
1
1
  import { execFileSync } from 'node:child_process'
2
- import { chmod, copyFile, mkdir, rm } from 'node:fs/promises'
2
+ import { chmod, copyFile, cp, mkdir, rm } from 'node:fs/promises'
3
3
  import { fileURLToPath } from 'node:url'
4
4
 
5
5
  const packageRoot = new URL('..', import.meta.url)
6
6
  const dist = new URL('../dist', import.meta.url)
7
7
 
8
8
  await rm(dist, { recursive: true, force: true })
9
+ await rm(new URL('../skills', import.meta.url), { recursive: true, force: true })
9
10
  execFileSync('tsc', ['--project', 'tsconfig.build.json'], {
10
11
  stdio: 'inherit',
11
12
  cwd: fileURLToPath(packageRoot),
@@ -15,4 +16,9 @@ await copyFile(
15
16
  new URL('../src/runner-port-policy/runner-port-policy.json', import.meta.url),
16
17
  new URL('../dist/runner-port-policy/runner-port-policy.json', import.meta.url),
17
18
  )
19
+ await cp(
20
+ new URL('../../../plugins/vouchington-workflow/skills', import.meta.url),
21
+ new URL('../skills', import.meta.url),
22
+ { recursive: true },
23
+ )
18
24
  await chmod(new URL('../dist/cli/index.mjs', import.meta.url), 0o755)
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: agent-workflow
3
+ description: 'Shared workflow guidance for repository implementation: inspect local instructions, keep changes bounded, validate, and prepare reviewable commits.'
4
+ ---
5
+
6
+ # Agent workflow
7
+
8
+ Use this skill before implementation work. It supplies portable defaults; the repository's
9
+ `AGENTS.md`, `CLAUDE.md`, contribution guide, and CI configuration define the actual commands,
10
+ branching, review, and release policy.
11
+
12
+ 1. Inspect the current checkout and its status without discarding local work. Follow the consumer
13
+ repository's instructions for branch and worktree topology; do not create either implicitly.
14
+ 2. Read every applicable `AGENTS.md` and `CLAUDE.md` from the repository root through each changed
15
+ file, then relevant documentation and tests. Apply the closest instruction only when rules
16
+ conflict, and treat all applicable local instructions as higher priority than this skill.
17
+ 3. Confirm the accepted task's boundary. Reuse existing ownership and utilities; ask before
18
+ widening scope or making an irreversible external change.
19
+ 4. Write a focused test first when behavior can be tested. Keep source, tests, docs, and generated
20
+ artifacts within the repository's stated size and formatting rules.
21
+ 5. Run the focused checks, then the local commands required for the changed surface. Report skipped
22
+ checks with a concrete reason.
23
+ 6. Review the diff for accidental files, secrets, generated output, broken documentation links,
24
+ and assumptions that belong in local instructions instead.
25
+
26
+ Do not invent a default branch, runner class, documentation root, review system, merge policy, or
27
+ command catalog. A consumer wrapper or local instruction file owns those choices.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: blackboard
3
+ description: Record and retrieve concise contemporaneous session findings when the repository provides a journal or blackboard service.
4
+ ---
5
+
6
+ # Session journal
7
+
8
+ Use when the current repository provides a journal, blackboard, or equivalent durable session
9
+ record. Read local `AGENTS.md` and `CLAUDE.md` for the provider, credential, retention, and
10
+ subagent-identity rules.
11
+
12
+ 1. Append a concise note when a check fails, permission is denied, scope changes, a repeated fix is
13
+ needed, or a tool result reveals a reusable gap. Include the finding, affected paths, concrete
14
+ evidence, and any tracking reference.
15
+ 2. Preserve the provider's required session and parent-session identity. Never invent, guess,
16
+ print, search for, or persist credentials outside its documented mechanism.
17
+ 3. If the journal service cannot authenticate or persist a mandatory entry, stop and report the
18
+ blocker rather than silently substituting a local file or memory.
19
+ 4. Read journal entries oldest-first when preparing a retrospective or clustering follow-ups; use
20
+ direct evidence rather than reconstructing events from memory.
21
+
22
+ This skill does not require a particular service, command, note grammar, archival policy, or issue
23
+ destination. A consumer wrapper supplies those integrations.
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: git-commit-checklist
3
+ description: Use before staging and committing changes to verify scope, validation, commit metadata, and local repository policy.
4
+ ---
5
+
6
+ # Git commit checklist
7
+
8
+ Use before every commit. Read local `AGENTS.md`, `CLAUDE.md`, contribution guidance, and hook
9
+ output first; they own commit format, required trailers, file-size limits, and validation commands.
10
+
11
+ 1. Inspect `git status` and the complete diff. Stage only files that implement the accepted task.
12
+ 2. Confirm new or changed source and test files meet local size, formatting, and generated-file
13
+ policy. Do not commit credentials, build outputs, editor state, or unrelated changes.
14
+ 3. Run focused tests and required local checks. Record any permitted skipped check and why.
15
+ 4. Use the repository's conventional subject and required body/trailers. If code was extracted,
16
+ record the required provenance in the commit body.
17
+ 5. Re-read the staged diff and commit message before committing. Do not amend another author's
18
+ work or rewrite history unless local policy and explicit authorization allow it.
19
+
20
+ This skill does not prescribe branch names, file-size budgets, commit conventions, PR templates,
21
+ or push commands. Supply those through repository-local instructions or a consumer wrapper.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: github-actions-checklist
3
+ description: Use when editing GitHub Actions workflows or composite actions to keep security, runner, permissions, concurrency, and validation aligned with local policy.
4
+ ---
5
+
6
+ # GitHub Actions checklist
7
+
8
+ Use before editing a workflow or composite action. Repository-local instructions own runners,
9
+ approved action pinning, concurrency naming, secrets, permissions, and workflow-only PR rules.
10
+
11
+ 1. Read every applicable `AGENTS.md` and `CLAUDE.md` from the repository root through the workflow,
12
+ plus relevant CI documentation and callers. Apply the closest instruction only when rules
13
+ conflict. Identify trusted and untrusted inputs and every credential boundary.
14
+ 2. Give each job the least permissions it needs. Keep untrusted pull-request content out of shell
15
+ interpolation, privileged tokens, and write-capable steps.
16
+ 3. Use the repository's pinned-action and runner policy. Keep checkout refs, artifact boundaries,
17
+ caches, and concurrency behavior explicit.
18
+ 4. Validate changed YAML with the local workflow checker and run the affected workflow tests or
19
+ scripts. Update local CI documentation when behavior or operator expectations change.
20
+ 5. Review the final diff for privilege escalation, accidental secret exposure, unsafe quoting,
21
+ unsupported runner assumptions, and unreachable workflow paths.
22
+
23
+ This skill intentionally has no default runner labels, action SHAs, workflow directories,
24
+ concurrency scheme, or release policy. A consumer wrapper supplies those values.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: github-issue
3
+ description: Search, create, update, link, or assess GitHub issues using the repository's live issue policy and taxonomy.
4
+ ---
5
+
6
+ # GitHub issues
7
+
8
+ Use for durable follow-ups and pull-request linkage. Read local `AGENTS.md`, `CLAUDE.md`, issue
9
+ templates, and repository-routing policy before making any remote mutation.
10
+
11
+ ## Mutation authority
12
+
13
+ Caller authorization is required before any issue or taxonomy mutation; credential capability does
14
+ not grant scope. Resolve the authenticated identity, current repository, and requested target without
15
+ owner-prefix or visibility assumptions. Immediately before every write, refetch the exact target and
16
+ require its canonical identity to still match and the repository not to be archived. Issue operations
17
+ also require issues to be enabled and `viewerPermission` of `TRIAGE`, `WRITE`, `MAINTAIN`, or `ADMIN`;
18
+ issue creation additionally requires `viewerCanCreateIssues`. Applying existing metadata to a pull
19
+ request uses the same permission set but does not require issues to be enabled. Creating, changing, or
20
+ deleting taxonomy definitions requires `WRITE`, `MAINTAIN`, or `ADMIN` plus the operation-specific API
21
+ capability. Treat insufficient permission or capability, missing or inaccessible data, identity
22
+ changes, and mismatches as a hard deny that approval cannot override.
23
+
24
+ When an external creation target is denied, never write there. Search for and create or reuse a
25
+ tracking issue in the current repository, or a consumer-selected tracker. Immediately before that
26
+ write, refetch the destination repository and apply the issue-operation gate above. Include the
27
+ intended upstream repository and a copy-ready report so a human can decide whether to file it. Before
28
+ copying details to a less-restricted destination, remove private repository identity, paths, links,
29
+ code, and findings; if redaction would make the report unusable, require explicit destination approval
30
+ or return the draft without mutation. Authorization to file the external issue includes this tracking
31
+ fallback unless the caller opts out; report the reroute explicitly. If no tracker passes, return the
32
+ draft without mutation. Never fall back silently or to an unverified repository.
33
+
34
+ ## Issue workflow
35
+
36
+ 1. Search open and relevant closed issues in the selected destination; return a likely duplicate
37
+ rather than filing one. Verify paths and current behavior named in the issue.
38
+ 2. Before editing, commenting, relating, closing, or otherwise changing state, refetch the issue and
39
+ its current discussion. Verify the requested mutation is still authorized and supported by that
40
+ evidence. Close only when the documented outcome and acceptance evidence show the work is
41
+ resolved; otherwise leave state unchanged and report the gap.
42
+ 3. Write a self-contained issue with the problem, desired outcome, ownership boundaries, concrete
43
+ areas, validation, and external context. A discovered blocker does not widen implementation scope.
44
+ 4. Fetch the complete live taxonomy. Apply matching existing labels and a selected existing milestone
45
+ without separate approval. Omit a missing optional milestone; a missing required milestone blocks
46
+ the issue, and milestone creation is a separately authorized taxonomy operation. For a
47
+ missing label, use [review-github-issue-taxonomy](../review-github-issue-taxonomy/SKILL.md): obtain
48
+ explicit approval for its exact repository, name, description, and color before creating it.
49
+ Omit a declined optional label; a missing required label blocks the issue.
50
+ 5. Refetch the created or updated issue and verify its metadata. Report a partial failure without
51
+ retrying creation. Preserve history and report the action, URL, labels, and milestone.
52
+ 6. Link a pull request with a closing reference only when it fully resolves the issue. Keep
53
+ cross-repository references fully qualified; PR creation authority remains separate.
54
+ 7. Use native sub-issues only for real hierarchy, blocked-by relationships only for genuine known
55
+ dependencies, and prose links for merely related work. Read every created relationship back.
56
+
57
+ For batch creation, preflight every entry before writing any issue and fail the whole batch when one
58
+ entry is invalid. A partial transport failure stops further creation and reports every issue already
59
+ created; never retry successful entries.
60
+
61
+ This skill supplies no repository allowlist, taxonomy, issue template, credential, or CLI wrapper.
62
+ Consumer wrappers define local defaults and may impose stricter policy, but may not weaken this gate.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: organize-github-issues
3
+ description: Organize existing GitHub issues and pull requests with the repository's live taxonomy without inventing new taxonomy.
4
+ ---
5
+
6
+ # Organize GitHub issues
7
+
8
+ Use for issue hygiene, priority normalization, and milestone assignment. Read local `AGENTS.md`,
9
+ `CLAUDE.md`, and live taxonomy guidance before acting.
10
+
11
+ 1. Confirm repository identity and fetch the live labels, milestone descriptions, and all required
12
+ in-scope issue or pull-request evidence. Before mutating, enforce the operation-specific gate from
13
+ [github-issue](../github-issue/SKILL.md); pull-request metadata does not require issues to be
14
+ enabled.
15
+ 2. Classify from the permitted metadata and discussion evidence, not implementation guesses. Keep
16
+ automation, ownership, and provenance labels unless local policy explicitly permits changes.
17
+ 3. Apply only existing labels and milestones without requesting separate label approval. Do not
18
+ create taxonomy, close work, rewrite bodies, or alter titles unless the caller separately
19
+ authorizes that scope.
20
+ 4. In review mode, report the exact proposed metadata changes without mutating. In apply mode, make
21
+ only necessary, idempotent updates.
22
+ 5. Refetch every touched item and verify the requested metadata changed while protected metadata
23
+ stayed intact. Report changed, unchanged, and ambiguous items separately.
24
+
25
+ This skill does not define priorities, labels, milestones, clarification policy, or default scope.
26
+ A consumer wrapper supplies the repository-specific taxonomy and permissions.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: package-json-checklist
3
+ description: Use when changing JavaScript package metadata, dependencies, scripts, workspaces, or published entrypoints.
4
+ ---
5
+
6
+ # Package metadata checklist
7
+
8
+ Use before changing `package.json`, a lockfile, workspace metadata, or a package entrypoint. Read
9
+ every applicable `AGENTS.md` and `CLAUDE.md` from the repository root through the owning package,
10
+ applying the closest file only when rules conflict. Those instructions own package-manager version,
11
+ dependency age/version policy, registry, release process, and package layout.
12
+
13
+ 1. Identify the owning package and every consumer of the changed script, dependency, export, or
14
+ binary. Prefer existing workspace utilities before adding a dependency.
15
+ 2. Use the repository's package manager for dependency changes. Update the lockfile when it records
16
+ the affected metadata; avoid lockfile churn for metadata-only edits it does not record. Keep peer,
17
+ optional, development, and runtime dependencies in their intended sections.
18
+ 3. For a published package, verify exports, types, files, binaries, and build output match the
19
+ package's supported import and installation paths.
20
+ 4. Run the package manager's integrity check, focused tests, typecheck, build, and local policy
21
+ checks required by the affected package. Do not publish or alter registry state without explicit
22
+ authorization.
23
+ 5. Review the lockfile and generated metadata for unrelated churn before committing.
24
+
25
+ This skill supplies no version range, workspace topology, registry, package-manager command, or
26
+ release convention. Put those repository-specific choices in local instructions or a consumer
27
+ wrapper.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: planning
3
+ description: Create an evidence-backed implementation plan for a repository change or a justified no-change recommendation.
4
+ ---
5
+
6
+ # Planning
7
+
8
+ Use before implementation work that needs a durable plan. Repository-local `AGENTS.md`,
9
+ `CLAUDE.md`, issue templates, and planning conventions override this portable foundation.
10
+
11
+ 1. State the desired outcome and compare no change, reuse, and alternative approaches. Choose the
12
+ smallest durable option; ask before treating an unresolved product choice as settled.
13
+ 2. Read applicable instructions, documentation, current code, tests, and recent changes from a
14
+ fresh base. Record which evidence supports each proposed path.
15
+ 3. Map affected owners, public contracts, migrations, operational boundaries, and tests. Use
16
+ independent review or exploration when the change is cross-cutting or uncertain.
17
+ 4. Specify implementation steps, file-level intent, validation, rollout, and any follow-up that is
18
+ truly outside the accepted scope. Distinguish existing paths from new paths.
19
+ 5. Validate and save the plan using the repository's required issue or document workflow before
20
+ implementation when local policy requires one.
21
+
22
+ Do not invent a plan template, default repository, issue taxonomy, dependency graph tool, or
23
+ approval workflow. A consumer wrapper owns those choices.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: pr-description
3
+ description: Draft or review a self-contained pull-request description with summary, root cause, validation, rollout, and issue context.
4
+ ---
5
+
6
+ # Pull-request description
7
+
8
+ Use before opening or updating a pull request, or when reviewing PR hand-off quality. Read local
9
+ `AGENTS.md`, `CLAUDE.md`, pull-request template, and issue-linking policy first.
10
+
11
+ Include enough context for a reviewer with no prior conversation:
12
+
13
+ - A concise summary of what changed and why.
14
+ - The underlying root cause for a fix, not only its visible symptom.
15
+ - Validation performed and any intentionally skipped checks with reasons.
16
+ - Rollout, compatibility, operational safety, and follow-up context when the change affects a live
17
+ or independently deployed surface.
18
+ - Correct issue relationships: close only issues fully resolved and explain any non-closing links.
19
+ - A compact diagram only when it materially clarifies a multi-component flow or lifecycle.
20
+
21
+ Use the repository's approved PR tooling and preserve sections managed by its review automation.
22
+ Do not invent required headings, a source issue rule, merge policy, repository command, or hosted
23
+ review system. Consumer wrappers own those mechanics.
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: retrospective
3
+ description: Produce a concise evidence-based retrospective for a completed task or session when local workflow provides a durable record.
4
+ ---
5
+
6
+ # Retrospective
7
+
8
+ Use at task completion or session close-out when the repository has a retrospective workflow.
9
+ Read the local `AGENTS.md`, `CLAUDE.md`, and journal guidance first.
10
+
11
+ 1. Check whether a retrospective already exists and append only a material delta when local policy
12
+ calls for that behavior.
13
+ 2. Gather verifiable facts from the repository's approved status, validation, issue, and journal
14
+ sources. Do not estimate unknown facts from memory or transcripts.
15
+ 3. Summarize the outcome, plan-versus-actual differences, validation evidence, recurring friction,
16
+ and actionable process improvements. Keep one-off noise separate from repeatable root causes.
17
+ 4. Save through the repository's required durable mechanism and report the record identifier plus
18
+ any follow-up decisions.
19
+
20
+ Do not prescribe transcript access, retention, a report schema, a journal provider, or issue
21
+ filing policy. Consumer wrappers add those local contracts.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: retrospective-distill
3
+ description: Distill completed session records into a small set of verified, actionable follow-up issues.
4
+ ---
5
+
6
+ # Retrospective distillation
7
+
8
+ Use when completed retrospectives or journals should become durable follow-up work. Read local
9
+ `AGENTS.md`, `CLAUDE.md`, issue policy, and journal retention rules before any mutation.
10
+
11
+ 1. Enumerate only completed, eligible session records. Leave in-progress sessions intact.
12
+ 2. Cluster findings by root cause, favoring a few broad actionable themes over many narrow issues.
13
+ Treat a finding already linked to an open tracker as context, not a duplicate.
14
+ 3. Verify each candidate against the current base and search existing issues and open changes before
15
+ drafting. Skip work that is complete, explicitly rejected, or already covered.
16
+ 4. Draft self-contained issues with the problem, concrete proposed work, relevant areas, and
17
+ evidence embedded in the body. Route every authorized creation through
18
+ [github-issue](../github-issue/SKILL.md), including its repository gate, label approval, and
19
+ denied-external tracking behavior.
20
+ 5. Archive only records that were fully processed under the repository's retention rules; report
21
+ created, updated, skipped, and deferred themes with reasons.
22
+
23
+ This skill supplies no journal API, issue repository, labels, milestones, archival command, or
24
+ approval model. A consumer wrapper provides those details.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: review-ci-logs
3
+ description: Audit CI failures or noisy logs, identify the root cause, and recommend diagnostics-preserving fixes.
4
+ ---
5
+
6
+ # Review CI logs
7
+
8
+ Use when investigating CI failures, repeated workflow noise, or misleading diagnostics. Read local
9
+ `AGENTS.md`, `CLAUDE.md`, workflow guidance, and CI documentation before inspecting runs.
10
+
11
+ 1. Confirm the repository and select representative failed and successful runs within a bounded
12
+ window. For a supplied run, inspect only that run.
13
+ 2. Download logs to a temporary directory instead of streaming archives into the working context.
14
+ Inspect failed steps and representative large entries, then remove temporary artifacts.
15
+ 3. Classify findings as a real error, misleading output, downstream cascade, necessary diagnostic,
16
+ or volume-only concern. Identify the first repository-owned root cause.
17
+ 4. Prefer one bounded fix that preserves non-zero exits, primary errors, artifacts, summaries, and
18
+ diagnostic evidence. Do not hide stderr, globally quiet output, or add retries to mask a cause.
19
+ 5. Add focused regression evidence, run local workflow validation, compare before and after output
20
+ where meaningful, and report deferred findings without creating issues unless authorized.
21
+
22
+ This skill supplies no workflow names, log-retention policy, CI provider command, retry policy, or
23
+ scheduled automation. Consumer wrappers provide those local details.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: review-github-issue-taxonomy
3
+ description: Audit GitHub labels, milestones, and path-label automation and return actionable taxonomy recommendations.
4
+ ---
5
+
6
+ # Review GitHub issue taxonomy
7
+
8
+ Use when the taxonomy itself needs review. Remain read-only unless the caller explicitly authorizes
9
+ local configuration edits or live taxonomy mutation; read local `AGENTS.md` and `CLAUDE.md` first.
10
+
11
+ 1. Confirm repository identity and fetch live labels, descriptions, colors, usage, milestones, and
12
+ their current scope.
13
+ 2. Identify automation-owned labels and inspect local label automation before recommending a rename,
14
+ deletion, or rule change.
15
+ 3. Audit aliases, ambiguity, unused labels, missing descriptions, color consistency, milestone
16
+ overlap, delivery gaps, and path-label coverage.
17
+ 4. Return exact recommendations with migration impact and separate safe cleanup from decisions that
18
+ require product or scheduling judgment. Applying an existing label is not taxonomy creation and
19
+ needs no separate approval from the authorized issue operation.
20
+ 5. Before creating a label, stop for explicit approval naming its exact repository, name,
21
+ description, and color. Re-fetch current state and enforce the taxonomy-definition gate from
22
+ [github-issue](../github-issue/SKILL.md): require `WRITE`, `MAINTAIN`, or `ADMIN` and the
23
+ label-specific API capability immediately before the approved mutation. `viewerCanCreateIssues`
24
+ applies only to issue creation. Approval for an issue or another label does not transfer.
25
+
26
+ Do not create or change labels, milestones, issues, or local files for a recommendation-only
27
+ request. This skill does not define a repository's taxonomy or automation file locations; a
28
+ consumer wrapper supplies those integrations and local mechanics.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: revisit-followups
3
+ description: Review recently completed work and repository instructions for genuinely deferred follow-ups, then propose verified issue candidates.
4
+ ---
5
+
6
+ # Revisit follow-ups
7
+
8
+ Use to turn explicit deferred work into a curated backlog. Read local `AGENTS.md`, `CLAUDE.md`,
9
+ issue policy, and review-record conventions first.
10
+
11
+ 1. Confirm the requested lookback window and collect only explicit deferred-action signals from
12
+ completed changes, repository instructions, and closed work records.
13
+ 2. Reject settled decisions, standing policy, completed checklists, and incidental TODO-like text.
14
+ A zero-candidate result is valid.
15
+ 3. Verify each remaining candidate against the current base, its history, closed-work disposition,
16
+ existing issues, and active changes before proposing new work.
17
+ 4. Group related candidates into self-contained issue drafts that preserve the original evidence and
18
+ explain why the work remains needed.
19
+ 5. Remain read-only unless the caller or consumer wrapper explicitly authorizes issue creation. If
20
+ authorized, route every candidate through
21
+ [github-issue](../github-issue/SKILL.md), including its denied-external tracking behavior; do not
22
+ duplicate repository or label authorization. Then clean up temporary collection artifacts and
23
+ report skipped, covered, and created items.
24
+
25
+ Do not assume a review journal format, default lookback, hosting provider, repository, issue
26
+ taxonomy, or confirmation mechanism. Consumer wrappers own those integrations.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: static-analysis-checklist
3
+ description: Use when adding, changing, replacing, or removing static-analysis rules, configurations, fixtures, suppressions, allowlists, or repository guards.
4
+ ---
5
+
6
+ # Static analysis checklist
7
+
8
+ Use when changing a static-analysis invariant. Read local `AGENTS.md`, `CLAUDE.md`, analyzer
9
+ documentation, rule inventory, and fixture conventions before selecting an implementation.
10
+
11
+ 1. State the invariant and search for an existing analyzer, rule, or guard that owns it. Prefer the
12
+ narrowest established owner over a parallel scanner.
13
+ 2. Add positive and negative fixtures before the rule. Cover path routing, parser boundaries, and
14
+ every allowed exception.
15
+ 3. Keep discovery limited to tracked, intended files. Make suppressions and allowlists narrow,
16
+ justified, and mechanically checked for freshness where practical.
17
+ 4. Run the focused fixture test and analyzer, then the local aggregate checks. Keep diagnostics
18
+ actionable and deterministic.
19
+ 5. Update the local inventory or documentation and delete superseded migration artifacts only when
20
+ the replacement invariant is demonstrably enforced.
21
+
22
+ This skill does not name analyzer roots, fixture locations, commands, suppression syntax, or
23
+ rollout policy. A consumer wrapper or local instruction file provides them.