You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OK → data/export-opportunities.csv (local, gitignored)
sync-sheets
OK → rows written to Google Sheet tab Ingest
Unit tests (ingest era)
pytest green
2.2 Grok interpret-rank + Ranked tab (2026-08-11)
Step
Result
Code: interpret_rank.py, CLI, objectives.yaml
In tree
Code: sync_rankings_to_sheet / sync-rank-sheets
In tree
Docs: DATA_UPDATE, AGENTS, README, playbook
Updated
Unit tests (mocked Grok, no live xAI)
pytest green (210 as of doc update)
Live XAI_API_KEY → real Grok ranking
Not recorded as validated (see BACKLOG B-07)
Live push to sheet tab Ranked
Not recorded as validated (B-07)
3. Local configuration checklist
Item
Expected
Notes
Python venv
.venv
Activate before CLI
Root .env
Present (gitignored)
Notscripts/.env
STORAGE_BACKEND
sqlite
Day-1 default
secrets/google-service-account.json
Present (gitignored)
Exact .json name (not .json.json)
GOOGLE_SHEET_ID / Ingest tab
Configured
Sheet shared Editor with SA email
GOOGLE_SHEET_RANK_TAB
Ranked (default)
Created on first rank sync if missing
XAI_API_KEY
Optional
Required only for interpret-rank
config/objectives.yaml
Present
Eng-owned frame for Grok (template until customized)
TEAMS_WEBHOOK_URL
Optional
Alerts silent if unset
SharePoint secrets
Not required
Until SP activation
4. Data / integration posture
Store / view
Role
Live?
SQLite data/contract_opportunities.db
System of record
Local yes
Google Sheets Ingest
Derived opportunity view (full replace)
Yes (user sheet)
Google Sheets Ranked
Derived Grok ranking view (full replace)
Code ready; live E2E pending
Google Sheets Review (if used)
Human notes
Operator-owned
data/rankings/*
Local Grok reports
Local only; gitignored
SharePoint list
Alternate SoR
Not activated
Teams
Failure / streak notify
Not configured
Data rules: see DATA_UPDATE_DIRECTIVES.md.
Create-only ingest; never silent-truncate Link; Sheets is not SoR; Grok never rewrites SQLite Status/Notes/scores.
5. Known issues / pitfalls
CanadaBuys 403 if User-Agent missing (fixed in download.py).
Windows double extension on service account file (.json.json).