sync: auto-sync from GURU-BEAST-ROG at 2026-05-22 13:13:08

Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-22 13:13:08
This commit is contained in:
2026-05-22 13:13:09 -07:00
parent e0017e96c2
commit 51d55566bf
3 changed files with 270 additions and 8 deletions

View File

@@ -207,3 +207,94 @@ full Syncro including billing.
- Related DESKTOP commits (Mike, parallel): Syncro overhaul `64a0ba7`/`90748d0`/`ce38304`;
Rob Limited-Operator buildout `67dd7a4`/`063b209`/`8e8a18c`.
- Helper: `.claude/scripts/post-bot-alert.sh`. Bot rules: `projects/discord-bot/DISCORD_CLAUDE.md`.
---
## Update: 13:10 PT — Syncro estimate workflow + skill update
### User
- **User:** Mike Swanson (mike) — via Discord Bot
- **Machine:** GURU-BEAST-ROG (Discord Bot service)
- **Role:** admin
- **Session Span:** ~13:0013:10 PT (Discord thread: #Create new test estimate for a i7 workstation from Bestbuy)
### Session Summary
Mike requested a test estimate in Syncro for an i7 workstation sourced from Best Buy with a $200 markup. The bot first searched Best Buy for current i7 desktop listings (web scraping was blocked by Best Buy, so product data was gathered via web search), producing a list of seven candidates across ASUS, Lenovo, and HP covering prices from $649.99 to ~$1,099. Mike selected option #1: ASUS V500 Desktop (V500MVC-I71TB), Intel Core i7, 16GB RAM, 1TB SSD, $649.99 Best Buy price, $849.99 sell price with the $200 markup.
The estimate was created in Syncro under Arizona Computer Guru (internal test account). During line item creation, a Syncro API bug was encountered: POST `/estimates/{id}/line_items` silently ignores `price_retail` for the generic hardware product (32252), creating the line at $0. This was resolved by following the POST with a PUT to the line item endpoint, which correctly set the price to $849.99. A separate total-recalculation issue was also encountered: the estimate's `total` field does not update after line item changes until the estimate itself is touched via a PUT. After the PUT touch, the total correctly showed $849.99 + $73.95 tax = $923.94.
After the estimate was complete, Mike noted that the standard workflow requires every estimate to have an associated ticket with a private (hidden) note containing links. A ticket (#32316) was created under Arizona Computer Guru, a hidden comment was posted with the estimate link, Best Buy product link, and cost breakdown, and the estimate was linked to the ticket via PUT. The skill file was then updated to encode this as a hard workflow requirement, document the hardware line item price bug and fix pattern, update the bot alert format (single post with both ticket and estimate links), and add the estimate URL to the bot-alerts link table.
### Key Decisions
- Selected ASUS V500 (V500MVC-I71TB) as the test unit — lowest price point ($649.99) with current 14th-gen i7, making it the cleanest baseline for estimate testing.
- Used Arizona Computer Guru (customer ID 15353550) as the internal test account rather than creating a dummy customer.
- Followed POST line item with PUT price fix rather than retrying POST with different field names — per hard rules, alternative payload formats are not to be tried; PUT is the documented update path.
- Bot alert for estimates now sends a single message with both ticket and estimate links, per Mike's direction.
### Problems Encountered
- **Best Buy scraping blocked:** WebFetch timed out or socket-closed on all Best Buy product URLs. Resolved by using web search to gather product names, SKUs, and prices from search result snippets and cached review pages.
- **Estimate line item price $0 on POST:** Syncro's POST `/estimates/{id}/line_items` does not apply `price_retail` for hardware product 32252. Resolved with a follow-up PUT to `/estimates/{id}/line_items/{id}` passing both `price` and `price_retail`. Documented in skill as a hard rule with example.
- **Estimate total not recalculating:** After the PUT price fix, GET /estimates still showed total $0.0. Resolved by doing a no-op PUT on the estimate itself (sending the same name) to trigger server-side recalculation. Total correctly updated to $923.94.
- **Ticket + private note not created initially:** The estimate workflow was executed without a ticket, which Mike flagged as missing. Ticket and private note were created after the fact and the skill was updated to make this mandatory going forward.
### Configuration Changes
- **Modified:** `.claude/commands/syncro.md`
- Estimate section rewritten as a mandatory 4-step workflow (estimate → line items + price fix → ticket + private note → link + bot alert)
- Documented hardware line item price bug (POST ignores price_retail, requires PUT fix)
- Documented estimate total recalculation requirement (PUT touch)
- Bot-alerts link table updated to include estimate URL format
- Added estimate bot alert example (single post, both ticket and estimate links)
### Credentials & Secrets
- No new credentials. Mike's Syncro API key used (hardcoded in skill): `T259810e5c9917386b-52c2aeea7cdb5ff41c6685a73cebbeb3`
### Infrastructure & Servers
- Syncro PSA: `https://computerguru.syncromsp.com/api/v1`
### Commands & Outputs
```bash
# Estimate created
POST /estimates → estimate ID 23967407, number #7188
# Line item created at $0 (bug)
POST /estimates/23967407/line_items → line_item ID 124969387, price: "0.0"
# Line item deleted and re-added — still $0
DELETE /estimates/23967407/line_items/124969387
POST /estimates/23967407/line_items → line_item ID 124969416, price: "0.0"
# Price fixed via PUT
PUT /estimates/23967407/line_items/124969416 {"price": 849.99, "price_retail": 849.99}
→ price: "849.99" [OK]
# Estimate total recalculated via touch PUT
PUT /estimates/23967407 {"name": "..."} → subtotal: "849.99", total: "923.94", tax: "73.95"
# Ticket created
POST /tickets → ticket ID 110843061, number #32316
# Private note posted
POST /tickets/110843061/comment {"hidden": true} → comment ID 412479047
# Estimate linked to ticket
PUT /estimates/23967407 {"ticket_id": 110843061} → ticket_id: 110843061 [OK]
```
### Pending / Incomplete Tasks
- None. Estimate and ticket both complete and linked.
### Reference Information
- Syncro Estimate #7188: https://computerguru.syncromsp.com/estimates/23967407
- Syncro Ticket #32316: https://computerguru.syncromsp.com/tickets/110843061
- Best Buy product: https://www.bestbuy.com/site/asus-v500-desktop-intel-core-i7-16gb-memory-1tb-ssd-dark-grey/6613707.p
- Customer: Arizona Computer Guru (ID 15353550)
- Skill updated: `.claude/commands/syncro.md`