Skip to content

[test] AIN-243 W6: grep-gate for retired ATS/AAMC/TrustScore terms#92

Merged
hizrianraz merged 4 commits into
mainfrom
hizrianraz/ain-243-w6-ats-aamc-gate
May 28, 2026
Merged

[test] AIN-243 W6: grep-gate for retired ATS/AAMC/TrustScore terms#92
hizrianraz merged 4 commits into
mainfrom
hizrianraz/ain-243-w6-ats-aamc-gate

Conversation

@hizrianraz
Copy link
Copy Markdown
Contributor

@hizrianraz hizrianraz commented May 28, 2026

Methodology v1.2 retirement gate. Live code is already clean (prior cleanup work). This test prevents regression: ATS/AAMC/TrustScore are forbidden as non-comment tokens in routers/services/models. Currently PASSES. Comments + scripts/ time-capsules are allowed.


Note

Low Risk
Test-only change with no runtime or API behavior impact; it enforces naming hygiene on already-clean live code.

Overview
Adds a CI grep-gate (tests/smoke/test_ats_aamc_retired.py) so retired methodology labels ATS, AAMC, and TrustScore cannot reappear in live API surfaces.

The test walks ainfera_api routers, models, services, and main.py, strips comments and docstrings, then fails if those terms appear as real code (identifiers, string literals, response fields). Historical comments and scripts/ are out of scope; the intent is to block regressions in OpenAPI and responses after methodology v1.2 retirement (AIN-243).

Reviewed by Cursor Bugbot for commit 490cec5. Bugbot is set up for automated code reviews on this repo. Configure here.

W6/9. Methodology v1.2 reconciliation: ATS + AAMC retired 2026-05-22
as methodologies. The 5 frontier models survive as routing BACKENDS
(not voters); v0 Build Spec (q_prior + q_empirical) is the shipped
objective. This test fails CI if those terms regress into live code.

ALLOWED in source (skipped by the strip-comments pre-pass):
- Historical comments documenting the retirement
- Migration scripts under scripts/ (time-capsule artifacts)
- Test files asserting the retirement state

FORBIDDEN (the test asserts these are zero):
- ATS/AAMC/TrustScore as non-comment tokens in
  ainfera_api/{routers,services,models}/**/*.py
- Words appear in OpenAPI summaries, response model field names,
  or any user-facing string literal

Current state (post-prior cleanup work):
- api/ live code: 2 references, both in stats.py docstrings noting
  the retirement (allowed)
- api/ scripts/: 50+ refs in historical migration scripts (allowed)
- web/ marketing: 1 ref in Footer.tsx comment documenting AIN-243
  retirement (allowed)
- Test PASSES.

If a future change reintroduces these terms in live router/service/
model code, CI fails with a remediation hint pointing at AIN-243.

Refs: AIN-243 · methodology v1.2 · 2026-05-22 retirement

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 28, 2026

AIN-243 [Cleanup] Retire ATS/AAMC from code + public site — specs, SDK, MCP, CLI, API, marketing (Notion canon already done)

ATS and AAMC were RETIRED as methodologies 2026-05-22 (founder decision — focus on Routing + Ontology only, post "Inference for AI Agents" pivot). The Notion canon is updated, but ATS/AAMC are still wired through LIVE CODE + the public website. This ticket tracks the code/product cleanup so a future Claude Code session does it deliberately — NOT a silent find-replace, because some of it is shipped product that currently sells these.

Why this matters

A future Claude Code session reading the repos (not just Notion) will see ATS/AAMC as live and may extend them. The retirement isn't real until the code + public surfaces reflect it.

Footprint found (2026-05-22 scan)

Public website (ainfera-ai/web) — PRODUCT DECISION, do first:

Specs repo (ainfera-ai/specs):

  • ats/spec.md + ats/CHANGELOG.md (v1.0)
  • aamc/spec.md + aamc/CHANGELOG.md (v1.1)
  • _meta/alignment.md (ATS↔NIST), _meta/spec-urls.json
  • → Mark specs DEPRECATED/retired (keep as historical or remove from public spec index)

SDK (ainfera-ai/sdk / ainfera_sdk):

  • trust.py (TrustScore.recompute/evaluate)
  • → Deprecate trust module

MCP server (ainfera-ai/mcp-server):

  • ainfera_mcp/tools/trust_score.py (get_trust_score tool)
  • → Remove/deprecate the trust_score MCP tool

CLI (ainfera-ai/...):

  • commands/trust_check.py, actions/trust-check/ (GitHub Action), actions/README trust-check
  • → Deprecate trust-check command + action

API (ainfera-ai/api):

agents/tulkas/runner.py:

  • compliance_veto_test "probe each AAMC voter" → reframe as routing compliance-veto (M_allowed), not AAMC

What is NOT in scope (leave alone)

  • Historical/closed Linear tickets (AIN-24, 107, 109, 141, 150, 206, etc.) — accurate records of what shipped; do not rewrite history.
  • The compliance-veto CONCEPT survives in Routing as M_allowed (eligibility gate). Don't delete it — reframe it.
  • The 5 frontier models survive as routing backends/catalog. Only the council/voter/governance framing dies.

Acceptance criteria

  • Public site: AAMC/ATS narrative replaced or removed (founder/Varda GTM decision first)
  • specs: ats + aamc marked deprecated/retired; removed from public spec index
  • SDK trust.py deprecated
  • MCP trust_score tool removed/deprecated
  • CLI trust-check command + GitHub Action deprecated
  • API: AAMC voter/governance framing reframed; model adapters retained as routing backends
  • tulkas runner: compliance_veto_test reframed to Routing M_allowed
  • grep sweep: no repo presents ATS/AAMC as a LIVE methodology (historical mentions OK if marked)

References

Notion canon updated 2026-05-22: ATS page + AAMC page SUPERSEDED-headed; old "🧬 27 Ontology v1.0" + "L2 Routing" + "Varda Manual" banner-guarded; Ontology v1.2 + Delivery Index are live canon.

Review in Linear

hizrianraz and others added 3 commits May 28, 2026 12:15
Refs: AIN-243 W6 follow-up

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hizrianraz hizrianraz merged commit f6ab1ef into main May 28, 2026
4 checks passed
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.

Reviewed by Cursor Bugbot for commit 490cec5. Configure here.

offenders.append((path, matches))

if offenders:
details = "\n".join(f" - {p.relative_to(p.parents[3])}: {set(m)}" for p, m in offenders)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p.parents[3] causes IndexError in shallow repo paths

Low Severity

p.parents[3] assumes all matched file paths have at least four ancestor directories, but this depends on the absolute location of the repository. For ainfera_api/main.py in a shallow repo root like /app (common in Docker CI), the path /app/ainfera_api/main.py has only three parents, so parents[3] raises IndexError. Even when it doesn't crash, the index gives inconsistent relative paths for files at different depths. Using p.relative_to(repo_root) (passing repo_root out of _iter_live_files) would be correct.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 490cec5. Configure here.

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