Compare commits

...

3 Commits

Author SHA1 Message Date
62d8babad1 sync: auto-sync from GURU-BEAST-ROG at 2026-05-22 15:29:08
Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-05-22 15:29:08
2026-05-22 15:29:09 -07:00
e9dac6580c Add ticket subject prefix check to estimate success criteria
The linked ticket subject must start with "Estimate - " before an estimate
task is considered complete. Added as criterion [4] in both the hard rules
block and the workflow success criteria block, with a self-correction step
(PUT /tickets/{id}) if the check fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 15:27:47 -07:00
11647cbf09 Update estimate ticket subject prefix from colon to dash
Change the linked ticket subject format from "Estimate: <subject>" to
"Estimate - <subject>" per Winter's request for consistent formatting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 15:23:17 -07:00
2 changed files with 73 additions and 3 deletions

View File

@@ -63,7 +63,8 @@ py -c "import datetime; d = datetime.date(YYYY, M, D); print(d.strftime('%A %Y-%
1. Every line item requested by the user has been added to the estimate and price-fixed via PUT (verify with GET /estimates/{id} — check `.estimate.line_items[]`)
2. Every line item has a corresponding private note on the linked ticket (hidden: true, do_not_email: true) containing: item name, source/retailer, cost, retail price, and any markup
3. The estimate total (subtotal + tax) matches the sum of all line items after recalc
4. A bot alert has been posted to #bot-alerts
4. The linked ticket subject starts with `Estimate - ` (verify with GET /tickets/{id} — check `.ticket.subject`). If it does not, PUT the ticket with the corrected subject before reporting done.
5. A bot alert has been posted to #bot-alerts
If any check fails, complete the missing step before reporting done. This rule fires on initial estimate creation AND on every subsequent "add X to the estimate" request. Incident: 2026-05-22, UPS added to estimate #7189 without a ticket note — caught by Winter.
@@ -606,7 +607,7 @@ TICKET_RESP=$(curl -s -X POST "${BASE}/tickets?api_key=${API_KEY}" \
--data-binary @- <<JSON
{
"customer_id": ${CUST_ID},
"subject": "Estimate: <subject>",
"subject": "Estimate - <subject>",
"status": "New",
"problem_type": "Estimate"
}
@@ -707,7 +708,8 @@ echo "$VERIFY_TKT" | jq '[.ticket.comments[]? | select(.hidden == true) | {subje
# [1] estimate line_items count matches number of items user requested
# [2] ticket has at least one hidden comment per line item (or one combined note covering all)
# [3] estimate subtotal/total match expected values
# [4] bot alert posted
# [4] ticket subject starts with "Estimate - " (fix with PUT /tickets/{id} if not)
# [5] bot alert posted
# If any check fails, add the missing note or fix the missing item before completing.
```

View File

@@ -588,3 +588,71 @@ None. Estimate, ticket, and both private notes complete. Skill updated.
- Estimate subtotal: $1,144.99 | Total with tax: $1,244.60
- Skill updated: `.claude/commands/syncro.md` (Hard Rules + workflow step 7)
- Bot alert message IDs: 1507505776221094060 (estimate), 1507506879792939048 (UPS update), 1507507122286362656 (ticket note)
---
## Update: 15:28 PT — Estimate ticket subject prefix rule + success criteria
### User
- **User:** Winter (@winterguru, ID: 624666486362996755) + Mike Swanson (ID: 264814939619721216) — via Discord Bot
- **Machine:** GURU-BEAST-ROG (Discord Bot service)
- **Role:** Full trust (Winter), admin (Mike)
- **Session Span:** ~15:2015:28 PT (Discord thread: #create new test estimate for an i5 laptop with 16G...)
### Session Summary
Winter directed the bot to enforce a standard subject line format for estimate-linked tickets: always start with `"Estimate - "` followed by the estimate subject. The syncro.md skill was updated — the estimate ticket creation payload changed from `"subject": "Estimate: <subject>"` (colon) to `"subject": "Estimate - <subject>"` (dash). The change was committed (commit `11647cb`).
Winter then requested that ticket #32318 (created in the prior session without any prefix) be updated retroactively. The current subject was confirmed as `"Lenovo V15 Gen 4 Laptop - i5 / 16GB / 512GB / Win 11 Pro"`. After Winter confirmed the proposed new subject, a PUT updated it to `"Estimate - Lenovo V15 Gen 4 Laptop - i5 / 16GB / 512GB / Win 11 Pro"`. Bot alert posted to #bot-alerts.
Mike then asked why the subject was wrong the first time. The answer: the prefix rule (`"Estimate: <subject>"`) was already in the skill when the ticket was created — the bot simply did not follow it. Bot execution error, not a missing rule.
Mike then directed the prefix check to be added as a formal success criterion. The rule was added in two places in syncro.md: (1) the Hard Rules "Estimate task success criteria" block as criterion [4] (with a self-correction step: PUT the ticket subject if the check fails), and (2) the inline workflow checklist at step 7 as `[4]`. Bot-alert criterion renumbered to [5]. Committed (commit `e9dac65`).
### Key Decisions
- Subject prefix uses a dash (`Estimate - `) not a colon — Winter's explicit format preference.
- Self-correction included in the success criterion: if the subject check fails at completion time, the skill corrects it with a PUT before reporting done rather than just surfacing a warning.
- Criterion added to both the Hard Rules block (fires on every estimate, catches add-item requests) and the inline workflow checklist (enforces at completion time) for redundancy.
### Problems Encountered
- None this sub-session. Root cause of the original missing prefix was bot non-compliance with an existing rule.
### Configuration Changes
- **Modified:** `.claude/commands/syncro.md`
- Estimate ticket creation payload: `"Estimate: <subject>"``"Estimate - <subject>"` (commit `11647cb`)
- Hard Rules: estimate success criteria block — added criterion [4] (ticket subject starts with `Estimate - `, self-correct if not); bot-alert criterion renumbered to [5]
- Estimate workflow step 7 checklist: added `[4]` (ticket subject check); bot-alert renumbered to `[5]` (commit `e9dac65`)
### Credentials & Secrets
- Syncro API key: Mike's key (`T259810e5c9917386b-52c2aeea7cdb5ff41c6685a73cebbeb3`). No vault paths accessed.
### Infrastructure & Servers
- Syncro PSA: `https://computerguru.syncromsp.com/api/v1`
- Ticket #32318: https://computerguru.syncromsp.com/tickets/110847587
### Commands & Outputs
```bash
# Ticket subject before
GET /tickets/110847587 -> subject: "Lenovo V15 Gen 4 Laptop - i5 / 16GB / 512GB / Win 11 Pro"
# Subject corrected
PUT /tickets/110847587 {"subject": "Estimate - Lenovo V15 Gen 4 Laptop - i5 / 16GB / 512GB / Win 11 Pro"}
-> .ticket.subject: "Estimate - Lenovo V15 Gen 4 Laptop - i5 / 16GB / 512GB / Win 11 Pro" [OK]
```
### Pending / Incomplete Tasks
None.
### Reference Information
- Commits: `11647cb` (subject format: colon → dash), `e9dac65` (success criteria: subject check)
- Ticket #32318: https://computerguru.syncromsp.com/tickets/110847587
- Skill: `.claude/commands/syncro.md`
- Bot alert message ID: 1507509925939777709