尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Converts FUEL Google Forms response exports (.xlsx or .csv) into the 35-column MASTERLIST import format of
FUEL (MGM-AD ADMIN).xlsx, with a full audit report. It works only on local files: no Google or Microsoft account,
API, credentials or network access is needed. Input files are never modified, and the live MASTERLIST is never written
to. You append the import file yourself.
Design and decision register: docs/DESIGN.md (v0.7).
Requires Python 3.11 or newer.
python -m venv .venv
.venv/bin/pip install -e ".[ui,dev]"
On Windows, use .venv\Scripts\pip and .venv\Scripts\fuel-parser instead of .venv/bin/....
output/ (git-ignored)..venv/bin/fuel-parser preview --source "FUEL RESP (CSP-AD MARF) v3.3.xlsx"
output/):
.venv/bin/fuel-parser run --source "FUEL RESP (CSP-AD MARF) v3.3.xlsx" --dry-run
output/FUEL_IMPORT_AUDIT_….xlsx: Summary (reconciliation), MappingStatus, Review (each held
record with its reason and the action to take), RowLog (every source row).With the shipped config/teams.yaml, every SALES LEADER is UNRESOLVED, so 0 records are exported and all
responses are listed in Review with SLOT_UNRESOLVED. This is the intended starting state.
Or use the local UI: .venv/bin/streamlit run app/streamlit_app.py (opens on localhost only).
Edit config/teams.yaml and change one entry:
# Verified by evidence (a MASTERLIST export or written confirmation from the form owner):
- {label_prefix: "TEAM LESLIE (AAD:", slot: 1, status: VERIFIED, evidence_type: masterlist_export,
evidence_ref: "MASTERLIST export 2026-11-01, sha256 <hash>"}
# Or your explicit operating assumption (exported with a warning, never reported as verified):
- {label_prefix: "TEAM LESLIE (AAD:", slot: 1, status: OWNER_APPROVED_UNVERIFIED, evidence_type: business_rule,
approved_by: "<your name>", approved_on: "2026-11-01"}
fuel-parser preflight-masterlist --masterlist <export.xlsx> counts SALES LEADER × seller slot in a MASTERLIST export
to support a VERIFIED entry. It never changes the configuration.
.venv/bin/fuel-parser run --source <export.xlsx> [--source <another export.xlsx> ...] --last-id <last Id in the live MASTERLIST>
--leads-log also writes the optional 17-column Leads Log.--team "TEAM X" limits the export to some teams. The others are counted as excluded.output/import_history.sqlite (hashes and row numbers only), so re-running the
same or a newer export never re-exports a record.fuel-parser void-batch <batch id> (list with fuel-parser batches)..venv/bin/fuel-parser draft-directory --source <export.xlsx> --out config/sellers.csv
Review the CSV and set status to APPROVED or REJECTED per row. Fill reviewer_email to override an address.
Only APPROVED rows are used; otherwise the submitter e-mail is used and logged. config/sellers.csv contains
personal data and is git-ignored.
| Situation | Option |
|---|---|
| Several exports at once (bulk import) | Repeat --source; one combined import file is produced and duplicates across files are held |
| Output must follow a specific MASTERLIST format | --template <file.xlsx>: the import file then uses that template's columns, order, sheet name and header style (columns it lacks are not exported; unknown columns stay blank). Without it the built-in 35-column layout is used |
| Which sheet is read | Only the response sheet: MARF RAW, or the one sheet with the response headers. All other sheets (team logs etc.) are ignored and listed in the audit |
| Several sheets look like response sheets | --sheet "<name>" to choose one |
| Compare with the workbook's team sheets (reference only) | --team-sheet-check |
| CSV with ambiguous dates | --timestamp-format "%m/%d/%Y %H:%M:%S" |
| Renamed headers flagged as suggestions | check them, then --accept-suggestions (saved per header layout in profiles/) |
| Unknown non-empty columns | check them, then --ignore-unmapped (saved) |
.venv/bin/pytest
Synthetic fixtures only. To also run the golden checks against the real export, point to local copies:
FUEL_GOLDEN_SOURCE="/path/FUEL RESP (CSP-AD MARF) v3.3.xlsx" FUEL_GOLDEN_TEMPLATE="/path/FUEL (MGM-AD ADMIN) (2).xlsx" .venv/bin/pytest
Open the Vercel site (e.g. https://fuelparser.vercel.app). It runs the same parser inside your browser: files are read on your computer and never uploaded.
The import history is stored in that browser only. Use the same browser for every export so records are never exported twice.
To run the browser app locally instead: python scripts/serve_web.py, then open http://localhost:8000.
Real workbooks, outputs, the ledger, the seller directory and saved profiles are git-ignored. Never commit them. The audit and review files contain client data: keep them on your computer.