SPB Git

spb/ai-atlas

Public
page 1
  1. Sat, Sep 12, 2026 4

    1. aia canonicalize: duplicates → variants → artifacts → families → licences → taxonomy → results → events → anomalies (dry-run by default, idempotent --apply); aia anomalies; aia quarantine list|release|discard
      …
      Every step plans from reads and reports counts + examples; --apply executes the plan through merge_entities / upsert_relation / a tier-2
      derived FactWriter. No deletes, snapshots untouched, a second --apply is a no-op. Optional entity scope for targeted runs and tests.
      docs/CANONICALIZATION.md documents every rule, what is never done, counting rules and how to re-run.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +1,381
    2. SDK hardening: SSRF guard with per-hop redirect validation, run_id on every fact, same-source loophole closed, taxonomy at write time, result comparability, event semantics, hierarchy hints, quarantine
      …
      - fetch: validate_destination() on every request and redirect hop (max 5, manual loop): non-http(s), localhost/.local/.internal, RFC1918,
        loopback, link-local (metadata), CGNAT, IPv6 loopback/link-local/ULA, unspecified → FetchError("blocked destination")
      - facts: facts_to_json / facts_from_json (tagged datetimes) for quarantined runs
      - writer: run_id/source_key/is_first_run; a claim supersedes only when tier <= current or same source AND same extractor (LLM never
        overwrites deterministic from the same URL); licence/openness/modalities/status/kind/org_kind normalised via the ontology with value_raw
        + taxonomy_mappings, same assertion in another spelling re-encoded in place (no event); license_key claim; results get config_key,
        trust_level, variant, run_group, extractor, effort config for variant refs, one current row per (model, benchmark, metric, config_key),
        out-of-range scores → confidence low + anomaly; events get recorded_at, is_backfill (classify_backfill), group_key, deterministic
        importance; family/canonical hints materialised (family_id, canonical_id, artifact_kind, member_of_family, artifact_of); NEW_ARTIFACT 0,
        NEW_MODEL_FAMILY 1; conflicting claims recorded once; derived writers never open review items and mark their events backfill
      - resolver: model/artifact compatible lookups; keep_separate decisions honoured; digit-collapsing aliases require the same variant_key;
        first_seen_hint → first_seen_at = min(now, hint); resolve_variant() folds evaluator-only effort variants onto the canonical model
      - connector: run_id/source_key/first-run flag into the writer; --url reprocess rebuilds Targets from documents.meta._target (key, doc_type,
        meta, needs_llm, entity persisted at first fetch); quarantine for tier ≥ 2 connectors (rolling median baseline of the last 5 full runs:
        new entities > max(50, 1.3×), prices > 3×, entities < 0.8× / results < 0.5× on full extraction) → quarantined_runs + review item, nothing written
      - services/events: classify_backfill, group_key_for, importance_for · services/anomalies: record / run_checks / list_anomalies
      - merge: modes merge|alias|variant|family_member, keep_separate refusal, org-type and model/artifact pairs, dedupe/config_key recompute with
        collision handling, one current result per key, embeddings/sources/domains/review_queue/family_id/canonical_id re-pointed,
        resolution_decisions + admin_audit_log rows
      - handlers: LLM extraction writer carries the snapshot's run_id
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 13 files +1,757 −133
    3. ontology: official family orgs, effort-config helpers, chained/budget effort suffixes, hyphenated family versions, property-level normalisation, run keys split from task keys
      …
      - models: FAMILY_ORGS / official_orgs / is_official_org; effort_config() and base_name() shared by the writer and the canonicalizer;
        effort suffixes chain ("-thinking-64k-high-effort"), LiveBench budgets ("32k thinking", "(no thinking)"); "max"/"fast"/"instant" are model
        tiers (Qwen3-Max, GPT-5.1-Codex-Max, Grok 4.1 Fast), no longer effort markers; family_release_hint reads "gpt-5-4" as 5.4 and never a size (38B)
      - taxonomy: normalize_property(entity_type, prop, value) → (canonical, value_raw, mappings); unknown values kept, mapped to NULL
      - benchmarks: RUN_KEYS (release, index_version, version, dataset_revision) leave config_key so a newer run replaces the older one; they are
        condition keys for comparability (partially comparable)
      - tests/test_ontology.py: licence table, openness derivation, taxonomy, 22 model names, comparability trio, metric bounds/trust
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +350 −21
  2. Fri, Sep 11, 2026 19

    1. Worker reclaims this host's running jobs at start-up (restart-safe)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +10 −2
    2. admin requeue-dead: honour the dedupe partial unique index
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +11 −3
    3. Simon-Pierre Boucher · 2 files +13 −6
    4. Simon-Pierre Boucher · 2 files +20 −4
    5. writer: normalise nested dict values before comparison
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +3 −1
    6. arXiv: documented robots exception for the export API (arXiv API Terms of Use), 4 req/min
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +5 −1
    7. Breakage detection only on full re-extraction; first-run crawls each connector once
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +6 −7
    8. Lint fixes
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 20 files +113 −52
    9. Simon-Pierre Boucher · 77 files +6,501 −253
    10. API polish: provenance source names, methodology labels, status vocabulary, zero-filled stats
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 7 files +106 −7
    11. Simon-Pierre Boucher · 81 files +8,142 −1
    12. LLM facts: one tier below source, plausible model names only, status vocabulary normalised
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +34 −6
    13. Simon-Pierre Boucher · 29 files +3,317 −4
    14. Worker: acquire the concurrency slot before claiming a job
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +8 −4
    15. Extraction schemas: tolerant coercion of LLM output (null lists, string booleans/ints)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +73 −11
    16. Simon-Pierre Boucher · 7 files +226 −2
    17. Simon-Pierre Boucher · 72 files +8,918
Menu

Theme