Week 2 Systems And Tools
Week 2 — Systems & Tools
Time commitment: ~10–12 hours (reading + hands-on CLI practice) Goal: Every CLI script, every system, every tool — you can use it without opening the docs. By Friday you’ve run every script at least once against a real (or test) migration.
Day 1 — CLI scripts: porting and compliance
Reading
-
deployment-toolkit/04-number-porting.md— full read -
deployment-toolkit/08-compliance-requirements.md— full read
Exercise 1.1 — porting_tracker.py
Using a test migration ID (ask your manager for one or create a sandbox entry):
# 1. Create a port order
python3 execution/porting_tracker.py --action create \
--migration-id test-migration-001 \
--numbers "415-555-0100,415-555-0101" \
--carrier "Spectrum Business"
# 2. Check status
python3 execution/porting_tracker.py --action status --migration-id test-migration-001
# 3. Advance to LOA submitted
python3 execution/porting_tracker.py --action update \
--migration-id test-migration-001 --stage loa_submitted
# 4. Advance to FOC received
python3 execution/porting_tracker.py --action update \
--migration-id test-migration-001 --stage foc_received \
--foc-date "2026-07-01"
# 5. Generate the port-day checklist
python3 execution/porting_tracker.py --action checklist --migration-id test-migration-001
Write down: What does the port-day checklist tell you that you didn’t already know?
Exercise 1.2 — compliance_checker.py
# 1. Detect and initialize a HIPAA migration
python3 execution/compliance_checker.py --migration-id test-compliance-001 --industry healthcare
# 2. Check what requirements are needed
python3 execution/compliance_checker.py --migration-id test-compliance-001 --check-status
# 3. Sign off a requirement
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
--sign-off --requirement hipaa_baa_signed --signed-by "test@example.com"
# 4. Check if Stage 3 is clear
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
--can-advance --stage 3
# 5. Try Stage 5 — it should be blocked
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
--can-advance --stage 5
# 6. What exit code did you get? What does it mean?
Day 2 — CLI scripts: feature mapping, health checks, proposals
Exercise 2.1 — feature_mapper.py
# 1. Generate a text feature map for RingCentral
python3 execution/feature_mapper.py --source avaya --target ringcentral --output-format text
# 2. Generate for 8x8
python3 execution/feature_mapper.py --source avaya --target 8x8 --output-format text
# 3. Compare: What features are "native" on 8x8 but "add-on" on RingCentral?
# 4. What feature is "missing" on one of the platforms?
# 5. If a customer has a 5-zone overhead paging system, what status does it show on ALL platforms?
# What does that mean for your deployment?
Exercise 2.2 — health_check.py and generate_proposal.py
# Run a health check with good metrics
python3 execution/health_check.py --migration-id test-health-001 \
--metrics '{"mos":4.2,"jitter":12,"latency":75,"packet_loss":0.2,"nps":8,"adoption_pct":0.82}'
# Run a health check with concerning metrics (below thresholds)
python3 execution/health_check.py --migration-id test-health-001 \
--metrics '{"mos":3.2,"jitter":45,"latency":160,"packet_loss":2.5,"nps":5,"adoption_pct":0.45}'
# What's the difference in score and output? What would you do for the second scenario?
# Generate an assessment questionnaire
python3 execution/generate_proposal.py --stage assessment --migration-id test-assess-001
# Review the output: what questions does it ask? Are there any gaps you'd add?
Day 3 — n8n workflow deep dive
Reading
-
deployment-toolkit/09-tools-and-systems.md— full read -
directives/migration-workflow.md— re-read the “Workflow 903 Production Status” section
Hands-on
Log into n8n at https://n8n.cloudmagicgroup.com:
- Find workflow 903 — open it and trace the flow from the webhook trigger through each stage
- Identify the compliance gate nodes (
compliance-gate-stage3andcompliance-gate-stage5) - Find the Splunk HTTP Request nodes — what do they log?
- Find the Resend (email) nodes — when do they fire?
- Look at the execution history for workflow 903 — find the most recent successful execution and trace through each step
Exercise 3.1 — Manual re-trigger practice
Using the test payload in directives/migration-workflow.md (the “Webhook payload schema” section):
curl -X POST https://n8n.cloudmagicgroup.com/webhook/migration-new \
-H "Content-Type: application/json" \
-d '{
"migration_id": "TEST-MANUAL-001",
"customer_name": "Test Customer Inc",
"customer_email": "test@testcustomer.com",
"company_domain": "testcustomer.com",
"seat_count": 25,
"target_supplier": "RingCentral",
"avaya_product": "Avaya IP Office 500",
"urgency_level": "high",
"avaya_contract_end": "2026-09-01",
"deal_value": 18000,
"partner_id": "CMTG-INTERNAL",
"msp_slack_webhook": "https://hooks.slack.com/services/TEST"
}'
Check n8n execution history: did it fire? Check #migrations in Slack: did the notification appear? Check Splunk: did the event land?
Day 4 — Splunk and observability
Exercise 4.1 — Splunk queries
Log into Splunk and run these searches:
# 1. All events in the avaya index in the last 24 hours
index=avaya earliest=-24h
# 2. All compliance sign-offs ever
index=avaya action=compliance_signoff
# 3. Find any porting events
index=avaya (action=port_order_created OR action=port_stage_advanced)
# 4. Find any health checks
index=avaya sourcetype=health_check
# 5. Find any errors
index=avaya level=error
For each query: What do you see? What would you do if the last query returned results?
Exercise 4.2 — Supabase inspection
Using the Supabase dashboard at https://supabase.com/dashboard/project/wjuavuucarznaioipitu:
- Find the
migrationstable — how many rows are there? - Find a migration record for a real (or test) migration
- Expand the
metadataJSON column — find thecompliancesub-object - Find a migration with
porting_ordersin the metadata — what stage is it in?
Day 5 — End-to-end drill
The full workflow on a paper migration
Pick a fictional customer (“ABC Manufacturing, 45 seats, single site, Avaya IP Office 500, target: 8x8”). Walk through the full workflow without stopping:
- Run
generate_proposal.py --stage assessment— read through the questionnaire - Run
compliance_checker.py --industry manufacturing— what vertical is detected? - Run
feature_mapper.py --source avaya --target 8x8— identify the gaps - Create a port order in
porting_tracker.pywith 3 fictional numbers - Advance the port order to
foc_receivedwith a target date - Print the port-day checklist
- Run a health check with metrics you invent
- Write a 1-paragraph assessment summary for this fictional migration
Week 2 Readiness Check
Run these commands from memory (close your docs):
porting_tracker.py— create a port order for migration ID “RCW2-001” with 2 numbers from “AT&T”compliance_checker.py— detect vertical for “dental clinic” and sign offhipaa_baa_signedfeature_mapper.py— generate a text report for RingCentral- In n8n, describe where to find the execution history for workflow 903
Then answer verbally:
5. What’s the field name in the n8n webhook payload for seat count? (NOT seats)
6. A compliance gate returns exit code 2 — what does that mean and what do you do?
7. A migration’s porting_orders metadata is empty but the LOA was submitted 3 days ago — what happened and how do you fix it?
Manager sign-off: _______________________ Date: _______________
Advance to Week 3: [ ] Yes [ ] Needs more time in: ____________________________