Skip to content

feat(sdk-review): batch 1/6 — shared libs + config#202

Merged
tiagoek merged 2 commits into
feat/sdk-review-skillfrom
feat/sdk-review-batch-1
Jul 7, 2026
Merged

feat(sdk-review): batch 1/6 — shared libs + config#202
tiagoek merged 2 commits into
feat/sdk-review-skillfrom
feat/sdk-review-batch-1

Conversation

@tiagoek

@tiagoek tiagoek commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Description

Adds the foundation: 12 shared libraries (.claude/scripts/lib/*.sh + Python AST helpers) and 3 config files (rules.yaml, module-aliases.yaml, baseline.json). No runtime behavior yet — libs are only consumed by later batches.

This is part 1 of 6 in the incremental delivery of the SDK Module Review skill (AFSDK-3937).

Each sub-PR is scoped to be reviewable in ≤ 30 minutes and satisfies these isolation criteria:

  • Compiles alone (shellcheck / ruff pass)
  • Testable alone (bats/pytest pass on top of the prior batches)
  • Revert-safe (prior batches keep working if this one is reverted)
  • No breaking changes for subsequent batches

Related Issue

Internal tracking: AFSDK-3937

Type of Change

  • New feature (non-breaking change that adds functionality)

How to Test

git checkout feat/sdk-review-batch-1
bats tests/sdk-review/          # if applicable to this batch
shellcheck -x --severity=error .claude/scripts/**/*.sh

Batch progression

After all 6 batches are merged into feat/sdk-review-skill, a final cosmetic PR will merge feat/sdk-review-skill into main.

Checklist

  • Follows Conventional Commits
  • Isolated (see criteria above)
  • No sensitive information (fixture strings are placeholder patterns, not real credentials)

Adds the foundation for the SDK Module Review skill:

## Libs (.claude/scripts/lib/)
- json-emit.sh — findings JSON emitter + status derivation
- diff-added-lines.sh — extract file:line pairs from diff (BSD-safe)
- baseline.sh — apply baseline.json exemptions to reports
- predicates.sh — scope predicates (commit_types, module_shape, REUSE.toml)
- suppression.sh — parse # sdk-review: ignore[<check>] comments
- apply-suppression.sh — filter reports by suppression tuples
- github-api.sh — gh CLI wrapper (auth, comments, check-run, labels)
- detect-language.sh — Python vs Java detection
- detect-modules.sh — module extraction from diff
- tier-manager.sh — apply SHADOW/FLAG/BLOCK/BLOCK_LOCKED tiers
- skill-self-skip.sh — self-review protection (skip skill's own files)
- ast_python_checks.py — Python AST checks (used by errors, telemetry, patterns, constants)
- breaking-detector.py — API-diff detector for BREAKING family

## Config (.claude/config/)
- rules.yaml — 70+ rules with tiers per rule
- module-aliases.yaml — cross-language module name aliases (dms↔documentmanagement)
- baseline.json — per-repo exemptions (REUSE.toml here → LIC-01/02 exempt)

**Standalone testable.** No checks or orchestrator yet — comes in later batches.

Part 1 of 6. Ref: AFSDK-3937
@tiagoek tiagoek force-pushed the feat/sdk-review-batch-1 branch from 26b12e1 to f88fb3b Compare July 6, 2026 15:46
Explain why the alias file contains only one pair (dms ↔ documentmanagement):
after auditing both SDKs, that's the only cross-language module today whose
Python and Java names disagree. Same-name modules (destination, objectstore)
don't need entries — the resolver falls back to the identical name. Include
the full module inventory so future contributors know when to append here.
@tiagoek tiagoek merged commit c703584 into feat/sdk-review-skill Jul 7, 2026
3 checks passed
@tiagoek tiagoek deleted the feat/sdk-review-batch-1 branch July 7, 2026 15:08
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