Skip to content

feat(skills): add autonomous expression audit skill and batch dispatcher [WIP]#4442

Closed
andygrove wants to merge 3 commits into
apache:mainfrom
andygrove:autonomous-audit-skill
Closed

feat(skills): add autonomous expression audit skill and batch dispatcher [WIP]#4442
andygrove wants to merge 3 commits into
apache:mainfrom
andygrove:autonomous-audit-skill

Conversation

@andygrove
Copy link
Copy Markdown
Member

Which issue does this PR close?

Closes #.

Rationale for this change

The existing audit-comet-expression skill walks a human through auditing one expression interactively. There is no way to march through the backlog of [x]-marked but un-audited entries in spark_expressions_support.md without a human in the loop on every step. These two new skills let an operator (or /loop) drive expression audits autonomously: each invocation picks the next un-audited expression, runs a full per-expression audit in a fresh worktree, and opens a draft PR plus any requires-triage issues for behavioural divergence.

The skills live under .claude/skills/ and are inert until invoked, so they have no effect on builds, tests, or anyone who is not running these slash commands.

What changes are included in this PR?

  • .claude/skills/audit-comet-expression-autonomous/SKILL.md — non-interactive variant of audit-comet-expression. Audits a single expression end to end: pre-flight checks, worktree setup, Spark cross-version study, Comet/DataFusion implementation review, missing-coverage test additions, draft PR, and a separate requires-triage issue per behavioural divergence found.
  • .claude/skills/audit-comet-expression-batch/SKILL.md — dispatcher that scans docs/source/contributor-guide/spark_expressions_support.md for [x]-marked entries with no sub-bullets (the un-audited backlog) and dispatches audit-comet-expression-autonomous against them, one per invocation by default. Designed to be driven manually or by /loop.

No code changes; documentation/automation only.

How are these changes tested?

Manual: dry-runs of the batch dispatcher against the current spark_expressions_support.md correctly identified candidates and dispatched the per-expression audit. The per-expression skill's pre-flight checks, worktree setup, and abort paths were exercised against both valid and invalid expression names. CI is not exercised by this change because nothing under .claude/skills/ is loaded by the build or test runs.

andygrove added 3 commits May 26, 2026 08:25
Address code-review clarifications:
- DOC wording: one sub-bullet per Spark version (not 'at least one').
- Step 5 / Step 6: make Step 6 the canonical issue-filing template, used
  for both test-failure issues and BUG findings.
- Step 5: forbid creating new sql-tests/expressions/<category> directories.
- Step 7: explicit priority order for commit titles when the audit produces
  a mix of doc/mechanical/test changes.
- Replace shell-PID temp paths with static names so subagents that don't
  expand $$ still work.
- Use a literal <PR_URL_PLACEHOLDER> string for issue back-references so
  Step 8 can do a deterministic find-and-replace.
- Step 9: in autonomous mode there is no user to surface to, so abort with
  an error and leave the worktree for inspection.
@andygrove andygrove marked this pull request as draft May 26, 2026 20:42
@andygrove andygrove changed the title feat(skills): add autonomous expression audit skill and batch dispatcher feat(skills): add autonomous expression audit skill and batch dispatcher [WIP] May 26, 2026
@andygrove andygrove closed this May 27, 2026
@andygrove andygrove deleted the autonomous-audit-skill branch May 27, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant