Skip to content

[AAASM-5798] ✨ (scripts): Roll out the claim-vocabulary gate to python-sdk - #322

Open
Chisanan232 wants to merge 3 commits into
mainfrom
v0.0.1/AAASM-5798/feat/claim_vocabulary_linter
Open

[AAASM-5798] ✨ (scripts): Roll out the claim-vocabulary gate to python-sdk#322
Chisanan232 wants to merge 3 commits into
mainfrom
v0.0.1/AAASM-5798/feat/claim_vocabulary_linter

Conversation

@Chisanan232

Copy link
Copy Markdown
Contributor

Jira Ticket

https://lightning-dust-mite.atlassian.net/browse/AAASM-5798

What changed

python-sdk had no claim linter, unlike agent-assembly, official-website, and
now docs Hub (AAASM-5797). Per AAASM-5795's federation-by-convention
decision this is a one-time port (agent-assembly's AAASM-5679, via docs
Hub's AAASM-5797) -- Markdown corpus, the same ADR 0033 forbidden-design-7
absolutes and undifferentiated-verb rule, adapted to this repo's own scope.
This file diverges independently from here.

  • scripts/check_claim_vocabulary.py (new) -- scoped to docs/**,
    README.md, CONTRIBUTING.md, SECURITY.md. Excludes
    quickstart_snippets/ (vendored verbatim from the examples repo -- this
    repo doesn't author that prose, same reasoning ruff.toml already
    excludes it for) and verification-reports/**.
  • Five real, live findings the new gate surfaced on its first run --
    README.md, docs/index.md, docs/concepts/index.md,
    docs/examples/langchain-basic-agent.md,
    docs/examples/llamaindex-tool-policy.md -- reworded. Four were the
    literal phrase "every tool call" (CLAIM-ABS-07, unwaivable); the
    underlying claim was already true and correctly scoped to the wrapped
    agent, so only the banned trigger phrase changed, to "each tool call".
    One was "no code changes" (CLAIM-ABS-08), reworded to the same bounded
    phrasing already used for this exact fact elsewhere this session
    (official-website's SDKs blog post, docs Hub's faq.md).
  • .github/workflows/claim-vocabulary-check.yml (new) -- path-filtered to
    the same scope. This repo's own CLAUDE.md notes ci.yaml's path
    allow-list excludes docs/**/*.md entirely ("Docs-only PRs run NO CI"),
    so this fills a real gap, not an added redundant gate.

None of this file's rules are waivable -- claim-vocabulary.md §7.1 states
CLAIM-ABS-*/CLAIM-VERB-01 are unwaivable everywhere, not just in the
repo that specification lives in.

How to verify

  • python3 scripts/check_claim_vocabulary.py --selftest -- 45/45.
  • python3 scripts/check_claim_vocabulary.py --root . -- 45 files scanned,
    0 blocking, 8 finding (informational, matches agent-assembly's own posture
    toward CLAIM-VERB-01/bare CLAIM-ABS-06/CLAIM-ABS-11).
  • Live regression control (performed and reverted before this PR): planted
    "This SDK catches everything, with no exceptions." into docs/index.md,
    ran the scanner -- 1 real blocking hit, CLAIM-ABS-01. Reverted; clean
    scan restored.
  • ruff check / ruff format --check on the new script -- clean. (Not
    covered by mypy's packages = scope, which lists only agent_assembly
    and test.)
  • python scripts/check_readme_version.py --check -- unaffected, still
    passes (README wording change did not touch the version-anchored sample
    output).

Related

Closes AAASM-5798 (python-sdk slice of AAASM-5798), part of AAASM-5599 via
AAASM-5795's decision. node-sdk, go-sdk, arena and examples are the
remaining repos in AAASM-5798's scope, each its own PR.

AAASM-5798 / AAASM-5599. python-sdk had no claim linter. Per
AAASM-5795's federation-by-convention decision this is a one-time
port (agent-assembly's AAASM-5679, via docs Hub's AAASM-5797) --
Markdown corpus, the same ADR 0033 forbidden-design-7 absolutes and
undifferentiated-verb rule, adapted to this repo's own scope
(docs/**, README/CONTRIBUTING/SECURITY.md; excludes quickstart_snippets/
-- vendored from the examples repo, same reasoning ruff.toml already
uses -- and verification-reports/**). This file now diverges
independently from the two it was ported from.

None of its rules are waivable -- claim-vocabulary.md 7.1 states
CLAIM-ABS-*/CLAIM-VERB-01 are unwaivable everywhere.
Four instances of the literal phrase 'every tool call' (ADR 0033
forbidden design 7, CLAIM-ABS-07, unwaivable) reworded to 'each tool
call' -- the underlying claim was already accurate and correctly
scoped to the wrapped agent; only the banned trigger phrase changed.
One 'no code changes' (CLAIM-ABS-08) in docs/concepts/index.md
reworded to the same bounded phrasing already used for this exact
fact elsewhere this session (official-website's SDKs blog post,
docs Hub's faq.md).
Path-filtered to README/CONTRIBUTING/SECURITY.md and docs/**, where
ci.yaml's own allow-list otherwise leaves docs-only PRs with no CI at
all ('Docs-only PRs run NO CI', this repo's own CLAUDE.md). Full-tree,
not diff-scoped -- the blocking baseline is zero as of this PR.
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